394 / 736GMAX

Gregory Maxwell

gmaxwell로 알려진 개발자

Gregory Maxwell은 결제를 검증하면서도 참여자의 금융 생활을 불필요하게 드러내지 않는 방법을 연구했습니다. 그의 제안은 프라이버시를 지키는 방법이 여러 가지이며 각각 한계가 있음을 보여 줍니다.

Gregory Maxwell은 Greg Maxwell 또는 gmaxwell로도 알려진 Bitcoin 개발자이자 Blockstream 공동 창업자입니다. CoinJoin, Confidential Transactions, Taproot에 기여했고 Bech32의 공동 저자입니다. 이 이름들은 서로 다른 기법을 가리키며 모든 Bitcoin 지갑에 들어 있는 하나의 기능 묶음이 아닙니다.

Maxwell의 작업은 Bitcoin 개발을 프라이버시와 보안 문제에 연결합니다. 그는 Blockstream을 공동 창업하고 CTO, 즉 최고기술책임자를 맡았습니다. 회사는 2018년 1월 19일, 그가 Bitcoin 개발에 집중하기 위해 그 직책을 떠났다고 발표했습니다. 이것은 발표 날짜이지 정확히 그 직책에서 물러난 날의 증거는 아닙니다. 현재 어떤 일을 하는지도 이 발표만으로 정할 수 없습니다. 여기서는 직함보다 그가 다룬 구체적인 문제가 중요합니다. [1]

여러 사람이 결제를 하나의 거래로 합친다고 생각해 보세요. 각자는 전에 받았고 이제 쓰려는 코인을 입력으로 넣고 그 사용을 승인하는 서명을 합니다. 따라서 관찰자는 같은 거래에 들어 있다는 사실만으로 모든 입력이 한 사람 것이라고 확정할 수 없습니다. Maxwell은 gmaxwell이라는 이름으로 2013년 8월 22일 CoinJoin을 설명했습니다. 그전에도 제한적인 사용이 있었다고 명시했으며 Bitcoin 프로토콜 규칙을 바꿀 필요는 없었습니다. [2]

참여자들은 무엇에 서명할지 어떻게 합의할까요? 간단한 CoinJoin은 조정자가 구성할 수 있지만 각 참여자는 먼저 자신의 출력, 즉 자금이 어디로 얼마만큼 가는지 확인해야 합니다. 그다음 자기 입력에 서명합니다. 이것이 조정자에게 코인을 임의로 쓸 권한을 주지는 않습니다. 하지만 단순한 구현에서는 조정자가 입력과 출력의 연결 관계를 알 수 있습니다. 누군가 서명을 거부하면 그 회차가 중단될 수도 있습니다. 도난 방지와 가용성, 프라이버시는 서로 다른 속성입니다. [2]

일반적인 Bitcoin 거래는 금액을 공개합니다. Confidential Transactions는 결제를 합치는 것과 다른 문제를 해결합니다. 금액을 암호학적 커밋먼트에 숨기는 것입니다. 이 데이터는 값을 공개하지 않고 고정하면서 합계도 검사할 수 있게 합니다. Elements에서 Maxwell이 설명한 방식은 Adam Back의 2013년 제안을 발전시킨 것입니다. Elements에서 사용한다고 해서 Bitcoin 기본 네트워크에 이 기능이 배포된 것은 아닙니다. 금액만 숨겨서는 결제 사이 연결을 나타내는 전체 거래 그래프까지 숨겨지지도 않습니다. [3]

산술적으로 10 = 11 + (-1)입니다. 수수료를 제외한 전송 모델로 보면 문제가 드러납니다. 합계는 맞지만 양의 출력이 처음 가치를 넘어가며, 말이 되지 않는 음의 출력이 이를 상쇄합니다. Confidential Transactions에서는 계산이 수 체계의 경계를 넘어 다시 처음으로 돌아가는 모듈러 오버플로가 비슷한 효과를 낼 수 있습니다. 그래서 범위 증명이 필요합니다. 정확한 값을 밝히지 않고 숨긴 금액이 허용된 구간에 있음을 확인합니다. 프라이버시가 돈을 추가로 만들어 내는 통로가 되어서는 안 됩니다. [3]

모두 합의했고 예비 지출 조건이 필요하지 않았다면, 왜 그 조건까지 공개해야 할까요? Maxwell의 2018년 1월 23일 Taproot 제안은 공동 서명으로 다른 지출 조건의 존재를 숨기는 방법을 보여 줬습니다. 당사자가 협력하면 복잡한 약정도 키로 승인한 보통 결제처럼 보일 수 있습니다. 다만 게시 날짜는 네트워크 활성화 날짜가 아닙니다. 아이디어가 채택되기까지는 토론과 정확한 규칙, 참여자들의 수용이 필요합니다. [4]

Taproot 규칙을 정의하는 공개 기술 문서인 최종 명세 BIP 341에는 Pieter Wuille, Jonas Nick, Anthony Towns가 저자로 기재되어 있습니다. 키 경로는 대체 스크립트의 존재를 드러내지 않고 서명으로 처리할 수 있습니다. 스크립트는 지출 조건을 표현한 프로그램이며, 이 경로를 쓰면 선택한 프로그램과 포함 증명을 공개합니다. 이 점이 Maxwell의 원래 아이디어를 깎아내리는 것은 아닙니다. 하지만 최종 규칙을 그 혼자 작성했다고 할 수도 없습니다. [5]

돈을 보낼 때는 주소도 정확히 적어야 합니다. Pieter Wuille와 Greg Maxwell은 네이티브 SegWit 주소용 Bech32를 설명한 BIP 173의 저자입니다. 체크섬은 인코딩 오류를 찾도록 돕는 문자들입니다. 수취인의 신원이나 누가 개인키를 가졌는지는 확인하지 않습니다. 유효하지만 바꿔치기된 주소도 검사를 통과할 수 있습니다. 따라서 Bech32는 CoinJoin이나 금액 은닉과 다른 문제를 다루며, 효과를 혼동해서는 안 됩니다. [6]

더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Pieter Wuille, Matt Corallo, Satoshi Nakamoto. 다음 항목에서도 이 글을 참조합니다 Pieter Wuille, Matt Corallo.

DOC · 001Blockstream — Farewell to Gregory Maxwell문서 DOC · 002Gregory Maxwell — CoinJoin (2013)문서 DOC · 003Elements — Confidential Transactions investigation문서 DOC · 004Gregory Maxwell — Taproot proposal (2018)문서 DOC · 005BIP 341 — Taproot spending rules문서 DOC · 006BIP 173 — Bech32문서
개정일: 1차 출처 우선 · 투자 조언이 아닙니다