Autoři: Ash Li, Noah Ho
Vytvořením protokolu Ordinal, který poskytuje možnost číslovat a zapisovat bitcoiny, rozšířila škálu produktů dostupných pro bitcoinový ekosystém a přinesla do bitcoinového ekosystému novou dynamiku. V tomto článku se ponoříme do podrobností protokolu Ordinal, včetně toho, jak je každý bitcoin číslován a sledován a jak nápisy souvisí s číslováním. Než se ale ponoříme do tohoto tématu, musíme nejprve porozumět základním informacím o bitcoinu, které nám pomohou lépe pochopit, co následuje.
Po dokončení tohoto článku budete ovládat transakční mechanismus a platební model bitcoinu, pochopíte, jak Ordinals implementuje číslování a sledování pro každé satoshi a jak se vytvářejí a obchodují nápisy. Navíc pochopíte rozdíly mezi různými typy peněženek.
I. Bitcoin pozadí
Bitcoin používá transakční model podobný hotovosti a jeho platby jsou založeny na modelu zvaném UTXO, který se liší od tradičního modelu založeného na zůstatku účtu. Například v procesu modelového účetnictví bankovního účtu, když A převede 100 $ na B, banka zaznamená tři kroky, které tvoří proces transakce. Prvním krokem je odepsání 100 $ z účtu A a ID záznamu pro tento krok je tid1. Druhým krokem je vložení 100 $ na účet B a ID záznamu pro tento krok je tid2. Třetím krokem je zaznamenání záznamu o převodu, který spojuje tid1 s tid2, což znamená, že účet A je snížen o 100 $ a účet B je zvýšen o 100 $. Tímto způsobem je zaznamenán přenosový vztah mezi A a B a lze jej v budoucnu vyhledávat a sledovat. Nyní vysvětlíme, jak se platby bitcoiny provádějí zavedením pro UTXO a platebním modelem.
UTXO
V bitcoinovém blockchainu jsou všechny zůstatky uloženy v seznamu zvaném Unspent Transaction Output (UTXO). Každé UTXO obsahuje určitý počet bitcoinů spolu s informacemi o majiteli těchto bitcoinů a uvádí, zda jsou dostupné. Představte si to jako hotovostní šek podepsaný jménem držitele, který lze převést na jinou osobu k použití, pokud jej držitel podepíše. U dané adresy se všechny její částky UTXO sčítají se zůstatkem peněženky na této adrese. Procházením všech UTXO můžeme získat aktuální zůstatek pro každou adresu. Sečtením všech částek UTXO se sečte celé množství bitcoinů, které jsou aktuálně v oběhu.
V transakční struktuře bitcoinu se každá transakce skládá z několika vstupů a výstupů, kde každý vstup je odkazem na existující UTXO a každý výstup specifikuje novou adresu, na kterou budou prostředky přijaty, a odpovídající částku. Jakmile je transakce zahájena, UTXO, na které se odkazuje ve vstupní části, je dočasně uzamčeno, aby se zabránilo opětovnému použití, dokud nebude transakce dokončena. Teprve když je tato transakce těžařem úspěšně zabalena do bloku a potvrzena sítí, změní se související stav UTXO. Konkrétně UTXO použité jako vstup do transakce jsou odstraněny ze seznamu UTXO, což znamená, že byly spotřebovány, zatímco výstup transakce generuje nové UTXO, které jsou přidány do seznamu UTXO. Rozumí se, že staré hotovostní šeky jsou použity a poté vyprší, čímž se vygenerují nové hotovostní šeky, jejichž vlastnictví náleží novému držiteli.
Je třeba zdůraznit, že každé UTXO lze použít pouze jednou v jedné transakci. Jakmile je spotřebován jako vstup, je trvale odstraněn ze seznamu UTXO. Zároveň je nově vygenerovaný výstup přidán do seznamu jako nový UTXO. seznam UTXO se neustále mění a s každým novým blokem se odpovídajícím způsobem aktualizuje. A analýzou historie transakcí v blockchainu jsme schopni rekonstruovat stav seznamu UTXO v jakémkoli daném okamžiku.
Kromě toho celková vstupní částka transakce obvykle mírně převyšuje její celkovou výstupní částku. Tento rozdíl, nazývaný transakční poplatek nebo síťový poplatek, je dán jako pobídka pro těžaře odpovědné za balení transakcí do bloků. Velikost síťového poplatku je úměrná složitosti transakce, takže transakce, která obsahuje více vstupů a výstupů, bude obvykle vyžadovat vyšší síťový poplatek.
Nyní, abychom porozuměli struktuře bitcoinových transakcí vizuálnějším způsobem, projdeme si konkrétní příklad. Struktura bitcoinové transakce je následující, kde proměnné vin a vout představují „vstup“ a „výstup“ bitcoinové transakce, resp. Bitcoinové transakce nejsou reprezentovány vstupy a výstupy, na rozdíl od tradičních modelů zůstatků účtu, které zaznamenávají změny dat ve tvaru účtu.

Můžeme vybrat náhodný záznam transakce na blockchain.com k analýze. Obrázek níže ukazuje transakci s hash ID 0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2. Obsahuje jeden vstup a dva výstupy.

Pomocí bitcoin-cli příkazů getrawtransaction a decoderawtransaction můžeme vidět základní strukturu výše uvedených transakcí:

V bitcoinové síti obsahuje transakční výstup dvě důležité informace: adresu (haš veřejného klíče) a částku (v bitcoinech). Pokud není výstup transakce použit na vstupu jiných transakcí, pak se tento výstup transakce nazývá nevyužitý transakční výstup (UTXO). Kdo má soukromý klíč odpovídající veřejnému klíči v UTXO, má právo toto UTXO použít nebo utratit.
Podívejme se na informace ve „vin“ ve výše uvedeném kódu, které znamenají, že UTXO vynaložené na tuto transakci pocházelo z jiné transakce (s id 7957a35fe64f80d234d76d83a2a8f1a0d8149a41d81de548f0a65a8a9999th z výstupu jedné transakce, více než z jedné transakce0 index je číslován od 0), výši tohoto UTXO můžeme zjistit z historie transakcí (například 0,1), takže tato Hodnota 0,1 nemusí být v transakci výslovně zapsána, ale získá se vyhledáním informace UTXO. "Vout" této transakce má dva výstupy, což jsou dva nové UTXO, odpovídající novému zůstatku a držiteli, dokud je další transakce nespotřebuje jako vstup.
Platební model
Pro lepší pochopení platebního modelu bitcoinové sítě uvádíme příklad platebního procesu pro platbu z A do B ve výši n bitcoinů. Následující diagram ukazuje proces odeslání 3 bitcoinů od uživatele A uživateli B.

Pro uživatele A je nejprve nutné určit množinu všech UTXO, které vlastní, tedy všechny bitcoiny, které má uživatel A k dispozici;
A vybere jeden nebo více UTXO z této sady jako vstupy do transakce a součet těchto vstupů je m(2+0,8+0,5=3,3 BTC), aby byl větší než částka k zaplacení, n(3 BTC);
Uživatel A nastaví dva výstupy pro transakci, jeden výstup pro platbu na adresu B ve výši n(3 BTC) a druhý výstup pro platbu na jednu z vlastních změnových adres A ve výši m-n-fee(3.3-3- 0,001 = 0,299 BTC). (b) Peněženka uživatele se obvykle skládá z více adres, z nichž každá je normálně použita pouze jednou a změna je standardně vrácena na novou adresu;
V čekání, až těžař zabalí tuto transakci do řetězce na potvrzení, může B obdržet tyto informace o transakci. Protože velikost bloku má horní limit (asi 1 MB), těžaři upřednostní potvrzení transakcí s vysokou transakční rychlostí (fee_rate=fee/size ), aby získali nejvyšší návratnost poplatku. Poplatek za transakce těžby v reálném čase můžeme vidět na mempool. Pokud chceme nejrychlejší potvrzení během procesu převodu, můžeme zvolit vysokou prioritu nebo upravit vhodnou sazbu transakčního poplatku.

II. Satoshiho číslování a sledování
Celkový počet bitcoinů je 21 milionů a každý bitcoin obsahuje 10^8 Satoshi (Sat). V bitcoinové síti je tedy 21 milionů * 10^8 satoshi. protokol Ordinals odlišuje tyto satoshi jedinečným číslováním každého z nich. Tato část popisuje, jak to protokol dělá a jak sleduje účty, ve kterých jsou umístěny jednotlivé satoshi. Kromě toho bude popsána klasifikace vzácnosti satoshi.
Satoshiho číslování
Podle protokolu Ordinals jsou satoshi číslovány podle pořadí, v jakém jsou těženy. Následující obrázek ukazuje znázornění 0. satoshi těženého z 0. bloku.

Pro řadová čísla existují různé reprezentace: (https://docs.ordinals.com/overview.html)
Zápis celého čísla: [2099994106992659]() Pořadové číslo přiřazené podle pořadí, ve kterém bylo satoshi těženo.
Desetinný zápis: [3891094.16797]() První číslo je výška bloku, ve kterém bylo satoshi těženo, druhé číslo je offset satoshi v bloku.
Zápis stupně: [3°111094′214″16797‴](). První číslo je cyklus, číslovaný od 0, druhé je index bloku v epochě půlení, třetí číslo je index bloku v období úpravy obtížnosti a poslední číslo je index sat v bloku.
Percentilní zápis: [99,99971949060254 %]() . Pozice satoshi v nabídce bitcoinů vyjádřená v procentech.
Jméno: [satoshi](). Kódování pořadového čísla pomocí znaků a až z.
Projdeme si příklad, jak nově vytěžené bitcoiny očíslovat. Při pohledu na blok 795952 bitcoinového blockchainu můžeme vidět, že první z těchto transakcí, Tx 3a1f...b177, zaznamenává odměnu těžaře (transakci coinbase). Tato transakce obsahuje nově vytěžené bitcoiny, které jsou použity jako přibalená odměna pro těžaře, a také poplatek, který těžaři zaplatí iniciátor transakce. Když se podíváme na vstup níže uvedeného diagramu, můžeme vidět, že jeho UTXO id se skládá z řetězce nul a výšky bloku. Výstupní adresa je pak adresa peněženky těžaře a částka je součtem výše zmíněných odměn a poplatků.

Pokud se dále podíváme na sekci výstupu k těžařům, můžeme vidět rozložení adres, množství a obsažené satoshi. Jak již bylo zmíněno, tyto obsahují odměny a poplatky za těžbu. Z toho informace o počtu zelených satoshi 1941220000000000–1941220625000000 jsou nové satoshi generované odměnou za těžbu, zatímco zbývajících 712 záznamů satoshi odpovídá všem poplatkům v bloku.

Můžeme ověřit číslo Sat 1941220000000000. Jeho číslo bloku je 795952 a desetinné číslo je 795952.0, což znamená, že výška bloku pro těžbu tohoto Satoshi je 795952 a Satoshiho číslo v tomto bloku je 0, za nímž následuje vzácnost, což znamená, že podrobně popíšeme v pozdější části.

Satoshi's Flow
Protože každý BTC je generován prostřednictvím odměn za těžbu, jsou všechny sledovatelné. Bitcoinové účty používají model UTXO. Předpokládejme, že uživatel A těžbou získal 100-110 satoshi (10 satoshi je uloženo jako celek ve stejném UTXO s id adc123). Když chce uživatel A zaplatit uživateli B 5 satoshi, rozhodne se použít id abc123 jako vstup transakce, kde 5 satoshi dostane uživatel B a 5 satoshi se vrátí uživateli A jako změna. obě kopie 5 satoshi jsou uloženy jako celek ve dvou UTXO s ID abc456 a abc789. Výše uvedené UTXO id a počet satoshi jsou uvedeny pouze jako příklady, v praxi je minimální počet 546 satos a UTXO id nejsou v této podobě vyjádřeny.

Ve výše uvedené transakci je cesta toku 10 satoshi uživatele A
těžba generuje 10 satoshi s číslem [100, 110). To znamená, že očíslované 100. až 109. satoshi jsou uloženy v UTXO s id abc123 a jeho vlastníkem je uživatel A.
Když A provede přenos, 10 satoshi se rozdělí na dvě části, každá s 5 satoshi. Je zde použit princip „first-in-first-out“, tj. číslování satoshi je určeno jejich indexem ve výstupu transakce. Za předpokladu, že pořadí výstupu je Uživatel A a poté Uživatel B, je zbývajících 5 satoshi uživatele A očíslováno [100 , 105) a uloženo v UTXO s id abc456, zatímco 5 satoshi uživatele B je očíslováno [105 , 110) a uloženy v UTXO s id abc789.
Vzácné satoshi
Jako odvozená hra protokolu Ordinals lze vzácnost Satoshi definovat na základě pořadí, ve kterém jsou těženy. To povede k tomu, že některé speciální satoshi budou mít různé rarity. Níže jsou uvedeny úrovně vzácnosti různých satoshi:
běžné: Jakýkoli sat, který není první sat jeho bloku (Celková nabídka: 2,1 kvadrilionu)
neobvyklé: První sat každého bloku (celková nabídka: 6 929 999)
vzácné: První sat každého období úpravy obtížnosti (celková nabídka: 3437)
epos: První sat každé půlící epochy (celková zásoba: 32)
legendární: První sat každého cyklu (celková zásoba: 5)
mythic: První sat bloku geneze (celková nabídka: 1)
Tento koncept vzácného satoshi může přidat do bitcoinového ekosystému větší zajímavost a hodnotu. Satoshi různé vzácnosti mohou mít na trhu různé hodnoty a přitahovat sběratele a investory.
III. Metoda nápisu
Ordinals se výrazně liší od ostatních NFT na nebitcoinových řetězcích. Jedním z hlavních rozdílů je, že metadata Ordinals nejsou uložena na konkrétním místě. Místo toho jsou metadata vložena do svědeckých dat transakce, proto tomu říkáme „nápis“, protože jsou „vyryta“ jako nápis na konkrétní části bitcoinové transakce. Data jsou připojena ke konkrétnímu satoshi. Tento proces zápisu je implementován prostřednictvím Segregated Witness (SegWitness) a Pay-to-Taproot (P2TR), který se skládá ze dvou fází: potvrzení a odhalení. Na zadané satoshi je možné vepsat jakýkoli druh obsahu (např. text, obrázek nebo video). Níže představíme další přímější způsob ukládání, OP_RETURN, a vysvětlíme, proč se nepoužívá jako prostředek pro zápis. Také si popíšeme, co je to izolovaný svědek a Pay-to-Taproot a jakou roli hrají v nápisu. Nakonec si představíme způsob nápisů.
ON_RETURN
V klientovi Bitcoin Core verze 0.9 bylo nakonec kompromisu dosaženo přijetím operátoru RETURN. RETURN umožňuje vývojářům přidat k výstupu transakce 80 bajtů neplatebních dat. Na rozdíl od pseudoplateb vytváří RETURN explicitně ověřitelný nekonzumovatelný výstup; taková data není nutné ukládat do sady UTXO. Výstupy RETURN se zaznamenávají na blockchain, spotřebovávají místo na disku a způsobují nárůst velikosti blockchainu, ale nejsou uloženy v sadě UTXO, a proto nenafukují paměťový fond UTXO, ani nepřispívají k drahým nákladům na paměť. celý uzel.
Zatímco OP_RETURN je velmi přímočarý způsob ukládání informací do bitcoinového blockchainu, je to také potenciální způsob zápisu. Omezení OP_RETURN však nutí čelit některým problémům při práci s ukládáním metadat. Za prvé, OP_RETURN může uložit pouze 80 bajtů dat, což je omezení, které zjevně není splněno v případech, kdy je třeba uložit větší množství dat. Za druhé, data OP_RETURN jsou uložena v sekci transakčního výstupu, a přestože taková data nejsou uložena v sadě UTXO, zabírají úložný prostor v blockchainu, což vede ke zvětšení velikosti blockchainu. A konečně, použití OP_RETURN vede ke zvýšení transakčních poplatků, protože vyžaduje více poplatků za zaúčtování těchto transakcí.
Segregovaný svědek
Naproti tomu SegWit nabízí nový přístup, který tyto problémy překonává. SegWit je hlavní upgrade protokolu pro bitcoiny, který navrhl Pieter Wuille, hlavní vývojář bitcoinů, v roce 2015 a nakonec byl formálně přijat ve verzi 0.16.0 v roce 2017. Segregated in Segregated Witness znamená oddělený, izolovaný a Witness je podepsaná věc spojená s transakce. SegWit tedy představuje oddělení určitých dat podpisu transakce (dat svědků) od transakce.
Hlavní výhodou oddělení podpisu od dat souvisejících s transakcemi je to, že snižuje velikost dat uložených v bitcoinovém bloku. To dává každému bloku extra kapacitu pro uložení více transakcí a znamená to, že síť může zpracovat více transakcí a odesílatel platí nižší poplatky. Technicky vzato to znamená vyjmout informace scriptSig ze základního bloku a vložit je do nové datové struktury. Upgrade Segwit zavádí nové pole svědků v transakčním výstupu pro zajištění soukromí a výkonu. Zatímco data svědků nejsou navržena pro ukládání dat, ve skutečnosti nám umožňují ukládat obsah, jako jsou metadata nápisů. Pojďme pochopit oddělené svědectví graficky pomocí následujícího diagramu:



kůlový kořen
P2TR je typ bitcoinu s transakčním výstupem, který byl představen v upgradu Taproot, který proběhl v roce 2021, což umožňuje ukládat různé transakční podmínky v blockchainu soukromějším způsobem. P2TR hraje zásadní roli v nápisech Ordinals. Nápisy v podstatě vkládají konkrétní datový obsah do bitcoinových transakcí a upgrade Taproot, a zejména P2TR, činí tato vložená data flexibilnější a ekonomičtější.
Za prvé, díky způsobu, jakým jsou Taproot skripty ukládány, můžeme ukládat obsah nápisů do skriptů pro výdaje na cestu skriptu Taproot, které jsou prakticky neomezené z hlediska obsahu, a přitom stále získávat slevu na data svědků, díky čemuž je ukládání obsahu nápisů relativně ekonomické. Protože skripty Taproot lze využívat pouze z již existujícího výstupu Taproot, jsou nápisy odesílány/odhalovány pomocí dvoufázového procesu odesílání/odhalování. Nejprve se v transakci odeslání vytvoří výstup Taproot, který slibuje skript obsahující obsah nápisu. Poté je v transakci odhalení spotřebován výstup vytvořený transakcí odeslání, čímž se odhalí obsah nápisu na řetězu.
Tento přístup výrazně snižuje spotřebu zdrojů. Pokud se P2TR nepoužije, informace o svědkovi se uloží do výstupu transakce. Dokud tedy není tento výstup spotřebován, informace svědka zůstanou uloženy v sadě UTXO. Naproti tomu, pokud je použit P2TR, informace o svědcích se neobjeví v transakcích generovaných během fáze potvrzení, takže se nezapisují do sady UTXO. Pouze když je toto UTXO spotřebováno, objeví se informace o svědkovi v transakčním vstupu během fáze odhalení. p2tr umožňuje zápis metadat do bitcoinového blockchainu, ale nikdy se neobjeví v sadě UTXO. Protože údržba/úprava sady UTXO vyžaduje více zdrojů, tento přístup šetří spoustu zdrojů.
Nápisy
Protokol Ordinals využívá uvolnění omezení velikosti SegWitu pro zápis do obsahu bitcoinové sítě tím, že ukládá obsah nápisů do dat svědků. Taproot usnadňuje ukládání libovolných dat svědků v bitcoinových transakcích a umožňuje vývojáři Ordinals Casey Rodarmorovi znovu použít staré operační kódy (OP_FALSE, OP_IF, OP_PUSH) pro to, co popisuje jako „obálky“, k ukládání libovolných dat pro to, čemu se říká „nápisy“.
Proces odlévání nápisu se skládá z následujících dvou kroků:
Nejprve je nutné vytvořit Commit-to-Taproot výstup skriptu obsahující obsah nápisu v zadané transakci. Uložený formát je Taproot, tj. výstupem předchozí transakce je P2TR (Pay-To-Taproot) a vstupem druhé transakce se specifickým formátem vloženým do kontrolovaného Taproot skriptu; nejprve se na hromádku položí provázkový ord, aby nápis neměl jiné použití. OP_PUSH 1 udává, že další push obsahuje typ obsahu a OP_PUSH 0 udává, že následná data push obsahují samotný obsah. Velké nápisy musí používat více datových push, protože jedním z mála omezení taproot je, že jednotlivá data push nesmí být větší než 520 bajtů. V tomto okamžiku již údaje pro zápis odpovídají UTXO transakčního výstupu, ale nejsou zveřejněny.

Textový nápis obsahující řetězec "Ahoj, světe!" je serializován jako výše Za druhé, je nutné spotřebovat výstup vytvořený odesláním transakce v transakci odhalení. V této fázi je transakce zahájena tím, že se jako vstup přijme UTXO odpovídající tomuto nápisu. V tomto okamžiku je obsah jeho odpovídajícího nápisu odhalen celé síti.
Pomocí dvou výše popsaných kroků byl obsah nápisu svázán s popisovaným UTXO. Opět, podle výše popsaného umístění satoshi, je nápis vytvořen na prvním satoshi odpovídající jeho vstupu UTXO a obsah nápisu je zahrnut do vstupu zobrazujícího transakci. Podle výše popsaného úvodu do toku a sledování satoshi lze toto satoshi se speciálním obsahem přenést, koupit, prodat, ztratit a obnovit. Je třeba poznamenat, že nápisy nelze opakovat, jinak jsou pozdější nápisy neplatné.
Tento proces podrobně ilustrujeme na příkladu malého BTC NFT obrázku, který se skládá ze dvou hlavních fází zmíněných výše, potvrzení a odhalení. Nejprve vidíme, že hash ID první transakce je 2ddf9...f585c. Lze poznamenat, že výstup této transakce neobsahuje údaje o svědcích a na webové stránce není žádný relevantní nápis.

Dále se podíváme na druhou fázi záznamu, jejíž hash ID je e7454...7c0e1. Zde můžeme vidět informaci nápisu Ordinals, který je obsahem svědeckého nápisu. Vstupní adresa této transakce je výstupní adresou předchozí, zatímco výstup 0,00000546BTC (546 Satoshi) pošle tuto NFT na svou vlastní adresu. Také můžeme najít satoshi, kde se tento nápis nachází v So 1893640468329373.


V bitcoinové peněžence můžeme vidět toto aktivum. Pokud chceme tento NFT obchodovat, můžeme ho poslat přímo na adresu někoho jiného, což znamená odeslání tohoto UTXO, čímž se tok nápisů dokončí.

IV. Bitcoinová peněženka
Poté, co pochopíme, co je to Ordinals, tok Satoshi a znalosti o nápisech, existuje mnoho aplikačních scénářů, které se v současné době objevují, ať už jde o BRC-20, ORC-20, BRC-721, GBRC-721 a další související odvozené protokoly, které vyžadují, abychom měli odpovídající peněženky pro podporu a zobrazování informací o tokenu nebo malých obrázků NFT. V této části představíme koncept a vlastnosti různých adres bitcoinových peněženek.
Bitcoinové adresy začínají 1, 3 nebo bc1. Stejně jako e-mailové adresy je lze sdílet s ostatními uživateli bitcoinů, kteří je mohou používat k odesílání bitcoinů přímo do svých peněženek. Z hlediska bezpečnosti bitcoinová adresa nemá žádný citlivý obsah. Může být zveřejněn kdekoli, aniž by byla ohrožena bezpečnost účtu. Na rozdíl od e-mailových adres můžeme vytvářet nové adresy tak často, jak je potřeba, přičemž všechny vloží prostředky přímo do vaší peněženky. Ve skutečnosti mnoho moderních peněženek automaticky vytváří novou adresu pro každou transakci pro maximální soukromí. Peněženka je jednoduše sbírka adres a klíčů k odemknutí prostředků v nich. Nejprve musíme vědět, jak se vytvářejí adresy bitcoinových peněženek.
Bitcoin soukromé a veřejné klíče
Bitcoin používá eliptickou křivku Secp256k1, kde „soukromý klíč“ je náhodné číslo mezi 1 a n-1, n je velmi velké číslo (256 bitů) a n je vyjádřeno ve vědeckém zápisu přibližně jako: 1,15792*10^77 .
Rozsah je tak velký, že je téměř nemožné uhodnout soukromý klíč někoho jiného. Tento náhodný celočíselný soukromý klíč může být reprezentován 256 bity a existuje mnoho způsobů, jak jej zakódovat. Pokud je soukromý klíč v komprimované podobě WIF, WIF nezašifrovaný, lze jej dekódovat a získat tak původní „náhodné celé číslo“. Dalším způsobem je BIP38, který navrhuje zašifrovat soukromý klíč pomocí algoritmu AES. Soukromý klíč získaný z tohoto schématu začíná znakem 6P a tento soukromý klíč je nutné zadat jako heslo pro import do různých bitcoinových peněženek, což je soukromý klíč, který obvykle používáme.
Poté použijeme vzorec eliptické křivky K = kG ke generování veřejného klíče K bitcoinu ze soukromého klíče k. G je základní bod, což je parametr secp256k1. Dvě souřadnice K jsou dva výrazy veřejného klíče, které jsou „Nekomprimovaný formát“ a „Komprimovaný formát“.

Nekomprimovaný, což je přímé zřetězení dvou souřadnic x a y, před kterými je předpona 0x04;
Komprimovaný tvar, který je kódován jako 02 x, když je y sudé, a 03 x, když je y liché;
Bitcoinové adresy
Různé typy bitcoinových adres lze znázornit na následujícím diagramu se čtyřmi reprezentacemi:

Starší formát (P2PKH).
Příklad: 1Fh7ajXabJBpZPZw8bjD3QU4CuQ3pRty9u
Adresa začíná „1“ a je to původní formát adresy pro bitcoiny, který se používá dodnes. Je také známý jako P2PKH, což je zkratka pro Pay To PubKey Hash, a získává se výpočtem veřejného klíče pomocí hash.
Vnořený formát SegWit (P2SH).
Příklad: 3KF9nXowQ4asSGxRRzeiTpDjMuwM2nypAN
Vnořený P2SH, který vezme existující adresu P2SH (začínající "3") a obalí ji adresou SegWit.
Nativní formát SegWit (Bech32).
Příklad: bc1qf3uwcxaz779nxedw0wry89v9cjh9w2xylnmqc3
Adresy začínající na bc1 jsou navrženy v BIP0173 a jsou to nativní adresy izolovaného svědka. bech32 kódované adresy, formát adresy vyvinutý speciálně pro SegWit. bech32 byl definován v BIP173 na konci roku 2017 a jedním z hlavních rysů formátu Jedním z hlavních rysů je, že nerozlišuje velká a malá písmena (v adrese jsou zahrnuty pouze 0-9, az), takže je efektivní při zamezení zmatek a při vstupu čitelnější. Protože adresa vyžaduje méně znaků, je adresa kódována pomocí Base32 namísto tradiční Base58, což usnadňuje a zefektivňuje výpočet. Data mohou být uložena těsněji v QR kódu. bech32 poskytuje vyšší bezpečnost, lepší optimalizaci kontrolního součtu a kódů detekce chyb a minimalizuje možnost neplatných adres.
Samotné adresy Bech32 jsou kompatibilní se SegWit. Pro vložení SegWit adres do P2SH adres není potřeba žádný prostor navíc, takže poplatky jsou nižší s adresami ve formátu Bech32. Adresy Bech32 mají několik výhod oproti starším Base58 (kódování Base58Check se používá pro kódování bajtových polí v bitcoinech do lidských kódovatelných řetězců) adresy: menší QR kódy; lepší odolnost proti chybám; více zabezpečeno; nerozlišuje velká a malá písmena; a skládá se pouze z malých písmen, takže se snáze čte, píše a rozumí.
Taproot Format (P2TR)
Bech32 má nevýhodu: pokud je posledním znakem adresy p, vložení nebo smazání libovolného počtu znaků q bezprostředně před p nezruší jeho kontrolní součet.
Pro zmírnění této nevýhody Bech32 je adresa Bech32m navržena v BIP0350:
Pro nativní izolovanou adresu svědka verze 0 použijte předchozí Bech32;
Pro nativní izolovanou adresu svědka verze 1 (nebo vyšší) se používá nový Bech32m.
Pro adresy Bech32m vždy začínají bc1p (tj. Taproot adresa), když se používá verze 1. Konkrétně, stejně jako místní izolovaný svědek, může peněženka sestávat z počáteční fráze a kryptografické fráze. Ty se používají ke generování rozšířených veřejných a soukromých klíčů, které se používají k odvození libovolných adres cest v hierarchické deterministické peněžence. Hlavním účelem je ukládat BRC-20 a také NFT pro BTC atd.
V. O nás
Spectrum Labs je tým magistrů a doktorandů zaměřených na výzkum blockchainu a také na veterány v odvětví blockchainu. Věnujeme se technologii výzkumného řetězce blockchainu a jejím aplikacím, abychom lidem pomohli lépe porozumět blockchainu. Mezi hlavní aktivity Spectrum Labs patří psaní výzkumných zpráv, vývoj kurikula a vývoj nástrojů.
Čínská komunita BTC NFT (中文社区) je čínská komunikační platforma BTC NFT pro nováčky v globální čínské komunitě.
