I. 소개
가장 초기이자 가장 안전한 블록체인인 비트코인에서 사용하는 UTxO 계정 모델은 이더리움과 같은 스마트 계약 기능을 지원하기 어렵고 일부 제한된 스크립팅 언어 기반 기능만 지원할 수 있습니다. 따라서 비트코인 탄생 이후 15년 동안 이더리움과 같은 다양한 눈부신 DeFi 프로토콜 및 NFT를 구현하는 데 사용되지 않았으며 주로 P2P 전송 및 가치 저장에 사용됩니다.
2022년 12월 14일 공식 출시된 Ordinals 프로토콜은 모든 것을 바꾸어 놓았습니다. 사용자가 체인에 저장해야 하는 메타데이터를 트랜잭션 입력에 넣고, 순서 이론[^1]을 기반으로 한 일련의 프로그램을 Track에 구현합니다. 그리고 이 "비문"을 기록하십시오. 이러한 "조각"을 통해 얻을 수 있는 것은 이더리움 스마트 계약과 같이 동적으로 실행 가능한 온체인 프로그램이 아닌 정적 메타데이터를 기록하는 것입니다. 이는 또한 "비문"이 자연스럽게 비트코인의 NFT가 되도록 만듭니다. 순서 이론에 기초하여 사람들은 이러한 비문 간의 전송 및 거래를 실현하기 위해 거래를 구성할 수도 있습니다.
이후 2023년 3월 6일 이더리움의 ERC-20 프로토콜에 대응하여 비트코인에서 동종 토큰을 구현하는 데 사용되는 Ordinals 기반의 BRC-20 프로토콜이 제안되었습니다. Ordinals 기반의 프로토콜은 매우 간단합니다.토큰을 발행하고 전송하는 과정은 Json 형식으로 비문에 적혀 있습니다.가장 생생한 비유는 전송 기록이 적힌 종이 조각이며 회계는 세 번째에 맡깁니다. 당.3자 기관이 할게요.


이러한 BRC-20 프로토콜은 다소 폭력적인 미학을 갖고 있으며 다양한 요인에 따른 절충안이기도 합니다. 이전에도 비트코인에 컬러 코인과 같은 동종 토큰이 등장한 적이 있는데, 이것이 BRC-20이 실패한 적용이라는 것을 증명하지는 못하지만, 장기적인 합의가 아닐 수도 있음을 시사하는 것으로 보입니다. 이제 이 기사의 주제인 라이트닝 네트워크 기반 탭루트 자산을 입력하겠습니다.
2. 라이트닝 네트워크
라이트닝 네트워크는 비트코인을 기반으로 구축된 레이어 2 솔루션으로, 비트코인 결제 시나리오에서 사용자가 비용을 절감하고 효율성을 향상하도록 돕는 것이 목적입니다. 라이트닝 네트워크가 의존하는 아이디어도 매우 간단합니다. 즉, 자금 풀을 구축하는 것입니다. 이러한 자금 풀은 거래 당사자 모두를 위한 소액 결제 채널이라고도 합니다. 보다 구체적으로 말하면 다음과 같은 두 가지 핵심 개념이 포함됩니다.
· RSMC(Revocable Sequence Maturity Contract): 단체 사진은 시퀀스 만료 시 취소될 수 있습니다.
· 해시된 타임록 계약(HTLC): 해시된 타임록 계약
RSMC는 두 당사자 사이에 소액결제 채널이 있다고 가정하고, 양 당사자가 먼저 이 채널에 자금의 일부를 입금하며, 초기의 경우 두 당사자 간의 할당 계획은 사전 입금된 금액입니다. 거래가 발생할 때마다 양측은 거래 이후 발생한 배분 결과를 확인해야 하며 동시에 원래 배분 계획을 무효화해야 합니다. 이 프로세스는 많은 개념을 포함하며 매우 영리합니다. 자세한 내용은 [ 라이트닝 네트워크 살펴보기(1부) ][^14]를 참조하세요. 라이트닝 네트워크에서의 역할은 두 당사자 간의 결제 채널을 구축하는 것입니다.
HTLC는 이벤트가 포함된 해시 잠금으로, 특정 당사자가 특정 UTxO 사용 권한을 얻기 위해 특정 해시 값 $h=H(m)$의 사전 이미지 $m$를 일정 기간 내에 제출해야 합니다. 라이트닝 네트워크에서 결제 라우팅을 구축하는 데 사용됩니다. 구체적인 구현 프로세스는 [ 라이트닝 네트워크 심층 분석, 2부: HTLC 및 결제 라우팅 ][^15]을 참조하세요.
라이트닝 네트워크는 이 두 가지 메커니즘을 통합하여 라이트닝 네트워크의 두 노드 간에 오프체인 거래가 완료될 수 있도록 합니다.
3. 탭루트 업그레이드
Taproot는 BIP(Bitcoin Improvement Proposal) BIP-0340(Schnorr 서명) , BIP-0341(Taproot) 및 BIP-0342(TapScript) 의 세 가지를 편집한 것이며 Taro 자산 실현의 기반이기도 합니다. 여기에서는 Taro 자산 구현과 관련된 MAST가 설명됩니다.
돛대
MAST(Merklized Abstract Syntax Tree) [^7][^8][^9]는 BIP-0341에서 도입되었으며, 그 목적은 UTxO의 지출 조건을 숨기고 정보의 크기를 줄이는 것입니다. 이는 Taproot 업그레이드의 일부로, Taproot 업그레이드는 기존 P2SH(Pay-to-Script-Hash)와 P2PKH(Pay-to-Public-Key-Hash)를 결합하여 개인 키를 통해 직접 합계를 출력할 수 있습니다. 사용하려면 지출 결과에 대한 스크립트 및 Merkle 증명을 제공할 수도 있습니다.
MAST는 추상 의미 트리와 머클 트리를 결합한 것으로, 머클 트리는 블록체인의 일반적인 데이터 구조이므로 여기서는 자세히 설명하지 않습니다. 추상 구문 트리(AST)는 프로그램을 독립적인 작은 조각으로 나누어 프로그램을 설명하는 방법으로, 이를 통해 프로그램을 보다 쉽게 분석하고 최적화할 수 있습니다. 자세한 내용은 [추상 구문 트리]를 참조하세요. MAST는 AST의 아이디어를 결합하여 프로그램을 여러 개의 작은 블록으로 나눈 다음 프로그램의 각 작은 블록을 해시하고 Merkle 해시 트리 아이디어를 사용하여 이러한 해시 결과를 Merkle 트리로 구성합니다.

다음 스크립트를 고려해보세요[^9]: Alice는 언제든지 자신의 비트코인을 사용할 수 있기를 원하지만 3개월 연속으로 사용하지 않으면 그녀의 형제인 Bob과 Charlie가 UTxO를 사용할 수 있습니다. 스크립트는 다음과 같이 구현됩니다. :
OP_IF
<앨리스의 공개키> OP_CheckSig
OP_ELSE
"3개월" OP_CSV OP_DROP
2 <Bob의 공개키> <Charlie의 공개키> 2
OP_CHECKMULTISIG
OP_ENDIF
P2SH에서는 이러한 스크립트를 사용할 때 트랜잭션에 완전히 노출되어야 하며, Alice는 UTxO를 사용할 때 스크립트와 스크립트에 포함된 Bob과 Charlie의 공개 키를 제공해야 합니다.
MAST를 만든 후 스크립트의 두 가지 조건을 나누어 간단한 MAST를 얻습니다.

이때 Alice는 지출 시 해시 2 아래의 특정 스크립트를 노출하지 않고 공개 키 확인 스크립트와 Hash2를 Merkel 증명으로 제공하기만 선택하면 됩니다. 정보의 이 부분은 체인에 업로드되지 않습니다. 이는 또한 유사한 트랜잭션의 오버헤드를 더욱 줄여줍니다.완전한 스크립트를 제공하는 데 항상 스크립트의 해시를 제공하는 것보다 더 적은 데이터가 필요한 것은 당연합니다. 이러한 구조는 스마트 계약의 구현 가능성도 제공하며, EVM의 바이트코드와 마찬가지로 실행 전 입력 데이터의 처음 4바이트를 기준으로 호출할 함수를 선택할 수 있습니다. 차이점은 이러한 스크립트 호출을 위해서는 사용자가 해당 스크립트가 적법하다는 것을 증명하기 위해 특정 스크립트와 Merkel 인증서를 제공해야 한다는 것입니다.
4. 주요 루트 자산
탭루트 자산(Taproot Assets, 이후 Taro라고 함) [^2][^3][^5]은 아직 제안 단계에 있는 프로토콜로, 비트코인에서 자산 발행을 실현할 수 있습니다. 이러한 자산을 발행할 수 있습니다. 체인을 통해 거래는 비트코인 네트워크를 통해 전송됩니다(NFT의 거래 및 전송은 Ordinals에 의해 구현되었습니다). 특히, 동종의 타로 자산은 라이트닝 채널에 입금된 후 더 낮은 수수료와 더 많은 개인 정보 보호로 라이트닝 네트워크에서 전송할 수 있으며, 마찬가지로 라이트닝 네트워크에서 스마트 계약을 실행하려고 시도하는 RGB 프로토콜이 있습니다[^ 4].
타로는 비트코인 메인 네트워크나 2차 라이트닝 네트워크에서 유통될 수 있습니다. 먼저 비트코인 네트워크의 상황을 생각해보면, Taro는 거래에 첨부되는 해시된 메타데이터 형식인데, 해싱을 사용하는 목적은 거래가 차지하는 공간을 줄이고 처리 수수료를 절약하는 것입니다. 이러한 형태의 해시된 메타데이터가 Taro의 핵심이며, 이러한 해시 값은 수백만 건의 실제 거래까지 나타낼 수 있으며 그 원리는 나중에 소개하겠습니다.
두 번째는 라이트닝 네트워크에서의 타로의 상황입니다. 라이트닝 네트워크를 사용하면 동질의 타로 자산이 더 빠른 거래 속도를 달성할 수 있으며, 이는 라이트닝 네트워크를 사용하여 비트코인을 더 빠르고 저렴한 비용으로 전송할 수 있는 것과 유사합니다. 타로의 제안에서는 라이트닝 네트워크 자체를 변경할 필요는 없으며, 특정 타로 자산의 거래를 실현하기 위해서는 전체 결제 경로의 첫 번째 채널과 마지막 채널에서만 타로 자산을 식별할 수 있어야 하며, 중간 채널의 경로는 일반적인 라이트닝 네트워크 전송 방법으로, 동등한 비트코인을 전송하므로 일반적으로 Taro 자산이 네트워크 가장자리에 있는 다른 자산과 교환됩니다.

타로 프로토콜
이제 우리는 타로가 가져올 수 있는 이점을 이해했으므로 다음으로 소개해야 할 것은 타로가 무엇입니까? 그리고 그것을 달성하는 방법은 무엇입니까? BRC-20이 제3자 기관이 계정을 유지하도록 요구하는 서면 이체 기록이 있는 종이 더미라는 것을 이해해야 하는 것처럼 ERC-20은 스마트 계약에 의해 기록되고 유지되는 일련의 잔액 정보입니다. 타로는 자산의 발행과 양도를 어떻게 실현하나요?
자산 트리
자산 트리는 Taro 자산을 나타내는 데 사용되는 Taro의 2단계 Merkle 트리 구조입니다. 첫 번째 레벨은 Taro 정보를 리프 노드로 구성한 Merkel 트리이고, 두 번째 레벨은 각 계정이 소유한 자산을 나타내는 MS-SMT로 구성된 트리입니다. MS-SMT의 아이디어는 비교적 간단합니다. 머클 해시 트리는 해싱을 기반으로 트리 구조를 형성하며, 각 노드에는 왼쪽과 오른쪽 자식 노드의 합도 저장됩니다.(해시 연산 자체도 일종의 합산입니다.) 이러한 자산 트리와 MS-SMT 트리를 구축하는 데 사용됩니다. 타로의 UTxO.

Asset Leaf(Aseet Leaft)는 자산 트리의 최하위 구조로, 자산 트리 다이어그램에서 연한 파란색 노드로 나타나며, AssetScriptKey를 사용합니다(assetScriptKey는 P2SH 트랜잭션에서 트랜잭션 스크립트의 해시 값과 비교할 수 있음). 열쇠로. 각 자산 리프는 Taro 자산의 UTxO를 나타내며, 자산 리프에 포함된 옵션은 [ Taproot 자산 프로토콜 이해 ]에서 확인할 수 있습니다.
MS-SMT
Merkle Sum Sparse Merkle Tree [^11]는 [ bip-tap-ms-smt ]에 정의된 데이터 구조로 Sparse Merkle 트리의 향상된 버전으로 현재 승인되지 않은 Bips 제안 중 하나입니다. 키 길이가 256비트이므로 이러한 MS-SMT에는 $2^{256}$ 리프 노드가 있고 대부분이 비어 있으므로 희소 머클 트리입니다.
각 리프에는 수량을 포함하고 각 분기는 리프의 합계를 위쪽으로 커밋하므로 각 하위 트리의 내용을 알지 못해도 분기에 포함된 합계를 알 수 있습니다. 일반 머클 트리와 마찬가지로 잎사귀가 포함된 가지치기 트리는 멤버십 증명(요소가 집합 중간에 있음을 증명하는 데 사용되는 "증거"인 암호화 누산기의 개념)을 제공할 수 있습니다. MS-SMT는 멤버 비존재 증명도 지원합니다(존재하지 않는 키의 리프가 없음임을 명시적으로 나타내어 구현됨). 즉, 해당 키가 존재하지 않음을 증명하기 위해 트리에서 없음임을 증명합니다. 이러한 구조는 효율적일 수 있으며 트리에 저장된 값과 분포에 변화가 있는지 검증할 수 있습니다.
아래 그림은 Merkle sum tree와 변경사항을 보낸 후의 구조입니다. Merkle sum sparse tree는 sparse tree의 특성을 결합한 것으로 빈 요소 노드를 구성하고 의미 있는 정보만 저장합니다. 빈 노드는 None을 사용합니다.

타로자산 발행
Taro 자산을 발행하려면 식별자가 필요합니다.ERC-20 토큰의 스마트 계약에 주소가 있는 것처럼 Taro 프로토콜은 식별자 생성 방법을 정의합니다: ID = SHA256(genesisPoint||assetTag||assetMeta), 이는 주조됩니다. 자산에 사용되는 거래 출력 정보, 자산 태그(예: 자산 이름의 해시) 및 자산의 메타데이터(이미지, 링크 또는 문서)가 해시되어 식별자를 생성합니다.
타로 자산의 전송 스크립트는 비트코인 거래와 유사한 입력과 출력을 가질 수 있으며, 자산 생성을 위한 거래에는 타로 자산의 입력이 포함될 필요가 없습니다. 타로 자산은 비트코인의 UTxO 모델을 따르고 있으며 발행이 이루어짐을 알 수 있습니다 자산의 거래는 Taro 자산의 거래에 입력이 없고 출력만 있는 것입니다.
Taro의 입력과 출력은 자산 트리를 기반으로 구현되며 위에서 언급한 것처럼 자산 트리의 첫 번째 수준은 UTxO*를 나타냅니다(이 작성 방법은 나중에 계속 사용될 예정이며, *는 이러한 구조가 Taro 자산에 있음을 나타냅니다). 비비트코인에 저장된 타로 자산은 무엇입니까?) 타로 자산 ID에 해당하는 MS-SMT에 저장된 것은 UTxO*에 의해 출력된 Trao 자산의 정보입니다.
Taro 자산을 구성하는 발행 거래는 아래 그림과 같으며 비트코인 UTxO를 입력으로 받아 일반 비트코인 UTxO와 타로 자산 A의 추가 UTxO*를 출력합니다. 이러한 UTxO*는 비트코인에서는 Merkel 루트의 형태로 나타나며, 오프체인에서는 자산 트리의 형태로 나타나며, 자산 트리에는 Taro 자산 A의 자산 ID와 자산 A에 해당하는 MS-SMT의 기록이 기록됩니다. .

타로 자산 양도
앞선 절에서 자산 생성에 대해 이해하시면 자산 양도 과정을 더욱 빠르게 이해할 수 있습니다. 자산 전송은 사용 가능한 일련의 UTxO를 입력으로 선택한 다음 일련의 UTxO를 출력하는 비트코인의 거래와 유사합니다. Taro 자산에서는 사용 가능한 일련의 UTxO*가 입력으로 선택되고 일련의 UTxO*가 출력됩니다.

이 거래에서 A는 모든 Trao 자산 X를 분할하지 않고 B에게 이전합니다. B가 거래를 수신하면 자산이 지불 조건을 충족하는지 확인하고 자산 수신을 확인하기 위한 중복 출력이 생성되지 않는지 확인해야 합니다.
확인해야 하는 조건은 다음을 포함하지만 이에 국한되지는 않습니다.
· B를 위해 생성된 자산 트리에 지불 조건을 충족하는 새로운 UTxO가 포함되어 있습니까?
· 업데이트된 A의 자산 트리에서 입력 UTxO가 삭제되었습니까?
· 거래에 다른 출력이 있는 경우 추가 자산 트리가 포함되어 있습니까?
이 정보는 MS-SMT의 회원/비회원 증명과 Trproot의 사전 이미지 및 증명 출력을 통해 확인할 수 있습니다. 자산의 합병 및 분할에 대해서는 자세히 설명하지 않으며, 프로세스는 자산 이전 프로세스와 유사하지만 출력 UTxO*에는 분할 인증서 또는 합병 인증서가 포함되어 있습니다.
타로 유니버스
Universe는 자산 보유자에게 자산에 대한 정보와 증거를 제공하는 서비스입니다[^6]. 기능은 비트코인 블록 탐색기[^13]와 유사하지만 Taro 자산 클라이언트에 저장된 정보를 표시합니다. - 체인 Taproot 자산. 유니버스는 자산 발행자가 자체적으로 운영할 수도 있고, 발행자가 운영자를 지정할 수도 있으며, 커뮤니티가 운영하는 유니버스는 자산 보유자가 제출한 정보를 종합하는 것이라고 생각할 수 있습니다.
5. 결론
지금까지 이전 글에서는 타로 에셋 구현의 기반이 되는 기술과 자체 구현 원리에 대해 간략하게 소개했습니다. 다음 글에서는 오디널과 타로 자산의 개발 현황을 소개하겠습니다.
데이터 인용:
[^1]: [ 순서 이론 핸드북 ]
[^2]:[ 비트코인의 타로는 무엇인가요? ]
[^3]:[ 탭루트 자산 ]
[^4]:[ RGB 프로토콜에 대한 간략한 소개 ]
[^5]:[ 탭루트 자산: 다중 자산 비트코인 및 라이트닝을 위한 새로운 프로토콜 ]
[^6]:[ 탭루트 자산 프로토콜 ]
[^7]:[Merklized 추상 구문 트리]
[^8]:[ Merklized 추상 구문 트리 ]
[^9]:[ 비트코인 머클화된 추상 구문 트리(MAST)란 무엇입니까? ]
[^10]:[ Taproot 자산 프로토콜 이해 ]
[^11]:[ bip-tap-ms-smt ]
[^12]:[ 책임 증명 프로토콜의 개인 정보 격차 수정 ]
[^13]:[ 블록스트림 탐색기 ]
[^14]:[라이트닝 네트워크 다이빙(1부)]( 라이트닝 네트워크 다이빙(1부) )
[^15]:[ 라이트닝 네트워크 심층 분석, 2부: HTLC 및 결제 라우팅 ]
3P 연구소 관련 링크:
트위터: https://twitter.com/3PDAO
텔레그램: https://t.me/Labs_3P





