저자: Che Kohler 편집: Cointime.com 237
비트코인이 매일 수십억 달러의 거래가 발생하는 수십억 달러 규모의 네트워크로 성장함에 따라 제안된 모든 변경 사항은 당연히 철저한 조사를 받아야 합니다. 사람들이 비트코인에 투자하는 가치, 거래 정산을 통해 창출되는 가치는 코드 변경을 가볍게 다루기에는 너무 중요합니다.
또한 우리는 이전에 사용된 적이 없는 도구를 사용하고 있으며 시장이 어떻게 업데이트를 받을지 모릅니다. 이것은 프로토콜 변경을 매우 복잡한 주제로 만듭니다. 예를 들어 2016년과 2017년 사이에 SegWit2x 제안과 Taproot에 대한 열띤 토론이 있었습니다.
비트코인의 발전과 함께 특히 소프트 포크가 필요한 BIP(Bitcoin Improvement Proposal)를 추진하기가 점점 더 어려워지고 있습니다. 예를 들어 SIGHASH_ANYPREVOUT 및 그 이전 항목은 2016년부터 논의되었습니다.
비트코인 코드 기반의 강성으로 인해 잘 테스트된 아이디어만 전달되고 다른 아이디어는 기본 체인을 끌어내리는 대신 레이어 2 솔루션으로 푸시됩니다.
그러나 이것이 향후 비트코인 업그레이드에 대한 제안을 볼 수 없거나 비트코인 코어의 업데이트된 버전으로 코드베이스에 병합되지 않는다는 의미는 아닙니다.
이제 업그레이드에 대해 알았으니 BIP-118을 살펴보고 오랫동안 사용된 이유를 살펴보겠습니다.
ANYPREVOUT이란 무엇입니까?
간단한 계약과 더 나은 오프체인 프로토콜에 대한 관심과 수요를 감안할 때 BIP118은 비트코인에 도움이 되고 확장 방향에 맞는 소프트 포크 후보입니다.
BIP 118은 원래 2017년에 작성되었으며 당시 SIGHASH_NOINPUT로 알려졌습니다. 이 제안은 원래 Lightning Network 백서(Joseph Poon 및 Thaddeus Dryja)의 저자가 "트랜잭션 변조 가능성"으로 알려진 문제를 해결하기 위해 제안했으며 나중에 SegWit에서 해결했습니다.
BIP-118은 SIGHASH_ANYPREVOUTANYSCRIPT(APOAS)의 경우 트랜잭션이 특정 이전 트랜잭션 출력뿐만 아니라 동일한 서명 키를 사용하는 모든 트랜잭션 출력을 소비하거나 특정 금액의 트랜잭션을 소비하고 스크립트 SIGHASH_ANYPREVOUT(APO)의 경우 출력.
새로운 공개 키 유형 접두사를 참조하는 Taproot 트랜잭션에 대한 Taproot 스크립트 경로 지출만 이 두 서명 해시를 사용하도록 활성화됩니다.
ANYPREVOUT은 하나의 서명을 사용하여 동일한 스크립트로 사용되지 않은 트랜잭션 출력(UTXO)을 사용할 수 있는 서명 해시태그입니다. 이것은 서명이 사용되는 UTXO에 특정할 필요가 없다는 것을 의미하며, 이는 경우에 따라 매우 유용할 수 있습니다.
즉, ANYPREVOUT은 이전 트랜잭션과 관련된 정보의 일부에 서명하지 않도록 허용합니다. 이러한 유형의 서명 해시마크가 있는 트랜잭션은 과거 트랜잭션과 연결되지 않으며 동일한 공개 키(또는 지출 조건)를 가진 모든 비트코인 주소에서 비트코인을 사용할 수 있습니다.
즉, ANYPREVOUT은 이전 트랜잭션과 관련된 정보의 일부에 서명하지 않도록 허용합니다. 이러한 유형의 서명 해시마크가 있는 트랜잭션은 과거 트랜잭션과 연결되지 않으며 동일한 공개 키(또는 지출 조건)를 가진 모든 비트코인 주소에서 비트코인을 사용할 수 있습니다.
ANYPREVOUT 작동 방식
ANYPREVOUT은 입력 scriptPubKey, 시퀀스 번호 및 지출할 출력 금액을 해싱하여 작동합니다. 그런 다음 해당 해시를 사용하여 트랜잭션에 서명합니다.
트랜잭션이 나중에 검증되면 서명이 scriptPubKey 및 시퀀스 번호와 일치하는지 확인합니다. 서명이 유효하면 트랜잭션이 유효한 것으로 간주됩니다.
ANYPREVOUT 사용의 이점
ANYPREVOUT을 사용하면 몇 가지 이점이 있습니다. 첫째, 트랜잭션 생성 프로세스를 단순화합니다.
예를 들어 동일한 스크립트의 여러 UTXO를 사용하는 트랜잭션을 생성한다고 가정합니다. 이 경우 각 UTXO에 개별적으로 서명하는 대신 ANYPREVOUT을 사용하여 전체 트랜잭션에 한 번에 서명할 수 있습니다.
둘째, ANYPREVOUT은 트랜잭션의 프라이버시를 향상시킬 수 있습니다. 일반 서명 해시 토큰을 사용하는 경우 서명은 소비되는 UTXO에 따라 다릅니다. 이는 누군가가 사용 중인 UTXO의 해시를 알고 있으면 서명도 알 수 있음을 의미합니다. 그러나 ANYPREVOUT을 사용하면 서명이 소비되는 UTXO와 독립적이므로 누군가가 거래를 추적하기가 더 어렵습니다.
또 다른 사용 사례는 CHECK TEMPLATE VERIFY 대신 "계약"의 대체 형식입니다. 이러한 계약은 블라인드 상태 체인, 공간 체인과 같은 보다 복잡한 스마트 계약을 활성화하고 보다 안전한 비트코인 금고를 생성하거나 Eltoo를 사용할 수 있습니다.
계약은 트랜잭션이 특정 조건에서만 사용될 수 있도록 하는 방법이며, 이 작은 트릭을 사용하여 트랜잭션 출력에 t+1번째 트랜잭션에 대한 서명을 포함할 수 있습니다.
ANYPREVOUT 사용의 단점
ANYPREVOUT을 사용하면 몇 가지 단점도 있습니다.
첫째, 문제는 트랜잭션이 브로드캐스트되면 이전에 서명된 트랜잭션을 실행 취소하거나 "취소"할 방법이 없다는 것입니다. 새 트랜잭션에 서명하고 누군가가 사용하려고 하는 경우에만 이전 트랜잭션을 업데이트하거나 취소할 수 있는 권한을 부여할 수 있지만 이전 트랜잭션을 되돌릴 수는 없습니다.
둘째, 모든 비트코인 지갑이 ANYPREVOUT을 지원하는 것은 아닙니다. 즉, ANYPREVOUT을 사용하려면 자신의 지갑과 받는 사람의 지갑이 이를 지원하는지 확인해야 합니다.
소프트 포크 및 이전 버전과의 호환성
레거시 소프트웨어는 소프트 포크가 발생해도 수정 없이 계속 작동하며 이러한 기능을 다루기를 원하지 않는 사용자는 계속 정상적으로 사용할 수 있습니다.
BIP 341을 지원하도록 업그레이드되지 않은 노드는 모든 Taproot 감시 프로그램을 누구나 사용할 수 있는 스크립트로 취급합니다.
따라서 노드는 새로운 공개 키 유형의 서명을 완전히 검증하기 위해 업그레이드하는 것이 좋습니다.
업그레이드되지 않은 지갑은 SegWit 버전 0 프로그램, 공개 키 해싱에 대한 기존 결제 및 기타 방법을 사용하여 업그레이드되지 않은 지갑과 업그레이드된 지갑으로 비트코인을 주고받을 수 있습니다.
구현에 따라 업그레이드되지 않은 지갑은 BIP350 Bech32m 주소로의 전송을 지원하고 출력이 비표준으로 간주되기 때문에 트랜잭션 브로드캐스트를 차단하지 않는 경우 SegWit 버전 1 프로그램으로 전송할 수 있습니다.
더 부드러운 온체인 및 오프체인 전환
ANYPREVOUT은 경우에 따라 유용한 기능이며 지금은 인기가 없을 수 있지만 미래에는 확실히 영향을 미칠 것입니다. 더 많은 비트코인 사용자를 끌어들인다면 온체인과 다양한 오프체인 프로토콜 사이의 흐름이 더 부드러워져야 합니다. 그렇지 않으면 확장 솔루션이 그 영향을 완전히 실현할 수 없습니다.
여전히 높은 수수료/경쟁 블록 공간 환경에서 전통적인 온체인 트랜잭션을 사용한다고 가정하면 수수료가 정당화될 때까지 2계층의 폐쇄형 생태계에 갇히거나 온체인과 오프에서 무슨 일이 일어나는지 기다리게 됩니다. -chain 이것은 비트코인에 이상적인 상황이 아닙니다.
모든 댓글