비트코인 백서 요약

이동창·2021년 3월 15일
0

백서 요약

목록 보기
1/3
post-thumbnail

1. 서론

현재 인터넷 상 전자결제는 제 3자 없이 수행할 수 없다.


2. 거래

신뢰받는 제 3자 없이 이중지불 문제를 해결하려면 모든 거래를 공개적으로 알려야 하고, 노드 다수의 동의와 합의를 이끌어내는 시스템이 필요하다.


3. 타임스탬프 서버

그 해법이 타임스탬프 서버인데, 블록체인에서 체인을 담당하는 파트라고 생각한다. 즉 거래의 순서를 알 수 있게끔, 이전 거래들에 대한 해시를 계속 포함해서 연결되게끔 사슬을 형성하게 해주는 것이 타임스탬프 서버


4. 작업증명

이렇게 거래들을 받아 적기가 쉽다면 위조하기가 쉽다. 따라서 거래들을 적을 때마다 작업증명을 하게끔 한다. 또한 타임스탬프 서버에서도 말했듯, 이전 블록의 해시를 블록 안에 넣기 때문에, 하나의 블록을 변경하려면, 그 뒤의 모든 블록도 모두 변경해야한다. 이것이 위조하기 더 어렵게 만든다.


5. 네트워크

노드가 작업증명에 성공하면, 이 블록을 다른 노드에게 전달한다. 만약 블록안의 내용이 맞다면 블록의 해시를 다음 블록 안에 넣는 것으로 이를 승인한다. 만약 동시에 작업증명에 성공한 것이 있다 해도, 먼저 온 것을 기준으로 하고, 다른 체인이 더 길어질 것을 대비해 저장해놓기는 한다.

Q : 가장 긴 체인을 정확한 것으로 간주한다. 왜?
가장 긴 체인이 누적 난이도가 가장 높기에, 이를 신뢰하는 것인 듯 이게 맞나?


6. 인센티브

보다 싶이 작업증명은 귀찮은 작업이다. 이를 아무런 보상없이 진행하라고 하면 노드가 하질 않을 것이다. 따라서 작업증명에 성공하는 노드에게는 인센티브를 준다. 이는 거래 수수료가 될 수도 있고, 자신의 블록 맨 마지막에 자신에게 일정의 코인을 주는 거래를 적어놓는 것으로 성사된다.


7, 8 . 디스크 공간 회수, 간소화한 결제 검증

모든 거래 내용을 다 저장한다면 디스크 공간이 터질 것이다. 이를 절약하기 위해 사용하는 방법이 머클트리인데, 머클 트리란 거래를 2개씩 묶고, 이를 해시한 후에 다시 두 개씩 또 묶어서 해시해서 최종적으로 하나의 루트 해시를 만드는 것이다. 이 루트 해시는 결국 블록의 요약본과 같아져 모든 노드들이 모든 거래를 저장할 필요가 없어진다.
Q: 그럼 결국 누군가는 거래 내용을 갖고 있어야하는데 누가 갖고 있음?


10. 프라이버시

금액과 거래 시각은 공개되지만, 거래 당사자가 누군인지는 알지 못하게 한다.

Q : 거래 당사자가 누구인지 모른다면, 불법 자금에 관련된 문제는 어떻게 진행하는지
마냥 모든 거래 당사자를 다 공개할 수는 없을 것 같은데


11. 계산

시간이 지날수록 공격자가 정직한 노드들을 이길 확률이 지수적으로 늘어나기에 해킹이 어렵다. 따라서 공격자들은 정직하게 작업증명을 하는 것이 더 효율적이게 된다.

0개의 댓글