Browse Source

초본 완성

wan 3 years ago
parent
commit
ce7afca029
3 changed files with 63 additions and 6 deletions
  1. 20 6
      8_마무리.md
  2. 35 0
      Full.md
  3. 8 0
      img/이미지 출처.txt

+ 20 - 6
8_마무리.md

@@ -1,4 +1,6 @@
-# 더 생각해볼 것들
+# 부록
+
+## 비트코인의 업그레이드
 
  현재 비트코인은 크나큰 변화를 앞두고 있다. 아마 독자 여러분이 이 글을 읽을때쯤 그 이 모든 변화가 끝나있을 것이라고 생각하지만 이 변화의 핵심키워드는 "현재 비트코인이 처리할수 있는 거래의 양이 너무 적다."라는 것이다.
 
@@ -6,7 +8,7 @@
 
  2017년 7월 현재는 비트코인에서 어떻게 업데이트를 해서 이러한 문제를 해결할까?의 정점에 달한 시기이다. 그리고 그 핵심은 하나의 블록에 더 많은 거래를 들어가게 해주는 Segwit과 블록의 크기를 얼마나 키울까? 이다. 이제부터 필자 기준으로 실시간으로 진행되는 비트코인의 역사에대해 생생히 알아보도록 하자.
 
-## SegWit
+### SegWit
 
  모든 트랜젝션의  입력부분에는 이전 트랜젝션의 출력부분에 명시된 주소의 소유주가 나임을 명시하기 위해 공개키와 함께 디지털 서명이 포함된다. 이렇게 하나의 공개키와 디지털서명 세트는 264Bits의 공개키와 568Bits의 전자서명으로 하나의 입력당 트랜젝션에서 총합 104Bytes의 크기를 차지한다. 일반적으로 입력이 하나인 트랜젝션의 크기가 260Bytes정도 된다는점을 생각해보면 트랜젝션 데이터의 반정도가 전자서명에 사용된다고 보면된다. 하지만 실제 블록체인에서 아주 옛날에 발생한 거래를 증명할필요는 없는데 (증명하지 않아도 블록체인이 그 거래내역이 참임을 보여준다.)(실질적으로 증명이 필요한부분은 거래 데이터를 블록체인에 넣을 때 뿐이다.) `모든`전자서명 데이터를 가지고 있을 필요가 있을까? 라는 의문에서 시작한것이 바로 `Dr.Pieter Wuille` 가 제시한 SegWit이란 방법이다.
 
@@ -25,10 +27,22 @@
 
 이같은 과정을 통해 작동하는 `SegWit`은 두가지 장점을 지니게 되는데, 하나는 블록체인에 포함되는 데이터중 전자서명이 빠져 같은 1MB라는 제한을 가진 블록 안에 이전대비 최소 1.75배 최대 4배정도 많은 거래를 저장할 수 있어졌다는 점이고, 나머지 하나는 이중지불 문제의 가능성을 해결할 수 있어졌다는 점이다. 무슨말인가 하니, 일단 권고사항으로 `입력스크립트`와 `출력스크립트`부분에는 표준거래에 맞는 데이터만 삽입될 수 있지만 이는 `권고`사항이지 강제사항이 아니다. 문제는 `스크립트`부분이 변경되면 트랜젝션 전체 데이터의 해시값으로 정해진 `TxID`가 바뀌게 되고 `TxID`가 바뀌면 컴퓨터는 같은 내용의 거래라도 다른 거래로 인식하기에 만약 이러한 약점을 잘 이용해서 TxID랑 사소한 데이터만 다르지만 내용은 똑같은 서로다른 두 거래가 모두 블록체인에 포함되면 이중지불의 완성이다. 물론 이건 프로그램 버그를 잘 이용해야되서 `가능성`일뿐 실제 방법이 알려진것은 아니다. 다만 SegWit을 도입하면 이러한 `가능성`도 차단할 수 있어 더 안전할것으로 생각되어지고 있다.
 
-## 소프트포크? 하드포크?
+### 소프트포크? 하드포크?
+
+ 현재 이 SegWit을 도입하는 여러가지 제안이 나와있다.  하지만 그 도입방법에 대해서는 의견이 많이 갈라져서 현재 BIP91 방법과 BIP148 방법, 마지막으로 BCC가 존재한다.
+
+ 일단 Segwit 2X라 불리는 BIP91은 최근 블록체인에 추가된 336개의 블록중 80%에 해당하는 269개의 블록이 SegWit을 지지한다는 표시가 있으면 그 시점을 기준으로 366블록이 생성될때 (약 2.3일에 해당하는 기간이다) 소프트포크가 발생해 그 후부터는 SegWit에 맞게 생성된 블록만 인정하고 기존 블록은 거부하는 방법이다. 원래 이 방법은 최소 95%이상의 블록이 지지해야 실행되도록 할 예정이었지만 생각보다 저조한 지지율과 함께 기 기준선을 80로 낮추었다. 다만 여기서 끝이 아니고 만약 성공시에는 11월에 블록의 최대 크기를 1MB에서 2MB로 늘리는 방안도 같이 포함되어있다. 다만 여기서 문제가 발생하는데 11월에 시행하는것은 하드포크이기에 만약 이때 모든 채굴자가 2MB상향에 대해 동의하지 않으면 비트코인은 두조각으로 나눠져 2MB블록을 생산하는 비트코인과 1MB블록을 생산하는 비트코인, 총 2개의 비트코인이 탄생하게 된다는 문제점을 가지고 있다.
+
+ 그 다음으로 BIP148은 UASF로 알려져있는데, 만약 8월 1일기준으로 SegWit이 적용되어있지 않으면 하드포크를 감행해 비트코인이 Segwit을 적용한버전과 적용하지 않은 버전으로 나눠진다는 것이다. 이때는 사실 큰 문제가 발생하는데 두가지 버전의 비트코인이 Segwit을 제외하고 모든 규격이 같기때문에 이때 비트코인을 사용하면 SegWit버전의 블록체인과 기존 버전의 블록체인 양쪽다에서 비트코인을 사용한것이 되는 (혹은 한쪽은 사용하지 않은것이 되는) `Replay Attack`이라는 현상이 발생할 수 있다. 비트코인을 받는 입장에서는 어느쪽을 기준으로 거래가 승인되었을을 확인해야되는지 매우 까다로운 작업이 될것이다. 만약 BIP91이 성공적으로 실행되면 BIP148은 실행되지 않는다.
+
+ 마지막으로 BCC는 위 사건과는 관계없이 Bitcoin Cash(BCC)라는 이더리움 클래식처럼 새로운 가상화폐를 만든다는 내용이다. 이 BCC는 비트코인과 다른 통신체계를 가지고 있어 비트코인 네트워크와 별개의 네트워크를 가지며 8월 1일에 기존 비트코인 블록체인을 복사해와 사용할 예정이므로 8월 1일전에 소유하고있는 비트코인은 BCC의 블록체인에도 똑같이 기록되어 있어 기존 비트코인 사용자는 공짜돈이 생긴다! 만약 2017년 8월 1일 이전에 소유하고 있던 비트코인이 있었다면 BCC클라이언트를 설치해봐 잔액이 있는지 한번 확인해보도록하자. 비록 비트코인만큼의 시세는 안나올것으로 예상하지만 어느정도 공짜돈이 생길것이다.
+
+## 후기
+
+ 이 책 전체에 걸쳐 비트코인에서 거래가 어떻게 이루어지는지 한번 살펴보았다. 비트코인에 사용된 기술들은 정말 경의롭다. 대부분의 기술은 비록 이전부터 존재해왔던 것이지만 그걸 조합해서 그 자체로 신용가능한 데이터를 생성해내는 과정은 전세계가 주목할 정도이고, 이에 영감을 받고 새로 탄생한 프로젝트는 단순한 채팅프로그램에서 공인인증서의 대안까지 날이갈수록 놀라워지고 있다. 그뿐 아니라 비트코인 그 자체도 화폐로서의 역할을 점차 찾아가 결제대행사(카드사)없는 인터넷 결제수준은 이미 그 역할을 충실히 하고있는것 같다. 하지만, 아직 한국은 비트코인의 혜택을 제대로 맛보지 못하는것 같다. 비트코인 그 자체는 거래소에서 사고팔며 주식의 대안으로서 활용할뿐이고, 비트코인에 사용된 기술들은 해외에서 응용되어 완성된 프로그램을 수입해 적용시키는 정도밖에 없는것 같다.
 
- 현재 이 SegWit을 도입하는 여러가지 제안이 나와있다. 가장 유명하고 유력한 방법은 SegWit2X이다. 그 내용은 실로 간단한데, SegWit을 도입하고 하는김에 블록사이즈를 2MB로 늘리자! 이다. 이렇게 함으로서 결과적으로 기존 비트코인 대비 3.5배~8배정도의 거래처리를 기대할 수 있게 되었다. 하지만 그 도입방법에 대해서는 의견이 많이 갈라져서 현재 BIP91 방법과 BIP148 방법이 존재한다.
+ 필자는 그 원인이 아마 제대로된 문서의 부재와 언어의 장벽이 아니었을까?라는 생각을 블로그에 "원리부터 파악하는 비트코인"을 작성한 그 순간부터 이 책의 후기를 적는 지금까지도 계속 하게된다. 
 
- 일단 BIP91은 최근 블록체인에 추가된 336개의 블록중 80%에 해당하는 269개의 블록이 SegWit2X를 지지한다는 표시가 있으면 그 시점을 기준으로 366블록이 생성될때 소프트포크가 발생해 그 후부터는 SegWit2X에 맞게 생성된 블록만 인정하고 기존 블록은 거부하는 방법이다. 원래 이 방법은 최소 95%이상의 블록이 지지해야 실행되도록 할 예정이었지만 
+이 책을 다 읽은 여러분은 무엇을 생각하게 되었는가?
 
- 일단 SegWit2X는 가장 먼저 제시된 방법으로 
+ 그 답을 필자는 들을 수 없겠지만, 뭔가 세상을 자극할 즐거운 아이디어였으면 좋겠다는 작은 바람을 가지며 이 글을 마친다.

File diff suppressed because it is too large
+ 35 - 0
Full.md


+ 8 - 0
img/이미지 출처.txt

@@ -0,0 +1,8 @@
+4_1: https://blog.cloudflare.com/a-relatively-easy-to-understand-primer-on-elliptic-curve-cryptography/
+
+
+4_4: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki
+
+4_5:  https://bitaddress.org -> 아무렇게나 마우스를 움직여서 키를 만들고 Paper Wallet으로
+
+6_1: https://en.wikipedia.org/wiki/Merkle_tree

Some files were not shown because too many files changed in this diff