1. Bitcoin pozadí
Bitcoin využívá hotovostní transakční model (hotovostní systém) a jeho platební metoda je založena na modelu zvaném UTXO, který se liší od tradičního modelu založeného na zůstatku účtu.

Například: V procesu účetního modelu bankovního účtu, když A převede 100 juanů na B, banka zaznamená tři kroky, které představují proces transakce. Prvním krokem je odečtení 100 yuanů z účtu A. ID záznamu tohoto kroku je tid1. Druhým krokem je vložení 100 juanů na účet B. ID záznamu tohoto kroku je tid2. Třetím krokem je zaznamenání záznamu o převodu, který spojuje tid1 a tid2, což znamená, že účet A se sníží o 100 juanů a účet B se zvýší o 100 juanů.
Tímto způsobem je zaznamenán přenosový vztah mezi A a B a lze jej v budoucnu dotazovat a sledovat. Nyní vysvětlíme platební metodu bitcoinů prostřednictvím představení UTXO a platebního modelu.
UTXO
V bitcoinovém blockchainu jsou všechny zůstatky uloženy v seznamu nazvaném „Nevyužité transakční výstupy“ (UTXO). Každé UTXO obsahuje určité množství bitcoinů, informace o vlastníkovi a stavu dostupnosti, podobně jako šek se jménem držitele. Tento šek lze podepsat a převést na někoho jiného.
Zůstatek adresy se rovná součtu všech jejích UTXO Aktuální zůstatek každé adresy lze získat procházením seznamu UTXO a součet těchto UTXO představuje aktuální celkovou zásobu všech bitcoinů.

Ve struktuře bitcoinových transakcí obsahuje každá transakce vstupy a výstupy. Každý vstup je odkazem na existující UTXO a každý výstup určuje novou přijímací adresu a částku. Jakmile je transakce vytvořena, UTXO spojené se vstupem je dočasně uzamčeno, aby se zabránilo opětovnému použití, a související stav UTXO se změní až poté, co je úspěšně zabalen a potvrzen těžařem.
Konkrétně se odstraní vstup UTXO a výstup vygeneruje nové UTXO a přidá ho do seznamu. Je to podobné jako při generování nového šeku po propadnutí starého šeku, přičemž vlastnictví nového šeku je převedeno na jméno nového držitele.
Je třeba zdůraznit, že každé UTXO lze v transakci použít pouze jednou. Po použití je trvale odstraněno a je vytvořen nový výstup a přidán do seznamu UTXO. Seznam UTXO je neustále aktualizován při vytváření nových bloků. Analýzou transakční historie lze rekonstruovat stav seznamu UTXO v jakémkoli daném okamžiku.
Navíc celková vstupní částka transakce obvykle mírně převyšuje celkovou výstupní částku a tento rozdíl se stává transakčním poplatkem a slouží jako pobídka pro K pracovníků. Transakční poplatky jsou úměrné složitosti transakce, takže transakce s více vstupy a výstupy bude obecně vyžadovat vyšší síťové poplatky.

Abychom lépe porozuměli transakční struktuře bitcoinu, můžeme se dozvědět více prostřednictvím následujícího příkladu, kde „vin“ představuje vstup transakce a „vout“ představuje výstup transakce. Bitcoinové transakce využívají spíše vstupní a výstupní přístup než tradiční model zůstatku účtu.

Můžeme náhodně vybrat záznam transakce na blockchain.com k analýze Následující obrázek ukazuje Hash ID
Transakce pro 0627052b6f28912f2703066a912ea577f2ce4da4caa5a5fbd8a57286c345c2f2. Obsahuje jeden vstup a dva výstupy.

Pomocí bitcoin-cli příkazů getrawtransaction a decoderawtransaction můžeme zkontrolovat základní strukturu výše uvedené transakce:

V bitcoinové síti obsahuje výstup každé transakce dvě klíčové informace: adresu (veřejný hash klíče) a částku (v bitcoinech).
Pokud výstup transakce nebyl použit na vstupu jiných transakcí, pak se výstup nazývá nevyužitý transakční výstup (UTXO). Každý, kdo vlastní soukromý klíč odpovídající veřejnému klíči v UTXO, má právo toto UTXO používat (tj. utrácet).
Podívejme se na informace v „vin“ ve výše uvedeném kódu. Označuje, že UTXO vynaložené touto transakcí pochází z 0. výstupu (transakce může mít více výstupů, index) jiné transakce (její ID je 7957a35fe64f80d234d76d83a2a8f1a0d8149a981d81a81a59a6a81a od 0).
Výši tohoto UTXO (například 0,1 bitcoinu) můžeme zjistit z transakční historie. V této transakci tedy tento uživatel utratil 0,1 bitcoinu a hodnota 0,1 nemusí být v transakci výslovně zapsána, ale získá se dotazem na informace UTXO.
"Vout" této transakce obsahuje dva výstupy, které představují dva nové UTXO, odpovídající novému zůstatku a vlastníkovi. Tyto nové UTXO budou existovat, dokud je jako vstup nespotřebuje jiná transakce.

Platební model
Abychom lépe porozuměli platebnímu modelu bitcoinové sítě, na příkladu představíme platební proces ve výši n bitcoinů zaplacených A až B. Obrázek níže ukazuje proces, kdy uživatel A posílá 3 bitcoiny uživateli B.

Pro uživatele A je v první řadě nutné určit množinu všech UTXO, které vlastní, tedy všechny Bitcoiny, které může uživatel A ovládat;
A vybere jeden nebo více UTXO z této sady jako vstup transakce Součet částek těchto vstupů je m (2+0,8+0,5=3,3 BTC), což je větší než potřebné množství n (3 BTC). být zaplacen;
Uživatel A nastaví dva výstupy pro transakci, jeden výstup je placen na adresu B, částka je n (3 BTC) a druhý výstup je placen na vlastní změnu adresy A, částka je mn-poplatek (3,3-3-0,001 =0,299 BTC). Peněženka uživatele se obvykle skládá z více adres Obecně je každá adresa použita pouze jednou a změna je standardně vrácena na novou adresu.
Jakmile pracovník K zabalí a potvrdí transakci na blockchainu, příjemce B bude moci získat informace o transakci.

Vzhledem k tomu, že velikost každého bloku je omezená (obvykle asi 1 MB), K pracovníků upřednostňuje transakce s vysokými transakčními rychlostmi (fee_rate=fee/size), aby dosáhli nejvyšší návratnosti poplatků.
Můžeme kontrolovat transakční rychlost K mining v reálném čase v nepotvrzeném fondu transakcí (mempool). Pokud chceme během procesu převodu získat potvrzení co nejdříve, můžeme zvolit vysokou prioritu nebo upravit vhodnou transakční sazbu.

2. Číslování a sledování kongu
Celková zásoba bitcoinů je 21 milionů a každý bitcoin obsahuje 10^8 satoshi (so). Takže v bitcoinové síti máme celkem 21 milionů * 10^8 satoshi.
Protokol Ordinals používá jedinečný způsob číslování každého Satoshi, aby byla zajištěna jeho jedinečnost a schopnost přesně sledovat účet, ke kterému patří. Navíc se zjednoduší klasifikace vzácnosti satoshi.
Satoshiho číslo
Podle protokolu Ordinals jsou satoshi číslovány podle pořadí, v jakém jsou těženy. Obrázek níže ukazuje znázornění 0. satoshi těženého v 0. bloku.

Existuje mnoho způsobů, jak vyjádřit satoshi:
Symbol celého čísla: Například 2099994106992659, což představuje sériové číslo přidělené satoshi podle těžebního řádu.
Desetinný zápis: Například 3891094.16797, první číslice označuje výšku bloku, kde byla těžena Satoshi, a druhá číslice označuje číslo Satoshi v bloku.
Symbol stupně: Například 3°111094′214″16797‴, první číslice je tečka, číslovaná od 0, druhá číslice je index bloku půlící epochy a třetí číslice je index bloku během obtížnosti doba úpravy, poslední číslice je index sat v bloku.
Symbol procenta: Například 99,99971949060254 % označuje pozici satoshi v nabídce bitcoinů, vyjádřenou v procentech.
Název: Například Satoshi. Název, který kóduje pořadové číslo pomocí znaků a až z.

Vezměme si příklad, který vysvětluje, jak číslovat nově vytěžené bitcoiny. Při sledování 795952. bloku bitcoinového blockchainu obsahuje transakci s názvem „Tx 3a1f...b177“, která zaznamenává odměnu K pracovníka (coinbase transakce). Tato transakce zahrnuje nově vytěžené bitcoiny, které se používají jako odměny pro K pracovníků, a také manipulační poplatky, které platí iniciátor transakce K pracovníkům.
Když se podíváme na vstupní část, můžeme vidět ID UTXO, které se skládá z řetězce nul a výšky bloku. A ve výstupní části vidíme adresy, které tyto odměny a poplatky obdržely, a také jejich celkovou výši.

Pokud dále prozkoumáme část výstupu pro K pracovníků, můžeme vidět distribuci adres, množství a obsažených satoshi. Jak již bylo zmíněno dříve, tyto zahrnují odměny za těžbu K a manipulační poplatky.
Mezi nimi informace o čísle zeleného satoshi 1941220000000000–1941220625000000 je nové satoshi generované těžbou odměn K a zbývajících 712 záznamů satoshi odpovídá všem manipulačním poplatkům v bloku.

Můžeme ověřit číslo Sat 1941220000000000.
Jeho číslo bloku je 795952 a desítkový zápis (desetinný) je 795952.0, což znamená, že výška bloku těžby tohoto satoshi je 795952, počet satoshi v tomto bloku je 0 a následná rarita je označena jako neobvyklá, my jej podrobně představí v následujících částech.

Oběh Cong
Transakční model bitcoinu používá model UTXO (Unspent Transaction Output), což znamená, že každý bitcoin (BTC) lze vysledovat ke svému zdroji. Pojďme si tento proces ilustrovat na příkladu:
Předpokládejme, že uživatel A obdržel odměnu těžbou K, která obsahuje bitcoiny od 100. satoshi do 110. satoshi. Všechny tyto bitcoiny jsou uloženy ve stejném UTXO (Nevyužitý transakční výstup ID tohoto UTXO je adc123).
Nyní, když chce uživatel A zaplatit uživateli B 5 satoshi, zvolí jako vstup do transakce UTXO s ID abc123. Tato transakce odešle 5 satoshi uživateli B a vrátí 5 satoshi jako změnu uživateli A.
Těchto 5 satoshi se stane celkem, ale budou uloženy ve dvou různých UTXO, jako je abc456 a abc789.
Výše uvedené UTXO id a počet satoshi jsou uvedeny pouze jako příklady Ve skutečných situacích je minimální počet odeslaných satoshi omezen na 546 a UTXO id není v této podobě vyjádřeno.

Ve výše uvedené transakci je cesta oběhu 10 satoshi uživatele A:
Těžba K produkuje 10 satoshi, očíslovaných [100, 110). To znamená, že 100. až 109. satoshi je uloženo v UTXO s id abc123 a jeho vlastníkem je uživatel A.
Když A provede převod, 10 satoshi se rozdělí na dvě části, z nichž každá je 5 satoshi. Je zde přijat princip „první dovnitř, první ven“, to znamená, že pořadí čísel satoshi je určeno podle jejich indexu ve výstupu transakce.
Za předpokladu, že pořadí výstupu je nejprve uživatel A, poté uživatel B, pak pořadové číslo zbývajících 5 satoshi uživatele A je [100, 105), které je uloženo v UTXO s id abc456, a 5 satoshi uživatele B je sekvence číslo je [105, 110) a je uloženo v UTXO s id abc789.

Vzácnost (vzácné satoshi)
Jako vedlejší produkt protokolu Ordinals lze raritu satoshi definovat na základě pořadí, ve kterém jsou těženy. To bude mít za následek některé speciální satoshi s různými raritami. Zde jsou úrovně vzácnosti různých satoshi:
běžná Společná úroveň: jakékoli satoshi kromě prvního satoshi bloku (celková zásoba je 2100 bilionů)
neobvyklé Vynikající úroveň: první satoshi každého bloku (celková zásoba je 6929999)
vzácné: První satoshi v každém období úpravy obtížnosti (celková zásoba 3437)
epos: první satoshi po každém půlení (celková zásoba je 32)
legendární: první satoshi každý cyklus (celková zásoba je 5)
mýtus: první satoshi v bloku geneze (celková zásoba je 1)
Tento koncept vzácných satoshi může přidat více zajímavosti a hodnoty do ekosystému bitcoinů. Satoshi různých rarit mohou mít na trhu různé hodnoty a přitahovat sběratele a investory.

3. Způsob zápisu
Jedním z významných rozdílů mezi Ordinals a jinými NFT mimo bitcoinový řetězec je to, že jejich metadata nejsou uložena na konkrétním místě.
Místo toho jsou tato metadata vložena do svědeckých dat (pole svědků) transakce, proto to nazýváme „nápis“, protože data jsou „vyryta“ do bitů jako nápis na konkrétní části transakce s mincemi , tyto údaje jsou připojeny ke konkrétnímu Satoshi.
Tento proces zápisu je implementován prostřednictvím Segregated Witness (SegWit) a Pay-to-Taproot (P2TR).
Dále podrobně popíšeme další, přímější způsob ukládání, OP_RETURN, a vysvětlíme, proč nefunguje s nápisy. Zároveň prozkoumáme koncepty Segwit a Pay-to-Taproot a jejich roli v Inscription. Nakonec se ponoříme do metod zápisu.

OP_RETURE
Ve verzi 0.9 klienta Bitcoin Core bylo nakonec dosaženo kompromisu pomocí operátoru RETURN. RETURN umožňuje vývojářům přidat k výstupu transakce 80 bajtů neplatebních dat. Na rozdíl od pseudo plateb RETURN vytváří výstup, který je explicitně ověřitelný, ale neutratit se a nemusí být ukládán do kolekce UTXO (Unpend Transaction Output).
Výstupy RETURN se zaznamenávají na blockchain, což zabere místo na disku a způsobí zvýšení velikosti blockchainu, ale nezaberou kolekci UTXO, a proto nezpůsobí nadýmání kolekce UTXO, ani nezvýší drahé náklady na paměť. celého uzlu.
Zatímco OP_RETURN je metoda ukládání informací přímo na bitcoinový blockchain, představuje také některé výzvy. Za prvé, OP_RETURN dokáže uložit pouze 80 bajtů dat, což samozřejmě nestačí pro situace, kdy je potřeba uložit více dat.
Za druhé, data OP_RETURN jsou uložena ve výstupu transakce, i když nebudou zabírat kolekci UTXO, budou zabírat úložný prostor blockchainu, což způsobí nárůst velikosti blockchainu.
A konečně, použití OP_RETURN zvyšuje transakční poplatky, protože za zaúčtování těchto transakcí vyžaduje platit více.

Segregovaný svědek
Ve srovnání s předchozími metodami poskytuje SegWit nové řešení, které může vyřešit výše uvedené problémy.
SegWit je klíčový upgrade protokolu pro bitcoiny. Poprvé jej navrhl vývojář bitcoinového jádra Pieter Wuille v roce 2015 a nakonec byl oficiálně přijat ve verzi 0.16.0 v roce 2017.
„Segregated“ v Segregated Witness (SegWit) znamená oddělení nebo izolaci, zatímco „Witness“ zahrnuje podpisová data spojená s transakcí. Proto je základním konceptem SegWit oddělení určitých dat podpisů transakcí (také nazývaných data svědků) od skutečných dat transakcí.
Hlavní výhodou oddělení podpisových dat od transakčních dat je zmenšení velikosti dat uložených v bitcoinových blocích. To má za následek větší dostupnou kapacitu na blok pro více transakcí, což také znamená, že síť je schopna zpracovat více transakcí a uživatelé platí nižší transakční poplatky.
Technicky to znamená přesunutí dat podpisu skriptu (scriptSig) původně obsažených ve struktuře základního bloku do nové datové struktury. Ověřovací uzly a K pracovníci také ověří podpis skriptu v této nové datové struktuře, aby byla zajištěna platnost transakce.

Upgrade SegWit také zavádí nové pole dat svědků pro zvýšení soukromí a efektivity. Přestože data svědků nejsou speciálně navržena pro ukládání dat transakcí v prostém textu, ve skutečnosti nám umožňují ukládat věci, jako jsou metadata nápisů.
Abychom lépe porozuměli Segregovaným svědkům, používáme následující obrázek:

kůlový kořen
P2TR je typ bitcoinu s transakčním výstupem, který byl představen v upgradu Taproot v roce 2021, který umožňuje soukromější ukládání různých transakčních podmínek v blockchainu.
V této architektuře hraje P2TR klíčovou roli v zápisu dat Ordinals. Inscription ve skutečnosti vkládá konkrétní data do bitcoinových transakcí a upgrady Taproot, konkrétně P2TR, činí toto vkládání dat flexibilnějším a ekonomičtějším.
Za prvé, díky způsobu ukládání příkazových kódů Taproot můžeme ukládat data nápisů do cesty příkazů Taproot a tyto kódy příkazů nemají téměř žádná omezení obsahu. Zároveň se můžeme těšit i na slevy na data svědků, takže ukládání nápisových dat je relativně ekonomické.
Protože však spotřeba instrukcí Taproot může pocházet pouze z existujícího výstupu Taproot, ukládání nápisů využívá dvoufázový proces potvrzení/odhalení. Nejprve se v transakci potvrzení vytvoří výstup Taproot, který slibuje, že bude obsahovat data zápisu.

Potom je v transakci odhalení spotřebován výstup stanovený transakcí potvrzení, čímž se odhalí obsah nápisu v řetězci.
Tento přístup výrazně snižuje spotřebu zdrojů. Pokud není použit P2TR, budou data svědka uložena ve výstupu transakce, dokud nebude tento výstup spotřebován, budou data svědka vždy existovat v sadě UTXO.
Naproti tomu, pokud se použije P2TR, svědecká data se neobjeví v transakci generované během fáze potvrzení, a proto nebudou zapsána do sady UTXO. Pouze když je toto UTXO spotřebováno, objeví se data svědka v transakčním vstupu během fáze odhalení.
P2TR umožňuje zapsat originální data do bitcoinového blockchainu, ale ne vždy zabírá prostor soustředěný v UTXO. Vzhledem k tomu, že údržba/úprava sady UTXO vyžaduje více zdrojů, může tato metoda výrazně ušetřit prostředky.

nápis
Protokol Ordinals rozšiřuje limit velikosti zápisu v bitcoinové síti pomocí SegWitu k ukládání obsahu ve formátu prostého textu do svědka, což umožňuje až 4 MB úložiště metadat.
Taproot zjednodušuje proces ukládání libovolných svědeckých dat v bitcoinových transakcích, což umožňuje vývojáři Ordinals Casey Rodarmorovi znovu použít staré operační kódy (OP_FALSE, OP_IF, OP_PUSH) k vytvoření takzvaných „obálek“ pro ukládání jakýchkoli informací, kterým se říká „„Inscription“.
Proces odlévání nápisu se skládá z následujících dvou kroků:
Nejprve v transakci potvrzení musíte vytvořit příslib ukazující na výstup Taproot obsahující obsah nápisu. Formát tohoto úložiště je Taproot, výstup předchozí transakce musí být P2TR (Pay-To-Taproot) a obsah konkrétního formátu je vložen do skriptu Taprootsvědka.
Nejprve se na zásobník nasune provázek „ordn“, aby se vyjasnil účel nápisu. Poté pomocí OP_PUSH 1 označte, že další odeslání obsahuje typ obsahu, a pomocí OP_PUSH 0 označte, že následující odeslání dat obsahuje samotný obsah.
Vzhledem k tomu, že jedním z omezení Taprootu je, že jedno odeslání dat nemůže přesáhnout 520 bajtů, je k uložení velkých nápisů vyžadováno více odeslání dat. V tuto chvíli byla data zápisu propojena s nevyčerpaným transakčním výstupem (UTXO) transakčního výstupu, ale ještě nebyla zveřejněna.

Za druhé, v transakci odhalení je třeba spotřebovat vytvořený výstup. V této fázi je transakce zahájena tím, že se jako vstup přijme UTXO odpovídající nápisu. V tuto chvíli bude obsah nápisu související s UTXO vystaven celé síti.
Prostřednictvím výše uvedených dvou kroků byl obsah nápisu spojen s konkrétním UTXO. Podle dříve představené metody určování polohy Satoshi (UTXO) je nápis vyryt na první Satoshi odpovídající jeho vstupu UTXO a obsah nápisu je zahrnut do vstupu zobrazujícího transakci.
Podle výše zmíněného oběhu a sledování Satoshi (UTXO) lze toto Satoshi obsahující speciální obsah přenášet, kupovat, prodávat, ztrácet a získávat zpět. Je třeba poznamenat, že nápis nelze opakovat, jinak budou následující nápisy neplatné.
Abychom tento proces vysvětlili podrobněji, pojďme si projít příklad ukazující, jak zapsat malý obrázek bitcoinového NFT. Tento proces pokrývá dvě fáze potvrzení a odhalení zmíněné dříve.
Za prvé, můžeme vidět, že hash ID první transakce je 2ddf9...f585c. Je třeba poznamenat, že výstup této transakce neobsahuje údaje o svědcích a na webové stránce nejsou žádné relevantní informace o nápisu.

Dále zkontrolujeme záznam druhé fáze, jehož hash ID je e7454…7c0e1. Zde můžeme vidět informaci nápisu Ordinals, což je nápisový obsah svědectví.
Vstupní adresa této transakce je výstupní adresou předchozí transakce a výstupní 0,00000546BTC (546 Satoshi) má přenést tuto NFT na její vlastní adresu. Zároveň najdeme i 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 jej přímo přenést na cizí adresy, tedy přenést UTXO, čímž dokončíme přenos nápisu.

4. Bitcoinová peněženka
Poté, co pochopíme, co je ekologie Ordinals, oběh satoshi a s tím související znalost nápisů, existuje v současné době mnoho aplikačních scénářů, ať už se jedná o vznik BRC-20, ORC-20, BRC-721, GBRC-721 a další související odvozené protokoly, které vyžadují Máme odpovídající peněženky pro podporu a zobrazení informací o tokenu nebo malých obrázků NFT.
V této části představíme koncepty a charakteristiky různých adres bitcoinových peněženek.
Bitcoinové adresy obvykle začínají na 1, 3 nebo bc1 a stejně jako e-mailové adresy je lze sdílet s ostatními uživateli bitcoinů za účelem převodu bitcoinů přímo do vaší peněženky.
Z bezpečnostního hlediska neobsahují bitcoinové adresy citlivé informace, a proto mohou být kdykoli veřejně sdíleny, aniž by byla ohrožena bezpečnost vašeho účtu. Na rozdíl od e-mailových adres si můžete podle potřeby vytvářet nové bitcoinové adresy a všechny vkládat prostředky přímo do vaší peněženky.

Ve skutečnosti mnoho moderních peněženek automaticky stanoví novou adresu pro každou transakci, aby se maximalizovalo soukromí. Peněženka je jednoduše sbírka adres a klíčů, které odemykají finanční prostředky v ní. Nejprve musíme vědět, jak se generuje adresa bitcoinové peněženky.
Bitcoin soukromé a veřejné klíče
Bitcoin používá eliptickou křivku Secp256k1 "Soukromý klíč" je náhodné číslo mezi 1 a n-1 (256 bitů je vyjádřeno jako:

Tento rozsah je velmi široký a téměř znemožňuje prolomit soukromé klíče jiných lidí. Tento soukromý klíč je náhodné celé číslo, obvykle reprezentované 256 binárními bity, a lze jej zakódovat různými způsoby. Soukromé klíče používající formát WIF (Wallet Import Format) nebo komprimovaný formát WIF jsou nešifrované a lze je dekódovat přímo na nezpracovaná náhodná celá čísla.
Další metodou je BIP38 (Bitcoin Improvement Návrh 38), který doporučuje použít k šifrování soukromého klíče algoritmus AES. Soukromý klíč vygenerovaný tímto schématem začíná znakem 6P a pro jeho import do různých bitcoinových peněženek je nutné zadat heslo.
Dále použijeme vzorec eliptické křivky K = kG, kde k je soukromý klíč a G je základní bod, což je argument eliptické křivky secp256k1.
Prostřednictvím tohoto vzorce můžeme získat dvě souřadnice K, což jsou dva výrazy veřejného klíče, a to „Nekomprimovaný formát“ a „Komprimovaný formát“.

Nekomprimovaný formulář slouží k přímému spojení dvou souřadnic x a y dohromady a poté přidání předpony 0x04;
Komprimovaný tvar znamená, že když y je sudé číslo, kód je 02 x, a když je y liché číslo, je kód 03 x;
Bitcoinová adresa
Různé typy bitcoinových adres jsou znázorněny na obrázku níže. Existují čtyři způsoby reprezentace:

1. Starší formát (P2PKH).
Příklad: 1Fh7ajXabJBpZPZw8bjD3QU4CuQ3pRty9u
Adresa začíná „1“, což je původní formát adresy bitcoinu a používá se dodnes. Získává se výpočtem hash z veřejného klíče, známého také jako P2PKH, což je zkratka Pay To PubKey Hash (platba za hash veřejného klíče).
2. Vnořený formát SegWit (P2SH).
Příklad: 3KF9nXowQ4asSGxRRzeiTpDjMuwM2nypAN
Adresa začíná „3“. P2SH je zkratka Pay To Script Hash, která podporuje složitější funkce než starší adresy. Vnořený P2SH získá existující adresu P2SH (začínající "3") a zapouzdří ji spolu s adresou SegWit.

3. Nativní formát SegWit (Bech32).
Příklad: bc1qf3uwcxaz779nxedw0wry89v9cjh9w2xylnmqc3
BIP0173 zavedl formáty adres začínající na „bc1“, což jsou adresy používané pro nativní Segregated Witness (SegWit). Tento formát adresy používá kódování Bech32 a je speciálně navržen pro SegWit. Adresy ve formátu Bech32 byly definovány v BIP173 na konci roku 2017. Jednou z jeho hlavních vlastností je, že nerozlišuje velká a malá písmena, takže se snáze vyhnete zmatkům při zadávání a také se lépe čte.
Ve srovnání s tradičním kódováním Base58 používá Bech32 kódování Base32, takže adresa vyžaduje méně znaků, výpočet je efektivnější a lze jej uložit kompaktněji do QR kódu.
Bech32 navíc nabízí vyšší zabezpečení a lépe optimalizovanou detekci chyb kontrolního součtu, čímž se minimalizuje riziko neplatných adres.
Samotné adresy Bech32 jsou kompatibilní se SegWit. Pro vložení adresy SegWit do adresy P2SH není potřeba žádné další místo, takže při použití adresy ve formátu Bech32 bude manipulační poplatek nižší.
Celkově mají adresy Bech32 oproti tradičním adresám Base58 několik výhod: vygenerované QR kódy jsou menší, odolnější proti chybám, bezpečnější, nerozlišují velká a malá písmena a obsahují pouze malá písmena, takže se snáze čtou, zadávají a je snazší. rozumět.

4. Formát Taproot (P2TR)
Bech32 má nevýhodu: pokud je posledním znakem adresy p, pak vložení nebo vymazání libovolného počtu znaků q bezprostředně před p nezruší jeho kontrolní součet.
Za účelem zmírnění výše uvedených nedostatků Bech32 byla v BIP0350 navržena adresa Bech32m:
Pro nativní adresy Segwit s verzí 0 použijte předchozí Bech32;
Pro nativní adresy Segwit verze 1 (nebo vyšší) se používá nový Bech32m.
Pro adresy Bech32m, když je jejich číslo verze 1, vždy začínají "bc1p", což znamená, že se jedná o Taproot adresy. Podobně jako u nativního Segwitu lze tyto adresy generovat z počáteční fráze a přístupové fráze používané ke generování veřejných a soukromých klíčů rozšířené sady, což umožňuje odvození adres pro různé cesty v hierarchické deterministické peněžence.

To se primárně používá k ukládání digitálních aktiv, jako jsou tokeny BRC-20 a bitcoinových NFT.