지분증명 (Proof of Stake)

지분증명(Proof of Stake)은 작업증명을 시뮬레이션한다. 지분증명 네트워크에서는 노드별로 ID가 부여되고 관리된다.  ID는 신원증명과는 관련이 없고, 지분으로 정의되는 ID이다.  아무나 그 네트워크의 코인만 있다면 ID를 만들 수 있다.  블록을 생성할 권한, 다시 말하면 블록 보상을 획득할 권한은 자신의 ID에 연결되어있는 지분의 양에 의해 결정된다. 많은 지분을 걸어 놓은 (staking) 사람이 더 높은 확률로 더 짧은 시간 안에 블록을 생성할 권한을 가지게 된다. 따라서 자신의 지분을 잘게 나누어 여러 개의 ID를 만들어서 참여하는 경우 블록 보상을 받을 확률이 낮아진다. 가능한 하나의 ID에 모든 지분을 연결해서 참여하는 편이 유리하다.

ID와 결합된 전자서명키로 블록을 서명함으로써 자신의 지분 증명을 하게 되며, 누적된 지분이 많은 체인이 메인체인으로 선택된다. 이는 마치 작업증명 네트워크에서 자본이 많은 사람이 많은 해쉬파워를 구입해서 더 많은 블록 보상을 획득하는 것을 시뮬레이션하는 것과 같다. 작업 증명 네트워크에서는 물리적인 에너지를 사용해서 계산을 해야 한다면, 지분 증명 네트워크에서는 에너지를 사용하는 것 처럼 지분에 반비례하는 시간을 흘려 보낸다.

프라이빗/컨소시엄 체인의 의미는?

앞서 우리가 살펴본 블록체인은 공개(퍼블릭) 블록체인이다. 비트코인, 이더리움 등이 여기에 해당한다. 블록체인에서 제공하는 혁신적인 기술을 보고 사람들은 이 기술을 실제 비즈니스에 접목하고 싶어했다. 하지만, 모든 정보가 공개 되어 있는 원장을 유지하는 공개 블록체인은 기업에서 사용하기에 문제가 있었고, 따라서 프라이빗 블록체인이라는 기술에 주목하게 된다. 또한, 여러 개의 비즈니스 주체가 공유하는 데이터베이스를 관리하기 위해서 콘소시엄 블록체인도 등장하게 된다.

프라이빗/콘소시엄 블록체인에 사용되는 기술은 앞서 살펴본 블록체인과는 전혀 다른 것이며, 이 블록체인이 제공하는 가치도 다르다. 블록을 이전 블록의 해쉬값으로 연결한다는 자료구조만 비슷하다. 사용하는 합의 알고리즘도, 가정도, 규모도 다르므로 사실 프라이빗/콘소시움 블록체인을 블록체인으로 볼 지에 대해서도 의견이 분분하다. 블록을 해쉬체인으로 묶었으니 블록체인이라고 한다면 우리가 한동안 경탄해 마지 않던 대상 치고는 너무나 허무하지 않을까? 그럼 이제 각각에 대해 살펴보자.

프라이빗 블록체인은 자료를 안전하게 보관하기 위해 여러 개의 노드에 중복해서 데이터를 저장하고, 이들 간의 동기화를 위해 합의 알고리즘을 사용한다. 이렇게 보면 공개 블록체인과 다를 바 없어 보인다. 이제 차이점을 알아보자. 첫째, 모든 노드는 회사에서 설치, 운영, 관리하므로 익명이 아닌 모두 식별할 수 있는 통제 가능한 노드들(identified node)이다. 즉, 중앙 관리기관이 존재함은 물론이고 익명 노드 사이의 다수결 투표라는 어려운 문제도 풀 필요가 없다는 뜻이다.

둘째, 회사에서 관리해야 하므로 노드의 수가 제한 될 수 밖에 없는데 대부분 20개 안팍으로 제한한다. 이는 수정할 수 없는 투명한 데이터베이스를 제공하지 못한다는 의미가 된다. 쉽게 풀어서 얘기하면, 어떤 회사의 CEO가 필요에 의해서 프라이빗 블록체인에 기록된 데이터를 수정하라고 지시하면, 수정할 수 있다는 뜻이다. 결국 이렇게 구성된 프라이빗 블록체인은 공개 블록체인에서 제공했던 혁신과는 거리가 좀 있어 보인다. 좀 더 자세히 살펴보자. 프라이빗 블록체인에서 사용되는 합의 알고리즘은 PBFT (Practical Byzantine Fault Tolerant) 프로토콜인데, 이는 이미 신원이 확인된 노드들 간의 동기화를 위해서 고안된 프로토콜이고,  블록이 생성됨과 동시에 확정하기 위해 각 노드간의 정보를 확인하는 과정이 있으므로, N개의 노드가 있다면 대략 N제곱번의 메시지를 주고 받아야 한다. 따라서, 현재의 로컬 네트워크 환경이라고 해도 20개 안팍의 노드만 PBFT 프로토콜을 수행할 수 있다. 이는 수만개의 노드가 참여하는 공개 블록체인과는 규모면에서 비교불가하다. 이런 이유로 프라이빗 블록체인에는 중복된 (redundant) 데이터 베이스를 여러개 유지해서 안전성과 안정성을 확보한다는 의미 외에는 별다른 의미를 부여할 수 없다.

혹자는, 현재 블록체인 기술만큼 빠르게 데이터베이스를 동기화 해주는 기술이 없다고 주장하지만, 그것은 블록체인에서 사용하는 PBFT 기반 프로토콜의 가정에 대한 오해에서 비롯된다. PBFT 기반 프로토콜은 전체 노드의 1/3 미만의 노드가 잘못 동작하더라도 합의에 이를 수 있게 해준다. 다르게 생각해 보자. 고장에 의해서건 공격에 의해서건 전체 노드의 1/3씩이나 잘못되는 상황이 과연 현대 컴퓨팅 환경에서 자주 벌어지는 일인가를 생각해보면, PBFT는 대부분의 컴퓨팅 환경에서 오버킬이라는 결론에 이를 수 있고,  PBFT가정이 아닌 완화된 가정을 상정하면 (실제로 현대 컴퓨터/네트워크의 오류율이 33%씩이나 된다고 믿는가?) 훨씬 빠른 속도로 동기화 할 수 있다는 얘기도 된다.

콘소시움 블록체인은 어떨까? 여기서 사용하는 기술도 프라이빗 블록체인에서 쓰는 것과 동일하다. 단지 이해관계가 다른 여러 회사가 같은 데이터를 유지함으로써 신뢰를 확보할 수 있다. 한쪽에서 무단으로 데이터를 수정하면 이해관계가 충돌하는 다른 회사들이 가만히 있지 않을테니 데이터를 자기 마음대로 수정할 수 없음은 당연하다. 결국 기술에서 신뢰가 오는 것이 아니라, 이해관계의 충돌에서 신뢰가 오는 것이다. 이는 꼭 블록체인이 아니더라도 가능하다. 프라이빗 블록체인과 마찬가지로 여기에 기록된 트랜잭션은 수정될 수 있다. 콘소시움의 구성원의 이해관계가 과거와 달라져서 2/3이상이 합의하면 데이터는 수정할 수 있으므로, 공개 블록체인에서 제공하는 불가변성 (immutability)이나 신뢰는 제공할 수 없다는 것이다.

따라서, 프라이빗/컨소시움 체인을 활용해서 현재 비즈니스 프로세스에 적용할 수 있는 대단한 기술적 혁신을 기대하기 보다는, 블록체인을 활용해서 보안성/안전성을 다소 향상시킬 수 있다는 정도의 기대치를 가지고 도입하는 것이 합리적이다.

관련글 보기: [양대헌칼럼]블록체인이란? 블록체인의 혁신이란 무엇일까?

[양대헌칼럼]모든 미들맨은 제거해야할 대상인가

기고문은 블록미디어의 의견과 다를 수 있습니다.