지능이라는 이름의 게임(16): 집단지능과 블록체인(8)

blockchain mining에 대한 이미지 검색결과

블록체인에서 신뢰가 창출되는 가장 중요한 과정은 채굴(mining)이다. 비트코인의 경우 채굴은 세 단계로 이루어져 있다.

1) 채굴자들(miners)은 검증이 필요한 블록(거래 내역이 기록된 원장)에 대해 주어진 조건에 맞는 해시값을 경쟁적으로 찾기 시작한다. 비트코인의 경우 10분마다 새로운 블럭이 생성되기 때문에 10분 이내에 채굴해야 한다. 해시값을 찾는데 성공[그것은 논스(nonce)라는 숫자로 인정된다]한 채굴자는 즉시 모든 노드(참여자)들에게 그 결과를 알린다.

2) 다른 노드(참여자)들은 그 결과의 유효성을 확인하고 문제가 없다고 판단되면 그 블록을 블록체인에 추가한다. 그리고 검증이 끝난 블록에 대해 추가로 검증 결과가 날아오더라도 무시한다. 전체 참여자들의 51% 이상이 그렇게 하면 합의(consensus)가 성립된 것으로 간주된다.

3) 채굴의 성공이 인정된[그것이 작업증명(Proof of Work, PoW)이다] 채굴자는 수고에 대한 인센티브를 받는다. 그리고  채굴자들은 새로운 블록에 대한 검증 경쟁에 들어간다.

블록체인의 합의 알고리즘에는 작업증명(PoW) 외에도 PoS(Proof of Stake), Delegated Proof of Stake(DPoW), Practical Byzantine Fault Tolerance(PBFT) 등이 있으나 소개를 생략한다(이 알고리즘들에 대한 간략한 비교 설명은 Consensus in Blockchain Systems. In Sort. 라는 블로그 포스팅을 참조하시오).

은행 거래에서는 거래내역이 기록된 장부(원장)가 생명이다.  각 고객이 저금한 액수, 인출한 액수, 이체 내력, 잔고, 대출 현황 등이 정확히 기재되어야 한다. 거기에 조금이라도 착오가 있으면 사고이다. 은행에서는 은행원들이 원장을 기재하고 관리하는 업무를 수행한다.

블록체인에서는 채굴자가 바로 은행원이 하는 역할을 대신한다. 그러나 두 가지 점에서 채굴자는 은행원과 다르다.

하나는, 은행에서는 은행원이 소정의 절차를 거쳐서 채용되고 기장에 있어 배타적 권한을 행사하지만, 블록체인(public blockchain의 경우)에서는 채굴 장비(컴퓨터 설비)만 갖출 수 있으면 누구나 채굴자(miner)가 될 수 있다.

bitcoin mining에 대한 이미지 검색결과

다른 하나는, 은행원은 은행 업무를 수행하면 월급을 받는 것으로 끝나지만 블록체인의 채굴자는 블록(원장)을 검증하면 소정량의 암호화폐를 인센티브로 지급받는다. 비트코인(Bitcoin)의 경우 현재 비트코인 12.5개를 받는다. 그런데 그러한 인센티브 지급은 곧 암호화폐의 발행이기도 하다. 채굴에서 난이도는 비트코인의 발행량을 조정하는 역할을 한다. 비트코인이 너무 많이 발행되면 인플레이션이 발생할 것이다.

국가에서는 중앙은행이 정책적인 결정에 따라 화폐를 발행하지만 암호화폐 시스템에서는 채굴행위를 통해서 암호화폐가 발행된다. 결국 채굴자가 암호화폐 발행자인 셈이다. 채굴이라는 메타포(metaphor)가 사용된 이유도 아마 그 때문일 것이다. 광산에서 금을 채굴하듯이 암호화폐를 채굴(곧 발행)한다는 것이다.

이해를 돕기 위해 모의 블록을 가지고 시뮬레이션을 하면서 채굴 과정을 살펴보자. 아래 그림을 클릭하면 MIT의 블록체인 사이트로 이동하고 블록이 나타날 것이다.

그 블록에는  다섯 가지 요소가 있다. 맨 위에 Block이라고 해서 블록의 번호가 쓰여있고, 그 다음 줄에는 Nonce라는 칸에 72608이라는 숫자가 쓰여 있다. 그 다음은 Data 칸인데 비어 있다. 그리고 그 아래에 Hash 칸이 있고 복잡한 숫자와 문자의 배열이 적혀 있다. 그런데 그 숫자를 보면 앞의 네 자리가 모두 0이다. 그 0들은 채굴의 조건(혹은 난이도)을 나타낸다. 그 조건을 충족하는 해시를 발생하는 논스(Nonce)를 찾는 것이 채굴이다. 모의 실험이기 때문에 0이 네 자리 뿐이지 실제로 비트코인에서는 앞 18자리가 0이다. 논스를 찾아내기가 훨씬 어려운 것이다. Hash 칸 아래에는 Mine이라는 네모 단추가 있다.

Data 칸에 윤영민 $20 이라고 적어 보라. 배경의 연초록색이 핑크빛으로 바뀌고, Hash가 0이 없는 다른 값으로 바뀔 것이다. 논스와 해시가 불일치한 상태가 되었다. 이제 논스의 숫자를 1부터 차례로 넣으면서 해시의 변화를 살펴보라. 아마도 12를 넣으면 해시의 첫 자리가 0이 되었을 것이다. 그렇게 앞 자리 네 개가 0이 되는 논스를 찾아야 한다. 필자는 해보지 않았지만 그런 방식으로는 하루가 걸릴 지도 모른다. 그것은 사람이 할 일이 못된다. Mine 단추를 눌러서 컴퓨터가 그 과정을 수행하게 하자. 아마도 1초 정도면 논스가 15607로 되고, 해시는 0000으로 시작되는 값이 되며, 박스의 배경색은 다시 연초록색으로 돌아갔을 것이다. 블록에 대한 채굴이 끝난 것이다.

블록체인은 참여자들 개개인의 신뢰성을 따지지 않는다. 참여자들이 선한 사람이든 투자자든, 아니면 사기꾼이든 조폭이든 괘념치 않는다. 그들이 설령 속임수를 쓰고 나쁜 짓을 하려고 해도 채굴과 같은 기술적인 방법으로 그들의 ‘도전’을 압도해서 시스템에 대한 신뢰를 창출하고 유지할 뿐이다. (윤영민, 2018-05-14)

지능이라는 이름의 게임(12): 집단지능과 블록체인(4)

Bitcoin에 대한 이미지 검색결과

비트코인(Bitcoin)이 세상에 출현 한 시점이 2009년이니 블록체인(blockchain)은 우리 주위 어딘가에 꽤 오래 존재했던 셈이다. 비트코인이라는 암호화폐(crytocurrency)와 분리해서 블록체인에 대한 논의를 시작하기는 어렵다. 블록체인이라는 테크놀로지가 등장한 후 비트코인이 그것의 응용제품들 중 하나로 발명된 것이 아니라 처음부터 블록체인은 비트코인을 탄생시키는 테크놀로지로 출현했기 때문이다.

비트코인은 하나의 대체 화폐로 고안되었다. 화폐의 생명은 신뢰(turst)에 있다. 화폐는 근본적으로 상품과 서비스를 교환하는 매개체(medium)로 출현했지만 현실에서 화폐는 그런 본원적 기능을 넘어서 가치를 평가, 저장, 그리고 확장하는 수단이 되었다.

화폐 재료는 불쏘시기로 쓰이기에도 작은 종이 조각이거나 크게 쓸모가 없는 금속 조각에 불과하다. 그러나 중앙정부–대개의 경우 중앙은행–가 그것에 찍힌 액면 가격에 해당되는 가치를 보증함으로써 화폐는 한 사회가 지닌 신뢰라는 자본의 금전적 표현이 되었다.

비트코인이나 다른 암호화폐의 개발자와 사용자들은 화폐의 생산과 유통을 책임지는 중앙정부(은행) 없이도 충분히 신뢰할만한 통화 시스템을 개발할 수 있다고 믿는다. 암호화폐는, 사용자들 모두가 거래 원장(ledgers)을 공유하고 사용자들의 노력과 암호기술을 결합하여 거래의 위변조를 방지하며 거래의 정당성을 보증해 줌으로써 가치의 교환이 가능한 하나의 통화 시스템이다.  블록체인은 바로 그것을 가능하게 해주는 테크놀로지이다.

블록체인은 아래 표에 보듯이 다섯 가지의 요소 기술(element technologies)로 구성되어 있다. 무엇보다 해시함수(hash function)가 핵심 기술이다. 거래 원장은 블록과 블록체인으로 구성되는데 그것들 내부의 모든 요소들이 해싱(hashing)되어 있다고 해도 과언이 아니다. 또한 원장에 기재되는 거래자 성명은 공개키로 가명화되고(pseudomized), 거래자는 비밀키로 전자서명을 함으로써 개인정보를 보호하고 장부의 위변조를 방지한다.

거래의 정당성을 확인하는 방법으로 작업증명(proof of work)이 사용되는데, 그것은 해싱에 일정한 난이도를 주고 그 해시(hash 혹은 digest)를 산출하는 어떤 값–논스(nonce)–을 찾아내는 작업을 말한다. 암호화폐에 참여하는 모든 사용자들이 원장을 공유하기는 하지만 완전 노드(full nodes)를 제외한 나머지 사용자–경량 노드(lightweight node)라고 부름–들에게는 아주 간단히 요약된 원장–그것이 머클 루트(Merkle Root)이다–만 블록 헤더에 포함시켜 공유된다.

암호화폐에서 노드들(nodes)–사용자들–이 연결되는 방식은 메시 토폴로지(Mesh topology)이다. 메시 토폴로지는 기본적으로 노드들이 상호간에 ‘완전히 연결된(fully connected)’ 네트워크이다.

다음 포스팅에서는 그 요소 기술들을 좀 더 자세히 살펴보자. (2018-05-12)