비트코인 백서부터 시작합니다(3).

in #kr7 years ago (edited)

movie_speech1223.jpg
저녁 먹으면서 이곳 저곳 기웃거렸더니 역시 용어 정리를 잘해주신 분이 계셔서 링크 올립니다.
https://steemit.com/kr/@easyblockchain/7pgjbi
이 분 글도 한번 다 정독해야겠네요. 저한테 도움이 많이 될 거 같습니다.(댓글에 있는 스팀잇 활용팁도 꿀이네요.ㅎ)
궁금해서 그냥 정독하고 왔습니다. ㅎㅎ 스팀잇은 좋아하지 않을 수가 없네요.ㅎ

https://steemit.com/@easyblockchain

한번 꼭 읽어보시길 바랍니다. 그림도 곁들여서 정말 쉽게 잘 설명하시네요.ㅎ 머클트리 설명같은 경우 이 글 뒤에 리스팀하겠습니다.

@yellowboy1010님의 응원 방문도 있었으니 더 힘내서 백서를 읽어보겠습니다.

2. 거래
우리는 전자 화폐를 디지털 서명의 연속으로 정의한다. 각 암호키 소유자들은 그 전까지의 거래 내역에 다음 소유자의 공개키를 덧붙인 뒤에 자신의 비밀키로 암호화하는 디지털 서명을 하고 넘긴다. 돈을 받는 사람은 서명 소유자들의 체인과, 서명들을 검증할 수 있다.

비트코인 거래.png

1) 디지털 서명은 대충 이해된다 치고 공개키는 뭐고 개인키는 뭔가?
방금 찾은 @easyblockchain님의 블로그입니다. 아주 잘 설명되어 있습니다.
https://steemit.com/kr/@easyblockchain/2kjjep

좀더 재밌는 버전을 원하신다면 유명인이신 @twinbraid 님의 초보코인 시리즈를 보셔도 충분합니다.
https://steemit.com/kr/@twinbraid/3y3vsq
https://steemit.com/kr/@twinbraid/z2fyh-02
(@twinbraid 님의 글을 우선 읽으시는 걸 추천드립니다)

공개키는 쉽게 말해 제 지갑주소였군요(정확히는 공개키로 생성되는 거지만).
Edi2ksEskp93XZsog8W어쩌구 저쩌구 적혀있던..
예전에 서클이란 개인지갑을 썼었는데 개인키라는 건 찾아보지도 않았었네요. 거래소야 걍 통장같은 거라서 신경도 안 썼고..
개인 지갑 사용을 해보면 이 두가지는 확실히 더 알 수 있겠네요. 그럼 또 해봐야죠!
하여간 거래소 예를 들어보겠습니다. 거래소에 비트코인을 입금할 때 거래소는 저에게 주소를 부여합니다. 기억하기도 어려운 이상한 주소들이죠..그 이상한 주소들이 지금 그림의 다음 거래자의 공개키가 되는 거고 제가 개인키로 암호화하여 보낸 거래를 성립시키는 열쇠가 되는 거군요. 제가 거래소의 공개키를 암호하여 보냈기 때문에 그 거래소의 공개키로 밖에 열 수 없는 거구요. 제 개인키와 공개키를 써서 서명을 했으니 검증도 되는거구요.

문제의 과정은 돈을 받는 사람은 소유자들 중 한 명이 이중지불을 하지 않았는지 검증할 수가 없는 상황에서 발생한다. 공통적인 해법은 각 거래가 이중지불이 되었는지 신용해주는 중앙기관을 도입하는 것이다. 각 거래 후에, 그 화폐는 다시 새로운 화폐로 찍어내기 위해 중앙기관으로 회수되어야 하고, 이중지불이 아니란 걸 믿을 수 있도록 중앙기관에서만 직접 화폐를 발행하여 쓰도록 한다. 이러한 방법의 문제는 화폐 시스템 전체가 바로 은행 같은 중앙기관에 모든 거래 내역이 거쳐가도록 하는 방법에 의존하게 된다는 것이다.

위에 그림에서 보듯이 거래는 연속적인 행동입니다. 각각의 거래가 저렇게 물려있고 백서의 설명과 같이 보내는 사람이 그 전까지의 거래내역에 공개키를 붙이는 방식으로 거래를 진행하면, 하나씩 뒤로 가면서 이 돈이 언제 다른 식으로 쓰인적이 있는지를 확인할 수 있다는 내용입니다. 이 확인을 위해 모든 거래가 공개적이어하며 시간 순서에 따라 역순으로 거슬러 올라갈 수 있는(다른 쪽으로 세서 확인할 수 없는 거래가 만들어지지 않는), 하나의 줄기를 가진 시스템이 필요하다는 것이고요.
이런 시스템은 그 전 거래를 확인하기 위한 시간이 필요하니 과반수 이상의 노드들이 그것을 확인해서 그 전에 이 돈이 쓰인 적이 없다는 것을 증명(컨펌)을 하기까지 시간이 필요하다는 말인 것 같습니다.

3. 타임스탬프 서버
우리가 제안하는 해결 방법은 타임스탬프 서버에서 시작된다. 타임스탬프 서버는 시간 내역이 기록된 항목들의 블록 해시를 취합하고, 신문이나 유즈넷 포스트처럼 그 해시를 널리 발행하는 역할을 한다[2~5]. 이러한 타임스탬프 내역은 해시에 포함될 수 있도록 그 시간에 데이터가 명백히 존재했다는 것을 입증한다. 각 타임스탬프 내역은 이전 타임스탬프로부터 받은 해시 내역을 포함시킴으로써 보강하는 체인을 형성한다.
비트코인 타임스탬프.jpg

1) 또 나왔습니다. 해시(hash)는 뭔가요?
위키의 해설은 외계어로 되어있네요. 알아두면 언젠가 좋은 내용인 거 같아서 링크는 올리겠습니다. 걍 귀찮으시면 패스.
https://ko.wikipedia.org/wiki/%EC%95%94%ED%98%B8%ED%99%94_%ED%95%B4%EC%8B%9C_%ED%95%A8%EC%88%98

역시 위의 두분이 친절한 설명을 해놓으셨군요. 정말 감사드립니다.

https://steemit.com/kr/@twinbraid/4yjj7b (댓글까지 읽어보세요)
https://steemit.com/kr/@easyblockchain/2

그러니까 해시는 암호화해서(hashing) 나타나는 값으로 가장 중요한 특성은 똑같은 것을 넣어야 같은 해쉬같이 나온다는 거군요. 보내는 사람이 해시로 값을 만들어서 보내는 경우 받는 사람이 가지고 있는 정보와 조금이라도 변경된 부분이 있으면 받은 사람이 같은 해시함수로 풀었을 때 다른 해시값이 나오기 때문에 보안성을 강화하는 역할을 하는 거구요.
타임스탬프는 정보가 그 시간에 정확히 존재함을 말해주고 그 값의 변경이 없었음을 말해주니, 타임 스탬프 서버는 특정 시간에 기록된 해시값들을 널리 발행하여 그 시간에 정보가 존재하였고, 이전 타임스탬프로부터 받은 해시의 정보가 변하지 않았다는 것을 보강하는 역할이겠군요.(이해는 되는데 말로 풀기가 좀 힘드네요... 잘못 이해하서 그런가.--)

후아 하루를 꼬박 썼는데 요고밖에 못 쓰네요..역시 초보라 진도가.ㅋㅋㅋ
그래두 글 쓰면서 새롭게 이해되는 게 많아서 좋네요.ㅎㅎ 보시는 분들도 좀 이해가 되셔야할텐데..
많이 읽는 것보다 생각을 많이 해야한다는 말 명심하겠습니다.!
그럼 다음 글에서 뵙겠습니다!

Sort:  

비트코인 백서,이더리움 백서.코인입문의 필독서죠.

감사합니다. 열심히 공부하겠습니다~

정리된 글 잘 봤습니다.

오 아주 열심히 하시는 군요 ㅎㅎ 저는 비트코인 공부를 할 때 반드시 생각해야하는 것 중 하나는 비트코인이 장부를 기록하는 방식입니다. 우리는 장부에 적을 때 홍길동 1000원이라고 적잖아요? 만약 3000원을 받으면 홍길동 4000원이라고 적고요. 비트코인은 다릅니다. 비트코인은 개인키에 맵핑되는 지갑 주소에 각각의 돈의 출처가 적혀있습니다. 4000원이지만 1000원은 상점에서 받고 3000원은 친구에게 받았다고 한다면 제 잔고는 4000원이 아니라 1000원과 3000원이되는 것입니다. 그리고 이 돈들은 이전 주인으로 부터 받은 전자서명을 통해 저에게 권리를 이전해온 것이고요. 이더리움은 다릅니다. 따라서 UTXO 검증에 대해 깊이 있는 이해를 한다면 비트코인만의 특징, 그리고 다른 코인들의 특징을 이해할 수 있을 것 같습니다.ㅎㅎ 화이팅!!!

답글 감사합니다~ 블록킹 정취(?)했습니다 제가 오미세고에 대한 환상을 쫌 가지고 있었단 생각이 들더군요 ㅎ 안그래두 다음 글 정도에 UTXO를 다뤄야되는데 고민이 많네요 열공해서 또 써보겠습니다. 참 블럭킹에 다뤘으면 하는 내용이나 질문 공지에 있는 이메일로 보내도 괜찮으신지요?ㅎㅎ

언제든지 환영입니다^^

Coin Marketplace

STEEM 0.20
TRX 0.13
JST 0.030
BTC 65858.36
ETH 3493.88
USDT 1.00
SBD 2.53