399 / 736POELSTRA

Andrew Poelstra

Bitcoin 스크립트와 증명 연구자

지갑의 지출 조건을 더 쉽게 점검하려면 어떻게 해야 할까요? 금액을 공개하지 않고 그 성질을 검증할 수는 없을까요? Andrew Poelstra는 두 질문에 대한 답을 만드는 데 참여했습니다. 그의 작업은 수학 연구가 실제로 쓸 수 있는 도구로 이어지는 과정을 보여 줍니다.

Andrew Poelstra는 수학자이자 Bitcoin 연구자입니다. 지출 조건을 표현하고 분석하기 쉽게 만든 Miniscript의 공동 개발자이며, 숨겨진 데이터를 밝히지 않고 특정 주장을 검증하는 암호학적 증명 Bulletproofs의 공동 저자입니다. 두 성과 모두 여러 사람의 협력으로 나왔습니다.

수식의 출발점은 저축을 안전하게 관리하거나 결제 금액을 모든 사람에게 드러내지 않으려는 평범한 바람일 수 있습니다. Poelstra는 이런 필요를 검증 가능한 규칙으로 바꾸는 도구를 연구했습니다. Blockstream은 2023년 2월에 그를 연구 책임자로 소개했습니다. 반면 2026년 2분기 보고서에서는 Jonas Nick에게 그 직함을 사용합니다. 과거 직함을 현재 역할로 그대로 받아들일 수는 없습니다. 연구자의 기여는 직함 하나보다 구체적인 작업과 협업을 통해 이해하는 편이 낫습니다. [1] [2]

평소에는 자신의 키로 돈을 쓰되, 키를 잃어버리면 일정 시간을 기다린 뒤 미리 정해 둔 다른 경로를 쓸 수 있는 지갑을 생각해 보세요. 조건을 적는 것만으로는 부족합니다. 그 조건이 정말 의도한 뜻인지도 확인해야 합니다. Miniscript가 이 과정을 돕습니다. 문서에는 Pieter Wuille, Andrew Poelstra, Sanket Kanjalkar가 개발자로 기재되어 있고 다른 사람들과의 논의도 언급됩니다. 공동 성과이므로 한 사람의 기여가 다른 저자들의 작업까지 대신하지는 않습니다. [3]

Bitcoin Script는 지출 조건을 정하는 언어입니다. Miniscript는 그중 정해진 일부에 구조를 부여해 조건을 조합하고 분석할 수 있게 합니다. 컴파일러는 요구 사항을 구체적인 표현으로 바꾸는 프로그램이며, 더 적은 비용이 드는 구성을 찾을 수 있습니다. 일반 경로를 예비 경로보다 자주 쓸 것으로 예상하면 그 빈도를 예상 비용에 반영할 수 있습니다. 하지만 이 가중치가 거래의 유효성을 확률에 맡기는 것은 아닙니다. 드문 경로라도 규칙을 만족하면 똑같이 유효합니다. [3]

예비 경로에서는 대기 시간을 어디서부터 세는지도 중요합니다. Miniscript의 after는 거래의 nLockTime 필드를 통해 특정 체인 높이 같은 절대 기준을 표현합니다. older는 상대 조건인 nSequence를 사용해, 쓰려는 출력이 확정된 뒤의 간격을 다룹니다. 둘은 시간의 기준이 다르므로 서로 바꿔 쓸 수 없습니다. 시간이 지났다고 결제가 저절로 실행되지는 않습니다. 경로를 이용할 수 있게 되더라도 서명과 다른 조건이 필요하며, 거래를 만들고 확정받아야 합니다. [3]

금액은 숨긴 채 그 금액의 성질을 확인할 수 있을까요? Bulletproofs는 그런 증명을 가능하게 합니다. 검증자는 숨겨진 수가 허용 범위 안에 있다는 사실을 알지만 그 값 자체는 알지 못합니다. Stanford는 저자로 Benedikt Bünz, Jonathan Bootle, Dan Boneh, Andrew Poelstra, Pieter Wuille, Greg Maxwell을 명시합니다. 연구 논문과 특정 프로그램은 다릅니다. 해당 페이지는 일부 구현을 개발 중으로 표시하고 한 프로토타입은 실제 운영에 적합하지 않다고 밝힙니다. 링크가 있다는 사실만으로 프로그램에 돈을 맡기라고 권하는 것은 아닙니다. [4]

어떤 증명 시스템은 매개변수를 미리 준비해야 하며, 그 과정에서 비밀 정보를 제대로 다루어야 안전합니다. 이를 trusted setup이라고 합니다. Bulletproofs는 이런 준비가 필요 없습니다. 유용한 성질이지만 암호학적 가정이나 프로그램 오류 위험까지 없애지는 않습니다. 짧은 증명이 언제나 가장 빨리 검증되는 것도 아닙니다. 작업과 비교 대상에 따라 달라집니다. 무엇을 증명하는지, 안전성이 무엇에 기대는지, 검증에 얼마나 많은 작업이 필요한지를 나누어 보아야 합니다. [4]

금액이 보이면 더하고 비교할 수 있습니다. 숨겨져 있다면 수학적 증명이 그에 해당하는 확신을 제공해야 합니다. Poelstra는 2018년 2월에 rangeproof를 설명했습니다. 금액이 허용 범위 안에 있음을 증명해 수치 오버플로로 장부의 제약을 우회하지 못하게 하는 방식입니다. Bulletproofs는 여러 값의 증명을 더 작은 묶음으로 합칠 수 있습니다. 글에 나온 속도는 명시된 장비에서 측정한 결과이지 보편적인 네트워크 속도가 아닙니다. 증명을 줄이면 특정 부담은 줄지만 결제의 모든 제약이 사라지지는 않습니다. [5]

Poelstra는 2017년 4월에 블록체인 시스템 구축 플랫폼 Elements를 위한 Confidential Assets를 설명했습니다. 금액뿐 아니라 이전하는 자산의 종류도 숨길 수 있습니다. 그래도 이전 과정에서 자산이 무단으로 생기거나 다른 종류로 바뀌지 않았는지 검증할 수 있습니다. 최초 발행과 추가 발행에는 별도의 규칙과 권한이 적용됩니다. 이 역시 사생활 보호와 공개 검증을 결합합니다. 하지만 Elements의 기능이 Bitcoin 기본 계층에도 도입되었다는 증거는 아닙니다. 연구, 구현, 실제로 사용하는 네트워크를 구분해야 합니다. [6]

더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 Mara van der Laan, Rusty Russell, Miniscript. 다음 항목에서도 이 글을 참조합니다 Miniscript, Mara van der Laan, Rusty Russell.

DOC · 001Blockstream Research — February 2023문서 DOC · 002Blockstream — Q2 2026 update문서 DOC · 003Miniscript — specification and authors문서 DOC · 004Stanford — Bulletproofs문서 DOC · 005Andrew Poelstra — Bulletproofs (2018)문서 DOC · 006Andrew Poelstra — Confidential Assets (2017)문서
개정일: 1차 출처 우선 · 투자 조언이 아닙니다