728x90

채굴 작동 방식

위에는 예시로 작성된 블록으로 여러 트렌젝션을 한 블록 내에 넣을 수 있다. 위의 블록에서는 블록번호, 데이터, 이전 해시 값을 가지며, 이전 해시 블록 간의 암호화 링크를 활성화 하는 부분이다. 

 

블록번호, 데이터, 이전 해시 값을 가지고 해시 알고리즘을 통해서 해시 값을 도출하는데, 채굴이 복잡한 이유는 무엇일까? 바로 논스(Nonce)라는 필드 때문이다. 

논스는 한번만 사용되는 필드로 채굴에 중요한 부분이다. 논스는 추가적인 통제력과 유연성을 할 수 있다는 특징이 있다.

이유는 데이터, 블록체인 번호, 이전 해쉬 값은 불변 원장의 특징에 의해 변화할 수 없지만, 논스를 이용해서 내용을 바꿈으로서 도출되는 해쉬값을 쇄도 효과에 의해서 극단적으로 다른 해쉬 값을도출 할 수 있다.

이로서 해쉬의 다양성을 보장할 수 있다. 

 

 

채굴 작동 방식 : 암호화 퍼즐 

 

해시는 숫자로 이루어지며, SHA256 해시의 경우 실제 숫자로 단어도 라벨도 아닌 단순한 문자의 나열 16진수 숫자로 숫자와 문자를 조합된다. 이때 더 높은 값으로 인코딩을 하게 되는데, SHA256은 선행 제로로 64개의 해쉬값으로 진행한다. 



해쉬풀에서 해쉬값에서 가능한 해쉬값을 최소값부터 최댓값까지 진행하며, 채우다보면 일종의 맵이 생성되고, 이를 확인할 수 있다. 

채굴방법은 블록체인 시스템이나 알고리즘이 대상을 설정하는 것으로 채굴자들이 특정한 해시룰 달성하도록 설정한 대상이 존재한다. 

 

대상보다 값이 큰 해시는 고려 대상이 아니며, 블록에 대해 찾은 해시값이 대상보다 작아야 한다. 대상보다 더 클때 해당 블록체인에 대해 충분하지 않고, 해쉬값이 무조건 대상보다 작아야한다.

이유는 없이 채굴자가 해결해야할 도전 과제를 생성하기 위해 수행되는 작업으로 해시 숫자로 블록을 생성할 수 없다.

대상을 고려할 때에 있어서 좋은 방법은 선행제로를 중심으로 생각해보며, 해시를 중심으로 대상을 기억하지 말고 선행 제로를 중심으로 기억한다. 

 

위의 블록에는 논스값 이외의 필드값들을 변경할 수 없다는 것을 고려했을 때, 트렌젝션의 세부 사항 중 불변원장의 특징으로 인해 일부도 변경할 수 없다.

그래서 논스 값을 바꿔가며 해시값이 맵에 위치하는 것을 확인해야 한다.위의 해쉬를 해시 맵에 위치했을 때 해당 블록에 대한 해시가 생성됬음을 알려주기 위함이다. 

 

논스 값을 22로 생성된 해쉬는 더 작은 해쉬값을 가지게 된다. 논스를 변형하여 대상 아래의 해쉬값이 나오도록 무차별 대입을 하여 대상에 대한 해쉬를 생성하였을 때 이때 작성된 논스 값을 골든 논스라 한다.

해시가 대상 아래있을 때만 블록을 추가할 수 있으며, 논스가 조금만 바뀌더라도 해쉬 값이 크게 바뀐다. 이는 쇄도 효과로 인해 발생하게 된다. 만일 쇄도 효과가 없다면 위의 여러 무차별 대입 과정을 할 수 없으며, 바로 논스의 최적값을 알아낼 수 있다. 

암호화 퍼즐에 의해서 역설계 작업이 불가능하며, SHA256 해쉬 약속으로 쇄도 효과에 의한 역설계 작업이 불가능하다. 그렇기 때문에 채굴자는 보상을 받기 위하여 골드 논스를 구하기까지 논스를 바꾸며 원하는 해쉬를 찾아내는 작업을 필수적으로 진행하게 된다. 

더보기

위의 예시의 오류 중에 하나는 선행 제로의 작업을 진행하기 때문에 이전 해쉬 값이 새로 생성되는 해쉬값보다 작아야하지만, 이전 해쉬값이 크다는 오류가..

 

 

+ Recent posts