LAINO의 개발노트

개발자가 읽는 암호화폐 백서 : 비트코인 - 거래 본문

블록체인/백서

개발자가 읽는 암호화폐 백서 : 비트코인 - 거래

Laino 2018. 2. 16. 02:17

안녕하세요, 오랜만에 투고해보는 글인것 같습니다. 항상 개발하면서 막혔던점은 정리해서 투고하려고 노력하는데 마음처럼 잘 되지 않습니다. 저와 같이 삽을 드시는 여러분이 제 글을 보시고 조금이라도 수고를 덜 하시길 소망하는마음으로 다시 주기적으로 글을 투고 해볼까 합니다.


오늘은 요즘 세간의 이목이 쏠리고 있는 비트코인 백서를 읽는겸 개인적인 정리를 겸하여 단락별 정리를 해볼까 합니다. 사실 작년부터 계속 읽고있었으나 이런식으로 글로 정리하지 않으면 목표의식이 사라져 잘 읽지 않게 되더군요. 그런의미로 비트코인 외에도 여러 제가 괜찮아 보이는 기술을 가진 코인들의 백서를 이런식으로 정리해볼까 합니다.

 

백서의 중간 부분 부터 서술 하는 만큼 백서를 먼저 훑어보시고 제 게시글을 보셔도 좋을것 같습니다.


츄이스님의 번역 백서를 기반으로 하고있습니다.

조만간 원서전체 내용을 담아 투고하도록 하겠습니다.


------------------------------------------------------------------------------------------------------


2. 거래


(이 단락은 전자 화폐를 통한 전자거래의 과정과 한계점, 솔루션에 대하여 서술하고 있습니다.)

이 백서에서, 디지털 서명의 연속을 전자 화폐라고 정의합니다.


백서에서 설명하고자 하는 (전자)거래의 플로우는


1. 각 암호키 소유자들은 그 전까지의 거래 내역을 전달 받습니다.

2. 전달 받은 거래 내역에 원 소유자의 공개키를 덧붙여서 암호화를 진행합니다.

3. 나의 비밀키를 통하여 암호화하는 디지털 서명을 진행하고 거래 내역을 전달합니다.




1->2->3-> 과정의 연속이라고 볼 수 있습니다.


여기서 암호키, 공개키 등의 용어는 공개키 암호화 기술을 참고하시면 좋을것 같습니다.

https://ko.wikipedia.org/wiki/공개_키_암호_방식


우리는 이 3개의 과정을 간단한 트렌젝션 이라고 합니다.


------------------------------------------------------------------------------------------------------


다음은 본론을 개인적인 기준으로 분류해봤습니다.

  1. 문제상황

  2. 현재 솔루션

  3. 현재 솔루션의 한계

  1. 새로운 솔루션 소개

  2. 솔루션의 기본원리

  3. 최종적인 솔루션의 도출


문제상황 - 언제 문제가 발생하나?

  돈을 받는 사람은 소유자들 중 한 명이 이중지불 하지 않았는지 검증할 수가 없을때 발생하는 상황.


현재 솔루션 -문제 상황에 대한 현재의 해결방법.

  각 거래가 이중지불이 되었는지 신용해주는 중앙 기관(신뢰할 수 있는 제 3자)를 도입하여 지불을 보증하는 방법을 통하여 문제 상황을 해결하고 있습니다. 

각 거래가 진행된 후 그 화폐는 다시 새로운 화폐를 발행하기 위하여 중앙 기관(은행, PG 등)으로 회수 되어야 하고, 이중지불이 아니라는 것을 믿을 수 있도록 오직 중앙 기관에서 직접 화폐를 발행하여 쓰도록 하고있습니다.


현재 솔루션의 한계 - 이 방법은 어떤 문제점을 가지고 있나.

  이 솔루션의 문제는 화폐 시스템 전체가 중앙 기관에 모든 거래 내역이 거쳐가도록 하는 방법에 의존성을 두고있기에 발생하는 문제라고 지적합니다.


새로운 솔루션의 소개 - 해결 방법에 대한 아이디어

  위에 서술한대로 필연적으로 전자 거래에 있어서 돈을 받는 사람이 그 돈의 이전 소유자가 그 전에도 어떤 거래에도 서명을 하지 않았는지 확인할 방법이 필요합니다. 

이는 거래에 있어서 가장 먼저 일어난 거래 내역을 찾을수만 있다면 그 이후에 이중지불을 시도했는지 확인할 필요가 없다는 결론을 도출할 수 있습니다. 


새로운 솔루션의 기본 원리 -

  거래 내역이 비어있는지 확인하는 유일한 방법 -> 모든 거래 내역을 살펴보는것

이는 방금 발행한 화폐를 기반으로 하는 모델(현재 솔루션)에서는 모든 거래를 확인하고 어느 거래가 먼저 이루어졌는지 의사결정을 하면 해결이 되는 문제입니다.


최종적인 솔루션 - 신용 기관을 통하지 않은 모델

  신용 기관(중앙 기관)을 통하지 않고 이런 모델을 구현 하기위한 조건으로는,

1. 모든 거래가 공개적으로 알려져야 합니다.

2. 시장 참여자들이 시간 순서에 따라 단일 거래내역(분산원장, 블록체인)으로 수용하는 시스템이 필요합니다.

3. 이는 돈을 받는 사람이 매 거래 시마다, 과반수 이상의 노드(시장 참여자)들이 최초의 거래라고 인정해주는 시간 증명이 필요하게 됩니다.


이 최종적인 솔루션에 대한 기술적인 설명은 다음 단락 (3. 타임스탬프 서버)에서 다루도록 하겠습니다.


항상 궁금하신점이나 질문사항, 개인적인 연락은 댓글 혹은 laino@laino.ml로 메일 부탁드립니다. 제가 도움드릴수있는 한도 내에서는 최대한 설명드리겠습니다!

Comments