378 / 736DAI

Wei Dai

b-money 제안자와 Crypto++ 원저자

Wei Dai는 공동으로 의지할 은행 없이, 신원을 드러내지 않고 인터넷으로 돈을 보내는 방법을 탐구했습니다. 그의 b-money는 Bitcoin의 선행 제안 중 하나입니다. Crypto++는 개발자가 데이터를 보호하도록 돕는 도구로, 그의 또 다른 작업을 보여 줍니다.

Wei Dai는 암호학자이자 Crypto++ 라이브러리의 최초 작성자입니다. 1998년 b-money 제안에서 디지털 가명을 쓰는 사람들이 금전 계좌를 기록하고 계약을 맺는 방식을 설명했습니다. Bitcoin은 이 작업을 인용하지만 자체적인 네트워크 구조와 규칙을 사용합니다.

메시지를 암호화하거나 디지털 서명을 검증하려는 개발자가 모든 절차를 처음부터 작성할 필요는 없습니다. 보호된 데이터를 다루는 함수 모음인 암호 라이브러리를 이용할 수 있습니다. Wei Dai가 처음 C++로 작성한 Crypto++가 그런 라이브러리입니다. 애플리케이션에 넣어 사용할 수 있는 실제 소프트웨어입니다. 반면 b-money는 화폐 시스템을 설명한 문서상의 제안입니다. 작동하는 라이브러리가 존재한다는 사실만으로 그 제안에 따른 네트워크도 운영되었다고 볼 수는 없습니다. 그의 기여를 이해하려면 두 작업을 구분해서 살펴봐야 합니다. [3]

1998년 11월, Wei Dai는 온라인 쇼핑에서도 익숙한 질문을 던졌습니다. 신원을 밝히지 않고 어떻게 협력할 수 있을까요? b-money에서 그는 공동 회계와 계약을 위한 두 가지 프로토콜, 즉 규칙 체계를 제안했습니다. 공개 키가 가명 역할을 하고 메시지에는 디지털 서명이 붙습니다. 다만 참여자를 추적할 수 없는 네트워크는 출발점의 가정이지, 제안 자체가 보장하는 결과가 아닙니다. 저자는 첫 번째 방식이 메시지 일괄 전송에 요구하는 조건 때문에 비현실적이라고 설명했습니다. 따라서 이미 운영되는 익명 서비스의 안내서가 아니라, 숙고한 설계안을 읽는 것입니다. [1]

안나가 b-money 5단위를 가지고 톰에게 2단위를 보낸다고 해 봅시다. 첫 번째 방식에서는 모든 참여자가 계좌 기록의 사본을 보관합니다. 안나가 서명한 메시지에 따라 모두가 안나 계좌에서 차감하고 톰 계좌에 더하면 안나에게 3단위가 남습니다. 잔액이 음수가 되는 메시지는 무시됩니다. 서명으로 지시 권한을 확인할 수 있지만 공동 회계에는 메시지 전달 규칙도 필요합니다. Bitcoin은 이후 UTXO 모델을 사용해 아직 쓸 수 있는 개별 거래 출력을 추적했습니다. 비슷한 목표가 같은 기록 방식을 뜻하지는 않습니다. [1]

두 번째 b-money 방식은 서버라고 부르는 일부 참여자에게 회계를 맡깁니다. 다른 사람의 일은 줄지만 관리자를 어떻게 감독할지가 문제가 됩니다. 서버는 벌금에 사용할 수 있는 예치금을 내고, 주기적으로 데이터베이스를 공개하며 그 기록 내용에 대해 공개적으로 확약해야 합니다. 사용자는 자신의 잔액과 전체 계좌 합계가 발행된 돈을 넘는지 확인합니다. 수취인은 무작위로 고른 서버에서 결제 처리 여부도 확인해야 합니다. 예치금이 신뢰를 마법처럼 없애지는 않습니다. 계좌를 관리하는 사람과 기계를 감독하려는 설계의 한 부분입니다. [1]

초기 b-money에서는 계산 문제를 풀어 단위를 만듭니다. 그 수량은 표준 상품 묶음으로 측정한 계산 비용에 대응하도록 했습니다. 이 묶음은 공통 비용 척도이지 시장에서 누군가 지불할 단위 가격을 정하는 규칙이 아닙니다. 하지만 컴퓨터는 발전하고 실제 비용을 모두가 아는 것도 아닙니다. Dai는 이 어려움을 인정하고 부록에서 경매 방식을 제안했습니다. 장부 관리자가 새로 만들 돈의 양을 협의하고 발행 희망자는 계산 입찰로 경쟁합니다. 이는 BTC 발행 일정과 다릅니다. 어려운 문제를 드러내고 다른 방법을 찾는 데에도 이 글의 가치가 있습니다. [1]

제안은 결제를 넘어섭니다. 번역을 의뢰할 때 서명은 계약 동의를 증명할 수 있지만 납품한 글의 품질까지 증명하지는 못합니다. 그래서 b-money 계약에는 예치금, 위반 시 합의된 배상, 중재자의 도움이 포함됩니다. 그래도 당사자들이 합의하지 못하면 각자의 주장을 내고 개별 장부 관리자가 스스로 판단합니다. 인간의 분쟁을 디지털 시스템으로 옮기는 일이 얼마나 어려운지 보여 줍니다. 반면 거래 출력의 사용 조건을 적는 언어인 Bitcoin Script는 정확히 정해진 기술 조건을 평가합니다. 그것만으로 번역이 잘됐는지 판단할 수는 없습니다. [1]

Satoshi Nakamoto는 Bitcoin 설계를 설명하는 백서에서 1998년 b-money를 참고 문헌 1로 제시했습니다. 이를 통해 공동 관리자 없는 디지털 돈이 Bitcoin 이전부터 연구되었다는 구체적인 사상적 연결을 따라갈 수 있습니다. 하지만 인용이 모든 제안된 장치를 채택했다는 뜻은 아닙니다. b-money의 계좌 관리, 발행, 분쟁 처리는 Bitcoin과 다릅니다. 인용은 Satoshi Nakamoto라는 이름 뒤의 인물도 밝혀 주지 않습니다. 이 역사를 이해하려면 인용에서 신원을 추측하기보다 확인 가능한 문서를 비교하는 편이 더 유용합니다. [2]

Crypto++의 이야기는 수정, 테스트, 다른 개발자들의 작업으로 이어집니다. 프로젝트 기록에는 Wei Dai가 2015년 6월 일상 운영을 커뮤니티에 넘겼다고 나옵니다. 사용자에게는 최초 작성자뿐 아니라 구체적인 버전과 함수의 올바른 사용법도 중요합니다. 라이브러리는 서명이나 암호화 도구를 제공할 수 있지만 안전한 키 보관이나 지갑 전체 설계를 저절로 해결하지는 않습니다. 애플리케이션 개발자는 문서를 읽고 수정을 확인하며 자신의 사용 방식을 검증해야 합니다. 작성자의 공헌을 인정하면서 현재 소프트웨어도 점검할 수 있습니다. [3]

더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Adam Back, Nick Szabo, b-money, Satoshi Nakamoto. 다음 항목에서도 이 글을 참조합니다 b-money, Bit Gold, Adam Back, Nick Szabo.

DOC · 001Wei Dai — b-money (November 1998)문서 DOC · 002Satoshi Nakamoto — Bitcoin whitepaper, reference 1문서 DOC · 003Crypto++ Project — author attribution and project history문서
개정일: 1차 출처 우선 · 투자 조언이 아닙니다