문과적 의식흐름으로 정리한 블록체인 _PART II

in #kr7 years ago (edited)

지난 포스팅에 이어 블록체인에 대해 계속 이야기 해보겠습니다.
(업보팅이 없어서 존댓말을 써봤습니다.)

Q2. 장부를 누가 기록하고 배포할건데? A. 채굴자(Miner)

거래장부(블록체인)의 거래내역(블록)을 기록, 새로운 블록체인과 연결, 거래의 위변조 여부 검증까지 해주는 주체가 바로 채굴자들입니다. 그들 자신의 컴퓨팅 파워를 제공해 블록체인시스템이 동작하도록 기여하는 것이죠! 이 많은일을 하는데 공짜로 할리 만무하죠ㅋㅋ 그들은 헌신한 양만큼 화폐를 지급받습니다.

다운로드.jpgmin2.jpg
[채굴자라기 보단 광산업체라고 보는게 맞음]

그럼 채굴자들은 구체적으로 어떤일을 하고 어떻게 보상을 받는지 알아볼께요.

신규 비트코인 거래가 이루어지면 기존 블록체인에 신규 블록을 추가해 거래정보를 기록해야합니다. 근데 이 기록작업이 간단치 않습니다. 이전 블록의 정보, 개별 거래 정보, 시간 등 총 6가지 정보를 해싱(Hashing) 이라는 일종의 암호화를 거쳐 블록에 기록합니다.
이게 끝이 아닙니다. 위 정보들과 더불어 블록 고유한 해쉬값을 찾아내야하는데요. 이게 완전 노가다 입니다. nonce라고 불리는 필드에 임의의 값을 계속 입력해서 원하는 해쉬값이 나올때까지 계속 계산을 진행 해야합니다.
이 해쉬값까지 찾아내면 작업이 완성된 것이고 이것을 작업 증명(Proof of Work) 이라고 부릅니다.

작업증명(Proof of Work)=신규 거래를 장부에 정해진 룰대로 기록했다는 증명

신규 거래에 대해 가장 빨리 장부에 기록한 (=작업증명을 끝낸) 1명은 수고비로 비트코인을 받습니다. 이렇게 받는 보상금 조차 비트코인 거래기때문에 이 거래 내역도 기록이 되어야 하는데요.비트코인의 경우 블록의 첫 거래(generation transaction)가 보상금지급 내역이 된다고 합니다.

아직 끝난게 아닙니다. 신규 거래 장부(블록)가 생성이 되었으니 다른 참여자(노드)들도 똑같이 받아 적어야겠죠. 개별 노드들은 신규생성 블록 정보를 받고 또 인접한 노드들에게 전달합니다.

혹시 이미 작업증명이 끝난 거래인지 모르고 열심히 계산하고 있던 노드가 있다면 이단계에서 무시당하게 됩니다. 이전에 기록된 거래장부에 연결되어 완벽한 신규 거래 정보가 수신되었기 때문에 더이상 의미 없는게 되어 버리는 거죠.

물리적으로 거래정보가 전세계 노드에 전파되어 기록되는데는 시간이 필요합니다. 개별 노드들도 이 거래가 맞는지 나름의 확인 작업을 하거든요. 현재 기준으로 신규 거래에 대한 작업증명이 완료 되는데 10분정도 걸린다고 합니다. 10분이라는 텀이 개별 노드들이 거래장부를 기록할 시간을 벌어주는 셈이죠. (새로운 거래정보가 올때까지 10분이 걸림)

여기까지 오셨으면 비트코인의 거래단계를 이해하실 수 있습니다.

[비트코인 거래단계]
1.새로운 거래(Transaction)가 생성
2.비트코인 네트워크에 새로운 거래가 퍼짐
3.각 노드가 새로운 거래를 블록에 기록(채굴)
4.최초로 블록 기록에 성공한 노드가(작업증명) 블록을 모든 노드에게 전파
5.노드는 블록의 순서까지 검증해 거래가 유효하다고 판단되면 그 블록을 승인
6.각 노드는 승인된 블록을 기존 블록에 연결(블록체인)

Q3. 거래장부가 정말 위조 안되는거 맞아?

개별 블록(거래장부)에는 이전블록정보까지 포함되어 암호화 되어 있다고 말씀 드렸습니다. 그러므로 거래장부를 조작하려면 블록 한개만 위조해서는 불가능합니다. 조작 하려는 블록 이후 발생한 모든 블록까지 다 변경하고 암호화 과정까지 거쳐야만 하는데요.

위에서 말씀 드린 것 처럼 블록 하나 채굴하는데 평균 10분이 소요 되고 해킹해야 할 블록이 한두개가 아닙니다. 모든 블록을 위조가 끝났을 때면 이미 새로운 블록들에 대한 자격증명이 끝나 새로운 블록들이 생성되어 있겠죠.

엄청나게 빠른 연산이 가능한 장비로 다른 노드들 보다 빨리 블록에 대한 해킹을 완료 했다고 가정합시다. 해싱이 완벽하게 끝난 블록이 두개 생기기 되는건데요.(해킹된 블록과 정상블록) 이때 각 노드들은 다수결의 법칙에 의해 많으 노드들이 가지고 있는 블록을 따르게 됩니다. (51%의 법칙)

열심히 해킹하면 뭐합니까? 어차피 채택이 안되게 되는거죠.

자 이건 최후의 상상입니다. 누군가가 엄청난 스펙의 장비로 블록체인 노드의 과반수를 동시 해킹해 해싱을 완료한다면? 그럼 해킹 성공입니다. ㅋㅋ 허무하죠? 그렇지만 이러한 해킹에는 치명적 단점이 있는데요.

투자대비 성과가 안나오는 짓이라는거죠. 구매한 장비값도 못뽑는 짓이라는 겁니다. 그리고 또하나 비트코인이 해킹됐다는 걸 아는 순간 비트코인 값은 폭락하게 될겁니다. 51%를 해킹해서 얻은 비트코인이 하루아침에 똥값이 되는거죠. 해킹으로 인한 가치 폭락 사태는 실제로 벌어 졌습니다. 이더리움 해킹 사태

블록체인의 신뢰가 붕괴되는 순간 그 가치는 폭락한다.

Q4. 거래장부를 누구나 다 볼수 있다고? 사생활 침해?

세번째 질문까지 답하고나니 마지막 질문은 의외로 쉽게 풀리네요. ㅎㅎ
거래장부를 다 볼수 있는 건 맞지만 그 거래내역은 해싱을 거쳐 암호화 되어 있습니다.

비트코인 거래해 보신분은 알겠지만 제 개인 계좌의 아이디와 같은 공개키((PUBLIC KEY)와 그 계좌에 대한 비밀번호와 같은 개인키(PRIVATE KEY)를 가지고 있는데요. 거래장부에는 오픈키만 저장이 됩니다. 아이디만으로 그게 누구인지 알수는 없으니 사생활 보호는 된다고 볼수 있습니다.

하지만 비밀번호가 개인의 실수로 노출되면 얘기는 달라집니다. 실제 미국의 한 방송 진행자가 방송에서 공개키와개인키를 동시 노출해 본인 계좌가 홀랑 털렸다고 하네요.

여기까지가 문과적 의식의 흐름으로 정리한 블록체인 입니다. 다음 포스팅에서는 용어 정리와 거래소를 포함해 블록체인을 둘러싼 이런 저런 이슈들 가볍게 얘기해볼께요.

업보팅과 답글 팔로잉은 언제나 환영입니다.