본문 바로가기

책, 영화

블록체인 펼쳐보기 - 블록의 구성과 체인




"그 신뢰는 은행이 쌓아 두고 있는 현금 뭉치가 아니라 은행이 가지고 있는 고객의 거래원장의 정확성에 달려있다"


결국 사람들이 신뢰하는건 거래 기록의 정확성 (=위변조가 안될거라는) 에 대한 믿음에 있다는 말인가? 그렇게 생각을 해본적이 없어서 이 개념이 이해가 되려고 하다가도 헷갈리기 시작한다. 그동안은 그냥 '은행이니까 믿지...' 뭐 이렇게만 생각했었는데, 그게 아니라 근본적인건, 은행을 통해 거래를 하면 그 거래 기록과 잔금이 달라지지 않고 유지될거라는 믿음이 있었던것 같다. 


"블록체인을 보기만 해도 여기에 들어간 작업의 증명을 보고 진품인지 확인할 수 있다"


이게 가능해지는 기술이기 떄문에 분산 작동이 가능해진다. 해쉬의 특징.


“해시캐시에서 카운터라고 했던 부분은 블록체인에서 사용하는 ‘난스(nonce)’ 라는 용어로 바꿨다. 난스는 일시적이고 임시방편인 것을 표현하는 말로, 이 블록만을 위해 일회용으로 찾아낸 값이란 의미다.”


이 난스라는 숫자를 찾기 위해서 컴퓨터가 일을 해야 한다는 이야기...


“누군가가 일정한 노력을 들여 난스를 계산해서 하나의 블록을 완성하면 다른 사람은 블록만 보고 원 저자가 노력을 들인 것을 알게 된다”


원 저자가 노력을 들였다는게 흔히 이야기는 채굴업자가 채굴했다는것을 의미한다. 즉, 자신의 컴퓨터로 전기세를 써가면서 무지 단순한 계산을 수없이 했다는 작업에 대한 증명.


“블록에 들어가는 내용은 응용분야에 따라 달라질 수 있는데 비트코인에서는 거래 기록이 들어간다”


현재로서는 유일한 응용이 코인 같은데, 어제 JTBC 토론에서 유시민 작가가 이야기한것을 떠올려보면 현재 ‘그리 신뢰받지 못하는 기록들’ 이 있는 영역에서는 유용하게 사용될 수도 있겠다. 가령 노래방에서 그 노래가 몇번이나 불렸는지에 대한 기록 같은 것들 말이다. 


“난스를 계산할 때 블록의 내용이 먼저 결정돼 있어야 하므로 일단 난스를 계산하면 그 블록은 바꿀 수 없다. 내용이 바뀌면 다시 계산해야 한다. 앞서 계산에 쏟은 노력이 무효가 돼 버린다”


그러니가, 내용이 점점 늘어나면 블록을 키우는게 아니라, 새로운 블록을 만들어서 연결해나가야 한다는 이야기이다.


“블록1에는 블록0의 해시값이 블록 내용의 일부로 들어간다”


이 방식으로 블록들을 모두 체인식으로 연결해나간다. 


“만약 100번째 블록을 누군가가 만들려 한다면 이 사람은 정당한 해시값이 나오는 정상적인 99번째 블록을 가지고 있어야 100번째 블록을 만들수 있다”


99번째 블록의 해쉬값이 값의 일부로 들어가야하니 이 말은 맞다. 


“각자는 블록의 해시값을 계산해서 다음 블록에 기록된 값과 맞춰 보면 이것이 올바른 기록이라는 것을 다른 누구의 도움없이 독자적으로 확인할 수 있다”


N+1번째 블록이 틀림없다는걸 N번 블록을 해쉬해서 N+1번블록에 들어간 값과 비교해보면 알수 있다...왜냐면 N+1번 블록의 난스값은 다른 데이터값들이 모두 정해지고 나서야 만들어지는 값이니...


“가령 본문 내용에 내 계정으로 만원이 송금되도록 기록돼 있는데 이것이 천만원이 되도록 고치려면 본문 내용에서 정확히 특정 부분을 내 입맛에 맞게 바꿔야 한다. 이건 우연히 해시값이 겹치는 본문을 찾는 것보다 훨씬 더 어려운 일이다”


본문을 변조한후 해쉬값이 이전과 동일하게 나오도록 한다는게 불가능하다는 이야기다. 


“이전 블록의 해시값은 미리 만들어 놓을 수 없으므로 이전 블록을 가지고 있지 않으면 새 블록을 만들 수 없다”


이전 블록을 미리 만들수 없다는게 무슨 말인지 아직은 정확히 이해되지 않는다. 전세계의 블록은 하나의 체인이란 이야기인걸까? 그러면 병목이 심하지 않을까? 


“사토시의 최초 블록의 신뢰를 깨려면 45만 개의 난스 계산 결과를 뒤집어야 한다. 난스를 하나 계산하는데 많은 계산이 필요한 만큼 전체를 뒤집는 건 불가능하다”


이말도 비트코인의 블록체인이 한줄이라고 이야기하는것 같다. 45만개의 블록이 벌써 만들어져서 연결되었고, 1번 블록을 위조하려면 그 위에 쌓인 45만개 블록의 값을 모두 바꾸어야 한다. 그건 불가능한거다... 점점더 궁금해진다.실제 비트코인 블록체인의 모습이..


Only I can change me life, no one can do it for me. – Carol Burnett