블록체인

Taproot 기반 구축 : 지불 풀은 비트 코인의 다음 레이어 XNUMX 프로토콜이 될 수 있습니다.

이 기사는 제안 된 Taproot 프로토콜 업그레이드를 기반으로 한 기술 개념에 관한 것입니다. Taproot 작동 방식에 대한 기본 사항에 아직 익숙하지 않은 경우 먼저 읽어 보는 것이 좋습니다. 이 설명자.

직근, Bitcoin Core 기여자 Gregory Maxwell이 처음 제안한 Bitcoin 프로토콜의 잠재적 인 업그레이드는 개발 후기 단계에 있습니다. 이 기술은 사용자가 정기적으로 보이는 거래 내에서 복잡한 스마트 계약을 숨길 수있는 암호 트릭의 영리한 조합으로 구성됩니다. 복잡성은 계약 당사자가 비협조적인 경우에만 드러납니다.

이 아이디어를 활용하여 Jeremy Rubin, Antoine Riard, Gleb Naumenko 및 Gregory Maxwell을 포함한 Bitcoin Core 기여자는 다음과 같은 일반적인 개념에 대해 추측 해 왔습니다. 지불 풀, 조인 또는 코인 풀. 이 풀 (당분간 지불 풀이라고 부르는 것에 충실 할 것입니다)은 사용자 그룹이 비트 코인 블록 체인에 기록 된 것과 동일한 코인 (기술적으로 : UTXO)의 소유권을 공유 할 수있게하면서 이러한 사용자 중 누구라도 지불을하거나받을 수 있도록합니다. 그들과 함께. 그룹과 개별 구성원이 Taproot 구조에 "숨겨져"모든 구성원은 더 많은 개인 정보 보호, 스마트 계약 유연성 및 기타 혜택을 누릴 수 있으며 잠재적으로 이러한 혜택을 오프 체인에서 즐길 수있어 결제 풀을 새로운 레이어 XNUMX 솔루션으로 만듭니다.

디자인 세부 사항은 지불 풀 제안마다 조금씩 다르지만 일반적인 개념은 동일합니다. 여기에 기본적인 아이디어가 있습니다…

코인 공유

첫째, 지불 풀을 생성하기 위해 사용자는 코인을 공유하는 Taproot 주소로 집계하여 코인 (분획)을 결합합니다. 따라서 Alice는 동전 XNUMX 개, Bob은 동전 XNUMX 개, Carol은 동전 XNUMX 개, 총 XNUMX 개를 소유하고 있다고 가정 해 보겠습니다. 함께, 그들은이 코인을 공유 주소로 보내는 트랜잭션을 생성하여 XNUMX 개의 코인이있는 지불 풀을 만듭니다.

블록 체인에서 지불 풀 주소는 일반 비트 코인 주소처럼 보이며 현재 XNUMX 개의 코인을 보유하고 있습니다. 그러나 표면 아래에서 Alice, Bob 및 Carol은 Taproot를 영리하게 사용하여 각자가 지불 풀에서 자신의 코인 몫을 제어 할 수 있도록했습니다. 앨리스는 주소에서 코인 XNUMX 개를, 밥은 언제든지 XNUMX 개, 캐롤 XNUMX 개를 요청할 수 있습니다.

주소에서 코인을 사용하는 데는 두 가지 주요 옵션 만 있기 때문입니다.

첫 번째 옵션은 기술적 인 용어로 Taproot 키-경로 주소에서 직접 지출하는 것입니다. 이를 위해서는 세 참가자 모두의 협력 (즉, 암호화 서명)이 필요합니다. Alice, Bob 및 Carol이 모두 동의하면 XNUMX 개의 코인을 원하는대로 사용할 수 있으며 이는 비트 코인 네트워크의 다른 일반 거래처럼 보일 것입니다. 예를 들어 트리오는 각각의 잔액을 개별 주소로 다시 보내기로 결정할 수 있습니다. XNUMX 개는 Alice, XNUMX 개는 Bob, XNUMX 개는 Carol입니다. 그러나 그들이 그렇게 선택한다면 그들은 또한 XNUMX 개의 동전을 모두 줄리안에게 기부하거나 그들이 동의 할 수있는 다른 방법으로 쓸 수도 있습니다. 중요한 것은 세 사람이 모두 참여해야하기 때문에 자신의 협력 없이는 누구의 균형도 소비되지 않는다는 것입니다.

두 번째 기본 옵션은 실제로 여러 하위 옵션으로 구성됩니다. 코인을 지불 풀로 보내기 전에 Alice, Bob 및 Carol은 Taproot 주소 뒤에 암호화 트리에 무언가를 숨겼습니다. 그들은 지불 풀에서 자금을 보내는 다른 방법을 포함했습니다. (현재, 이것은 모든 옵션을 설정하는 데 약간의 복잡성이 필요하고 잘 확장되지 않는 이러한 경로에서 세 명의 참가자 모두가 트랜잭션을 미리 서명하도록함으로써 실현 될 수 있습니다. 제안 된 프로토콜 업그레이드는 잠재적으로 이것을 쉽게 만들 수 있습니다 .)

참가자 중 한 명이 대체 Taproot 경로를 통해 지불 풀에서 코인을 사용하기로 선택하면 일반적으로 해당 참가자의 잔액에 해당하는 금액을 자신이 제어하는 ​​개별 주소와 같은 선택한 주소로 보냅니다. (Alice의 경우 XNUMX 개의 동전은 자신의 주소로, Bob의 경우 XNUMX 번의 경우 주소로, Carol의 경우 XNUMX 번의 경우)

이 대체 경로를 사용하면 나머지 동전도 자동으로 사용됩니다. 이는 지불 풀의 설계에 따라 여러 가지 방법으로 수행 할 수 있으며 복잡성 및 확장 성과 관련하여 다양한 절충안을 제공합니다.

가장 간단한 해결책은 다른 모든 참가자에게 자신이 선택한 주소로 코인 지분을 보내는 것입니다. 즉, 한 명의 사용자가 풀을 종료하면 모두가 풀을 종료합니다.

Riard와 Naumenko가 선호하는 두 번째 해결책은 나머지 모든 동전을 첫 번째 지불 풀과 똑같이 보이는 지불 풀은 이제 종료 된 사용자와 관련된 모든 항목에서 제거되었습니다. 이 디자인은 최상의 사용자 경험을 제공하지만, 가장 중요한 것은 모든 잠재적 인 새로운 풀에 대해 가능한 모든 종료 시나리오를 포함하여 가능한 모든 종료 시나리오를 준비해야하기 때문에 확장하기 가장 어려운 설계입니다. 그러나 이전 지불 풀의 규칙이 새로운 지불 풀로 이월되도록 아직 이름이 지정되지 않은 잠재적 인 비트 코인 프로토콜 업그레이드를 통해 확장 할 수 있습니다.

Rubin은이 두 번째 솔루션이 비실용적이라고 믿고 첫 번째 솔루션과 두 번째 솔루션 사이에 무언가를 선호합니다. 일부 참가자는 선택한 주소로 즉시 코인을 받고, 다른 참가자는 새로운 지불 풀로 코인을 보냅니다. 이 디자인은 덜 이상적인 사용자 경험을 제공하지만 더 나은 확장 성을 제공하며 잠재적 인 OP_CHECKTEMPLATEVERIFY 프로토콜 업그레이드는 디자인을 단순화하고 확장 성을 더욱 높이는 데 도움이됩니다. (출구는 Tree Payments를 통해 발생합니다. 이러한 유형의 지불은 이 문서.)

(두 번째 솔루션과 세 번째 솔루션간에 더 많은 장단점이 있지만 모든 장단점에 대한 자세한 내용은이 기사의 범위를 벗어납니다. bitcoin-dev 메일 링리스트 토론 세부 사항.)

남은 코인이 새로운 지불 풀로 전송 될 때 어떤 의미인지 알아보기 위해 Alice, Bob 및 Carol이 두 번째 옵션을 선택했다고 가정 해 보겠습니다. 모든 남은 코인은 새로운 지불 풀로 보내집니다. 이 디자인에서 Alice가 첫 번째 지불 풀을 종료하면 XNUMX 개의 코인이 자신이 선택한 주소로 전송되고 나머지 XNUMX 개의 코인은 Bob과 Carol 사이의 새 지불 풀로 전송됩니다. 그 시점에서 Alice는 자신의 코인을 다시 단독으로 제어 할 수 있지만 Bob과 Carol에게는 그다지 큰 변화가 없습니다. 두 사람은 여전히 ​​협력하여 나머지 세 개의 동전을 원하는대로 사용할 수 있으며, 앨리스가 이전에했던 것처럼 일방적으로 종료 할 수 있습니다.

Bob이 두 번째 지불 풀에서 일방적으로 나가면 자신이 선택한 주소로 동전 XNUMX 개를 보내고 Carol 만 남은 더 새로운 지불 풀 (세 번째 지불 풀)로 동전 하나를 보냅니다. (물론,이 단순화 된 예에서이 마지막 지불 풀이 Carol이 선택한 주소로 대체되는 디자인은 실제로 더 합리적이지만 구현 세부 사항입니다.)

중요한 점은 지불 풀의 참가자가 원하는 풀에서 모든 유형의 지불을하기 위해 협력 할 수있는 반면, 그들 중 누구라도 자신의 코인으로 언제든 나갈 수있어 다른 참가자가 자신의 코인을 제어 할 수 있다는 것입니다.

지불 풀에 지불하기

따라서 우리는 모든 참가자가 지불 풀에서 개별적으로 잔액을 인출하거나, 모두 동의하는 경우 풀에서 지출 할 수 있도록 설정했습니다. 실제로 영리한 것을 가능하게하는 것은이 두 번째 옵션입니다. 지불 풀은 동적 일 수 있습니다. 모든 참가자가 동의하는 한, 그들은 자신의 자금을 갚거나 줄리안과 같은 다른 사람들에게 지불 할 수는 없지만 더 흥미로운 일을 할 수 있습니다. 그들은 다른 디자인의 새로운 버전의 지불 풀로 자금을 이동할 수 있습니다.

예를 들어이 중 하나가 풀에서 지출 할 수 있습니다.

도 참조

최신 합의 프로토콜 변경 인 Taproot가 활성화에 접근함에 따라 비트 코인 개발자는 네트워크를 정확히 어떻게 업그레이드해야하는지 묻습니다.

앨리스가 새 차를 사고 하나의 비트 코인으로 지불하려고한다고 가정 해 보겠습니다. 앨리스, 밥, 캐롤은 지불 풀에서 하나의 코인을 자동차 대리점으로 보내고 나머지 XNUMX 개의 코인을 이번에는 Alice가 이전보다 한 개 더 적은 두 개의 코인으로 일방적으로 만 나갈 수 있다는 점을 제외하면 첫 번째 것과 동일한 지불 풀.

한편 거래는 다른 일반 비트 코인 거래처럼 보였습니다. 자동차 딜러 (또는 블록 체인 스파이)는 앨리스가 XNUMX 개의 동전을 모두 소유하고 하나를 사용하여 자동차를 구입하고 나머지 XNUMX 개를 잔돈으로 유지했다고 결론을 내릴 수 있습니다. 그들은 코인 중 일부가 Bob과 Carol의 소유인지 또는 거래에 전혀 관여하지 않았는지 전혀 알지 못합니다.

다음 번에 Bob이 지불하고 Alice와 Carol이 협력 할 때 동일한 지불 풀에서 이루어지며 다시 한 번 외부 세계에 대한 일반 비트 코인 거래처럼 보입니다. 지불 풀의 결과 반복에서 Bob은 두 개가 아닌 하나의 코인으로 종료 할 수 있습니다. 한편, 동일한 블록 체인 스파이는 Alice가 다시 지불을하고 있다고 생각하여 더 혼란 스러울 수 있습니다. (그리고 블록 체인 스파이들이 주소가 실제로 Alice, Bob, Carol 사이의 지불 풀이라는 것을 알아 내더라도, 그들은 세 사람 중 어느 것이 최근 지불을했는지 알 수 없습니다.)

Alice, Bob 또는 Carol이 코인을 사용할 때마다 거래는 그중 하나에서 발생했을 수 있으며 지불 풀 외부의 누구도 그 차이를 알 수 없습니다.

지불 풀은 지출을 허용하지 않습니다. Alice가 지불 풀에서 자신의 "잔액"을 충전하려는 경우에도이 작업을 수행 할 수 있습니다. 이 경우 Alice, Bob 및 Carol은 협력하여 현재 XNUMX 개의 코인을 새 Taproot 주소로 이동합니다.이 주소로 Alice는 동일한 거래에서 자신의 (개별) 주소 중 하나에서 추가 코인 하나를 보냅니다. 새로운 Taproot 주소는 일방적 인 종료 옵션에 반영된 것처럼 다시 한 번 XNUMX 개의 코인을 포함하며 그중 XNUMX 개는 Alice의 것입니다.

같은 방식으로 완전히 새로운 사용자도 지불 풀에 참여할 수 있습니다. Alice, Bob, Carol이 Dave가 참여하도록 동의하면 세 사람은 Dave와 협력하여 Dave의 새 코인과 함께 결제 풀 자금을 Dave가 참여하고 종료하도록 설계된 새로운 결제 풀로 보내는 트랜잭션을 생성합니다. 그가 그렇게 선택한다면.

또한 지불 풀 내의 참가자가 서로 지불 할 수있는 옵션이 있습니다. 예를 들어 Alice가 Bob에게 동전 한 개를 지불하면 세 사람은 협력하여 Alice가 잔액에서 동전을 빼고 Bob이 동전을 추가 한 새로운 지불 풀로 자금을 보낼 수 있습니다. 블록 체인에서 다시 말하지만, 일반 지불처럼 보일 것이며, 블록 체인 스파이는 누가, 얼마를 지불했는지 알지 못할 것입니다. (Dave가 기존 참여자 중 한 명으로부터 내부 지불을 받아 유사한 방식으로 풀에 들어갈 수 있다는 점을 지적 할 가치가 있습니다.)

약간의 추가 복잡성이 있습니다 (이상적으로는 입력하지 않음), 전송은 오프 체인에서도 완료 될 수 있습니다. Alice가 Bob에게 돈을 지불 할 때 모든 참가자는이 경우 새로운 지불 풀에 자금을 지출하는 거래를 생성하지만,이 거래는 네트워크에 브로드 캐스트되지 않는 한 그들 사이에서만 공유됩니다 (누군가 속임수를 시도하지 않는 한). 이러한 방식으로 Alice, Bob 및 Carol은 "내부적으로"잔액을 계속 업데이트 할 수 있으며 어느 시점에서 Dave를 풀에 넣을 수도 있습니다. 모두가 풀 폐쇄에 동의하면 원래 지불 풀에서 지출하는 최종 거래를 생성하여 각각의 최신 잔액을받을 수 있습니다.

로 알려진 오래된 아이디어와 유사 채널 공장, 이러한 유형의 지불 풀은 결국 Lightning 채널, 금고 또는 기타 레이어 XNUMX 프로토콜을 호스팅하는 데 사용될 수도 있습니다. 이는 이러한 풀에서 모든 유형의 추가 프로토콜 계층을 "포장"할 수있는 잠재력을 제공하여 동일하고 규칙적인 트랜잭션에서 모든 복잡성을 숨길 수 있습니다.

출처 : https://bitcoinmagazine.com/articles/building-on-taproot-payment-pools-could-be-bitcoins-next-layer-two-protocol?utm_source=rss&utm_medium=rss&utm_campaign=building-on-taproot-payment- 풀이 비트 코인이 될 수 있음 다음 레이어 XNUMX 프로토콜