Autor: Ash Li, Noah Ho

Odată cu nașterea protocolului Ordinals, acesta oferă funcții de numerotare și inscripție pentru Bitcoin, lărgind astfel gama de produse a ecosistemului Bitcoin și aducând o nouă vitalitate ecosistemului Bitcoin. În acest articol, ne vom scufunda în detaliile protocolului Ordinal, inclusiv modul în care fiecare Bitcoin este numerotat și urmărit și relația dintre inscripții și numere. Dar înainte de a aprofunda acest subiect, trebuie să înțelegem mai întâi câteva elemente de bază despre Bitcoin pentru a ne ajuta să înțelegem mai bine ce urmează.

După ce ați citit acest articol, veți stăpâni mecanismul de tranzacție și modelul de plată al Bitcoin, veți înțelege modul în care Ordinals implementează numerotarea și urmărirea pentru fiecare satoshi și cum sunt create și comercializate inscripțiile. În plus, veți afla diferențele dintre diferitele tipuri de portofele.

1. Fundal Bitcoin

Bitcoin adoptă un model de tranzacție asemănător numerarului (sistem de numerar), iar metoda sa de plată se bazează pe un model numit UTXO, care este diferit de modelul tradițional bazat pe soldul contului. De exemplu: În procesul de model de contabilitate al contului băncii, când A transferă 100 de yuani către B, banca va înregistra trei pași, care constituie un proces de tranzacție. Primul pas este deducerea a 100 de yuani din contul lui A. ID-ul de înregistrare al acestui pas este tid1. Al doilea pas este de a depune 100 de yuani în contul lui B. ID-ul de înregistrare al acestui pas este tid2. Al treilea pas este înregistrarea unei înregistrări de transfer, care leagă tid1 și tid2, indicând faptul că contul A scade cu 100 de yuani, iar contul B crește cu 100 de yuani. În acest fel, relația de transfer dintre A și B este înregistrată și poate fi interogată și urmărită în viitor. Acum, vom explica metoda de plată a Bitcoin prin introducerea UTXO și modelul de plată.

UTXO

În blockchain-ul Bitcoin, toate soldurile sunt stocate într-o listă numită „Ieșire tranzacție necheltuită” (UTXO). Fiecare UTXO conține un anumit număr de Bitcoin, precum și informații despre proprietarii acestor Bitcoin și indică dacă aceștia sunt disponibili. Gândiți-vă la asta ca la un cec în numerar cu numele titularului pe el și, atâta timp cât deținătorul îl semnează, drepturile de utilizare pot fi transferate altcuiva. Pentru o anumită adresă, suma tuturor sumelor UTXO este soldul portofelului adresei. Prin bucla prin toate UTXO-urile, putem obține soldul curent al fiecărei adrese. Adăugați suma totală a tuturor UTXO-urilor pentru a obține toți Bitcoin-urile aflate în circulație în prezent.

În structura tranzacției Bitcoin, fiecare tranzacție include mai multe intrări și ieșiri, unde fiecare intrare este o referință la un UTXO existent și fiecare ieșire specifică o nouă adresă de primire a fondului și suma corespunzătoare. Odată ce o tranzacție este inițiată, UTXO la care face referire partea sa de intrare este blocat temporar pentru a preveni reutilizarea până la finalizarea tranzacției. Numai atunci când tranzacția este ambalată cu succes într-un bloc de mineri și confirmată de rețea, starea UTXO aferentă se va schimba. Mai exact, UTXO-urile utilizate ca intrări în tranzacție sunt eliminate din lista UTXO, indicând faptul că au fost consumate, în timp ce ieșirile tranzacției generează noi UTXO și sunt adăugate la lista UTXO. Se poate înțelege că după ce vechiul cec de numerar este utilizat, acesta devine invalid și este generat un nou cec de numerar, a cărui proprietate aparține noului titular.

Merită subliniat faptul că fiecare UTXO poate fi folosit o singură dată într-o tranzacție. Odată ce este consumat ca intrare, este eliminat definitiv din lista UTXO. În același timp, rezultatul nou generat este adăugat la listă ca un nou UTXO. Lista UTXO-urilor este în continuă schimbare și, pe măsură ce fiecare bloc nou este creat, acesta este actualizat în consecință. Și, analizând istoricul tranzacțiilor în blockchain, suntem capabili să reconstruim starea listei UTXO la orice moment dat.

În plus, suma totală de intrare a unei tranzacții va depăși, de obicei, cu puțin valoarea totală a ieșirii. Această diferență, numită taxă de tranzacție sau taxă de rețea, este dată ca un stimulent minerii responsabili de ambalarea tranzacțiilor în blocuri. Mărimea taxei de rețea este direct proporțională cu complexitatea tranzacției, astfel încât o tranzacție cu mai multe intrări și ieșiri va necesita, în general, o taxă de rețea mai mare.

Acum, pentru a înțelege mai clar structura tranzacției Bitcoin, vom efectua o analiză aprofundată printr-un exemplu specific. Structura tranzacției Bitcoin este următoarea, unde cele două variabile vin și vout reprezintă „intrarea” și respectiv „ieșirea” tranzacției Bitcoin. Tranzacțiile Bitcoin nu înregistrează modificări ale datelor în formă de cont, cum ar fi modelul tradițional de sold al contului, ci sunt reprezentate de intrări și ieșiri.

Sursa: https://github.com/bitcoin/bitcoin/blob/v22.0/src/primitives/transaction.h#L270

Putem selecta aleatoriu o înregistrare a tranzacției pe blockchain.com pentru analiză. Figura de mai jos arată tranzacția cu Hash ID 0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2. Conține o intrare și două ieșiri.

Folosind comenzile getrawtransaction și decorawtransaction ale bitcoin-cli, putem vizualiza structura de bază a tranzacției de mai sus:

În rețeaua Bitcoin, rezultatul tranzacției conține două informații importante: adresa (hash cheie publică) și suma (în Bitcoins). Dacă rezultatul unei tranzacții nu este utilizat în intrarea altor tranzacții, atunci rezultatul tranzacției se numește ieșire de tranzacție necheltuită (UTXO). Oricine deține cheia privată corespunzătoare cheii publice în UTXO are dreptul de a folosi (adică de a cheltui) acest UTXO.

Să ne uităm la informațiile din „vin” din codul de mai sus. Indică faptul că UTXO-ul cheltuit de această tranzacție provine de la a 0-a ieșire (ieșirea unei tranzacții poate avea multiplu, indexul este de la numărul de pornire 0), putem găsi. suma acestui UTXO din tranzacțiile istorice (de exemplu, 0,1), deci în această tranzacție, utilizatorul a cheltuit 0,1 BTC, iar valoarea 0,1 nu trebuie să fie scrisă explicit în tranzacție, dar prin căutare se obțin informații UTXO. „Voutul” acestei tranzacții are două ieșiri Aceste două ieșiri sunt două noi UTXO, corespunzătoare noului sold și titular, până când o altă tranzacție le consumă ca intrare.

Model de plată

Pentru a înțelege mai bine modelul de plată al rețelei Bitcoin, folosim un exemplu pentru a introduce procesul de plată în care A plătește lui B o sumă de n Bitcoin. Figura de mai jos arată procesul prin care utilizatorul A trimite 3 Bitcoin către utilizatorul B.

  1. Pentru utilizatorul A, în primul rând, este necesar să se determine setul tuturor UTXO-urilor pe care le deține, adică toți Bitcoin-urile pe care utilizatorul A îi poate controla;

  2. A selectează unul sau mai multe UTXO din acest set ca intrare a tranzacției. Suma sumelor acestor intrări este m (2+0,8+0,5=3,3 BTC), care este mai mare decât suma de plătit n (3 BTC. );

  3. Utilizatorul A setează două ieșiri pentru tranzacție, o ieșire este plătită la adresa lui B, suma este n (3 BTC), iar cealaltă ieșire este plătită la adresa de schimbare a lui A, suma este m-n-fee (3,3-3-0,001). = 0,299 BTC). Portofelul unui utilizator constă de obicei din mai multe adrese. În general, fiecare adresă este utilizată o singură dată, iar modificarea este returnată implicit la o nouă adresă.

  4. După ce minerul împachetează tranzacția și o încarcă în lanț pentru confirmare, B poate primi informațiile despre tranzacție. Deoarece dimensiunea blocului are o limită superioară (aproximativ 1 MB), minerii vor prioritiza tranzacțiile cu rate de tranzacție ridicate (fee_rate=fee/size) pentru a obține cele mai mari randamente ale taxelor. Putem vedea situația în timp real a taxelor pentru tranzacțiile miniere în mempool. Dacă dorim cea mai rapidă confirmare în timpul procesului de transfer, putem alege High Priority sau personaliza o rată de tranzacție potrivită.

2. Numerotarea și urmărirea cong

Numărul total de Bitcoin este de 21 de milioane, iar fiecare Bitcoin conține 10^8 Satoshi (Satoshi, Sat). Prin urmare, în rețeaua Bitcoin există un total de 21 de milioane*10^8 satoshis. Protocolul Ordinals distinge aceste satoshi și oferă fiecărui satoshi un număr unic. Această secțiune va prezenta modul în care acest protocol numește în mod unic fiecare Satoshi și cum urmărește contul căruia îi aparține. În plus, va fi introdusă și clasificarea de raritate a lui Satoshi.

numărul lui Satoshi

Conform protocolului Ordinals, satoshi-urile sunt numerotate în funcție de ordinea în care sunt extrase. Figura de mai jos arată reprezentarea celui de-al 0-lea satoshi exploatat în blocul 0.

Sursa: https://ordinals.com/sat/0

Există multe moduri de a exprima Satoshi:

  • Simbol întreg: De exemplu, 2099994106992659, care reprezintă numărul de serie atribuit satoshi-ului conform ordinului de extragere.

  • Notație zecimală: De exemplu, 3891094.16797, primul număr indică înălțimea blocului în care a fost extras satoshi, iar al doilea număr indică numărul satoshi din bloc.

  • Simbol de grad: De exemplu, 3°111094′214″16797‴ Această metodă nu a fost încă definită.

  • Simbol procent: De exemplu, 99,99971949060254% indică poziția Satoshi în oferta Bitcoin, exprimată ca procent.

  • Nume: De exemplu, Satoshi. Un nume care codifică numărul de secvență folosind caracterele de la a la z.

Vom folosi un exemplu pentru a explica cum se numără Bitcoin-urile nou extrase. Privind blocul 795952 al blockchain-ului Bitcoin, putem observa că prima tranzacție, Tx 3a1f...b177, înregistrează recompensa minerului (tranzacție coinbase). Această tranzacție include Bitcoin-urile nou extrase, care sunt folosite ca recompense de ambalare pentru mineri, precum și taxele de manipulare plătite minerilor de către inițiatorul tranzacției. Privind intrarea din figura de mai jos, putem descoperi că id-ul său UTXO constă dintr-un șir de 0 și înălțimea blocului. Adresa de ieșire este adresa portofelului minerului, iar suma este suma recompenselor și taxelor de gestionare de mai sus.

Sursa: https://ordinals.com/tx/3a1fdea5953faea184e0303774ea234533aa58979a4d9a4f1c0de0d9b2efb177

Dacă ne uităm mai mult la producția către mineri, putem vedea distribuția adreselor, cantităților și a satoshi-urilor conținute. După cum am menționat mai devreme, acestea includ recompense și taxe pentru minerit. Printre acestea, informațiile despre numărul satoshi verzi 1941220000000000–1941220625000000 este noul satoshi generat de recompensa minieră, iar restul de 712 înregistrări satoshi corespund tuturor taxelor de manipulare din bloc.

Sursa: https://ordinals.com/output/3a1fdea5953faea184e0303774ea234533aa58979a4d9a4f1c0de0d9b2efb177:0

Putem verifica numărul Sat 1941220000000000. Numărul său de bloc este 795952, iar notația zecimală (zecimală) este 795952,0, ceea ce înseamnă că înălțimea blocului de extragere a acestui Satoshi este 795952, numărul de Satoshi din acest bloc este 0, iar raritatea ulterioară este marcată ca neobișnuită va fi explicat în detaliu într-o secțiune ulterioară.

Sursa: https://ordinals.com/sat/1941220000000000

Circulația Cong

Deoarece fiecare BTC este generat prin recompense miniere, toate sunt urmăribile. Conturile Bitcoin folosesc modelul UTXO. Să presupunem că utilizatorul A obține al 100-lea-110-lea satoshi prin mining (10 satoshi-uri sunt stocate ca întreg în același UTXO cu ID-ul adc123). Când utilizatorul A dorește să plătească 5 satoshis utilizatorului B, el alege să folosească ID-ul abc123 ca intrare a tranzacției, din care 5 satoshis sunt date utilizatorului B și 5 satoshis sunt returnate utilizatorului A ca modificare. Aceste două copii ale 5 satoshi sunt un întreg și sunt stocate în două UTXO-uri cu ID-urile abc456 și respectiv abc789. ID-ul UTXO de mai sus și numărul de satoshi-uri sunt afișate doar ca exemple. În situații reale, numărul minim de satoshi-uri trimise este limitat la 546, iar id-ul UTXO nu este exprimat în această formă.

În tranzacția de mai sus, calea de circulație a celor 10 satoshi ale utilizatorului A este:

  1. Mineritul produce 10 satoshi, numerotate [100 *, 110). *Înseamnă că de la 100 la 109 satoshi sunt stocate în UTXO cu ID-ul abc123, iar proprietarul acestuia este utilizatorul A.

  2. Când A transferă bani, 10 satoshi sunt împărțiți în două părți, fiecare cu 5 satoshi. Aici este utilizat principiul „primul intrat, primul ieșit”, adică ordinea numărului de satoshis este determinată în funcție de indicele lor în rezultatul tranzacției. Să presupunem că ordinea de ieșire este mai întâi utilizatorul A, apoi utilizatorul B, apoi numărul de serie al celor 5 satoshi-uri rămase ale utilizatorului A este [100, 105), stocat în UTXO cu ID abc456, iar numărul de serie al celor 5 satoshi-uri ale utilizatorului B este [105, 110), stocat în UTXO cu id-ul abc789.

Satoshi rar

Ca o spin-off a protocolului Ordinals, raritatea satoshis poate fi definită în funcție de ordinea în care sunt extrase. Acest lucru va avea ca rezultat niște satoshi speciale care au rarități diferite. Iată nivelurile de raritate ale diferitelor Satoshi:

  • comun: orice satoshi, cu excepția primului satoshi din bloc (oferta totală este de 2.100 de trilioane)

  • mai puțin frecvente: primul satoshi din fiecare bloc (oferta totală este de 6.929.999)

  • rare: primul satoshi în fiecare perioadă de ajustare a dificultății (rezerva totală 3437)

  • epic: primul satoshi după fiecare înjumătățire (rezerva totală este de 32)

  • legendar: primul satoshi în fiecare ciclu (rezerva totală este de 5)

  • mitic: primul satoshi din blocul geneză (oferta totală este 1)

Acest concept de satoshi rare poate adăuga mai mult interes și valoare ecosistemului Bitcoin. Satoshis de diferite rarități pot avea valori diferite pe piață, atrăgând colecționari și investitori.

3. Metoda de înscriere

Ordinalele sunt semnificativ diferite de NFT-urile de pe alte lanțuri non-Bitcoin. Principala diferență este că metadatele Ordinals nu sunt stocate într-o anumită locație. În schimb, aceste metadate sunt încorporate în datele martorilor tranzacției (datele martorului, câmpul martor), motiv pentru care o numim „inscripție” deoarece aceste date sunt „gravate” în Bitcoin ca o inscripție într-o anumită parte a tranzacției. datele sunt atașate unui anumit Satoshi. Acest proces de înscriere este implementat prin Segregated Witness (SegWit) și Pay-to-Taproot (P2TR), care include două etape: commit și revelare, care poate Orice formă de conținut (cum ar fi text, imagini sau videoclipuri) este înscrisă pe site-ul desemnat. Satoshi. Vom introduce o altă metodă de stocare mai directă OP_RETURN mai jos și vom explica de ce nu este folosită ca mijloc de înscriere. În același timp, vom prezenta ce sunt Segregated Witness și Pay-to-Taproot și ce rol joacă acestea în Inscription. În final vom introduce metoda de înscriere.

ON_RETURN

În versiunea 0.9 a clientului Bitcoin Core, compromisul a fost în sfârșit atins prin adoptarea operatorului RETURN. RETURN permite dezvoltatorilor să adauge 80 de octeți de date de neplată la rezultatul tranzacției. Spre deosebire de pseudo plăți, RETURN creează o ieșire neconsumabilă, verificabilă în mod explicit, care nu trebuie să fie stocată într-un set UTXO. Ieșirile RETURN sunt înregistrate pe blockchain Ele consumă spațiu pe disc și măresc dimensiunea blockchain-ului. Cu toate acestea, nu sunt stocate în setul UTXO, deci nu vor extinde pool-ul de memorie UTXO și nu vor crește numărul de noduri complete. Costuri scumpe de memorie.

În timp ce OP_RETURN este un mijloc foarte simplu de stocare a informațiilor în blockchain-ul Bitcoin, este și o metodă potențială de înscriere. Dar limitările OP_RETURN îl fac să se confrunte cu unele provocări atunci când are de-a face cu stocarea metadatelor. În primul rând, OP_RETURN poate stoca doar 80 de octeți de date Pentru situațiile în care trebuie stocate cantități mai mari de date, această limitare este evident nesatisfăcătoare. În al doilea rând, datele OP_RETURN sunt stocate în partea de ieșire a tranzacției Deși aceste date nu sunt stocate în setul UTXO, ele ocupă spațiul de stocare al blockchain-ului, ceea ce duce la o creștere a dimensiunii blockchain-ului. În cele din urmă, utilizarea OP_RETURN are ca rezultat comisioane de tranzacție mai mari, deoarece necesită o plată mai mare pentru a posta aceste tranzacții.

Martor segregat

În schimb, noua metodă oferită de SegWit poate depăși problemele de mai sus. SegWit este o actualizare importantă a protocolului pentru Bitcoin. Acesta a fost propus de dezvoltatorul de bază Bitcoin Pieter Wuille în 2015 și a fost adoptat în sfârșit în versiunea 0.16.0 în 2017. Segregat în Segregated Witness înseamnă separarea și izolarea Martor este o semnătură legată de o tranzacție. Prin urmare, SegWit separă anumite date de semnătură a tranzacției (date de martor) de tranzacție.

Principalul beneficiu al separării semnăturilor de datele legate de tranzacții este reducerea dimensiunii datelor stocate într-un bloc Bitcoin. Aceasta are capacitate suplimentară pe bloc pentru a stoca mai multe tranzacții, ceea ce înseamnă, de asemenea, că rețeaua poate gestiona mai multe tranzacții și expeditorii plătesc taxe mai mici. Tehnic vorbind, înseamnă să scoateți informațiile despre semnătura scriptului (scriptSig) din structura de bază (blocul de bază) și să le plasați într-o nouă structură de date. Nodurile și minerii care efectuează munca de verificare vor verifica, de asemenea, semnătura scriptului în această nouă structură de date pentru a se asigura că tranzacția este validă. Upgrade-ul Segwit introduce un nou câmp martor în rezultatele tranzacțiilor pentru a asigura confidențialitatea și performanța. Deși datele martorilor nu sunt concepute pentru stocarea datelor, de fapt ne oferă posibilitatea de a stoca lucruri precum metadatele de inscripție. Folosim următoarea figură pentru a înțelege mai clar Martorul Segregat:

Pre-SegWit – Descrierea structurii tranzacției (procent de ocupare a datelor)
After SegWit – Descrierea structurii tranzacției (procent de ocupare a datelor)
Structura datelor de tranzacție înainte și după SegWit

Rădăcină pivotantă

P2TR este un tip de ieșire a tranzacțiilor Bitcoin care a fost introdus în upgrade-ul Taproot în 2021, ceea ce permite ca diferite condiții de tranzacție să fie stocate în blockchain în mod mai privat. În inscripția Ordinals, P2TR joacă un rol vital. Inscripția încorporează în esență conținut specific de date în tranzacțiile Bitcoin, iar actualizările Taproot, în special P2TR, fac această încorporare a datelor mai flexibilă și mai economică.

În primul rând, datorită modului în care sunt stocate scripturile Taproot, putem stoca conținutul de inscripție în scripturile de cheltuieli ale căilor de script Taproot, care nu au aproape nicio restricție privind conținutul, primind în același timp reduceri la datele martorilor, făcând stocarea conținutului de inscripție relativ economică. Deoarece consumul de scripturi Taproot se poate face numai din ieșirea Taproot deja existentă, Inscription utilizează un proces de confirmare/dezvăluire în două etape. În primul rând, în tranzacția de comitere, este creată o ieșire Taproot care promite un script care conține conținutul inscripției. Apoi, într-o tranzacție de revelare, rezultatul creat de tranzacția de commit este consumat, dezvăluind astfel conținutul inscripției în lanț.

Această abordare reduce foarte mult consumul de resurse. Dacă P2TR nu este utilizat, informațiile martorului vor fi stocate în rezultatul tranzacției. În acest fel, atâta timp cât această ieșire nu este consumată, informațiile martorului vor fi întotdeauna stocate în setul UTXO. În schimb, dacă se folosește P2TR, informațiile martorului nu vor apărea în tranzacția generată în timpul fazei de comit, deci nu vor fi scrise în setul UTXO. Numai când acest UTXO este consumat, informațiile martorului vor apărea în intrarea tranzacției în timpul fazei de revelare. P2TR permite scrierea metadatelor în blockchain-ul Bitcoin, dar nu apar niciodată în setul UTXO. Deoarece menținerea/modificarea setului UTXO necesită mai multe resurse, această abordare poate economisi o mulțime de resurse.

inscripţie

Protocolul Ordinals profită de SegWit pentru a relaxa limita de dimensiune a conținutului scris în rețeaua Bitcoin, stochând conținutul inscripției în datele martorilor. Permițându-i să stocheze până la 4 MB de metadate. Taproot facilitează stocarea datelor arbitrare ale martorilor în tranzacțiile Bitcoin, permițând dezvoltatorului Ordinals Casey Rodarmor să reutilizeze codurile operaționale vechi (OP_FALSE, OP_IF, OP_PUSH) în ceea ce el descrie drept „plicuri” pentru ceea ce el numește stocarea „inscripției” a datelor arbitrare.

Procesul de turnare a inscripțiilor constă în următorii doi pași:

  1. În primul rând, trebuie să creați o tranzacție de confirmare la ieșirea Taproot a scriptului care conține conținutul inscripției. Formatul de stocare este Taproot, adică ieșirea tranzacției anterioare este P2TR (Pay-To-Taproot), iar intrarea următoarei tranzacții este încorporată într-un format specific în scriptul Taproot martor, mai întâi șirul de caractere; împins pe stivă, pentru a elimina ambiguitatea că inscripția avea alte utilizări. OP_PUSH 1 indică faptul că următorul push conține tipul de conținut, iar OP_PUSH 0 indică faptul că push-urile ulterioare de date conțin conținutul în sine. Inscripțiile mari trebuie să utilizeze transferuri multiple de date, deoarece una dintre puținele limitări ale rădăcinii principale este că o singură trimitere a datelor nu poate fi mai mare de 520 de octeți. În acest moment, datele de înscriere au fost mapate la UTXO a ieșirii tranzacției, dar nu au fost făcute publice.

    O inscripție text care conține șirul „Bună, lume!” este serializată ca mai sus
  2. În al doilea rând, rezultatul creat de tranzacția de confirmare trebuie să fie consumat în tranzacția de revelare. În această etapă, o tranzacție este inițiată utilizând UTXO-ul corespunzător acelei inscripții ca intrare. În acest moment, conținutul inscripției corespunzător a fost făcut public pe întregul Internet.

Prin cei doi pași de mai sus, conținutul inscripției a fost legat de UTXO înscris. Conform poziționării lui Satoshi introdusă mai sus, inscripția este efectuată pe primul Satoshi corespunzător intrării UTXO, iar conținutul inscripției este inclus în intrarea tranzacției afișate. Conform introducerii în circulația și urmărirea satoshi-urilor introdusă mai sus, acest satoshi gravat cu conținut special poate fi transferat, cumpărat, vândut, pierdut și recuperat. Trebuie menționat că inscripțiile repetate nu sunt permise, altfel inscripțiile ulterioare vor fi invalide.

Vom explica acest proces în detaliu prin exemplul de gravare a unei mici imagini BTC NFT Acest proces include în principal cele două etape de commit și dezvăluire menționate anterior. În primul rând, vedem că ID-ul hash al primei tranzacții este 2ddf9...f585c. Se poate observa că rezultatul acestei tranzacții nu conține date despre martori și nu există informații relevante de înscriere pe pagina web.

Sursa: https://www.blockchain.com/explorer/transactions/btc/2ddf90ddf7c929c8038888fc2b7591fb999c3ba3c3c7b49d54d01f8db4af585c

Apoi, verificăm înregistrarea din a doua etapă, al cărei ID Hash este e7454...7c0e1. Aici, putem vedea informațiile inscripției Ordinale, care este conținutul inscripției mărturiei. Adresa de intrare a acestei tranzacții este adresa de ieșire a tranzacției anterioare, iar ieșirea 0,00000546BTC (546 Satoshi) este pentru a trimite acest NFT la propria adresă. În același timp, putem găsi și satoshi unde se află această inscripție în Sat 1893640468329373.

Sursa: https://www.blockchain.com/explorer/transactions/btc/e7454db518ca3910d2f17f41c7b215d6cba00f29bd186ae77d4fcd7f0ba7c0e1
Sursa: https://www.blockchain.com/explorer/transactions/btc/e7454db518ca3910d2f17f41c7b215d6cba00f29bd186ae77d4fcd7f0ba7c0e1

În portofelul Bitcoin, putem vedea acest activ. Dacă dorim să tranzacționăm acest NFT, îl putem trimite direct la adresele altora, adică trimitem acest UTXO, completând astfel transferul înscrierii.

4. Portofel Bitcoin

După ce înțelegem ce este ecologia Ordinalelor, circulația satoshis și cunoștințele aferente inscripțiilor, există în prezent multe scenarii de aplicare, fie că este vorba despre apariția BRC-20, ORC-20, BRC-721, GBRC-721 și alte protocoale derivate înrudite, care necesită. Avem portofele corespunzătoare pentru a sprijini și afișa informații despre token sau imagini mici NFT. În această secțiune vom introduce conceptele și caracteristicile diferitelor adrese de portofel Bitcoin.

Adresele Bitcoin încep cu 1, 3 sau bc1. La fel ca adresele de e-mail, acestea pot fi partajate cu alți utilizatori Bitcoin care le pot folosi pentru a trimite Bitcoin direct în propriile portofele. Din punct de vedere al securității, adresele Bitcoin nu conțin nimic sensibil. Poate fi postat oriunde fără a compromite securitatea contului dvs. Spre deosebire de adresele de e-mail, adresele noi pot fi create în orice moment, după cum este necesar, toate acestea vor depune fonduri direct în portofel. De fapt, multe portofele moderne creează automat o nouă adresă pentru fiecare tranzacție pentru a maximiza confidențialitatea. Un portofel este pur și simplu o colecție de adrese și chei care deblochează fondurile din el. Mai întâi trebuie să știm cum este generată adresa portofelului Bitcoin.

Chei publice și private Bitcoin

Bitcoin folosește curba eliptică Secp256k1 „cheia privată” este un număr aleatoriu între 1 și n-1. Acest interval este extrem de mare și este aproape imposibil pentru noi să ghicim cheile private ale altor persoane. Această cheie privată cu numere întregi aleatoare poate fi reprezentată de 256 de biți și există mai multe metode de codificare. Dacă cheia privată în formă WIF sau comprimată WIF nu este criptată, „întreg aleatoriu” original poate fi obținut prin decodare. O altă modalitate este BIP38, care propune utilizarea algoritmului AES pentru a cripta cheia privată. Cheia privată obținută prin această metodă începe cu caracterul 6P. Aceasta este ceea ce facem de obicei cheile private utilizate în mod obișnuit.

Apoi vom folosi formula curbei eliptice K = kG pentru a genera cheia publică Bitcoin K din cheia privată k G este punctul de bază, care este un parametru al secp256k1. Se pot obține cele două coordonate ale lui K, care sunt cele două expresii ale cheii publice și anume „Format necomprimat” și „Format comprimat”.

  • Forma necomprimată este de a conecta direct cele două coordonate x și y împreună, apoi adăugați un prefix 0x04 în față;

  • Forma comprimată înseamnă că atunci când y este un număr par, codificarea este 02 x, iar când y este un număr impar, codificarea este 03 x;

adresa Bitcoin

În figura de mai jos sunt prezentate diferite tipuri de adrese Bitcoin. Există patru metode de reprezentare:

Sursa: https://en.bitcoin.it/wiki/Invoice_address
  1. Format moștenit (P2PKH).

Exemplu: 1Fh7ajXabJBpZPZw8bjD3QU4CuQ3pRty9u

Adresele care încep cu „1” sunt formatul original al adresei Bitcoin și sunt încă folosite astăzi. Este calculată din cheia publică prin Hash, cunoscută și sub numele de P2PKH, care este abrevierea lui Pay To PubKey Hash (plată către hash cheie publică).

  1. Format imbricat SegWit (P2SH).

Exemplu: 3KF9nXowQ4asSGxRRzeiTpDjMuwM2nypAN

Adresa începe cu „3” și P2SH este abrevierea lui Pay To Script Hash, care acceptă funcții mai complexe decât adresele Legacy. P2SH imbricat, ia adresa P2SH existentă (începând cu „3”) și o încapsulează cu adresa SegWit.

  1. Format nativ SegWit (Bech32).

Exemplu: bc1qf3uwcxaz779nxedw0wry89v9cjh9w2xylnmqc3

Adresele care încep cu bc1 sunt propuse în BIP0173, care sunt adrese SegWit native. Adresa codificată Bech32 este un format de adresă dezvoltat special pentru SegWit. Bech32 a fost definit în BIP173 la sfârșitul anului 2017. Una dintre principalele caracteristici ale acestui format este că nu face distincție între majuscule și minuscule (adresa conține doar 0-9, az), astfel încât poate evita în mod eficient confuzia la introducere și este mai ușor de citit . Deoarece sunt necesare mai puține caractere în adresă, adresa folosește codificarea Base32 în loc de tradiționala Base58, făcând calculele mai convenabile și mai eficiente. Datele pot fi stocate mai bine în coduri QR. Bech32 oferă o securitate mai mare, un cod de detectare a erorilor de sumă de control mai bine optimizat și minimizează șansa de adrese invalide.

Adresele Bech32 în sine sunt compatibile cu SegWit. Nu este nevoie de spațiu suplimentar pentru a introduce adresa SegWit în adresa P2SH, așa că folosind adresa în format Bech32, taxa de gestionare va fi mai mică. Adresele Bech32 au mai multe avantaje față de adresele Base58 mai vechi (codificarea Base58Check este utilizată pentru a codifica matricele de octeți în șiruri de caractere codificabile de către oameni): codurile QR sunt mai sigure și mai sigure; , astfel încât este mai ușor de citit, de tastat și de înțeles.

  1. Format rădăcină (P2TR)

Bech32 are un dezavantaj: dacă ultimul caracter al unei adrese este p, atunci inserarea sau ștergerea oricărui număr de caractere q imediat înainte de p nu va invalida suma de control.

Pentru a atenua deficiențele de mai sus ale Bech32, adresa Bech32m a fost propusă în BIP0350:

  • Pentru adresele SegWit native din versiunea 0, utilizați Bech32 anterior;

  • Pentru adresele SegWit native din versiunea 1 (sau superioară), se folosește noul Bech32m.

Pentru adresele Bech32m, când versiunea este 1, ele încep întotdeauna cu bc1p (adică adrese Taproot). Mai exact, la fel ca SegWit nativ, un portofel poate fi compus dintr-o frază de bază și o frază de acces. Acestea sunt folosite pentru a genera chei publice și private extinse utilizate pentru a obține adrese pentru căi arbitrare într-un portofel ierarhic determinist. Stochează în principal BRC-20 și BTC NFT etc.

5. Despre noi

Spectrum Labs este o echipă compusă din masterat și doctorat care se concentrează pe cercetarea blockchain, precum și veterani din industria blockchain. Ne angajăm să tehnologia lanțului de cercetare blockchain și aplicațiile sale pentru a ajuta oamenii să înțeleagă mai bine blockchain. Activitatea principală a Spectrum Labs include scrierea de rapoarte de cercetare, scrierea cursurilor și dezvoltarea de instrumente.

Comunitatea chineză BTC NFT este un pătrat de schimb chinezesc BTC NFT creat pentru noii chinezi din întreaga lume.