첫 번째 레벨 제목
탭루트란?
탭루트는 2018년 비트코인 코어 기여자 그레고리 맥스웰(Gregory Maxwell)이 처음 제안했습니다. 이 구현은 현재 개발 중입니다. Taproot가 없으면 이러한 복잡한 트랜잭션(시간 잠금, 다중 서명)을 완료하려면 여러 트랜잭션이 필요하므로 쉽게 실패합니다.
Taproot는 복잡한 트랜잭션(다중 서명, 타임록)을 마치 단일 비트코인 트랜잭션처럼 실행할 수 있도록 하여 비트코인의 프라이버시를 강화합니다.
Taproot 업그레이드에는 Bitcoin의 확장성, 개인 정보 보호 및 유연성을 향상시키기 위한 세 가지 중요한 기술적 변경 사항(개념)이 포함됩니다.
슈노르 서명
MAST
슈노르 서명
첫 번째 레벨 제목
P2SH(Pay-to-ScriptHash)
비트코인 주소는 문자와 숫자의 문자열입니다. 사용자는 후자로부터 BTC를 받기 위해 다른 사람과 공유할 수 있습니다. 비트코인 거래에는 P2PKH(Pay-to-PubKeyHash)와 P2SH(Pay-to-ScriptHash)라는 두 가지 주요 표준이 있습니다.
P2SH(Pay To Script Hash) 및 P2PKH(Pay-To-PubKey Hash)의 두 가지 개념을 논의하기 전에 Bitcoin에 대한 배경 지식에 익숙해지도록 합시다.
비트코인 네트워크에서 비트코인은 UTXO 형태입니다. UTXO는 Unspent Transaction(TX) Output(unspent transaction output)의 약자, 즉 비트코인 트랜잭션 실행 후 형성되는 변수 단위의 단위이다. 예를 들어 비트코인 지갑에 10 BTC가 있고 5 BTC를 친구에게 전송하려고 합니다. Bitcoin 블록 체인은 다르게 처리됩니다. 10 BTC(전체 잔액)를 모두 사용하고 5 BTC를 친구 지갑으로 전송하고 나머지 5 BTC(10 BTC - 5 BTC = 5 BTC)를 자신의 지갑으로 전송합니다. 이제 귀하와 귀하의 친구는 각각 사용하지 않은 5 BTC를 보유하고 있습니다.
비트코인은 스크립트(몇 줄의 코드)를 사용하여 BTC/UTXO 사용 조건을 지정합니다. 스크립트는 잠금 메커니즘으로 사용됩니다.
BTC가 스크립트에 잠겼습니다. 스크립트가 성공을 반환하면(즉, 조건이 충족되면) BTC가 잠금 해제됩니다.
누구나 BTC를 모든 비트코인 주소로 보낼 수 있습니다. 스크립트에 정의된 특정 조건이 충족되어야 잠긴 BTC를 사용할 수 있습니다. 스크립트는 받는 사람이 받은 BTC를 사용할 수 있는 방법을 결정합니다. 거래를 시작할 때 발신인은"PubKey 스크립트(일명 잠금 스크립트)"스크립트. 받는 사람(나중에 지출할 때)은"서명 스크립트(일명 잠금 해제 스크립트)", PubKey 스크립트를 충족하는 데이터 매개변수 모음입니다. 서명 스크립트는 코드에서 "scriptSig"라고도 합니다.
첫 번째 레벨 제목
Pay-to-PubKeyHash (P2PKH)
Pay-to-PubKeyHash는 전통적인 비트코인 주소 형식입니다. 주소는 숫자 1로 시작합니다.
P2PKH 주소의 소유자만이 공개 키 해시와 개인 키 서명을 제공하여 PubKey 스크립트를 잠금 해제하고 받은 BTC를 사용할 수 있습니다. 개인 키는 공개 키 해시의 소유권을 증명하는 데 사용됩니다.
위에서 논의한 것처럼 스크립트는 특정 주소의 BTC를 사용할 수 있는 조건을 정의합니다. 지정된 조건이 충족되고 네트워크에서 확인되면 해당 주소의 BTC가 지출을 위해 잠금 해제됩니다.
이 프로세스는 어떻게 작동합니까? —— 수신자는 먼저 PubKey 스크립트를 생성하여 발신자와 공유합니다. 보낸 사람은 BTC를 보낼 때 이 PubKey 스크립트를 트랜잭션에 추가합니다. BTC를 받을 때 받는 사람이 이러한 BTC UTXO를 잠금 해제하려면 공개 키 해시와 개인 키 서명을 제공하고 PubKey 스크립트에 언급된 조건을 충족해야 합니다.
예를 들어 이러한 조건은 다음과 같습니다.
BTC를 잠금 해제하려면 최소 2개의 서명이 필요합니다.
잠금을 해제하려면 비밀번호(비밀번호)를 입력하세요.
BTC가 잠금 해제되는 데 시간이 걸립니다.
위의 상황을 BTC 잠금 해제 조건으로 사용할 수 있습니다.
비트코인을 보낼 때 보내는 사람은 트랜잭션에 포함해야 합니다.공개키 스크립트. 따라서 이는 거래량을 증가시켜 일반 거래보다 약 5배 높은 거래 수수료를 발생시킨다.
첫 번째 레벨 제목
Pay-to-ScriptHash (P2SH)
P2SH(Pay To Script Hash)는 발신자가 추가 비용을 피하고 잠금 스크립트에 지정된 조건을 실제로 사용해야 하는 수신자에게 이 책임(추가 비용)을 전가하는 데 도움이 될 수 있습니다. Pay-to-ScriptHash 비트코인 주소는 숫자 3으로 시작합니다.
이 트랜잭션 표준에 따라 발신자는 긴 PubKey 스크립트를 트랜잭션에 넣을 필요가 없습니다. 여기에서 잠금 스크립트는 사용 스크립트의 해시로 대체됩니다. 상환 스크립트 해시 값은 상환 스크립트에 의해 계산됩니다. 상환 스크립트는 PubKey 스크립트와 유사하며 사용되지 않은 출력을 소비하기 전에 수신자가 충족해야 하는 조건을 포함합니다. 발신자는 거래에서 상환 스크립트의 해시만 나타내면 됩니다. 교환 스크립트 해시는 표준 비트코인 주소로 변환될 수 있으며 발신자는 특별한 조치나 추가 수수료 없이 이 주소로 BTC를 보낼 수 있습니다.
수신자가 이 P2SH 주소에서 BTC를 잠금 해제하려면 동일한 해시 값으로 상환 스크립트를 생성하고 트랜잭션에 포함해야 합니다. 결과적으로 수신자가 UTXO를 잠금 해제하는 데 사용하는 트랜잭션의 크기가 증가하고 트랜잭션 실행 비용도 증가합니다.
예를 들어 Alice는 Bob에게 10 BTC를 보내려고 합니다. 앨리스는 거래에 스크립트 해시를 포함해야 합니다. 먼저 밥 씨는 상환 스크립트를 생성한 다음 상환 스크립트의 해시 값을 앨리스에게 전송하여 앨리스가 트랜잭션에 해시를 추가하고 트랜잭션을 시작할 수 있도록 합니다. Bob이 이 UTXO를 사용하려면 동일한 해시 값으로 잠금 해제 스크립트를 생성하고 스크립트에 언급된 조건을 충족해야 합니다.
텍스트
Pay-to-ScriptHash의 장점
긴 스크립트 대신 해시를 사용하십시오.
발신자는 스크립트에 지정된 지출 조건을 모른 채 거래에 상환 스크립트 해시를 얼마든지 넣을 수 있습니다.
첫 번째 레벨 제목
(……)
MAST(머클 추상 구문 트리)
MAST는Merklized Abstract Syntax Tree(메르켈 추상 구문 트리)의 약어.
MAST를 사용하는 이유 P2SH 주소에서 BTC를 사용하려면 동일한 해시로 교환 스크립트를 생성하고 트랜잭션에 포함해야 합니다. 스크립트에 명시된 지출 조건이 너무 많으면 거래량이 매우 커집니다. MAST는 이 문제를 아주 잘 해결할 수 있습니다.
Merkle 추상 구문 트리는 Merkle 트리와 추상 구문 트리의 조합입니다.
P2SH(Pay To Script Hash)가 X 해시로 스크립트에 지불하는 것처럼 MAST는 X 해시로 Merkle 루트에 지불합니다. MAST는 큰 조건 집합의 각 조건을 해시 트리(소위 Merkle 트리)로 조립하는 것이며 Merkle 트리의 루트 값은 모든 조건에 의해 해시된 해시 값입니다.
Merkle 루트와 해시 트리는 어떻게 생성됩니까?
먼저 모든 스크립트(조건)에 대해 해시 계산을 수행한 다음 계산된 해시 값을 해시 계산을 위해 인접한 해시 값과 결합하여 새로운 해시 값 세트를 생성합니다. 마지막 해시 값이 계산될 때까지 이 2x2 해시 계산 프로세스를 반복합니다. 이 해시는 Merkle 루트입니다.
네 가지 조건 집합이 있다고 가정합니다. 먼저 이 네 가지 조건 그룹의 해시 값을 개별적으로 계산한 다음 이 네 가지 해시 값을 쌍으로 쌍으로 두 개의 해시 값을 계산하고 마지막으로 이 두 해시 값을 결합하여 해시 계산을 수행하고 최종 해시 값을 생성합니다. . 이 최종 해시는 Merkle 루트입니다.
이 머클 루트는 지불을 받을 수 있는 유효한 비트코인 주소로 변환될 수 있습니다.Merklized 비트코인 주소. 머클 비트코인 주소는 많은 장점이 있는데, 가장 큰 장점은 스크립트가 이 머클 트리에 있는지 확인하기 위해 모든 스크립트 단위를 알 필요가 없다는 것입니다. 이 기술은머클 증명, Bitcoin UTXO에 특정 잠금 해제 조건이 포함되어 있는지 쉽게 확인하는 데 사용할 수 있습니다.
슈노르 서명
슈노르 서명
암호학에서 Schnorr 서명은 Claus Schnorr가 제안한 Schnorr 서명 알고리즘에 의해 생성된 디지털 서명입니다. Schnorr 서명 알고리즘은 여러 서명을 단일 서명으로 집계하여 확인 및 인증 프로세스를 최적화하는 단순성으로 알려진 디지털 서명 체계입니다. 이 체계는 다중 서명 트랜잭션에 적합합니다.
트랜잭션을 실행하려면 개인 키로 트랜잭션에 서명하여 특정 공개 키 뒤에 있는 BTC의 소유자임을 증명해야 합니다. 그러나 다중 서명 트랜잭션을 수행하려면 다중 서명을 제공해야 합니다. 이러한 서명은 추가 공간을 차지합니다.
슈노르 서명슈노르 서명이 문제를 해결하기 위해 우연히.
Schnorr 서명을 이해하기 위해 두 가지 예를 살펴보겠습니다.
(……)
또 다른 경우는 다중 서명 트랜잭션입니다. 100개의 서명이 필요하고 각 서명의 크기가 5바이트라고 가정하면 Schnorr 서명 체계는 이 100개의 서명을 64바이트 크기의 Schnorr 서명으로 결합할 수 있습니다. 436바이트(5*100-64=436)의 메모리를 절약하면 더 많은 트랜잭션을 저장할 수 있습니다. (참고: 현재 타원 곡선 서명은 5바이트 이상일 수 있습니다.)
첫 번째 레벨 제목
Bitcoin Taproot: 요약
이 기사는 주로 다음 사항을 중심으로 Taproot를 소개합니다.
Taproot는 Bitcoin Core 기여자 Gregory Maxwell이 2018년에 제안한 Bitcoin 업그레이드 제안입니다.
Taproot는 다중 서명 거래 및 시간 잠금 거래와 같은 복잡한 거래를 일반 비트코인 거래처럼 보이게 하여 비트코인의 프라이버시를 강화합니다.
Taproot 업그레이드에는 주로 P2SH, MAST 및 Schnorr 서명의 3가지 기술 개념이 포함됩니다.
비트코인은 스크립트를 사용하여 BTC/UTXO(미사용 트랜잭션 출력)를 사용하기 위한 조건을 나타냅니다.
P2SH(Pay To Script Hash)는 발신자가 추가 거래 수수료를 피하고 이 책임(추가 거래 수수료)을 잠금 스크립트에 명시된 조건을 실제로 사용해야 하는 수신자에게 전가하도록 도울 수 있습니다.
MAST를 사용하면 Merkle Abstract Syntax Tree를 사용하여 비트코인을 잠글 수 있습니다. 머클 트리(머클 루트에 해당)는 미사용 BTC를 잠금 해제할 수 있는 모든 복잡한 조건을 결정합니다. MAST(Merklized Abstract Syntax Trees)는 비트코인 블록체인에 도입되어 BTC 트랜잭션의 크기를 줄여 수신자가 트랜잭션에 긴 스크립트를 첨부할 필요가 없도록 제안되었습니다. Merkle 루트만 사용하면 수신자가 생성한 스크립트가 원래 조건 집합에 속하는지 확인할 수 있습니다.
원본 링크:
원본 링크:
https://b10c.me/blog/004-the-incomplete-history-of-bitcoin-development/
저자: 0xB10C
