본문 바로가기
컴퓨터공학/네트워크

블록체인-해시 퍼즐, 작업증명

by 딩코딩코 2019. 10. 18.

먼저 앞의 글에서 블록에 '기록'을 한다고 했는데, 이제 '누가'기록을 하는지 정해야 한다.

먼저 블록에 기록을 하려면 블록을 생성해야 한다.
이때 블록을 생성하는 작업은 어려워야 한다.
누구나 쉽게 블록을 생성한다면, (후에 좀 더 설명하겠지만)블록에 저장된 내용에 대한 신뢰도가 떨어지게 된다.

따라서 비트코인에서 택한 방법은 '해시 퍼즐'이라는 개념을 도입했다.
'해시 퍼즐'이란 주어진 값보다 작은 값을 찾는 행위인데, 쉽게 생각하면 이런 것이다.

1~10까지 적혀 있는 공 중에서
10보다 작거나 같은 공을 찾을 확률은 100%
5보다 작거나 같은 공을 찾을 확률은 50%
1보다 작거나 같은 공을 찾을 확률은 10% 이다.

이처럼 매번 블록을 생성할 때마다 목표값이 주어지고, 각 개인은 특정한 식에 값을 넣어 목표값보다 낮은 수를 찾을 때까지 무작위로 값을 집어 넣는다.

이렇게 해서 블록을 생성하면, 생선한 사람이 '기록'을 하게 되는 것이다.
블록 생성자는 블록 보조금이라는 블록을 생성한 대가를 받으며 다른 개인들로부터 블록에 기록을 해주는 대가를 받는다.

이때, '작업 증명'이라는 개념을 도입한다.
작업 증명이란,
1. 작업을 하기 위해서(블록 생성)는 엄청난 비용이 들지만, 그 작업 결과가 올바른지 확인하기 위해서는 적은 비용이 들어야 한다.
2. 악용했을 때의 이익(블록을 마구 생성하여 자신에게 도움이 되는대로 기록)보다 악용하려면 소요되는 비용이 더 많아지도록 한다.
(나쁜 짓을 할 바에, 차라리 착한 짓을 하는게 더 이득이 되도록)