사라바난 마니 지음
"아크"란 무엇인가요?
"아크"는 즉각적이고 저렴한 비트코인 결제를 가능하게 하는 비트코인 레이어 2 프로토콜입니다.
대부분의 작업은 오프체인에서 이루어집니다. 즉, Ark 프로토콜 기반 결제는 비트코인 블록체인 외부에서 이루어집니다. Ark는 셀프 커스터디를 지원하는 프로토콜로, 사용자가 필요 시 온체인에서 자금을 인출할 수 있도록 합니다. 하지만 이는 배타적 출력에 기반한 셀프 커스터디 솔루션(나중에 설명하겠습니다)과는 다릅니다.
라이트닝 네트워크와 달리 Ark 프로토콜은 송장, 결제 채널, HTLC(해시 타임락 계약), 라우팅과 같은 개념에 의존하지 않습니다. 대신, 모든 사용자가 다른 사용자와의 P2P 네트워크가 아닌 자체 제공자와 상호 작용하는 공급자-클라이언트 모델을 사용합니다.
Ark는 낙관적인 설계를 따르므로 사용자는 서비스 제공자가 거래를 올바르게 조정할 것이라고 가정합니다. 서비스 제공자가 무관심해지거나, 거래를 검열하거나, 기타 부적절한 행동을 하는 경우, 사용자는 일방적인 종료로 대응할 수 있습니다. 일반적인 상황에서 종료는 서비스 제공자와 사용자 간의 조정을 통해 오프체인 방식으로 처리되므로, 일방적인 종료는 예외적인 상황에서만 사용됩니다.
Ark 결제는 온체인 결제 모델과 유사합니다. 오프체인으로 처리되는 사전 서명된 비트코인 거래이며, 수신자는 결제를 받기 위해 온라인 상태가 될 필요가 없고, 사용자는 사전에 유동성을 확보할 필요가 없습니다.
Ark는 비트코인 전용입니다. 알트코인, 토큰, 사이드체인 및 신규 블록체인은 제외됩니다. 현재 비트코인 합의 규칙을 따릅니다. 하지만 "계약"(비트코인 합의 규칙 업그레이드의 한 유형)을 통해 프로토콜이 크게 강화될 수 있습니다.
모든 2계층 프로토콜과 마찬가지로 Ark에도 장단점이 있으며, 이로 인해 일부 시나리오에는 더 적합하지만 다른 시나리오에는 적합하지 않습니다.
입장 및 결제
방주에 가입하는 방법은 두 가지가 있습니다.
블록체인 내에서 비트코인을 Ark로 이동하려면 정기적인 비트코인 거래를 사용하세요.
Ark-to-Ark 결제를 받으면 Ark에 즉시 접근할 수 있습니다. 이는 블록체인 확인 수수료나 사전 요구 사항 없이 오프체인으로 이루어집니다.
(번역자 주: 이러한 결제 방식은 일반적으로 "아르쿠르(Ark out-of-round)" 결제라고 불립니다.)
모든 Ark-to-Ark 결제는 즉각적이고 수수료가 낮으며 전적으로 오프체인으로 이루어집니다.
온체인 입금을 통해 Ark에 접근하는 방법은 무엇입니까?
이 예시에서 앨리스는 자신의 온체인 UTXO(그림에서 "앨리스 입력 utxo"로 표시)를 사용하여 자금 조달 거래를 생성합니다. 이 거래는 앨리스와 대상 아크의 서비스 제공자(AS)가 언제든지 사용할 수 있으며, 30일 후에는 AS만 사용할 수 있습니다. 자금 조달 거래에 서명하고 브로드캐스트하기 전에, 앨리스와 AS는 브로드캐스트되지 않는 "퇴장 가상 거래"에 공동으로 서명합니다. 이 퇴장 거래는 자금 조달 거래의 출력("출력 UTXO")을 사용하며, 출력은 양측 모두 언제든지 사용할 수 있으며, 퇴장 거래가 블록에서 확인된 후 다음 날 앨리스만 사용할 수 있습니다. 이 메커니즘을 통해 앨리스는 아크 가입 후 30일 이내에 아크에서 일방적으로 퇴장할 수 있습니다.
이러한 비방송 거래에는 모두 추가 앵커 출력이 포함되어 있으며, 이를 통해 CPFP(자녀가 부모에게 지불) 방식을 통해 추가 거래 수수료를 부과할 수 있습니다. 편의상 위 그림에서는 이 앵커 출력이 생략되었습니다.
그런데 AS는 30일의 절대 지연 후 자금 조달 거래에서 자금을 독립적으로 인출할 수 있는 반면, Alibe는 1일의 상대 지연을 거쳐야 출구 거래에서 자금을 일방적으로 인출할 수 있는 이유는 무엇일까요? 이러한 거래에서 CPFP가 유일한 수수료 지불 방식인 이유는 무엇일까요? 이에 대해서는 나중에 설명하겠습니다.
Ark 프로토콜에서는 브로드캐스트되지 않은 거래와 UTXO를 각각 "가상 거래"와 "VTXO(가상 UTXO)"라고 부릅니다.
(번역자 주: 보시다시피, 저자마다 "VTXO"에 대한 정의가 약간씩 다르지만 핵심 의미는 같습니다.)
Ark 프로토콜은 Schnorr 기반 Taproot 스크립트를 사용하여 이러한 지출 조건을 적용합니다. Alice+AS 다중 서명 메커니즘은 N-of-N MuSig2 다자간 계산 프로토콜을 따르며, 궁극적으로 단일 집계 공개 키와 단일 집계 서명을 생성합니다.
Ark Payment를 통해 Ark에 접속하려면 어떻게 해야 하나요?
이 시나리오에서 앨리스는 자신의 VTXO("alice vtxo")를 사용하여 밥에게 10만 사토시(노란색 "bob vtxo" 참조)를 지불합니다. 앨리스는 AS와 계약을 맺고 "Alice+AS" 지출 조건을 해제합니다. 앨리스는 잔돈으로 90만 사토시("alice change vtxo")를 받습니다. 밥의 VTXO에 있는 지출 조건은 앨리스의 VTXO와 동일합니다(단, 앨리스의 공개 키 대신 밥의 공개 키를 사용한다는 점만 다릅니다). 앨리스의 잔돈 VTXO("alice change vtxo")는 앨리스의 원래 VTXO와 동일한 지출 조건을 유지합니다.
이제 밥은 앨리스처럼 자신의 VTXO를 사용하여 아크(Ark) 결제를 시작할 수 있습니다. 그러나 밥의 VTXO는 이중 지불 리스크 수반합니다. 결제가 오프체인(Off-chain)에서 이루어지기 때문에 이러한 거래는 블록체인에서 확인되지 않고 블록체인이 제공하는 이중 지불 보호 기능도 제공되지 않습니다. AS와 앨리스는 공모하여 앨리스의 원래 VTXO를 다른 곳에서 다시 사용하여 밥이 모르게 VTXO를 무효화할 수 있습니다. 그러나 앨리스의 잔돈 VTXO는 이러한 리스크 수반하지 않습니다. 앨리스는 스스로를 속일 이유가 없기 때문입니다.
앨리스와 AS가 정직하게 행동하면(이 지불과 충돌하는 거래에 서명하거나 브로드캐스팅하지 않으면), 밥은 자신의 "지불 가상 거래"와 해당 가상 거래의 종료를 브로드캐스팅하여 일방적으로 아크를 종료할 수 있습니다. 밥은 CPFP를 사용하여 이 두 거래에 대한 블록 확인 수수료를 지불해야 합니다.
이중 지출 리스크 있는 VTXO는 노란색으로 표시되고, 그러한 리스크 없는 VTXO는 녹색으로 표시됩니다.
Ark Payments에 대해 자세히 살펴보기
보시다시피, 앨리스가 밥에게 지불할 수 있는 것처럼 아크 사용자들은 서로에게 지불할 수 있습니다. 그러나 이중 지불 리스크 있는 VTXO에서 생성된 모든 새로운 VTXO는 동일한 리스크 수반합니다. 실제로 이 VTXO 체인의 이전 VTXO가 AS와 공모하여 최신 VTXO 보유자에게 해를 끼칠 수 있기 때문에 이 리스크 더욱 커집니다. 변경 VTXO(또는 자체 지불 VTXO)는 원래 종료 VTXO(예: 앨리스의 종료 VTXO)에서 파생되며, 동일한 사용자가 입력과 출력을 모두 제어하기 때문에 이러한 리스크 없다고 볼 수 있습니다. 따라서 충돌하는 거래를 생성(담합에 가담)할 유인이 없습니다.
더욱이, 긴 결제 거래 체인에서 생성된 VTXO는 일방적으로 종료될 때 더 높은 블록체인 확인 수수료를 부담하게 됩니다. 이는 사용자가 체인 내 모든 거래(최초 종료 거래부터 시작)에 대해 수수료를 지불해야 하기 때문입니다.
이후 장에서는 긴 체인 VTXO의 이중 지출 리스크 과 높은 일방적 종료 비용을 완화하는 방법에 대해 논의하겠습니다.
Ark 결제는 보내는 사람과 AS만 서명하는 완전히 오프체인 거래이므로 즉시 처리되고 블록 확인 수수료가 없습니다.
Ark 프로토콜은 온보딩과 결제에 어떻게 확장되나요?
앨리스처럼 모든 사용자는 자신의 온체인 자금을 사용하여 아크에 참여할 수 있습니다. 위 그림에서 웬디도 비슷한 방식으로 아크에 참여합니다. 편의상 사용 가능한 VTXO만 표시했습니다.
온체인 거래 처리량은 비트코인의 블록 공간에 의해 제한됩니다. 반면, Ark 결제는 완전히 오프체인에서 이루어지며 블록 공간 제약을 받지 않습니다. 처리량은 전적으로 Ark 서비스 제공업체의 거래 처리 및 조정 능력에 달려 있습니다.
협력적 출구
"협동적 출구"란 무엇입니까?
협력적 출구(Cooperative Exit)에서 사용자는 AS에 VTXO를 온체인 UTXO로 교환하고 싶다는 의사를 표시합니다. 사용자는 VTXO 잔액 AS가 관리하는 주소로 이체하고, AS는 동시에 동일한 금액의 온체인 자금을 사용자가 관리하는 주소로 이체합니다. 이 교환은 원자적으로 이루어지므로 공정성이 보장됩니다.
위 그림에서 볼 수 있듯이, 밥과 웬디는 모두 협력하여 아크(Ark)에서 나가기를 원합니다. AS는 "배치 트랜잭션"이라는 트랜잭션을 생성하여 AS의 온체인 자금을 두 사용자에게 이체합니다. 동시에, 각 사용자는 AS가 관리하는 주소로 VTXO 잔액 이체하는 "포핏 트랜잭션"을 준비합니다.
이 단계에서는 세 가지 거래 중 어느 것도 서명되지 않습니다. AS와 사용자 모두 상대방에게 잔액 먼저 이체하는 것을 원하지 않기 때문입니다. 이 경우 상대방이 해당 거래에 서명하기를 거부할 수 있는 상대방 리스크 발생할 수 있습니다. 공정한 이탈을 보장하기 위해서는 이러한 거래에 원자적으로 서명하고 VTXO와 UTXO의 공정한 교환을 보장하는 메커니즘이 필요합니다.
여기서 아이디어는 중단된 거래가 일괄 처리된 거래가 지출 가능해진 후에만 지출될 수 있다면 교환은 원자적이라는 것입니다.
위 그림에서 볼 수 있듯이, 일괄 처리된 거래("커넥터"라고 함)의 출력을 포기 거래의 입력으로 사용할 경우, 포기 거래는 일괄 처리된 거래가 서명되고 확인된 후에만 사용될 수 있습니다. 커넥터 출력의 값은 중요하지 않습니다. 출력 값이 먼지 양을 초과하는 한, 포기 거래는 일괄 처리된 거래가 확인된 후에만 확인될 수 있습니다.
이제 서명 순서의 중요성이 부각됩니다. 사용자는 먼저 자신의 포기 거래에 서명해야 합니다. 이 단계는 사용자에게 절대적으로 안전합니다. AS가 일괄 처리된 거래에 서명하지 않는 한 포기 거래가 적용되지 않기 때문입니다.
사용자로부터 포기 거래를 수신한 후, AS는 처리된 거래의 일괄 서명 및 브로드캐스트 프로세스를 완료하여 블록 확인을 받습니다.
VTXO에 "사용자는 1일 후에만 자금을 인출할 수 있습니다"라는 조항을 추가하는 이유는 무엇입니까?
웬디가 Ark 서비스 제공자를 속이려고 시도하는 경우, 즉 포기 거래에 서명하고 일괄 거래에서 자금을 받은 후 일방적으로 종료를 시도하고 (이미 포기된) VTXO의 가치를 수령하다 시도하는 경우, AS는 포기 거래를 브로드캐스트하고 웬디를 차단할 수 있습니다.
이는 VTXO에 하루의 상대적 시간 잠금을 추가하는 목적입니다. 이러한 지연은 AS가 포기 거래를 브로드캐스트하고 확인할 충분한 시간을 제공합니다. 웬디가 이미 서명한 이 거래는 웬디+AS 조건을 해제하므로 시간 잠금의 적용을 받지 않습니다. 시간 잠금을 통해 AS는 웬디보다 먼저 VTXO에서 자금을 인출할 수 있습니다.
이러한 상대적 시간 잠금의 길이는 서비스 제공자가 구성할 수 있습니다.
커넥터 출력이 상당히 커질 수 있는데, 이를 최적화할 방법이 있나요?
위 다이어그램에서 배치 트랜잭션의 커넥터 출력 수는 협력적 종료에 사용하는 VTXO 수와 같습니다. 배치 트랜잭션은 블록 확인이 필요하므로, 커넥터 출력 수가 증가함에 따라 출력 크기도 증가하고 블록 확인 수수료도 상승.
여기서 "커넥터 tx"라는 버퍼 트랜잭션을 추가합니다. 이를 통해 일괄 처리된 트랜잭션은 모든 중단된 트랜잭션을 처리할 수 있는 충분한 커넥터를 생성하기 위해 단 하나의 커넥터 출력만 준비할 수 있습니다. 이렇게 하면 (배치된 트랜잭션에서) 중단된 각 트랜잭션에 대해 커넥터 출력을 준비할 필요가 없어지고, 커넥터 출력 개수의 선형적인 증가를 단일 출력으로 대체하여 일괄 처리된 트랜잭션의 크기와 확인 비용을 크게 줄일 수 있습니다.
이상적으로, VTXO에 대한 더미 트랜잭션과 포기 및 커넥터 트랜잭션은 온체인 에 브로드캐스트되지 않습니다. 이는 사용자가 사기 행위를 시도하는 경우에만 배포되는 예비 조치입니다(이 경우, 사용자는 전체 더미 트랜잭션과 포기된 VTXO를 브로드캐스트하고, AS는 커넥터 및 포기 트랜잭션을 브로드캐스트합니다).
하지만 사용자가 양도된 VTXO를 브로드캐스트하여 AS에 DoS(서비스 거부) 공격을 시도하는 것을 막는 것은 무엇일까요? 모든 가상 거래는 수수료 지불을 위해 CPFP에 의존하고 자체적으로는 수수료가 발생하지 않기 때문에 사기를 시도하는 사용자는 전체 거래 체인에 대한 수수료를 지불해야 합니다. 사용자가 이를 수락하더라도 AS는 사전 서명된 양도 트랜잭션을 사용하여 양도된 VTXO에서 자금을 선제적으로 인출할 수 있습니다. 이는 이러한 공격에 많은 비용과 무의미함을 초래하여 사용자의 사기 시도를 효과적으로 억제합니다.
그러면 왜 "AS는 30일의 절대적 지연 후에 돈을 인출할 수 있다"는 조건을 출력 UTXO에 추가할까요?
실제로 Ark 서비스 제공자(AS)의 모든 사용자 그룹은 언제든지 협력적 종료를 요청할 수 있습니다.
자금 조달 거래 출력에서 생성된 VTXO는 해당 출력에서 직간접적으로 파생되어 다층적이고 상호 연결된 거래 구조를 형성합니다. 즉, 여러 사용자가 자금 조달 거래에서 동일한 온체인 UTXO를 효과적으로 공유하게 됩니다.
그러나 AS는 한 사용자가 협력적 종료를 요청할 때 동일한 상위 트랜잭션을 공유하는 다른 모든 사용자를 강제로 종료할 수 없습니다. 그렇게 하면 사용자 경험이 저하될 뿐만 아니라, 협력적 종료 프로세스 중에 일부 사용자가 오프라인 상태이거나 응답하지 않을 수 있으므로 비현실적입니다.
AS는 다른 사용자를 방해하지 않고 일부 사용자의 종료 요청을 처리하기 위해 자체 온체인 자금을 일시적으로 사용하여 일괄적으로 협력하여 종료하려는 사용자를 지원합니다.
하지만 AS가 사용자에게 서비스를 제공하기 위해 일괄 처리된 트랜잭션에 자금을 투입한 후, 사용자가 포기한 VTXO에서 어떻게 자금을 회수할 수 있을까요? 한 가지 방법은 포기 트랜잭션을 브로드캐스트하는 것입니다. 그러나 이 경우 동일한 상위 트랜잭션을 공유하는 관련 없는 여러 VTXO가 인출됩니다. 더 나아가, 이러한 접근 방식은 불필요한 트랜잭션 확인 비용과 지연을 초래하여 Ark의 오프체인 설계의 원래 의도에서 크게 벗어나게 됩니다.
동시에, AS는 자금 조달 거래에 참여한 모든 사용자가 협력하여 거래를 종료할 때까지 제공하는 유동성을 영구적으로 고정할 수 없습니다. 이는 비용이 너무 많이 들 것입니다. 그렇게 하면 AS에 감당할 수 없는 부담이 가중되고 이러한 시스템은 확장 불가능해질 것입니다.
더 실용적인 접근 방식은 자금 조달 거래를 공유하는 모든 사용자에게 마감일을 부여하고, 그 전에 협력적 퇴장을 요청하도록 하는 것입니다. 하지만 이를 어떻게 달성할 수 있을까요?
바로 이 부분에서 "30일 절대 지연 후 AS 출금" 정책이 적용됩니다. 30일 절대 지연 후 AS는 UTXO를 독립적으로 사용할 수 있습니다. 이 기간 동안 사용자는 언제든지 협력적 출금을 요청할 수 있습니다. 하지만 사용자가 이 기간 내에 출금하지 못하면, 출금 거래에 명시적으로 서명했는지 여부와 관계없이 AS가 사용자의 VTXO를 가져갑니다.
이 메커니즘을 통해 AS는 예측 가능한 프레임 내에 유동성을 재순환하고 효율적으로 운영을 지속할 수 있습니다. 이 만료 기간은 서비스 제공업체가 설정할 수도 있습니다.
단점은 마감일 전에 조치를 취하지 않는 사용자는 VTXO 잔액 잃게 된다는 것입니다(AS에서 가져감).
세 가지 당혹스러운 질문
우리는 Ark 프로토콜을 비실용적이거나 매력적이지 않게 만들 수 있는 세 가지 난처한 문제를 파악했습니다.
- Ark 지불에서 생성된 VTXO와 관련된 이중 지출 리스크
- 30일 기한 전에 출금하지 않으면 VTXO 잔액 잃을 리스크 .
- 특히 VTXO가 긴 가상 거래 체인의 끝에 있는 사용자의 경우 일방적 인출의 어려움과 높은 비용
Ark 프로토콜은 이러한 문제를 어떻게 해결할 수 있나요?
다행히도 세 가지 문제는 모두 하나의 솔루션으로 해결할 수 있습니다. AS는 영향을 받은 VTXO를 회수하고 관련 사용자에게 새로 고침된 종료 가상 트랜잭션 VTXO를 발행합니다.
이러한 문제는 협력적 종료 프로세스와 유사한 트랜잭션 배칭을 사용하여 해결할 수 있습니다. 하지만 AS는 각 사용자별로 온체인 UTXO를 조정하는 대신, 새로운 종료 가상 트랜잭션에서 각 사용자에게 새로운 VTXO를 발급합니다. 이 새로운 VTXO는 이중 지불 리스크 없고, 긴 가상 트랜잭션 체인의 끝에 있지 않으며, 만료일이 현재로부터 30일 후로 재설정되므로 더욱 안전합니다.
위의 예에서 데이브는 이중 지불 리스크 있는 기존 VTXO를 새롭고 리스크 VTXO로 원자적으로 교환했습니다. 일괄 처리된 트랜잭션을 사용하여 협력적 종료(온체인 UTXO 획득)를 수행하는 대신, 그는 가상 종료 트랜잭션을 통해 안전하게 새 VTXO를 획득했습니다.
자세히 살펴보면 위의 배치 트랜잭션의 첫 번째 출력에 대한 지출 조건이 앞서 언급한 자금 조달 트랜잭션의 지출 조건과 동일하다는 것을 알 수 있습니다.Dave의 출구 가상 트랜잭션에도 여러 트랜잭션이 포함됩니다.주요 차이점은 자금 출처에 있습니다.위에서 언급한 자금 조달 트랜잭션의 자금은 사용자 자신의 UTXO에서 나오는 반면, 여기의 배치 트랜잭션의 자금은 AS 자신의 UTXO에서 나옵니다.왜 그럴까요?이유는 AS가 협력적 출구에 자금을 공급하는 경우와 같습니다.사용자가 이전 VTXO를 새 VTXO로 교환할 수 있도록 일시적으로 자체 자금을 주입합니다.이전 VTXO가 만료되면 AS는 협력적 출구와 마찬가지로 자금을 한 번에 회수할 수 있습니다.
이 새로운 VTXO의 만료일이 다가오면 사용자는 동일한 절차에 따라 다시 스왑을 수행해야 합니다. 이렇게 하면 AS가 만료된 VTXO를 압류하는 것을 방지할 수 있습니다. AS가 만료된 VTXO를 (명시적으로 반납하지 않고) 스윕하면 사용자는 사실상 AS에 자금을 넘기는 셈입니다. Ark 프로토콜은 스윕된 VTXO의 가치가 사용자에게 반환될 것이라고 보장하지 않습니다. 그러나 실제로 AS는 사용자가 인터넷에 복귀할 때 동일한 가치의 새 VTXO를 사용자에게 발급할 수 있습니다.
이러한 주기적인 스왑에는 당연히 수수료가 발생합니다. 거래 일괄 처리에는 블록 확인이 필요하기 때문입니다. 하지만 각 사용자는 블록 확인 수수료의 일부만 지불하면 되므로 일반적으로 수수료는 낮습니다.
Ark 프로토콜은 VTXO 스왑의 처리량을 어떻게 확장합니까?
이 설계의 주요 장점은 확장성입니다. 위의 예에서 Carol과 Dave는 이중 지출 리스크 있는 VTXO를 퇴장 더미 트랜잭션의 새로운 VTXO로 교환합니다. 단일 배치 트랜잭션은 출력의 다중 서명 지출 조건에 사용자의 공개 키를 추가하고 더 많은 퇴장 더미 트랜잭션과 VTXO를 생성하는 것만으로 수천 명의 사용자를 지원할 수 있습니다. 주요 병목 현상은 AS와 모든 참여 사용자 간의 상호 작용 서명 프로세스에 있습니다.
일괄 거래 및 가상 거래 종료에 대한 세부 정보
AS가 트랜잭션 배치를 생성하는 빈도
일반적으로 AS는 1시간에 한 번 등 일정한 간격으로 새로운 거래 배치를 생성합니다. 기존 VTXO를 제로 리스크 신규 VTXO로 교환하거나 공동으로 출금하려는 사용자는 AS에 의사를 등록할 수 있으며, AS는 사용자의 지갑 소프트웨어와 거래를 조정합니다. 이 간격은 AS에서 직접 결정합니다. 수요가 많은 기간에는 AS가 필요에 따라 추가 배치를 생성할 수 있습니다.
가상거래 종료에는 몇 가지 문제가 있습니다.
기본적인 가상 거래 종료 구조에서는 한 사용자가 일방적으로 종료하면 같은 배치에 속한 다른 모든 사용자도 강제로 종료됩니다. 이로 인해 오프체인 처리 시설의 연속성이 깨지고, 예상치 못한 수수료와 지연이 발생하며, 모든 사용자가 시장에 다시 진입해야 합니다.
또한, 일방적인 종료에 대한 블록 확인 수수료는 동일한 배치 내 VTXO 수에 따라 선형적으로 증가합니다. 예를 들어, 배치에 1,000개의 VTXO가 포함된 경우, 배치를 종료하는 사용자는 1,000개의 출력 모두에 대한 블록 확인 수수료를 지불해야 하므로 일방적인 종료는 매우 비쌉니다.
이 문제를 어떻게 해결하나요?
단일 종료 가상 트랜잭션이 모든 VTXO를 전달하는 대신, 이진 트리 형태의 종료 가상 트랜잭션 구조를 사용할 수 있습니다. 위 그림에서 볼 수 있듯이, 이 구조에서 캐럴이 (동일 배치의 다른 참여자들보다 먼저) 일방적으로 종료하려면 일련의 가상 트랜잭션을 순서대로 브로드캐스트해야 합니다. 먼저 전체 배치를 앵커링하는 "루트 가상 트랜잭션"이 실행되고, 그 다음에는 캐럴의 VTXO가 있는 곳으로 연결되는 왼쪽의 "분기 가상 트랜잭션"이 실행되며, 마지막으로 캐럴 자신의 "종료 가상 트랜잭션"이 실행됩니다.
결과적으로 데이브도 일방적으로 종료하고 싶어한다면, 그와 캐럴이 우연히 같은 트리 분기에 있기 때문에, 그는 자신의 종료 가상 트랜잭션만 브로드캐스트하면 됩니다. 왜냐하면 트리에서 이 트랜잭션의 조상 트랜잭션(루트 가상 트랜잭션과 분기 가상 트랜잭션)은 캐럴이 일방적으로 종료하는 동안 블록에 의해 이미 확인되었기 때문입니다.
트리 구조 가상 거래 종료 설계는 기본 설계에 비해 여러 가지 장점을 제공합니다. 기본 설계에서는 한 사용자가 일방적으로 종료하면 같은 배치에 속한 다른 모든 사용자도 강제로 종료됩니다. 트리 구조 설계에서는 일방적으로 종료를 시도하지 않는 사용자는 다른 사용자의 종료에 영향을 받지 않으므로, 강제 종료를 방지하는 동시에 오프체인 결제의 사용자 경험을 유지할 수 있습니다.
따라서 일방적 종료 시 발생하는 블록 확인 수수료 부담이 크게 줄어듭니다. 트리 구조 설계에서 블록 확인 수수료는 더 이상 VTXO 수에 따라 선형적으로 증가하지 않고, VTXO 수에 따라 대수적으로 증가하며(트리의 깊이에 따라 선형적으로 증가), 일방적 종료가 더욱 경제적이 됩니다. 나중에 작업을 시작하는 사용자는 자신의 하위 브랜치와 리프 트랜잭션만 브로드캐스트하면 되므로 개별 블록 확인 수수료를 최소화할 수 있어 더욱 큰 이점을 얻을 수 있습니다.
트리 구조는 확장성을 향상시켜 단일 배치가 더 많은 VTXO를 수용할 수 있도록 합니다. 하지만 트리의 깊이가 깊어질수록 상호작용 시그니처의 수가 증가하고 참여자 간의 협력이 더 많이 요구된다는 단점이 있습니다.
사용자가 일방적으로 종료를 선택하면 루트에서 리프까지 전체 경로에 걸쳐 모든 연결(모든 트랜잭션)을 브로드캐스트해야 하므로, 이 과정은 매우 시간과 노력이 많이 소요됩니다. 그러나 루트 및 브랜치 트랜잭션(출력)은 일괄 처리 트랜잭션과 동일한 스크립팅 규칙과 만료 조건을 사용합니다. 주요 차이점은 이러한 트랜잭션은 서명 후 즉시 블록체인 네트워크에 브로드캐스트되지 않고 필요할 때만 브로드캐스트된다는 것입니다.
마지막으로, 사용자가 일방적으로 종료하는 경우 AS가 나중에 남아 있는 VTXO의 값을 지워야 할 때 해당 지점 트랜잭션을 브로드캐스트하고 확인해야 합니다(단순히 일괄 처리 트랜잭션을 사용하여 클리어링을 완료하는 대신).
- - -
자세한 내용은 다음 자료를 참조하세요.
이 기사를 검토해 주신 tiero 에게 특별히 감사드립니다.
(위에)