bitcoin논문과 책들, 스터디를 하면서 큰 그림으로 정리한 내용입니다.
bitcoin이 해결하려고 한 것은 무엇이고 그 기술들이 어떻게 해결했는가를 기준으로 썼습니다. :)
1. 기존 시스템에 대한 이해
우선 비트코인을 들어가기 전에 기존 시스템 문제에 대해서 알필요가 있습니다.
기존 전자지불 시스템은 아래와 같습니다.
그림처럼 제3자인 금융기관이 존재하고 이 금융기관의 역할은 크게 두 가지로 나누게 됩니다. 해당 고객이 정말로 이 거래를 신청했는가? 그리고 해당 고객은 이 거래를 할 수 있는가?
첫 째로 해당고객이 정말로 이 거래를 신청했는가? 하는 부분은 '디지털 서명'을 사용해서 현재 해결을 하고 있습니다. 우리가 사용하고 있는 공인인증서가 이 부분을 담당하고 있습니다.
두 번째 해당 고객은 이 거래를 할 수 있는가 부분에서 바로 금융기관이 꼭 필요한 이유입니다. 이 두 번째 질문은 사용하는 사람 모두가 인정할 수 있는 하나의 장부를 만들 수 있는가와 같은 질문 입니다.
동시다발적으로 이루어지는 많은 거래들을 하나의 장부를 기록하는 방법 중 하나는 거래기록을 걸 관리하고 그것에 대해 리스크를 가져갈 기관을 두고 그곳을 통해서만 거래를 하면 해결됩니다.
그리고 현재까지는 이렇게 해왔죠.
그래서 금융기관과 같은 제3자가 전자지불 시스템에서 장부를 보증하는 역할을 맡고 그것에 대한 리스크만큼 수수료를 가져갔었죠.
2. 기존 시스템의 문제들
그런데 제3자를 거치는 방법에는 문제점들이 있는데 바로 장부가 한 곳에 있을 경우, 그 곳에 해킹을 당했을 때 어마어마한 피해를 입을 수 있다는 점. 리스크에 대해 보증을 해주다 보니 수수료가 높다는 점, 제3자를 거치다보니 거래 처리에 대해 시간이 소요된다는 점입니다.
그래서 비트코인에서는 하나의 장부를 여러 곳에 존재하게 해서 해킹의 위협을 낮추자! 라고 제안하고 있습니다. 여러 곳으로 분산시킬 경우, 해킹의 위협을 낮출 수 있고 제3자가 존재하지 않기 떄문에 거래 처리에 대한 시간, 리스크에 대한 수수료를 낮출 수 있다고 말하고 있습니다.
하지만 거래장부를 분산시킬 경우, 풀어야할 큰 문제가 하나 있습니다. 바로 모두가 신뢰할 수 있는 하나의 장부를 만드는 것이죠! 제3자가 장부를 관리할 때는 모두가 신뢰할 수 있는 장부를 만드는 문제는 쉽게 해결이 가능했습니다. 그래서 비트코인에서 핵심은 분산시스템에서 통일된 하나의 장부를 만들 수 있는 방법이 됩니다. 그리고 이것을 위해 사용되는 기술들이 P2P, 블록체인, 합의 메커니즘, Longest Chain이 사용됩니다.
3. 비트코인 기술 이해
3.1 P2P
노드들이 연결되어 있어 서로 간에 데이터를 주고 받을 수 있는 형태를 P2P라고 말합니다. 장부를 분산시킬 때 사용하는 기술입니다. 따라서 데이터를 위조하기 위해서는 여러 개의 노드들 안에 있는 모든 데이터를 위조해야 하기 때문에 해킹의 위협을 낮출 수 있습니다.
3.2 blockchain
현재 거래에 대한 정보를 작성할 때 현재 정보뿐만 아니라 이전 블록에 대한 정보를 추가해서 만드는 방법입니다. 이러면 현재 거래를 위조하거나 과거 거래를 위조할 때 그 안에 들어가 있는 이 전 정보 혹은 이후 정보들도 위조해야 하기 때문에 데이터 위조를 어렵게 만듭니다.
이 블록체인은 하나의 노드안에 들어가게 됩니다.
3.3 P2P + blockchain
blockchain으로 인해 하나의 노드에 있는 장부도 변조가 어렵지만 이러한 블록체인 장부가 P2P로 분산되어 저장되어 있기 때문에 이 두 기술을 같이 사용한다면 데이터 위조를 하기가 쉽지 않습니다. 따라서 이 두 기술은 이미 만들어진 거래 장부의 위 변조를 막는 방법이 됩니다.
3.3 합의 메커니즘
하나의 블록을 채굴할 때 컴퓨터 리소스를 많이 투입하게 하는 알고리즘입니다. 이것의 의미는 리소스를 많이 투입해서 생성된 블록은 신뢰가 가능하다와 같습니다. 많은 거래가 동시 다발적으로 생길 때 어떤 거래를 신뢰할 것인가 하는 문제, 즉 하나의 장부를 어떻게 만들 것인가를 해결하는 기술입니다.
3.4 Longest Chain
서로 다른 내용의 chain들이 충돌이 일어날 때 길이가 더 긴 chain을 선택하는 방법입니다. 즉, 리소스가 더 많이 투입된 게 신뢰성이 더 높다 라고 판단하는 것입니다.
3.5 합의 메커니즘 + Longest Chain
P2P 네트워크에서 발생하는 서로 다른 내용의 거래들을 하나의 장부로 만들기 위해서 사용되는 알고리즘이라고 말할 수 있습니다.
4. P2P + 블록체인 + 합의 메커니즘 + Longest Chain
P2P 네트워크에서 발생하는 서로 다른 내용의 거래들을 하나의 장부로 만들기 위해서 사용되는 알고리즘이며 [해커집단은 이중지불을 하기 위해서는 네트워크의 51%를 장악하고 순수한 집단보다 빠르게 블록들을 생성할 수 있어야 한다.] 는 어려운 문제를 풀어야 하기 때문에 장부를 위변조 하기가 어렵습니다.
따라서 비트코인은 결국 분산된 장부를 하나의 장부를 만들기 위한 노력이라고 말할 수 있습니다.
스팀아 4월을 멋지게 가보즈아!!!
^^ 오랜만에 뵙네요. 감사합니다