개방성, 상식 및 민첩성이라는 현대 연구 개발 개념을 고수하고 포괄적인 기술 경로를 채택하여 높은 처리량, 낮은 대기 시간 및 탄력적인 CBDC 트랜잭션 처리 시스템 생성을 탐색합니다.
편집자 주: 이 기사는 China Financial Magazine에 처음 게재되었습니다. 저자: Yao Qian, "중국 증권 규제 위원회 과학 기술 감독국장"
최근 몇 년 동안 세계 주요 경제의 통화 당국은 중앙 은행 디지털 통화(CBDC)에 대한 연구 개발 노력을 지속적으로 증가시켜 많은 단계적 성과를 달성했습니다. "프로젝트 해밀턴"(Project Hamilton)은 보스턴 연방 준비 은행과 매사추세츠 공과 대학이 공동으로 시작한 CBDC 혁신 연구 프로젝트(디지털 통화 이니셔티브, DCI)입니다. 이 계획은 몇 년 동안 진행되어 왔으며, 2022년 2월 3일 보스턴 연방 준비 은행은 "중앙 은행 디지털 통화를 위해 설계된 고성능 지불 처리 시스템"이라는 제목의 문서를 발표했습니다.) 첫 번째 단계의 진행 상황을 요약한 기술 보고서 해밀턴 프로그램의 이 글은 보고서의 주요 내용을 통해 연방준비은행의 디지털 화폐 프로토타입 시스템을 간략하게 분석하고자 한다.
해밀턴 프로젝트 1단계 연구 목표
해밀턴 계획의 첫 번째 단계의 첫 번째 목표는 CBDC 시스템의 성능 탐색, 즉 높은 처리량, 낮은 대기 시간 및 탄력적인 CBDC 트랜잭션 처리 시스템을 기술적으로 개발하는 것입니다. 구체적인 성능 목표는 두 가지 측면을 포함한다: 하나는 트랜잭션 검증 완료, 트랜잭션 실행 및 사용자에게 트랜잭션 확인을 포함하여 5초 이내에 트랜잭션의 99%를 완료하는 것입니다. 미국의 성장 속도에 따라 시스템은 초당 최소 100,000건의 트랜잭션을 처리할 수 있으며 추후 결제량의 증가에 따라 계속 확장할 수 있습니다.
두 번째 목표는 CBDC 시스템의 탄력성을 탐색하는 것입니다. CBDC에 대한 대중의 신뢰를 유지하기 위해 CBDC 시스템은 서비스의 연속성과 자금 가용성을 보장해야 합니다. 시스템 복원력 연구의 초점은 여러 데이터 센터에 장애가 발생할 때 중단 없는 시스템 액세스 및 데이터 손실을 보장하는 방법입니다.
세 번째 목표는 CBDC의 개인 정보 보호를 탐색하는 것입니다. R&D팀은 개인 정보를 보호하는 가장 안전한 방법은 거래 초기부터 데이터 수집을 줄이는 것이라고 생각하여 거래 데이터 보유를 최소화하는 방안을 CBDC 거래 시스템에 설계했습니다.
연방 준비 은행 디지털 통화 프로토타입 시스템 디자인 코인 형태: Unspent Transaction Output (Unspent Transaction Output, UTXO)
Hamiltonian 시스템에는 트랜잭션 프로세서, 발행자 및 사용자의 세 가지 유형의 참여자가 있습니다. 트랜잭션 프로세서는 CBDC를 기록하고 지시에 따라 해당 트랜잭션을 확인하고 실행합니다. Bitcoin과 마찬가지로 Hamilton은 UTXO의 통화 표현을 채택할 계획입니다. CBDC는 발행자의 행동을 통해서만 시스템에 출입할 수 있으며, 발행자는 트랜잭션 프로세서에서 자금을 늘리기 위해 민트(mint)하고 트랜잭션 프로세서에서 자금을 리딤(redeem)합니다. 사용자는 자금의 소유권을 원자적으로 변경하기 위해 자금 이체(transfer) 작업을 수행하지만 트랜잭션 프로세서에 저장된 자금의 총 금액은 변경되지 않으며 변경되는 것은 자금의 소유권입니다. 사용자는 디지털 지갑의 공개/개인 키를 사용하여 트랜잭션을 처리하고 서명합니다. 자금 이체 거래 과정에서 지급인의 미사용 자금은 거래 입력(input)이며 새로운 미사용 자금의 생성은 거래 출력(output)입니다. 유효한 트랜잭션은 균형을 이루어야 합니다. 트랜잭션 입력의 합은 출력의 합과 같아야 합니다.
사용하지 않은 자금은 삼중항 utxo:=(v, P, sn)으로 정의됩니다. 그 중 v는 금액, P는 encumbrance 술어(보유자의 공개 키로 이해할 수 있음), sn은 일련 번호입니다. 발행인의 채굴 작업은 새로운 미사용 자금을 생성하고 UTXO를 트랜잭션 프로세서에 의해 저장된 UTXO 세트에 추가하는 반면, 상환 작업은 UTXO 세트에서 기존 미사용 자금을 제거하여 재사용할 수 없게 만듭니다. 발급자는 새로 발행된 UTXO에 대해 고유한 시퀀스 번호를 선택해야 합니다. 균일한 난수 또는 단조롭게 증가하는 카운터 값으로 설정할 수 있습니다(발급자가 i번째 UTXO를 발행할 때 시퀀스 번호는 i로 설정됨).
검증과 UTXO 압축의 분리
Hamiltonian 시스템에서 트랜잭션 프로세서는 트랜잭션의 정확성을 확인하고 입력을 삭제하고 출력을 생성하여 트랜잭션을 실행합니다. 확인은 트랜잭션 로컬 유효성 검사(공유 상태에 대한 액세스가 필요하지 않은 트랜잭션 로컬 유효성 검사)와 존재 확인(공유 상태에 대한 액세스가 필요한 존재 유효성 검사)으로 나뉩니다. 이러한 분리를 위해 Hamiltonian 시스템은 사용자 트랜잭션을 수신하고 트랜잭션의 부분 검증을 수행하는 전용 구성 요소인 센티널을 설계합니다. 부분 검증에는 트랜잭션이 올바른 형식인지 확인, 각 입력에 사용된 출력에 대한 유효한 서명이 있는지 확인, 트랜잭션이 균형을 유지하는지 확인(즉, 출력 합계가 입력 합계와 같음)이 포함됩니다. 트랜잭션이 기준을 충족하면 Sentinel은 존재 확인을 담당하는 실행 엔진으로 트랜잭션을 전달하고, 그렇지 않으면 사용자에게 트랜잭션 오류 메시지만 표시합니다.
존재 확인은 주로 미사용 자금의 존재를 확인합니다. 개인 정보 보호를 달성하기 위해 해밀턴 시스템은 완전한 utxo:= ( v, P, sn), 여기서 H는 해시 함수이고 Hamiltonian 시스템은 SHA-256 알고리즘을 사용합니다. UTXO 세트를 UHS 세트로 교체하면 개인 정보 보호에 도움이 될 뿐만 아니라 스토리지 요구 사항이 줄어들고 시스템 성능이 향상됩니다.
존재를 검증하기 위해 시스템은 부분적으로 검증된 트랜잭션을 사전에 UTXO 해시 세트에 적용된 트랜잭션으로 변환해야 하는데, 이 과정을 압축(compaction)이라고 합니다. 구체적으로, 센티널은 입력 UTXO의 해시값을 계산하고, 입력 UTXO를 출력 보안 잠금 및 값과 함께 사용하여 출력 UTXO의 일련번호를 도출함으로써 출력 UTXO의 해시값을 계산한 다음, 다음을 나열한다. 2개의 해시는 존재 확인 및 실행을 위해 UHS를 보유하는 트랜잭션 프로세서로 전송됩니다.
존재 확인 및 UHS 교환
트랜잭션이 트랜잭션 부분 검증 및 압축 변환을 통과했다고 가정하면 트랜잭션 프로세서는 다음과 같이 UHS 세트를 업데이트합니다. UHS 세트에 모든 트랜잭션의 입력 UTXO가 있는지 확인하고, 입력 UTXO가 누락된 경우 추가 처리를 중단하고, 그렇지 않으면 추가 처리를 중단합니다. , 처리 진행; 트랜잭션 프로세서는 트랜잭션의 입력 UTXO에 해당하는 UHS를 UHS 집합에서 삭제하고 출력 UTXO에 해당하는 새로 생성된 UHS를 UHS 집합에 추가합니다. 위에서 언급한 one-delete-one-add 작업을 스왑이라고 합니다.
고성능 아키텍처
높은 처리량, 낮은 대기 시간 및 높은 내결함성 트랜잭션 처리를 달성하기 위해 Hamilton Project는 두 가지 아키텍처를 설계했습니다. 첫 번째는 시스템이 주문 서버를 활용하여 모든 트랜잭션의 선형 기록을 생성하는 분무기 아키텍처입니다. 두 번째는 2단계 커밋(2PC) 아키텍처로, 시스템은 균일하게 순서가 지정된 트랜잭션 레코드를 생성하지 않고 충돌 없는 여러 트랜잭션(즉, 동일한 자금을 지불하거나 받지 않는 트랜잭션)을 병렬로 실행합니다.
두 아키텍처 모두에서 UHS는 서버 간 파티셔닝을 가능하게 하여 처리량과 확장성을 높입니다. 단일 트랜잭션을 실행하려면 일반적으로 여러 서버가 관련되며 각 아키텍처는 서로 다른 기술을 사용하여 여러 서버에서 일관된 트랜잭션 적용을 조정합니다. 중앙 집중식 원자 서버 아키텍처는 Raft 프로토콜을 사용하여 센티널 검증에서 오는 모든 업데이트를 정렬한 다음 이러한 업데이트를 전체 시스템에 적용합니다. 2PC 아키텍처는 분산 합의 노드를 사용하여 직렬화에 필요한 원자 트랜잭션 및 잠금을 수행합니다.다른 자금을 사용하는 트랜잭션은 충돌하지 않고 병렬로 실행할 수 있습니다.유효한 트랜잭션의 자금이 사용되지 않은 것으로 확인되면 트랜잭션은 지속적으로 여러 트랜잭션이 가능합니다. 동시에 배치로 처리할 수 있습니다.
프로젝트 해밀턴의 1단계 실험 결과
Project Hamilton의 첫 번째 단계에서는 두 개의 완전한 계산 소스 코드 또는 코드 기반을 개발했습니다. 하나는 초당 약 170,000건의 트랜잭션을 처리할 수 있는 중앙 집중식 원자 서버 아키텍처의 코드 베이스이며, 그 중 99%는 2초 미만의 꼬리 지연이 있고 50%는 0.7초의 꼬리 지연이 있습니다. Atomic Server는 여러 서버에 걸쳐 샤딩될 수 없기 때문에 Atomic Server 상태 머신의 기능이 트랜잭션의 작은 하위 집합에 대해서만 입력 순서 지정 및 중복 제거로 축소될 수 있지만 이 아키텍처의 시스템 처리량은 여전히 제한됩니다. 즉, 유효한 트랜잭션을 강력하게 주문하는 디자인은 처리량을 제한합니다. 다른 하나는 2PC 아키텍처의 코드베이스로 초당 170만 트랜잭션을 처리할 수 있으며 그 중 99%의 트랜잭션이 1초 이내에 완료될 수 있고 트랜잭션 꼬리 지연의 50%가 0.5초 미만으로 훨씬 설정된 목표보다 높음 기본 요구 사항은 초당 100,000 트랜잭션입니다. 또한 2PC 아키텍처는 대기 시간에 부정적인 영향을 미치지 않으면서 더 많은 합의 노드를 추가하여 처리량을 더욱 높일 수 있습니다.
위 코드는 오픈소스로 공개됐으며 해밀턴은 CBDC 연구개발 협력 촉진을 목표로 '오픈소스 중앙은행 디지털화폐 프로젝트(OpenCBDC)'로 명명할 계획이다.
전자화폐(E-cash)와의 비교 분석 및 비교
1982년 미국의 컴퓨터 과학자이자 암호학자인 David Chaum은 "Blind Signatures for Untraceable Payment Systems"라는 제목의 논문을 발표했습니다. 본 논문에서는 RSA 알고리즘(RSA algorithm)-블라인드 서명(blind signature) 기반의 새로운 암호 프로토콜을 제안한다. 블라인드 서명을 사용하여 익명의 추적 불가능한 전자 현금 시스템을 구축하는 것은 최초의 디지털 통화 이론이자 구현 가능한 최초의 실험 시스템이며 학계에서 높은 평가를 받았습니다. 두 가지 핵심 기술이 있습니다: 무작위 주문 및 블라인드 서명. 랜덤 매칭으로 생성된 고유 일련 번호는 디지털 현금의 고유성을 보장할 수 있으며, 블라인드 서명은 익명의 디지털 현금에 대한 은행의 신용 보증을 보장할 수 있습니다.
Hamilton 계획은 E-cash와 유사한 아이디어를 채택합니다: 한편으로는 각 트랜잭션에 대해 시스템 검증이 필요한 글로벌 고유 일련 번호를 통해 통화(UTXO)의 고유성을 보장하고 다른 한편으로는 중앙 처리 모델 및 활용 암호화 알고리즘은 시스템의 보안 및 공격 방지를 실현합니다. 그러나 해밀턴 계획은 전자현금의 단점을 극복합니다. David Chaum이 구축한 E-Cash 모델에서 사용된 모든 E-Cash 일련 번호는 은행 데이터베이스에 저장됩니다. 트랜잭션 볼륨이 증가함에 따라 데이터베이스는 점점 더 커지고 검증 프로세스는 점점 더 어려워집니다. Hamilton은 검증과 압축 처리를 분리하여 트랜잭션 프로세서의 저장 및 컴퓨팅 부담을 최대한 줄이고 샤딩 기술과 고성능 아키텍처를 활용하여 트랜잭션 성능을 크게 향상시킬 계획입니다.
요컨대, 사용된 트랜잭션 출력과 사용되지 않은 트랜잭션 출력은 두 가지 상반되고 상호 보완적인 설계 아이디어입니다. 후자는 전자가 직면한 무한한 데이터 확장의 문제를 최적화하며, 이는 E-Cash를 능가하는 비트코인의 본질이기도 합니다.
비트코인과의 비교
Bitcoin과 마찬가지로 Hamilton Project는 통화 설계를 위해 UTXO 모델을 채택합니다. 그러나 이 둘의 차이점은 비트코인의 블록체인은 모든 UTXO 정보를 저장하는 반면 해밀턴 프로젝트는 블록체인 모델을 채택하지 않고 통화를 쉽게 추적할 수 없으며 트랜잭션 프로세서는 UTXO 세부 정보를 저장하지 않고 UTXO 해시 값만 저장한다는 것입니다. 특히 해밀턴 프로젝트의 신뢰 기반은 비트코인의 분산 합의 메커니즘과 완전히 다르며 플랫폼은 신뢰할 수 있는 중앙 조직에 의해 관리됩니다 합의 알고리즘은 시스템의 파티션 서버의 일관성을 조정하는 데만 사용되며 이는 제3자 결제와 더 유사 백그라운드 분산 시스템 설계.
이중지불, 무재생 공격 등의 위협 방지 측면에서 비트코인은 작업증명(PoW) 메커니즘을 채택한 반면, 해밀턴 계획의 설계는 해시 알고리즘에 의존하고 발행자와 거래 시스템에 크게 의존한다. . 안전하고 신뢰할 수 있습니다. 구체적으로 해밀턴 트랜잭션 프로세서의 각 전송에 대해 해시 알고리즘을 처리한 후 UTXO 출력의 일련번호가 결정됩니다. 번호도 전역적으로 고유하며 과거 또는 미래 UTXO 컬렉션의 다른 항목과 일치하지 않습니다. 일련 번호의 글로벌 고유성은 기술적 세부 사항일 뿐만 아니라 두 가지 효과를 달성합니다. 하나는 이중 지출이 아닙니다. 스왑 작업은 UTXO를 사용한 것으로 영구적으로 표시합니다. 시퀀스 번호가 고유하기 때문에 모든 UTXO는 한 번만 사용할 수 있으며 사용한 후에는 다시 빌드할 수 없습니다. 두 번째는 재생 공격을 방지하는 것입니다. 각 트랜잭션은 전역적으로 고유한 하나 이상의 UTXO 입력에 해당하므로 해당 서명은 관련된 모든 입력 및 출력을 포함하여 전체 트랜잭션을 포함합니다. 따라서 트랜잭션의 서명은 이 트랜잭션이 아닌 다른 UTXO(향후 생성되는 UTXO 포함)에 대해 유효하지 않으며 트랜잭션을 복사할 수 없으며 동일한 트랜잭션을 여러 번 실행할 수 없습니다. 해밀턴 계획 설계의 위험 요소는 다음과 같습니다. 중앙 기관이 반드시 신뢰할 수 있습니까? 발행인 코인의 일련번호는 전 세계적으로 고유한가요? 트랜잭션 프로세서는 저장된 UHS 컬렉션을 변조할 수 없도록 충분히 안전합니까?
즉, 비트코인과 해밀턴 프로젝트 모두 UTXO 데이터 모델을 사용하지만 해밀턴 프로젝트는 중앙 집중식 해시 등록 시스템을 유지하는 반면 비트코인은 분산형 블록체인 해시 등록 시스템을 유지합니다.
다른 비교
해밀턴 프로젝트 기술 보고서는 2018년 국제 전기 통신 연합(ITU) 법적 디지털 통화 포커스 그룹의 두 번째 회의에서 저자의 작업 문서를 인용합니다. 이 논문은 주로 디지털 위안화 프로토타입 시스템에 대한 검토이며, 핵심 아이디어는 "1통화, 2도서관, 3센터"의 기술 프레임워크입니다("중국의 법적 디지털 통화 프로토타입 개념", "중국 금융" 2016년 No. 17), 그리고 은행 계좌와 디지털 통화 지갑의 계층적 사용을 기반으로 하는 2계층 비즈니스 구조("디지털 통화 및 은행 계좌", "Tsinghua Financial Review", Issue 7, 2017 참조).
현재 해밀턴 프로젝트의 전체 구조는 "하나의 코인, 하나의 지갑, 하나의 센터"로 표현될 수 있습니다. 하나의 통화는 중앙은행이 서명하여 발행한 UTXO 데이터 구조로 표현된 암호화된 디지털 문자열인 디지털 달러를 말하며, 하나의 지갑은 개인 또는 단위 사용자가 사용하는 디지털 통화 지갑을 말하며 보관을 위한 캐리어이기도 합니다. 사용자의 공개 키와 개인 키; 하나의 센터는 거래 등록 센터가 디지털 통화의 미사용 거래 자금의 해시 값을 기록 및 저장하고 디지털 통화 생성, 유통 및 소멸의 전체 프로세스에 대한 소유권 등록을 완료합니다.
디지털 통화 디자인 측면에서 두 프로토타입 프로젝트는 암호화된 디지털 문자열의 금전적 속성과 중앙 은행 부채의 속성을 강조합니다. 순환 링크에서 두 프로젝트 모두 지갑을 주요 캐리어로 사용하여 사용자의 디지털 통화 소유권 및 운영 권한을 강조합니다. 거래 확인 및 등록 측면에서 두 프로젝트 모두 거래 등록 센터와 "온라인 돈 탐지기"를 설계했습니다. 일반적으로 두 개의 프로토타입 프로젝트는 설계 개념에서 유사점이 있으며 둘 다 중앙화 암호화 통화의 아이디어를 채택하고 거래 처리는 "일회성 암호화"로 디지털 통화의 보안을 충분히 고려합니다. 기술적 경로는 고급 구성 요소를 흡수할 뿐만 아니라 가능한 기술적 차단 지점을 폐기하는 블록체인 기술에 국한되지 않습니다. 두 프로젝트의 차이점은 해밀턴 프로젝트의 첫 번째 단계는 중개자의 기술적 역할과 사용자 개인 정보 보호와 규정 준수 간의 균형을 달성하는 방법을 탐색하지 않은 반면 저자가 제안한 디지털 통화 프로토타입 시스템은 중개자의 역할을 고려하고 설계한 것입니다. 인증 센터와 등록 센터를 분리하는 설계 아이디어는 개인 정보 보호를 달성할 수 있을 뿐만 아니라 규정 준수 요구 사항을 충족할 수 있습니다. 해밀턴은 계층별 해시 계산을 통해 등록 서버에 일반 텍스트 정보 대신 거래 정보 해시를 저장할 계획이며, 이는 시스템 오버헤드를 줄이고 개인 정보 보호 고려 사항에서 더욱 정교해집니다.
발문
일반적으로 Hamilton 계획의 첫 번째 단계의 프로토타입 설계는 완전한 시스템이 아니며 효과적인 CBDC에 필요한 모든 기능을 갖추고 있지 않으며 실제 적용 표준을 충족할 수 없습니다. 후속 해밀턴 계획은 CBDC의 구현 경로를 지속적으로 탐색하고 시스템의 보안, 감사 가능성, 프로그래밍 가능성, 규정 준수 및 상호 운용성을 지속적으로 개선하고 오프라인 결제 기능을 개선하며 중개자 역할을 명확히 하고 이에 대한 방어를 강화할 것입니다. 내부 공격, 서비스 거부 공격 및 양자 공격에 저항하는 기능. 해밀턴 계획은 중앙 은행의 디지털 통화 개발에 대한 두 가지 중요한 계시를 제공합니다.
하나는 기술의 포용성입니다. Hamilton Plan은 CBDC를 설계하는 과정에서 특정 기술 경로에 국한되지 않습니다. E-캐시, 비트코인 및 기타 암호화폐의 장점을 완전히 흡수하고 가능한 단점을 피할 뿐만 아니라 분산 시스템의 고성능 및 고내결함성 아키텍처 설계를 효과적으로 흡수합니다. 이는 CBDC 설계의 선택이 고정되어서는 안 되며, 특정 기술 프레임워크나 분야에 대한 생각을 제한할 필요가 없음을 보여줍니다.
두 번째는 기술의 개방성입니다. 현재 여러 국가의 CBDC 실험은 기본적으로 상대적으로 비밀스러운 "Manhattan Project"이며 Hamilton Project는 개방성, 지혜 및 민첩성이라는 현대 연구 개발 개념을 고수하고 적극적으로 첫 단계 코드를 소스로 공개하여 OpenCBDC 프로젝트를 만들고 github public에 게시합니다. 현재 해밀턴 프로젝트는 CBDC 연구 개발을 촉진하기 위해 모든 당사자와 협력하는 것을 목표로 오픈 소스 코드 베이스에 대한 외부 기여를 적극적으로 찾고 새로운 작업 그룹 구성원을 흡수하고 있습니다. 해밀턴 프로젝트의 개방형 혁신 모델은 의심할 여지 없이 다른 국가의 CBDC 연구 개발 사례에서 배울 가치가 있습니다.
(이 글은 저자의 개인적인 학문적 관점만을 나타냅니다)