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

관련 이미지

블록체인은 분산원장(distributed ledger)이다. 즉, 블록체인이라는 원장을 구성원 모두에게 공유토록 하는 시스템이다.

그런데, 블록 체인의 거래가 크게 증가하고 참여자가 아주 많아지면 블록과 블록체인에 담긴 데이터의 양–대부분 거래 기록(transaction list)이겠지만–이 폭발적으로 증가할 것이다. 그러면 데이터의 유효성이나 무결성 검증에 있어 효율성 확보가 심각한 문제로 대두될 수 있다.

더구나 구성원들의 블록체인 참여는 인터넷에 연결된 단말기를 통해서 이루어지는데 단말기의 성능이 제각각일 것이다. 어떤 참여자들은 스마트폰 앱을 사용하기도 할 것이다. 거래 원장의 공유라는 원칙을, 그런 참여자들까지 포함해서 블록체인 참여자 모두가 과연 어떻게 따르게 할 수 있을까?

그러한 문제를 해결하는 요소 기술이 머클 루트(Merkle root)–루트 해시(root hash)라고도 부름–이다. 머클 루트는 해싱을 이용하여 누적된 거래 기록을 최대한 가볍게, 그러면서도 신뢰를 창출하는 원래 기능을 유지하게 해주는 데이터 축소 방법이다. 아래 그림은 모의 블록체인이고, 각 블록의 헤더(block header)는 머클 루트를 가지고 있다.

관련 이미지

머클 루트는 다음과 같은 방식으로 생성된다. 아래 그림을 가지고 설명한다.

나무–이 나무를 Merkle tree라고 부른다–의 가장 바닥에 있는 각 거래(Transaction A, B, C, D)는 해싱되어 Hash A, B, C, D가 된다. 그런 다음 그 해시들은 두 개씩 짝을 지어 다시 해싱된다. Hash A와 B는 Hash AB로 해싱되고, Hash C와 D는 Hash CD로 해싱된다. 그리고 그 두 해시는 다시 결합, 해싱되어 머클 루트(Merkle Root/Root Hash)를 형성하게 된다. 머클 루트에는 나무의 바닥에 있는 거래 기록 자체는 포함되지 않고 해시들만 포함되어 있다. 이렇게 사다리 타기 하듯이 연쇄적으로 해싱하면 아무리 많은 데이터라도 매우 가벼운 머클 루트로 변환될 수 있다.

이 머클 루트가 블록 헤더(header)에 포함되어 있으면 블록 바디(body)에 있는 거래 기록을 빼고 블록 헤더만 포함시켜 해싱을 해도 데이터의 무결성과 유효성이 충분히 검증될 수 있다. 그리고 블록 헤더에 담긴 머클 루트는, 그 블록에 포함된 거래 기록들의 머클 루트를 계산해서 비교해 보면, 그것의 유효성을 확인할 수 있다.

머클 루트는, 많은 거래 기록을 효율적으로 해싱하는 기술이며 다수의 참여자들이 많은 거래 기록을 손쉽게 공유할 수 있게 해주는 기술이기도 하다. 머클 루트는 블록체인에서 해시함수가 참으로 중요한 요소 기술임을 다시 한번 확인시켜 준다.

이상으로 블록체인이라는 집단지능을 구현하는 요소 기술들을 살펴보았다. 아마도 블록체인에 대해 낯설었던 독자들도 이제 그 기술과 조금은 친숙해 지지 않았을까 생각된다.  다음에는 블록체인의 다양한 구현체–아직은 주로 암호화폐들이지만–와 그것이 지닌 사회적 잠재성에 관해 성찰해 보기로 하자. (윤영민, 2015-05-14)

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

앞 포스팅에서는 블록의 구성과 채굴에 관해 살펴보았다. 이번에는 그러한 블록들로 구성된 블록체인(blockchain), 그리고 블록체인이 노드(참여자)들에 의해 공유되는 분산 블록체인(distributed blockchain)에 대해 알아보자.

다시 MIT의 블록체인 사이트의 신세를 진다. 위의 그림을 클릭하면 모의 블록들로 이루어진 블록체인이 보일 것이다. 블록체인 아래 부분의 슬라이딩 바를 움직이면 5개의 블록을 볼 수 있다. 앞 포스팅의 블록과 달리 이 블록들에는 Data 칸 아래에 Prev.(Previous)라는 칸이 있다. 1번 블록은 Prev.가 전부 0으로 채워져 있다. 당연히 그것은 이전 블록의 해시가 없다는 의미이다. 그리고 첫번째 블록의 해시는 두번째 블록의 Prev.와 정확히 동일한 해시이다. 마찬가지로 두번째 블록의 해시는 세번째 블록의 Prev.에 들어와 있고, 세번째 블록의 해시는 네번째 블록의 Prev.에, 네번째 블록의 해시는 다섯번째 블록의 Prev.에 들어와 있다.

여기서 중요한 점은 각 블록의 해시는 Prev.의 해시를 포함해서 생성된 것이라는 사실이다. 그것이 블록체인(blockchain)에서 체인(chain)의 실질적 의미라고 할 수 있다. 블록들은 단순히 병열적으로 나열되어 있는 것이 아니라 해시 생성을 통해서 수학적으로 연결되어 있는 것이다.

바로 그점 때문에 어떤 블록의 데이터가 변하면 곧 바로 그 사실을 탐지할 수 있으며, 특정한 블록을 변조하려는 자는 그 블럭 뿐 아니라 그 블럭과 해시로 묶여 있는 블록들을 모두 채굴해야만 한다.

한번 두번째 블록에 hi 라고 써보라. 1번을 제외한 모든 블록이 핑크색으로 바뀔 것이다. 그 블록들이 모두 다시 채굴되어야 함을 나타내는 신호이다.

블록체인이 블록의 변조를 방지하는 장치는 그것 뿐만이 아니다. 블록체인이 참여자들 모두에 의해 공유되어 있다는 점은 더욱 강력한 변조 방지 장치이다. 아래 그림을 클릭하면 분산 블록체인(distributed blockchain) 페이지가 열릴 것이다. 그것은 참여자(peer라고 되어 있다)가 3명인 가상적 블록체인 시스템이다.

참여자 A, B, C의 블록에 있는 논스와 해시를 보면 모두 동일함을 확인할 수 있을 것이다. 블록체인의 분산원장에 문제가 없는 상태이다. 그런데 만약 그들 중 누군가의 블록과 블록체인에 변조가 발생하면 다른 참여자의 블록 및 블록체인과 이질성이 발생한다. 한번 Peer B의 두번째 Data 칸에 hi 라고 치고 핑그색으로 변한 블록들을 모두 채굴해 보라. 그리고 그 블록들의 논스와 해시를 Peer A와 C의 해당 블록의 논스와 해시를 비교해 보자. 비록 Peer A의 블록들의 채굴에 성공하였지만 그렇게 해서 얻은 논스와 해시가 다른 참여자들이 가진 블록들의 논스와 해시와 달라져 버렸다는 사실을 발견할 수 있을 것이다. 이렇게 해서 블록체인의 일부인 블록의 변조가 쉽게 탐지된다. 만약 블록체인을 위조하려면 적어도 블럭체인 시스템의 참여자들의 51%가 가지고 있는 블록체인을 모두 채굴해야 한다. 그것도 10분 안에 끝내야 한다.

그런 조건에서 블록체인의 변조나 위조가 성공하는 것은 불가능하지는 않겠지만 현실적으로 가능성이 희박할 것이다. 어떤 블록체인 전문가는, 전세계에서 가장 강력한 컴퓨팅 파워를 지닌 슈퍼컴퓨터를 다섯 대 정도 동원해야 블록체인의 위변조가 가능할 것이라고 말한다.

블록체인과 분산원장은 블록체인 시스템의 참여자들이 기술적으로 신뢰를 확보하는 강력한 수단이다. 그리고 그것의 능력은 참여자 수가 많을수록 더욱 강력해진다. 블록체인과 분산원장은 집단지능으로서의 블록체인이 지닌 집단성을  구현하는 장치인 것이다. (윤영민, 2018-05-14)

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

비교적 단순한 기술적 요소인 메시 토폴로지(Mesh topology)부터 알아보자.

블록체인은 인터넷 위에서 운영되는 P2P 프로토콜(protocol)이다. P2P(Peer-to-peer) 네트워크는 인터넷 프로토콜(Internet Protocol, IP) 위에서 파일을 검색하고 공유하는 독자적인 프로토콜을 수행한다. P2P 소프트웨어를 설치한 컴퓨터들은 P2P 네트워크의 노드로써 클라이언트(client)도 되고 서버(server)도 된다. 아마도 가장 잘 알려진 P2P 네트워크는, 지금은 사라졌지만 MP3 파일 공유 사이트인 넵스터(Napster)일 것이다.

위 그림에서 보듯이 네트워크를 구성한 노드들(nodes)은 여러가지 방식–토폴로지(topology)라고 부름–으로 연결될 수 있다. 그 중에서 메시 토폴로지는 기본적으로 노드들이 다른 노드를 거치지 않고서도 서로 직접 연결될 수 있는, 소위 완전 접속망(fully-connected network)이다. 물론 부분적으로만 완전접속망인 메시 토폴로지도 있다(아래 그림 참조).

메시 토폴로지 방식의 P2P 프로토콜로서의 블록체인은 몇 가지 특성을 갖고 있다.

1) 블록체인은 분산 원장(ditributed ledger)이다. 거래와 원장에 대해 책임지는 통제나 권위 기구(노드)가 없으며, 모든 노드(참여자)들이 원장을 공유하고 그에 대한 책임을 나누어 갖는다.

2) 네트워크의 참여자는 누구나 네트워크에 존재하는 모든 데이터에 접근할 수 있다.

3) 각 노드는 다른 모든 노드들에게 방송(broadcast)이 가능하다. 네트워크 참여자는 누구나 거래 요청이 담긴 블록에 대해 검증 요구와 검증 결과를 참여자들 모두에게 즉각 알릴 수 있다.

4) 설령 일부 참여자(들)가 네트워크에서 탈퇴하거나 노드로서의 역할을 수행하지 못하더라도 네트워크는 정상적으로 가동된다.

5) 네트워크 참여자들이 데이터에 대해 집단적으로 동의–이 과정을 합의(consensus)라고 부름–해야 정당한 거래로 인정받을 수 있으며, 일단 합의를 거친 거래 기록(블록)은 변경될 수 없다.

한 마디로 메시 토폴로지 기반의 블록체인은 중앙집중적 통제를 대신해서 참여자 모두가 거래에 대한 권한과 책임을 나누어 갖겠다는 사상 그리고 중개자 없이도 신뢰할 수 있는 거래가 가능하다는 사상이 반영된 교환 네트워크이다. (2018-05-13)