비트코인 백서 ; 탈중앙화 화폐의 시작과 이에 대한 분석

JeongMin Kim·2023년 3월 19일
0
post-thumbnail

🎯개인적으로 이해한 내용을 정리한 기록입니다. 틀린 내용 / 이해 오류가 많을 수 있으니 정확한 해설이나 정보를 찾으시는 분들은 다른 문서를 참고하시는 게 더 안전합니다!

🎯(오류를 발견하셨다면, 알려주시면 수정하겠습니다)

비트코인 백서란 2008년 블록체인 및 가상화폐의 창시자인 사토시 나카모토가 본인이 발명한 비트코인이라는 전자 화폐에 대해 설명한 문서이다. 비트코인 백서는 사토시 본인이 고안해낸 P2P 전자 화폐 시스템에 대한 소개, 설명, 분석이 함께 들어가있는 짧은 문서라고 생각하면 된다.


비트코인 백서 톺아보기- 1편라는 업비트 글에서 가져온 이미지이다. peer to peer라는 것은 중개자를 거치지 않고 개인과 개인이 거래를 하는 것을 말한다. 사토시 나카모토는 기존의 거래 방식이 아니라 P2P 전자화폐를 통한 거래를 제안했다.

백서는 초록과 총 12개의 장으로 이루어져 있다.

  1. 초록
  2. 서론
  3. 거래
  4. 타임스탬프 서버
  5. 작업증명 (proof of work)
  6. 네트워크
  7. 인센티브
  8. 저장공간 재확보
  9. 간소화된 지불 검증
  10. 금액 병합과 분할
  11. 프라이버시
  12. 계산
  13. 결론

들어보기만 했던 블록체인이라는 시스템을 처음 이해하려고 노력해서 여기저기 인터넷에 올라와있는 자료를 참고해야 했다. 비트코인에 대해 나만의 언어로 설명할 수 있을 정도로 개념을 확실하게 이해한 것은 아니기 때문에, 내가 참고했던 여기저기의 자료를 이용해서 내가 읽을 때 궁금했던 점에 대해 써보려고 한다.

0. 초록

뒤에 12장에 걸쳐서 나오는 내용을 요약한 내용이다.
정확한 개념들에 대해서는 뒤에 나오기 때문에, 여기서는 기본 용어만 알고 넘어가면 된다.

이중지불

요 부분에 관련해서는 [블록체인 스튜디오] 번역자 직강 비트코인 백서 완전해설 강의 - 0. 초록 에서 설명을 듣고 이해를 했다. 간단하게 말하면 돈을 2번 처리되는 것을 말한다.


예를 들어 통장에 만원 밖에 없는 파란머리 캐릭터가 그린과 존에게 만원을 동시에 송금을 하였을 때 두 명 모두에게 송금이 된다면 이중지불이 일어난 것이다.


기존에는 이중 지불을 막기 위해서 왼쪽 그림처럼 신뢰할 수 있는 제 3자가 감시를 했지만, 사토시는 그런 3자 없이 모두가 서로를 감시하는, P2P 네트워크를 통해 이를 대체하자고 주장한다.

해싱

알 수 없는 문자로 요약하는 것 이라고 생각하면 된다. 즉, 어떤 길이의 내용을 넣어도 일정한 길이의,암호처럼 보이는 문자로 요약이 되는 것을 말한다.


이 그림으로 이해하면 편할 것이다.

초록에는 타임스탬프, 작업증명과 같은 새로운 용어도 등장하지만, 이는 뒤의 3, 4장에서 자세히 나오기 때문에 그 때 알아두면 된다.

1. 서론


서론은 두 문단으로 이루어져 있다.

첫 문단의 경우 기존 신뢰 기반 모델의 단점에 대해 지적하고 있다. 이미지에서 초록 형광펜을 문단의 핵심 문장, 노란색 형광펜 4개를 구체적인 단점으로 이해하면 된다. (이 형광펜 색은 아래에도 계속 적용된다 ; 초록색 - 문단 주요 문장, 노란색 - 문단의 구체적 / 중요 정보)

두 번째 문단에서는 본격적으로 사토시 본인이 고안한 시스템이 이런 기존의 거래 방식을 대체할 수 있음을 피력한다. 읽으면 쉽게 이해할 수 있다.

2. 거래

나는 백서를 읽는 내내 문서에 나와있는 그림들이 문단 내용과 어떻게 연결이 되는 건지 이해를 하는 것이 어려웠는데, 여러 유튜브 영상들을 통해서 그림이 위와 같은 방식으로 첫 번째 문단을 설명한다는 것을 알 수 있었다. 노랑, 파랑, 보라, 갈색으로 나눠서 보면 된다. 그림과 문단으로 볼 수 있듯이, 거래가 일어날 때에는 이전 거래 + 다음 소유자의 공개키 + 전자 서명을 통해 일어난다는 것을 알 수 있다.

디지털 서명 : 공개키와 개인키에 대하여

일단 '[울룩불룩 블록체인/블록체인 스튜디오] 공개키 암호 시스템 ("비트코인 백서 - 2. 거래"편 준비 자료) 10분+5분 보너스' 이 영상을 참고해서 공부를 했는데, 완벽하게 이해하지는 못했다.

내가 이해한 바와 세션에서 알려주신 바로만 정리하자면 디지털 서명은 디지털 데이터를 이용해 보내는 사람의 신원을 증명하는 방법이며, 이 과정에서 공개키와 개인키가 사용된다. 공개키는 모두에게 공개된 계좌번호와 같은 것이고, 개인키는 나만 알고 있는 비밀번호와 유사하다고 생각하면 된다.

그림 출처 : 비트코인 백서 톺아보기- 2편

위 그림은 오른쪽에서 왼쪽으로 메시지를 보내는 디지털 서명 과정으로 이해하면 된다. 암호화할 때는 다른 방식으로 쓰이지만, 디지털 서명을 할 때에는 개인키로 암호화 -> 공개키로 복호화라는 과정을 거친다.

아래 두 문단은 기본적인 내용으로, 초록색 중심 문장을 위주로 읽어보면 된다.

3. 타임스탬프 서버

우선 타임 스탬프란?

타임 스탬프는 타임 + 스탬프라는 이름 그대로 시간을 기록한다는 말이다. 타임스탬프는 블록에 기록되는 많은 거래들 중에 어떤 거래가 먼저 일어났는지를 알 수 있게 하여 조작이 일어나지 못하도록 한다. 다만 타임 스탬프는 '몇시 몇분 몇초' 처럼 구체적인 시간이 기록되는 것이 아니라 어떤 거래가 더 먼저왔는지를 보여준다.

그림을 참고하면 이해하기 쉽다. 위의 시계가 달린 도장처럼 타임 스탬프를 찍는다고 생각하면 된다.

백서에 나와있듯이 각 타임스탬프 해시는 이전 타임스탬프를 포함하고, 사슬처럼 만듦으로써 점점 보강이되고, 조작하기 어려워지게 만든다.

✔️이 시점 부터 한국어 백서를 위 유튜브 economicstudio를 운영하시는 정승원님의 버전으로 보기 시작하여서 앞 부분의 버전과 해석이 조금씩 다를 수 있습니다.

4. 작업증명 (Proof-of-Work)

개인적으로 이 문단은 글로 읽어서 이해하려는 것보다 영상으로 보는 것이 훨씬 빠르고 쉽게 이해할 수 있다고 생각한다.


The Bitcoin Whitepaper | Fully Explained (With Animations!) 영상의 section 4 부터 보면 된다. 특히, 백서 그림과 영상 그림을 정확하게 똑같이 보여주며 설명하기 때문에 이해하기가 아주 쉽다.

이 Section에서는 업비트의 글에 나와있는 것 처럼 아래 4가지만 이해하면 된다. 아래 4가지는 순서대로 4개의 문단에 대응된다.

작업증명

작업 증명은 블록을 생성하기 위하여 nonce를 찾아 암호화 문제를 푸는 것을 말한다. 작업 증명을 통해 거래가 이중 지불되지 않는 정상적인 거래라는 것을 증명할 수 있게 되는 것이다.

가장 먼저 암호화를 푼 사람이 블록을 생성할 수는 있으나, 문제를 푸는 데 참여한 모든 노드의 51%가 인정해야 블록을 생성할 수 있다. 이렇게 다수결 결정은 가장 긴 체인을 만들어내는 것이고, 이 것이 가장 많은 작업 증명 노력이 들어간 체인으로 인정된다.

마지막 문단은 이해하기 쉽고, 위 이미지의 4번으로 요약해서 생각하면 된다.

5. 네트워크

첫 번째 문단은 위까지에서 언급된 일들을 종합하여 생각하고, 순서를 알려주는 쉬운 문단이다.

이해가 안된다면 업비트 글의 그림들 - 톺아보기 4편을 이용하여 이해하면 쉽다.

두 번째 문단에서는 동점 상황이 일어나게 되는 경우를 설명하게 되는데, 동정이 일어나도 결국은 다음 작업 증명에서 더 긴 브랜치를 인정한다는 것을 설명한다.

6. 인센티브


금을 유통하기 위해 자원을 사용하듯. 사람들이 코인을 받기 위해 컴퓨팅 시간과 전기를 사용하게 해야 한다는 내용이다. 인센티브에는 비트코인과 수수료 두 가지가 있다.

수수료의 개념은 아래 사진을 보면 이해하기 쉽다.

이처럼 한정된 양의 비트코인이 다 채굴되어 사람들이 작업 증몀에 대한 보상을 비트코인으로 받지 못하더라도, alice가 bob에게 보낸 거래를 처리할 때 수수료를 걸어 놓으면 채굴자들은 수수료로 보상을 받을 수 있다. alice는 수수료를 보상으로 걸어둠으로써 본인의 거래가 더 빨리 처리되도록 유도할 수 있다.

7. 저장 공간 재확보, 8. 간소화된 지불 검증

이 챕터 또한 글보다 영상이 훨씬 설명하기 용이한 부분이라고 생각한다.

결국 7,8 장에서 하고 싶은 이야기는 이전의 일부 거래들을 폐기함으로써 저장 공간을 절약할 수 있다는 이야기이다.

9. 금액 병합과 분할

이 부분은 아무리 읽고 다른 영상을 참고해도 이해가 되지 않았는데, 세션에서 팀장님께서 내용을 정리해주셨다. 결국 여기서 하고 싶은 말은 우리가 계좌이체를 할 떄에도 어디에서 온 금액인지 밝히지 않는 것처럼, 비트코인도 그렇게 하나하나 세세하게 따지지 않는다는 내용이다.

10. 프라이버시

밑줄들을 위주로 읽으면 되는 쉬운 내용이다.

11. 계산

물음표가 난무하는 문단

이 문단을 찾다가 한 유튜버가 이 문단에 대해 이렇게 말하는 것을 들었다.

finally, Satoshi Nakamoto wanted to illustrate the unlikelihood that the bitcoin network would successfully be attacked by fraudsters.

결국에는 공격자가 공격에 성공할 확률이 매우 적다는 것을 수식으로 설명하고자 한 것 같다. 마지막 사진에서 볼 수 있듯이, 거래가 이미 많이 일어난 블록일 수록, 그리고 공격자가 가진 해싱 파워, 즉 cpu 파워가 적을 수록 공격자는 공격에 실패할 확률이 높다.

12. 결론

결론 또한 밑줄을 중심으로 읽어주면 된다.

이상 skkrypto 개발팀 과제였습니다!

0개의 댓글