1. Bitcoin fons

Bitcoin izmanto skaidrai naudai līdzīgu darījumu modeli (skaidras naudas sistēmu), un tā maksāšanas metode ir balstīta uz modeli, ko sauc par UTXO, kas atšķiras no tradicionālā uz konta bilanci balstītā modeļa. Piemēram: bankas konta uzskaites modeļa procesā, kad A pārskaita 100 juaņas B, banka reģistrēs trīs soļus, kas veido darījuma procesu. Pirmais solis ir atskaitīt 100 juaņas no A konta. Šīs darbības ieraksta ID ir tid1. Otrais solis ir iemaksāt 100 juaņas B kontā. Šīs darbības ieraksta ID ir tid2. Trešais solis ir reģistrēt pārsūtīšanas ierakstu, kas saista tid1 un tid2, norādot, ka konts A samazinās par 100 juaņām un konts B palielinās par 100 juaņām. Tādā veidā tiek reģistrēta pārsūtīšanas saistība starp A un B, un to var jautāt un izsekot nākotnē. Tagad mēs izskaidrosim Bitcoin maksājuma veidu, ieviešot UTXO un maksājuma modeli.

UTXO

Bitcoin blokķēdē visi atlikumi tiek glabāti sarakstā ar nosaukumu "Neiztērēto darījumu izvade" (UTXO). Katrs UTXO satur noteiktu skaitu Bitcoin, kā arī informāciju par šo Bitcoin īpašniekiem, un norāda, vai tie ir pieejami. Padomājiet par to kā skaidras naudas čeku ar īpašnieka vārdu, un, kamēr īpašnieks to parakstīs, lietošanas tiesības var nodot kādam citam. Konkrētai adresei visu UTXO summu summa ir adreses maka atlikums. Pārlūkojot visus UTXO, mēs varam iegūt katras adreses pašreizējo bilanci. Pievienojiet visu UTXO kopējo summu, lai iegūtu visus pašlaik apgrozībā esošos Bitcoins.

Bitcoin transakciju struktūrā katrs darījums ietver vairākas ievades un izejas, kur katra ievade ir atsauce uz esošu UTXO, un katra izvade norāda jaunu fonda saņemšanas adresi un atbilstošo summu. Kad darījums ir uzsākts, UTXO, uz kuru ir atsauce tās ievades daļā, tiek īslaicīgi bloķēta, lai novērstu atkārtotu izmantošanu, līdz darījums ir pabeigts. Tikai tad, kad ogļrači ir veiksmīgi iesaiņojuši darījumu blokā un apstiprinājis tīkls, saistītais UTXO statuss mainīsies. Konkrēti, UTXO, kas tiek izmantoti kā ievades darījumam, tiks noņemti no UTXO saraksta, norādot, ka tie ir patērēti, savukārt darījuma izvadi ģenerēs jaunus UTXO un tiks pievienoti UTXO sarakstam. Var saprast, ka pēc vecā kases čeka izmantošanas tas zaudē spēku un tiek ģenerēts jauns kases čeks, kura īpašumtiesības pieder jaunajam turētājam.

Ir vērts uzsvērt, ka katru UTXO darījumā var izmantot tikai vienu reizi. Kad tas tiek patērēts kā ievade, tas tiek neatgriezeniski noņemts no UTXO saraksta. Tajā pašā laikā tikko ģenerētā izvade tiek pievienota sarakstam kā jauns UTXO. UTXO saraksts pastāvīgi mainās, un ar katru jaunu izveidoto bloku tas tiek attiecīgi atjaunināts. Un, analizējot darījumu vēsturi blokķēdē, mēs varam rekonstruēt UTXO saraksta stāvokli jebkurā konkrētā brīdī.

Turklāt darījuma kopējā ievades summa parasti nedaudz pārsniedz tā kopējo izvades apjomu. Šī starpība, ko sauc par darījumu maksu vai tīkla maksu, tiek dota kā stimuls kalnračiem, kas ir atbildīgi par darījumu iepakošanu blokos. Tīkla maksas lielums ir tieši proporcionāls darījuma sarežģītībai, tāpēc darījumam ar vairāk ieejām un izvadiem parasti būs jāmaksā augstāka tīkla maksa.

Tagad, lai skaidrāk izprastu Bitcoin darījumu struktūru, mēs veiksim padziļinātu analīzi, izmantojot konkrētu piemēru. Bitcoin darījuma struktūra ir šāda, kur divi mainīgie vin un vout apzīmē attiecīgi Bitcoin darījuma "ievadi" un "izeju". Bitcoin darījumi nereģistrē konta formas datu izmaiņas, piemēram, tradicionālajā konta bilances modelī, bet tiek attēlotas ar ievadi un izvadi.

const std::vector<CTxIn> vin;const std::vector<CTxOut> vout;const int32_t nVersion;const uint32_t nLockTime;

Mēs varam nejauši atlasīt darījuma ierakstu vietnē blockchain.com, ko analizēt. Tālāk redzamajā attēlā parādīts darījums ar hash ID 0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2. Tajā ir viena ieeja un divas izejas.

Izmantojot bitcoin-cli komandas getrawtransaction un decoderawtransaction, mēs varam apskatīt iepriekš minētā darījuma pamatā esošo struktūru:

{"Versija": 1, "LockTime": 0, "Vin": [{"TXID": "7957A35FE64F80D234D76D83A2A8F1A0D8149A41D81DE548F0A65A8A999F6F18", "VOUT": 0 D86652A3F47BA4746EC719BBFBD040A570B1DECCBBB6498C75C4AE24CB02204 0D46F1918B30928FA0E4ED99F16A0FB4FDE0735E7ADE8416ABENTS 967295 }],"vout": [{"vērtība": 0,01500000,"scriptPubKey": "OP_DUP OP_HASH160 ab68025513c3dbd2f7b92a94e0581f5d50f654e7 OP_EQUAECKSIGE.8,{000 "scriptPubKey": "OP_DUP OP_HASH160 7f9b1a7fb68d60c536c2fd8aeaa53a8f3cc025a8 OP_EQUALVERIFY OP_CHECKSIG",}]}

Bitcoin tīklā darījuma izvade satur divas svarīgas informācijas daļas: adresi (publiskās atslēgas hash) un summu (Bitcoinos). Ja darījuma izvade netiek izmantota citu transakciju ievadē, tad darījuma izvadi sauc par neiztērēto transakcijas izvadi (UTXO). Ikvienam, kuram pieder UTXO publiskajai atslēgai atbilstošā privātā atslēga, ir tiesības izmantot (tas ir, tērēt) šo UTXO.

Apskatīsim informāciju "vin" iepriekš minētajā kodā. Tas norāda, ka šī darījuma iztērētais UTXO nāk no 0. izejas (darījuma izvade var būt vairākas, indekss ir no 0 sākuma numura), mēs varam atrast. šī UTXO summa no vēsturiskajiem darījumiem (piemēram, 0.1), tātad šajā darījumā lietotājs iztērēja 0.1 BTC, un vērtība 0.1 nav skaidri jāieraksta darījumā, bet caur meklēšanu tiek iegūta UTXO informācija. Šī darījuma "vout" ir divas izejas. Šīs divas izejas ir divas jaunas UTXO, kas atbilst jaunajam atlikumam un turētājam, līdz cita transakcija tos patērē kā ievadi.

Maksājuma modelis

Lai labāk izprastu Bitcoin tīkla maksājumu modeli, mēs izmantojam piemēru, lai iepazīstinātu ar maksājumu procesu, kurā A maksā B n Bitcoins. Zemāk esošajā attēlā parādīts process, kurā lietotājs A nosūta 3 Bitcoins lietotājam B.

  1. Lietotājam A, pirmkārt, ir jānosaka visu tam piederošo UTXO kopa, tas ir, visi Bitcoin, kurus lietotājs A var kontrolēt;

  2. A izvēlas vienu vai vairākus UTXO no šīs kopas kā darījuma ievadi. Šo ievades summu summa ir m (2+0,8+0,5=3,3 BTC), kas ir lielāka par maksājamo summu n (3 BTC). );

  3. Lietotājs A iestata divus darījuma izvadus, vienu izvadi maksā uz B adresi, summa ir n (3 BTC), bet otru izvadi maksā uz paša A maiņas adresi, summa ir m-n-maksa (3,3-3-0,001). = 0,299 BTC). Lietotāja seifs parasti sastāv no vairākām adresēm. Parasti katra adrese tiek izmantota tikai vienu reizi, un pēc noklusējuma tiek atgriezta jauna adrese.

  4. Pēc tam, kad kalnracis ir iesaiņojis darījumu un augšupielādējis to ķēdē apstiprināšanai, B var saņemt darījuma informāciju. Tā kā bloka lielumam ir augšējais ierobežojums (apmēram 1 MB), kalnrači par prioritāti piešķirs darījumiem ar augstu darījumu likmi (fee_rate=fee/size), lai iegūtu visaugstāko maksu. Mēs varam redzēt reāllaika ieguves darījumu maksas situāciju mempool. Ja mēs vēlamies ātrāko apstiprinājumu pārsūtīšanas procesa laikā, mēs varam izvēlēties Augstu prioritāti vai pielāgot piemērotu darījumu likmi;

2. Cong numerācija un izsekošana

Kopējais Bitcoins skaits ir 21 miljons, un katrs Bitcoin satur 10^8 Satoshi (Satoshi, Sat). Tāpēc Bitcoin tīklā kopā ir 21 miljons*10^8 satoshi. Ordinals protokols atšķir šos satoshi un piešķir katram satoshi unikālu numuru. Šajā sadaļā tiks parādīts, kā šis protokols unikāli numurē katru Satoshi un kā tas izseko kontu, kuram tas pieder. Turklāt tiks ieviesta arī Satoshi retumu klasifikācija.

Satoshi numurs

Saskaņā ar Ordinals protokolu satoshi tiek numurēti, pamatojoties uz to rakšanas secību. Zemāk esošajā attēlā ir attēlots 0. blokā iegūtais 0. satoshi.

Ir daudz veidu, kā izteikt Satoshi:

  • Vesela skaitļa simbols: piemēram, 2099994106992659, kas apzīmē sērijas numuru, kas piešķirts satoshi saskaņā ar ieguves pasūtījumu.

  • Decimālzīme: piemēram, 3891094.16797, pirmais cipars norāda bloka augstumu, kurā tika iegūts satoshi, un otrais cipars norāda satoshi numuru blokā.

  • Grāda simbols: piemēram, 3°111094′214″16797‴, pirmais cipars ir periods, kas numurēts, sākot no 0, otrais cipars ir dalītās epohas bloka indekss, bet trešais ir bloka indekss grūtību laikā. pielāgošanas periods , pēdējais skaitlis ir sat indekss blokā.

  • Procentu simbols: piemēram, 99.99971949060254% norāda Satoshi pozīciju Bitcoin piedāvājumā, izteiktu procentos.

  • Vārds: Piemēram, Satoshi. Nosaukums, kas kodē kārtas numuru, izmantojot rakstzīmes no a līdz z.

Mēs izmantosim piemēru, lai izskaidrotu, kā numurēt tikko iegūtos Bitcoins. Aplūkojot Bitcoin blokķēdes bloku 795952, mēs varam redzēt, ka pirmajā darījumā Tx 3a1f...b177 tiek reģistrēta kalnrača atlīdzība (monētu bāzes darījums). Šis darījums ietver nesen iegūtos Bitcoins, kas tiek izmantoti kā iepakošanas atlīdzības kalnračiem, kā arī apstrādes maksas, ko darījuma iniciators maksā kalnračiem. Apskatot ievadi attēlā zemāk, mēs varam konstatēt, ka tā UTXO id sastāv no 0 s virknes un bloka augstuma. Izvades adrese ir kalnraču maka adrese, un summa ir iepriekš minēto atlīdzību un apstrādes maksu summa.

Ja mēs sīkāk aplūkojam izlaidi kalnračiem, mēs varam redzēt adrešu, summu un ietverto satoshi sadalījumu. Kā minēts iepriekš, tie ietver ieguves atlīdzības un maksas. Tostarp zaļā SAT numura informācija 1941220000000000–1941220625000000 ir jaunais satoshi, ko ģenerē ieguves atlīdzība, un atlikušie 712 satoshi ieraksti atbilst visām apstrādes maksām blokā.

Mēs varam pārbaudīt numuru Sat 1941220000000000. Tā bloka numurs ir 795952, un decimālzīme (decimāldaļa) ir 795952.0, kas nozīmē, ka šī Satoshi ieguves bloka augstums ir 795952, Satoshi skaits šajā blokā ir 0, un sekojošā retuma (retuma) atzīme nav izplatīta. Mēs Tas tiks detalizēti izskaidrots nākamajā sadaļā.

Cong

Tā kā katrs BTC tiek ģenerēts, izmantojot ieguves atlīdzības, tās visas ir izsekojamas. Bitcoin konti izmanto UTXO modeli. Pieņemsim, ka lietotājs A iegūst 100.–110. satoshi, izmantojot ieguvi (10 satoshi tiek glabāti kopumā tajā pašā UTXO ar ID adc123). Kad lietotājs A vēlas maksāt 5 satoshis lietotājam B, viņš izvēlas izmantot ID abc123 kā darījuma ievadi, no kuriem 5 satoshis tiek piešķirti lietotājam B un 5 satoshis tiek atgriezti lietotājam A kā izmaiņas. Šīs divas 5 satoshi kopijas ir veselas un tiek glabātas divos UTXO ar attiecīgi ID abc456 un abc789. Iepriekš minētais UTXO id un satoshi skaits ir parādīti tikai kā piemēri. Faktiskās situācijās minimālais nosūtīto satoshi skaits ir ierobežots līdz 546, un UTXO id nav izteikts šajā formā.

Iepriekš minētajā darījumā lietotāja A 10 satoshi aprites ceļš ir:

  1. Mining ražo 10 satoshi, numurēti [100, 110). Tas nozīmē, ka 100. līdz 109. satoshi tiek glabāti UTXO ar id abc123, un tā īpašnieks ir lietotājs A.

  2. Kad A pārskaita naudu, 10 satoshi tiek sadalīti divās daļās, katrā pa 5 satoshi. Šeit tiek izmantots princips "pirmais iekšā, pirmais ārā", tas ir, satoshi numuru secība tiek noteikta pēc to indeksa darījuma izvadē. Pieņemsim, ka izvades secība ir vispirms lietotājs A, pēc tam lietotājs B, pēc tam lietotāja A atlikušo 5 satoshis sērijas numurs ir [100, 105), kas saglabāts UTXO ar ID abc456, un lietotāja B 5 satoshis sērijas numurs ir [105, 110), saglabāti UTXO ar id abc789.

Retums (Reti Satoshi)

Kā Ordinals protokola atzars, satoshi retumu var definēt, pamatojoties uz to ieguves secību. Tā rezultātā daži īpaši satoshi ar dažādiem retumiem. Šeit ir dažādu Satoshi retuma līmeņi:

  • bieži: visi satoshi, izņemot pirmo satoshi blokā (kopējais piedāvājums ir 2100 triljoni)

  • retāk: pirmais satoshi katrā blokā (kopējais piedāvājums ir 6 929 999)

  • reti: pirmais satoshi katrs grūtības pielāgošanas periods (kopējais piedāvājums 3437)

  • episkā: pirmais satoshi pēc katras sadalīšanas uz pusēm (kopējais piedāvājums ir 32)

  • leģendārais: pirmais satoshi katrā ciklā (kopējais piedāvājums ir 5)

  • mītisks: pirmais satoshi ģenēzes blokā (kopējais piedāvājums ir 1)

Šī reto satoshi koncepcija var pievienot Bitcoin ekosistēmai lielāku interesi un vērtību. Dažādu retumu satoshi var būt ar dažādām vērtībām tirgū, piesaistot kolekcionārus un investorus.

3. Uzrakstīšanas metode

Kārtības rādītāji ievērojami atšķiras no NFT citās ķēdēs, kas nav bitcoin. Galvenā atšķirība ir tā, ka Ordinals metadati netiek glabāti noteiktā vietā. Tā vietā šie metadati tiek iegulti darījuma liecinieku datos (liecinieka dati, liecinieka lauks), tāpēc mēs tos saucam par “uzrakstu”, jo šie dati ir “iegravēti” Bitcoin kā uzraksts noteiktā darījuma daļā. dati ir pievienoti konkrētam Satoshi. Šis ierakstīšanas process tiek īstenots, izmantojot Segregated Witness (SegWit) un Pay-to-Taproot (P2TR), kas ietver divus posmus: apņemšanos un atklāšanu, kas var Jebkāda veida saturs (piemēram, teksts, attēli vai videoklipi) ir ierakstīts norādītajā vietā. Satoshi. Tālāk mēs iepazīstināsim ar citu tiešāku glabāšanas metodi OP_RETURN un paskaidrosim, kāpēc tā netiek izmantota kā ierakstīšanas līdzeklis. Tajā pašā laikā mēs iepazīstināsim ar Segregated Witness un Pay-to-Taproot, un kādu lomu tie spēlē Inscription. Visbeidzot mēs iepazīstināsim ar uzrakstīšanas metodi.

OP_RETURE

Bitcoin Core klienta versijā 0.9 kompromiss beidzot tika panākts, pieņemot RETURN operatoru. ** RETURN ļauj izstrādātājiem transakcijas izvadei pievienot 80 baitus nemaksājumu datu. **Atšķirībā no pseidomaksājumiem, RETURN rada nepārprotami pārbaudāmu, nepatērējamu izvadi, kas nav jāuzglabā UTXO komplektā. RETURN izvadi tiek ierakstīti blokķēdē. Tie patērē diska vietu un palielina blokķēdes izmērus, taču tie netiek saglabāti UTXO komplektā, tāpēc tie nepaplašina UTXO atmiņas kopu un nepalielinās pilno mezglu skaitu. Dārgas atmiņas izmaksas.

Lai gan OP_RETURN ir ļoti vienkāršs līdzeklis informācijas glabāšanai Bitcoin blokķēdē, tā ir arī iespējama ierakstīšanas metode. Taču OP_RETURN ierobežojumi liek tai saskarties ar dažām problēmām, strādājot ar metadatu glabāšanu. Pirmkārt, OP_RETURN var uzglabāt tikai 80 baitus. Situācijās, kad jāuzglabā lielāks datu apjoms, šis ierobežojums acīmredzami nav apmierinošs. Otrkārt, OP_RETURN dati tiek glabāti darījuma izvades daļā, lai gan šie dati netiek glabāti UTXO komplektā, tie aizņem blokķēdes glabāšanas vietu, kā rezultātā palielinās blokķēdes izmērs. Visbeidzot, izmantojot OP_RETURN, tiek palielinātas darījumu maksas, jo ir jāmaksā vairāk, lai reģistrētu šos darījumus.

Atdalīts liecinieks

Turpretim jaunā metode, ko nodrošina SegWit, var pārvarēt iepriekš minētās problēmas. SegWit ir svarīgs Bitcoin protokola jauninājums. To ierosināja Bitcoin galvenais izstrādātājs Pieter Wuille 2015. gadā un beidzot tika oficiāli pieņemts 0.16.0 versijā 2017. gadā. Segregated in Segregated Witness nozīmē atdalīšanu un izolāciju, kas ir paraksta lieta, kas saistīta ar darījumu. Tāpēc SegWit atdala noteiktus darījuma paraksta datus (liecinieku datus) no darījuma.

Galvenais ieguvums, atdalot parakstus no datiem, kas saistīti ar darījumiem, ir Bitcoin blokā saglabāto datu apjoma samazināšana. Tam ir papildu jauda katrā blokā, lai saglabātu vairāk darījumu, kas arī nozīmē, ka tīkls var apstrādāt vairāk darījumu un sūtītāji maksā mazāku maksu. Tehniski runājot, tas nozīmē skripta paraksta (scriptSig) informācijas izņemšanu no pamatstruktūras (bāzes bloka) un ievietošanu jaunā datu struktūrā. Mezgli un kalnrači, kas veic verifikācijas darbu, arī pārbaudīs skripta parakstu šajā jaunajā datu struktūrā, lai nodrošinātu, ka darījums ir derīgs. Segwit jauninājums ievieš jaunu liecinieku lauku darījumu izvadēs, lai nodrošinātu privātumu un veiktspēju. Lai gan liecinieku dati nav paredzēti datu glabāšanai, tie faktiski dod mums iespēju saglabāt tādas lietas kā uzrakstu metadati. Mēs izmantojam šādu attēlu, lai skaidrāk izprastu nošķirto liecinieku:

Mieņsakne

P2TR ir Bitcoin transakciju izvades veids, kas tika ieviests Taproot jauninājumā 2021. gadā, kas ļauj privātāk glabāt dažādus darījumu nosacījumus blokķēdē. Ordinals uzrakstā P2TR ir būtiska loma. Uzraksts būtībā iegulst konkrētu datu saturu Bitcoin darījumos, un Taproot jauninājumi, īpaši P2TR, padara šo datu iegulšanu elastīgāku un ekonomiskāku.

Pirmkārt, pateicoties Taproot skriptu glabāšanas veidam, mēs varam glabāt uzrakstu saturu Taproot skriptu ceļa izdevumu skriptos, kuriem saturam nav gandrīz nekādu ierobežojumu, vienlaikus saņemot arī atlaides liecinieku datiem, padarot uzrakstu satura glabāšanu salīdzinoši ekonomisku. Tā kā Taproot skriptu patēriņu var veikt tikai no jau esošās Taproot izvades, Inscription izmanto divpakāpju apstiprināšanas/atklāšanas procesu. Pirmkārt, izpildes darījumā tiek izveidota Taproot izvade, kas sola skriptu, kas satur uzraksta saturu. Pēc tam atklāšanas darījumā tiek patērēta izpildes darījuma radītā izvade, tādējādi ķēdē atklājot uzraksta saturu.

Šī pieeja ievērojami samazina resursu patēriņu. Ja P2TR netiek izmantots, liecinieku informācija tiks saglabāta darījuma izvadē. Tādā veidā, kamēr šī izvade netiek patērēta, liecinieku informācija vienmēr tiks saglabāta UTXO komplektā. Turpretim, ja tiek izmantots P2TR, liecinieka informācija neparādīsies transakcijā, kas tiek ģenerēta apņemšanās fāzes laikā, tāpēc tā netiks ierakstīta UTXO komplektā. Tikai tad, kad šis UTXO tiek patērēts, liecinieka informācija parādīsies darījuma ievadē atklāšanas fāzes laikā. P2TR ļauj rakstīt metadatus Bitcoin blokķēdē, taču tie nekad neparādās UTXO komplektā. Tā kā UTXO kopas uzturēšana/modifikācija prasa vairāk resursu, šī pieeja var ietaupīt daudz resursu.

uzraksts

Protokols Ordinals izmanto SegWit priekšrocības, lai atvieglotu Bitcoin tīklā rakstītā satura lieluma ierobežojumu, saglabājot uzraksta saturu liecinieku datos. Ļauj tai saglabāt līdz 4 MB metadatu. Taproot atvieglo patvaļīgu liecinieku datu glabāšanu Bitcoin darījumos, ļaujot Ordinals izstrādātājam Keisijam Rodarmoram atkārtoti izmantot vecos opcodes (OP_FALSE, OP_IF, OP_PUSH) tajā, ko viņš raksturo kā "aploksnes" tam, ko viņš sauc par "uzrakstu" glabāšanu Patvaļīgi dati.

Uzrakstu liešanas process sastāv no šādiem diviem posmiem:

  1. Pirmkārt, jums ir jāizveido transakcija saistībā ar Taproot izvadi skriptam, kas satur uzraksta saturu. Krātuves formāts ir Taproot, tas ir, iepriekšējā darījuma izvade ir P2TR (Pay-To-Taproot), un nākamā darījuma ievade ir iegulta noteiktā formātā redzamajā Taproot skriptā, pirmkārt, virknes secība uzstumts uz kaudzes, lai novērstu neskaidrības, ka uzrakstam ir citi lietojumi. OP_PUSH 1 norāda, ka nākamajā nosūtījumā ir ietverts satura veids, un OP_PUSH 0 norāda, ka nākamie datu nosūtījumi satur pašu saturu. Lieliem uzrakstiem ir jāizmanto vairāki datu nosūtīšanas gadījumi, jo viens no nedaudzajiem taproot ierobežojumiem ir tāds, ka viens datu nosūtīšanas apjoms nedrīkst būt lielāks par 520 baitiem. Šobrīd uzrakstu dati ir kartēti ar darījuma izvades UTXO, taču tie nav publiskoti.

  2. Otrkārt, apstiprināšanas darījuma radītā produkcija ir jāizlieto atklāšanas darījumā. Šajā posmā transakcija tiek uzsākta, kā ievadi izmantojot UTXO, kas atbilst šim uzrakstam. Šajā laikā atbilstošais uzraksta saturs tika publiskots visā internetā.

Veicot iepriekšminētās divas darbības, uzraksta saturs ir saistīts ar ierakstīto UTXO. Saskaņā ar iepriekš ieviesto Satoshi pozicionēšanu, ierakstīšana tiek veikta pirmajā Satoshi, kas atbilst UTXO ievadei, un uzraksta saturs tiek iekļauts parādītā darījuma ievadē. Saskaņā ar iepriekš aprakstīto ievadu par satoshi apriti un izsekošanu, šo ar īpašu saturu iegravēto satoshi var pārsūtīt, iegādāties, pārdot, pazaudēt un atgūt. Jāņem vērā, ka atkārtoti uzraksti nav atļauti, pretējā gadījumā turpmākie uzraksti būs nederīgi.

Mēs detalizēti izskaidrosim šo procesu, izmantojot neliela BTC NFT attēla gravēšanas piemēru. Šis process galvenokārt ietver divus iepriekš minētos darbības un atklāšanas posmus. Pirmkārt, mēs redzam, ka pirmā darījuma jaucējkods ir 2ddf9...f585c. Var atzīmēt, ka šī darījuma izvade nesatur liecinieku datus, un tīmekļa lapā nav atbilstošas ​​uzraksta informācijas.

Tālāk mēs pārbaudām otrā posma ierakstu, kura Hash ID ir e7454...7c0e1. Šeit redzama Ordinals uzraksta informācija, kas ir liecības uzraksta saturs. Šī darījuma ievades adrese ir iepriekšējā darījuma izvades adrese, un izvadei 0.00000546BTC (546 Satoshi) ir jānosūta šis NFT uz jūsu adresi. Tajā pašā laikā mēs varam atrast arī satoshi, kur šis uzraksts atrodas sestdienā 1893640468329373.

Bitcoin makā mēs varam redzēt šo aktīvu. Ja mēs vēlamies tirgot šo NFT, mēs to varam nosūtīt tieši uz citu personu adresēm, tas ir, nosūtīt šo UTXO, tādējādi pabeidzot uzraksta pārsūtīšanu.

4. Bitcoin maku

Pēc tam, kad esam sapratuši, kas ir Ordinals ekoloģija, satoshi apriti un ar to saistītās zināšanas par uzrakstiem, šobrīd ir daudz pielietojuma scenāriju neatkarīgi no tā, vai tas ir BRC-20, ORC-20, BRC-721, GBRC-721 un citi saistītie atvasinātie protokoli, kuriem ir nepieciešami atbilstoši maki, lai atbalstītu un parādītu marķiera informāciju vai NFT mazus attēlus. Šajā sadaļā mēs iepazīstināsim ar dažādu Bitcoin maku adrešu jēdzieniem un īpašībām.

Bitcoin adreses sākas ar 1, 3 vai bc1. Tāpat kā e-pasta adreses, tās var koplietot ar citiem Bitcoin lietotājiem, kuri var tos izmantot, lai nosūtītu Bitcoin tieši uz saviem makiem. No drošības viedokļa Bitcoin adreses nesatur neko sensitīvu. To var ievietot jebkur, neapdraudot sava konta drošību. Atšķirībā no e-pasta adresēm, jaunas adreses var izveidot jebkurā laikā pēc nepieciešamības, un visas tās iemaksās līdzekļus tieši jūsu makā. Faktiski daudzi mūsdienu maki katram darījumam automātiski izveido jaunu adresi, lai palielinātu privātumu. Maks ir vienkārši adrešu un atslēgu kolekcija, kas atbloķē tajā esošos līdzekļus. Vispirms mums ir jāzina, kā tiek ģenerēta Bitcoin maka adrese.

Bitcoin privātās un publiskās atslēgas

Bitcoin izmanto eliptisku līkni Secp256k1. "Privātā atslēga" ir nejaušs skaitlis no 1 līdz n-1 (n ir izteikts zinātniskā apzīmējumā).

Šis diapazons ir ārkārtīgi liels, un mums ir gandrīz neiespējami uzminēt citu cilvēku privātās atslēgas. Šo nejaušo veselo skaitļu privāto atslēgu var attēlot ar 256 bitiem, un ir vairākas kodēšanas metodes. Ja privātā atslēga WIF vai WIF saspiestā formā nav šifrēta, oriģinālo "nejaušo veselo skaitli" var iegūt, to dekodējot. Vēl viens veids ir BIP38, kas piedāvā privātās atslēgas šifrēšanai izmantot AES algoritmu. Ar šo metodi iegūtā privātā atslēga sākas ar rakstzīmi 6P, lai to varētu importēt dažādos Bitcoin makos. Tas ir tas, ko mēs parasti darām, bieži izmantotās privātās atslēgas.

Tad mēs izmantosim eliptiskās līknes formulu K = kG, lai ģenerētu Bitcoin publisko atslēgu K no privātās atslēgas k G ir bāzes punkts, kas ir secp256k1 parametrs. Var iegūt divas K koordinātas, kas ir divas publiskās atslēgas izteiksmes, proti, "nesaspiests formāts" un "saspiests formāts".

  • Veidlapa Nesaspiesta ir tieši savienot divas koordinātas x un y un pēc tam pievienot priekšā prefiksu 0x04;

  • Saspiestā forma nozīmē, ka, ja y ir pāra skaitlis, kods ir 02 x, un, ja y ir nepāra skaitlis, kods ir 03 x;

Bitcoin adrese

Zemāk esošajā attēlā ir parādīti dažādi Bitcoin adrešu veidi. Ir četras attēlošanas metodes.

Atsauce: https://en.bitcoin.it/wiki/Invoice_address

1. Mantotais (P2PKH) formāts

Piemērs: 1Fh7ajXabJBpZPZw8bjD3QU4CuQ3pRty9u

Adreses, kas sākas ar "1", ir sākotnējais Bitcoin adreses formāts, un tās joprojām tiek izmantotas šodien. Tas tiek aprēķināts no publiskās atslēgas, izmantojot Hash, kas pazīstams arī kā P2PKH, kas ir saīsinājums no Pay To PubKey Hash (maksājums publiskās atslēgas jaucējkodā).

2. Nested SegWit (P2SH) formāts

Piemērs: 3KF9nXowQ4asSGxRRzeiTpDjMuwM2nypAN

Adrese sākas ar "3", un P2SH ir Pay To Script Hash saīsinājums, kas atbalsta sarežģītākas funkcijas nekā mantotās adreses. Nested P2SH, ņem esošo P2SH adresi (sākot ar "3") un iekapsulē to ar SegWit adresi.

3. Vietējais SegWit (Bech32) formāts

Piemērs: bc1qf3uwcxaz779nxedw0wry89v9cjh9w2xylnmqc3

Adreses, kas sākas ar bc1, tiek piedāvātas BIP0173, kas ir vietējās SegWit adreses. Bech32 kodētā adrese ir adreses formāts, kas īpaši izstrādāts SegWit. Bech32 tika definēts BIP173 2017. gada beigās. Viena no šī formāta galvenajām iezīmēm ir tā, ka tas nav reģistrjutīgs (adresē ir tikai 0–9, az), tāpēc tas var efektīvi izvairīties no neskaidrībām ievades laikā un ir labāk salasāms. . Tā kā adresē ir nepieciešams mazāk rakstzīmju, adresē tradicionālā Base58 vietā tiek izmantots Base32 kodējums, padarot aprēķinus ērtākus un efektīvākus. Datus var stingrāk uzglabāt QR kodos. Bech32 nodrošina lielāku drošību, labāk optimizētu kontrolsummas kļūdu noteikšanas kodu un samazina nederīgu adrešu iespējamību.

Pašas Bech32 adreses ir saderīgas ar SegWit. SegWit adreses ievietošanai P2SH adresē nav nepieciešama papildu vieta, tāpēc, izmantojot Bech32 formāta adresi, apstrādes maksa būs zemāka. Bech32 adresēm ir vairākas priekšrocības salīdzinājumā ar vecākām Base58 (Base58Check kodējums tiek izmantots, lai iekodētu baitu masīvus cilvēka kodējamās virknēs): QR kodi ir mazāki, nešķirami lielie un mazie burti; , lai to būtu vieglāk lasīt, rakstīt un saprast.

4. Taproot formāts (P2TR)

Bech32 ir trūkums: ja adreses pēdējā rakstzīme ir p, tad, ievietojot vai izdzēšot jebkādu rakstzīmju skaitu q tieši pirms p, tā kontrolsumma netiks padarīta nederīga.

Lai mazinātu iepriekš minētos Bech32 trūkumus, BIP0350 tika piedāvāta Bech32m adrese:

  • 0. versijas vietējām SegWit adresēm izmantojiet iepriekšējo Bech32;

  • 1. versijai (vai jaunākām) vietējām SegWit adresēm tiek izmantots jaunais Bech32m.

Bech32m adresēm, ja versija ir 1, tās vienmēr sākas ar bc1p (t.i., Taproot adreses). Konkrēti, tāpat kā vietējais SegWit, seifs var sastāvēt no sākuma frāzes un ieejas frāzes. Tos izmanto, lai ģenerētu paplašinātas publiskās un privātās atslēgas, ko izmanto, lai iegūtu adreses patvaļīgiem ceļiem hierarhiskā deterministiskā makā. Tas galvenokārt uzglabā BRC-20 un BTC NFT utt.