비트코인 매거진
[[alloc] init] 프라이빗 비트코인 거래를 위한 보호된 비트코인 제안 출시
Shielded Bitcoin은 [[alloc] init] 연구원인 Clara Shikhelman, Misha Komarov 및 Aleksei Moskvin이 운영자, 소프트 포크 또는 기타 비트코인 합의 변경 없이 보호된 비트코인 거래를 가능하게 하는 비트코인 기본 계층의 새로운 개인정보 보호 메타프로토콜에 대해 제안한 것입니다. 백서는 여기에서, 블로그 공지사항은 여기에서 확인하실 수 있습니다.
이 프로토콜은 강력한 개인 정보 보호 거래를 위한 거래 구조와 색인 프로토콜을 정의하는 동시에 시스템 안팎으로 자금을 고정하기 위해 비트코인 PIPE를 사용합니다. 기사 마지막 부분에서 PIPE 메커니즘에 대해 자세히 알아보세요.
그 디자인은 비트코인과 매우 흡사합니다. UTXO(메모)에 해당하는 것이 있고, 트랜잭션은 일반 비트코인 트랜잭션처럼 노트를 입력으로 사용하고, 증인은 소비된 입력이 적절하게 승인되었음을 증명하고, 노드(메타프로토콜의 경우 인덱서)가 트랜잭션 내역을 구문 분석하고 어떤 코인이 사용되었는지, 사용되지 않았는지에 대한 현재 상태를 구축합니다.
그러나 모든 세부 사항은 상당히 다릅니다.
보호된 비트코인 거래는 OP_RETURN, 감시 필드 또는 기타 데이터 전달 방법을 사용하는 비트코인 거래에 포함된 접두사("shbtc:"와 같은)가 있는 데이터 덩어리입니다. 이는 비트코인에 아무런 의미가 없으며, 비트코인 네트워크는 이를 확인하거나 이에 대한 어떠한 규칙도 시행하지 않습니다. 유효하지 않은 Shielded Bitcoin 거래가 온체인에서 종료되는 것은 완벽하게 가능하며, 블록체인(읽기: 노드)을 수동적으로 감시하여 검증에 실패할 때 해당 거래를 무시하고 네트워크 잔액 상태 업데이트에 적용을 거부하는 것이 Shielded Bitcoin Indexer의 임무입니다.
인덱서는 비트코인이 UTXO를 삭제하는 것처럼 사용되지 않은 메모 세트에서 메모를 삭제하지 않습니다. nullifier 세트를 사용합니다. 이는 사용자가 어떤 메모가 사용되었는지 공개하지 않고 해당 메모가 사용되었다는 암호화된 증거와 무효화를 공개적으로 게시할 수 있는 방법입니다. 메모가 "사용되지 않은 메모 세트"에 있는지 확인하는 대신 nullifier가 이미 사용되었는지 확인하는 것이 아이디어입니다. 인덱서는 생성된 모든 노트 출력과 널파이어 세트에 대해 영원히 성장하고 추가만 가능한 머클 트리를 구축합니다.
이 프로토콜을 사용하려면 Bitcoin 노드와 Shielded Bitcoin 인덱서만 있으면 됩니다. 자금을 회수하기 위해 서비스 제공자, 코디네이터 또는 오프체인 상태가 필요하지 않습니다. 온체인 비트코인처럼 작동하며 필요한 것은 노드/인덱서와 키뿐입니다.
각 사용자 지갑은 관련된 다른 모든 키 세트가 생성되는 마스터 비밀 키를 파생합니다.
이것을 비트코인의 HD 지갑과 매우 유사한 방식으로 생각해보세요. 이 관계를 사용하여 많은 주소 세트를 생성할 수 있습니다. Sk_spend는 개인 키이고, sk_nf는 메모 출력을 무효화하는 데 사용되며, vk_in은 들어오는 메모를 해독하고 보는 데 사용되며, vk_out은 나가는 거래를 보는 데 사용되며, sk_view는 수신 주소를 생성하는 데 사용됩니다.
사용자가 누군가에게 자금을 보내기 위해 주소를 제공하려는 경우 파생 값과 유사한 다양화 값 d를 생성한 다음 해당 값을 sk_view 키와 곱합니다. 결과 공개 키인 pk_d와 d는 사용자의 주소입니다.
그런 다음 발신자는 노트 출력 암호화 및 무효화에 필요한 임의의 값인 r_seed를 생성합니다(잠시 후에 설명하겠습니다). 트랜잭션 출력에는 출력 값, 수신자가 보낸 사람에게 제공한 d 값, 보낸 사람의 r_seed 값이라는 세 가지 암호화된 항목만 포함됩니다. 발신자는 비밀 임시 키 쌍과 수신자의 공개 키를 사용하여 공유 비밀을 생성합니다. 두 당사자 모두 자신의 개인 키와 상대방의 공개 키를 곱하여 동일한 비밀을 생성할 수 있습니다. 노트 출력은 이 공유 비밀을 사용하여 암호화되며, 임시 sk_eph는 암호화되지 않은 상태로 포함되어 수신자가 공유 비밀을 생성할 수 있습니다.
그림의 입력 측면에서 유효한 거래를 위해서는 두 가지가 필요합니다. 소비된 노트 출력에 대한 공개 무효화 장치와 1) 노트 출력이 노트의 머클 트리에 포함되어 있고, 2) 거래가 적절한 sk_spend 키에 의해 승인되었으며, 3) 무효화가 올바르게 파생되었으며, 4) 인플레이션이 발생하지 않았음을 증명하는 영지식 증명입니다.
위 이미지에서 nullifier는 sk_nf 키, r_seed에서 파생된 ρ 값 및 노트 출력의 머클 트리에서 노트 위치를 사용합니다. 영지식 증명은 이 모든 것을 보장하므로 사용한 노트를 삭제하는 대신 반복에 대한 무효화 횟수를 간단히 계산할 수 있습니다. Nullifier가 어떤 노트 출력에 해당하는지 전혀 알 수 없더라도 모든 거래의 영지식 증명은 세트에 추가된 각 Nullifier가 유효한 노트 출력에서 나온 것임을 보장합니다. 반복이 없는 한 동일한 이중 지출 보장이 제공됩니다.
따라서 이 프로토콜을 사용하면 기본적으로 비트코인 블록체인에 암호화된 메타프로토콜 트랜잭션을 내장할 수 있지만 이중 지출이 발생하지 않으며 코인이 허공에서 부풀려지지 않는다는 보장을 제공합니다.
이는 실제로 개인정보 보호 측면에서 매우 잘 설계된 시스템이며 Zcash 차폐 풀과 동등한 수준입니다. 메타프로토콜에 들어가고 나갈 때 고려해야 할 개인 정보 보호 고려 사항이 있으며, 이에 대한 내용은 향후 문서 릴리스에서 자세히 설명될 예정입니다. 코인조인과 같이 개인정보 보호나 주기적인 리믹싱을 측정할 염려가 없습니다.
그래서 말뚝. 목적은 감시 암호화 체계인 PIPEs v2를 사용하여 페그를 구축하는 것입니다. PIPE를 사용하면 특정 조건(예: 일부 UTXO의 상태, 거래 확인 등)이 충족되었다는 ZK 증명을 제공할 수 없는 한 키를 공개하지 않는 프로그램/메커니즘으로 개인 키를 암호화할 수 있습니다. 이를 통해 운영자, 연맹 또는 제3자가 자금을 관리하지 않고도 페그가 작동할 수 있습니다.
이는 비트코인에 대한 소프트포크나 프로토콜 변경이 필요하지 않으며 완전히 오프체인에서 발생합니다.
Shielded Bitcoin에 대한 계획과 다음 작업 부분은 사용자가 PIPE 암호화 제어 키를 사용하여 Shielded Bitcoin에 자금을 입금할 수 있도록 하는 페깅 메커니즘입니다. 이 키는 온체인에서 확인된 합법적인 페그아웃 거래에 대한 ZK 증명을 생성하여 "잠금 해제"됩니다.
현재 시스템의 이러한 측면을 정의하는 문서에 대한 작업이 진행 중이며 가까운 시일 내에 발표될 예정입니다.