"프라이빗 블록체인은 사람들이 생각하는 블록체인과 상관이 없다. 작업증명(PoW)이 불필요하고, 일반 데이터베이스(DB)를 분산 환경에서 공유하는 모델, '셰어드(shared) DB'일뿐이다."
인하대학교 컴퓨터공학과 양대헌 교수는 최근 열린 제24회 정보통신망 정보보호 컨퍼런스(NetSec-KR 2018) 주제강연을 통해 이같이 지적했다. 블록체인이 소위 미래를 바꿀 혁신기술로 세간의 이목을 끌고 있는 가운데, '프라이빗 블록체인' 유형의 기술은 엄밀히 말해 본질적인 블록체인이 아니라는 뉘앙스다.
양 교수는 "국내 금융권이나 미국 월가에서 연일 블록체인을 도입하는 일에 뛰어들고 있는데, 그러지 않으면 뭔가 뒤처지는 느낌이라 그렇겠지만 모두 그래야 할 필요는 없다"며 "특히 그중 소스코드가 공개된 비트코인의 퍼블릭 블록체인에서 필요한 부분만 떼어내 프라이빗 블록체인을 만드는 시도가 많은데, 마치 손으로 눌러도 끼울 수 있는 압정에 대고 망치질을 하는 격"이라고 평했다.
블록체인은 P2P 네트워크에서 불특정 다수 참가자가 비트코인같은 암호화폐의 거래 기록을 합의해 중앙기관 보증 없이 그 내용을 믿을 수 있도록 고안된 디지털 장부다. 거래 기록을 합의할 때 작업증명(PoW)이란 암호 연산에 각자 컴퓨터 파워를 쏟아붓는다. 불특정 다수 참가자가 접근할 수 있기 때문에 참가자를 제한하는 프라이빗 블록체인과 구별해 '퍼블릭 블록체인'이라고도 부른다.
■ "비트코인의 PoW, 불특정 다수간 합의 문제 해결"
양 교수는 비트코인의 퍼블릭 블록체인 네트워크에서 PoW가 갖는 의미를 이렇게 설명했다.
"이중지불 시나리오에선 (거래) 장부가 2가지 존재하게 된다. 네트워크에서 장부는 하나여야 하기에, 참가자들이 그 중 어떤 걸 맞는 기록으로 볼지 투표(voting)한다. 익명 사용자들의 다수결 방식이다. 그런데 누군가 자긴 실제로 한 사람인데 여러 명인 것처럼 남을 속이는 공격(Sybil Attack)을 할 수 있다. 이런 중복 투표 행위를 어떻게 막을까하는 문제를, 비트코인은 PoW로 푼 것이다."
네트워크에서 PoW는 새 거래정보 블록체인에 더하기 위해 수행하는 암호해독 연산을 가리킨다. 해독된 블록은 여러 버전의 장부(체인) 중 가장 긴 쪽에 연결된다. 블록을 해독한 참가자에게는 새로 발행(채굴)된 비트코인과 해당 블록의 거래를 도운 대가(수수료)에 해당하는 비트코인이 지급된다. 이렇게 PoW는 참가자가 자신의 컴퓨터 연산 능력을 단일한 장부를 유지하는 데 모두 쏟게 만든다.
양 교수는 이런 PoW 동작을 통해 "네트워크에서 더 많은 CPU 파워가 누적된 체인에 더 많은 투표가 이뤄진다"며 "(비트코인을 만든) 나카모토 사토시는 과거부터 암호학 커뮤니티에서 '한 사람이 얼마나 많은 컴퓨팅 파워를 다루든 하나의 체인에 대해서만 연산을 수행하도록 유도하는 아이디어'를 멋지게 실현한 셈"이라고 평했다.
■ "프라이빗 블록체인의 합의 알고리즘은 이미 해결됐던 문제"
프라이빗 블록체인은 퍼블릭 블록체인과 해결해야 할 문제가 전혀 다르다는 설명이 이어졌다.
"프라이빗 블록체인이나 (여러 운영주체의 프라이빗 블록체인을 연결한) 컨소시엄 블록체인은 ID기반의 투표를 한다. 익명 네트워크가 아니기 때문에 한 사람이 여러 명으로 행세할 우려가 없다. 여기서 해결할 문제는 '이미 알고 있는 참가자들 가운데 누구의 메시지를 신뢰할 것이냐'다. 비잔티움 장군 문제(The Byzantine Generals' Problem, BGP)라는 이름으로 이전부터 연구돼 온 문제다."
양 교수의 설명에 따르면 BGP는 신원을 서로 알고 있는 P2P 네트워크 참가자간의 신뢰 문제를 가리킨다. 적의 요새를 공격하기 위해 배신 가능성이 있는 다수의 용병부대와 동시에 작전을 수행해야 하는 중세 비잔티움 제국의 장군 처지에 빗대 표현된 이름이다. BGP에도 참가자간의 신뢰 문제가 깔려 있긴 하지만, 관건이 되는 부분은 동일한 DB를 어떻게 동기화할 것이냐다.
양 교수는 "BGP는 이미 ID를 서로 다 알고 있는 상태에서 부정직한 참가자 비중이 3분의 1 이하일 때 합의할 수 있느냐가 관건"이라며 "마치 퍼블릭 블록체인에서 해결한 문제인 것처럼 보여서 최근 다시 회자되고 있는데, BGP 자체는 예전에 충분히 풀렸던 것"이라고 지적했다.
■ "퍼블릭-프라이빗 블록체인, 제공하는 신뢰 성격 달라"
양 교수가 제시한 퍼블릭 블록체인과 프라이빗 블록체인의 근본 차이를 요약하면 다음과 같다.
퍼블릭 블록체인의 참가자간 합의 방식은 PoW다. 불특정 다수간의 합의다. 네트워크 성능은 떨어지는 대신 노드 및 클라이언트의 확장성이 뛰어나다. 전력 소모가 심하다. 25%의 컴퓨팅 파워를 장악하면 네트워크에 잘못된 합의를 이끌어낼 수 있다. 이론적으로 참가자간 합의 내용은 확정(finalize)되지 않고 언젠가 압도적인 컴퓨팅 파워에 의해 뒤바뀔 수 있다.
프라이빗 블록체인의 방식은 BGP를 푼 비잔티움 장애 허용(BFT) 알고리즘이다. 참가자들이 서로 알고 있음을 전제한다. 네트워크 성능이 빠르고 전력 소모가 적다. 클라이언트 확장성은 PoW와 유사하나, 노드 확장성은 이론상 20노드 이내에서 활용할 수 있을만큼 제한적이다. 부정직한 참가자 비중이 33%를 초과하면 잘못된 합의가 이뤄질 수 있다. 참가자간 합의 내용은 빠르게 확정된다.
즉 퍼블릭 블록체인에선 대규모 익명 참가자의 중복 투표 공격을 막는 문제를, 프라이빗 블록체인에선 이미 알고 있는 노드간의 DB를 일치시키는 문제를 해결한다. 이런 차이 때문에 퍼블릭, 프라이빗 블록체인이 제공하는 신뢰의 특성과 기술적인 활용 가치도 크게 달라진다.
관련기사
- "나쁜 규제 더는 안돼!"...ICO 기업들 뭉쳤다2018.04.19
- "정부 블록체인 예산 142억 너무 적다"2018.04.19
- 전하진 "5년 안에 블록체인 세상으로 넘어갈 것"2018.04.19
- 이석우 "암호화폐 거래소 보안 규정 마련 돼야"2018.04.19
양 교수는 "두 네트워크간 최대 차이점은 제공하는 신뢰의 성격"이라며 "퍼블릭 블록체인은 네트워크에 참여하지 않는 이들도 그 체인을 믿을 수 있는 신뢰를 제공하는 반면, 프라이빗 또는 컨소시엄 블록체인은 그 네트워크에 참여한 사람들끼리만 믿을 수 있고 외부 사람은 그걸 믿을 수 없다"고 설명했다.
그는 이어 "프라이빗 블록체인에서 오류를 갖는 노드가 전체 3분의 1 이내면 합의를 통해 신뢰성을 얻는다는 점은 (전통적인 분산DB 대비) 장점이지만, 요즘 세상에 오류가 3분의 1씩이나 발생한다거나 공격자가 3분의 1씩이나 공격할 상황을 가정하는 게 적절한지는 의문"이라며 "최근 대다수 프로젝트는 이처럼 굳이 안해도 될 것을 (프라이빗) 블록체인으로 하는 경우가 대부분"이라고 지적했다.