Tento článek je pouze pro technické sdílení a nepředstavuje žádné investiční poradenství.

Bude mít BTC také svůj chytrý kontrakt?

V nedávném ekosystému bitcoinů Fractal BTC konečně spustil hlavní síť v září poté, co prošel několika testovacími sítěmi. Hlavním rysem Fractalu je jeho schopnost „smart contract“ a nový tokenový protokol CAT20 byl spuštěn téměř ve stejnou dobu jako mainnet. Jakou technickou chytrost má CAT20? Co se můžeme naučit?

Fraktální bitcoiny

Než pochopíme CAT20, musíme stručně porozumět Fractal Bitcoin Jejich vztah je stejný jako ERC20 a ETH protokol je nasazen na Fractal Bitcoin.

Fractal Bitcoin, také známý jako Fractal Bitcoin, je síť „druhé vrstvy“, která je plně kompatibilní s BTC. Ve srovnání s BTC je jeho doba potvrzení blokování rychlejší, trvá pouze 1 minutu. Jeho základním principem je jednoduše, jak říká jeho název, tedy vytvoření několika kopií BTC sítě. Každý řetězec bude zpracovávat transakce, čím více uzlů dokáže transakce zpracovávat, tím to bude přirozeně rychlejší. Konkrétní detaily, například jak různé řetězce komunikují, však zatím nejsou jasné a neexistují žádné odpovídající oficiální technické dokumenty, na které by se dalo odkazovat.

Pokud je rychlejší pouze řetězová transakce druhé vrstvy, zdá se, že neexistuje žádné vzrušení. Aktivace OP_CAT ve Fractalu, kterou BTC z bezpečnostních důvodů již dávno opustila, však posunula možnosti Fractal Bitcoin na vyšší úroveň. Někteří lidé říkají, že OP_CAT může v tomto umožnit BTC je zde prostor pro představivost.

Nyní někdo implementoval protokol podobný ERC20 na Fractal Bitcoin.

O tom, proč byl OP_CAT opuštěn a proč jej lze použít na Fractal Bitcoin, o tom můžeme mluvit později. Zde se zaměříme na CAT20.

Protokol CAT

Následující obsah najdete v bílé knize: Úvod |. CAT Protocol (https://catprotocol.org/)

A úložiště github:

GitHub – CATProtocol/cat-token-box: Monorepo pro balíčky implementující protokol CAT ( https://github.com/CATProtocol/cat-token-box)

Se základní podporou OP_CAT bude brzy k dispozici odpovídající protokol, CAT Protocol. V současné době je skutečně spuštěn protokol CAT20 a na Unisat byl přidán odpovídající panel: https://explorer.unisat.io/fractal-mainnet/cat20.

Každý by měl být schopen reagovat, když uvidí název CAT20. Měl by být více podobný ERC20. Ve srovnání s vyspělým protokolem ERC20 je pro každého velmi výhodné nasadit token Jak CAT20 implementuje životní cyklus podobný ERC20.

Nasadit

Před nasazením musí uživatelé zadat adresu své peněženky a základní informace o tokenu. Základní informace o tokenu jsou podobné jako u ERC20:

 

CAT20 může nastavit limity před těžbou a množství na mincovnu. Samozřejmě, ERC20 může také dosáhnout těchto schopností prostřednictvím smluvních schopností.

Během fáze nasazení budou zahájeny dvě transakce, které lze považovat za dvě fáze: „zavázat“ a „odhalit“. Podle oficiálního diagramu jsou fáze nasazení následující:

 

Ve fázi „commit“ budou do výstupního skriptu transakce zapsány základní informace o tokenu, jako je název, symbol atd. tokenu. HashId transakce zahájené ve fázi „commit“ bude použit jako symbol tokenu pro rozlišení ostatních tokenů.

 

Můžete vidět, že utxo této transakce " bc1pucq...ashx " odpovídá potvrzení. Pak jsou zde dvě zbývající transakce ukazující na " bc1pszp...rehc4 ". První se používá k zaplacení poplatku za plyn pro následující fázi "odhalení" a druhá je změna.

Ve fázi „reveal“ můžete vidět, že existují dva vstupy utxo, které odpovídají prvním dvěma výstupům předchozí fáze potvrzení. Tato transakce nejprve vydá OP_RETURN, ve kterém bude uložen hash počátečního stavu CAT20. Poté bude výstupem Mint, který bude hrát důležitou roli v následném procesu Mint a slouží k udržování změn stavu procesu Mint.

 

Když se podíváme zpět na celý proces Deploy, „commit“ a „reveal“ následují dva kroky odeslání a odhalení běžně používaného na blockchainu. Některá data projektu jsou pouze v „reveal“. etapy budou odhaleny.

Jak

Když se poprvé podíváme na Mint Token, transakce vypadá takto.

 

Jak můžete vidět na obrázku výše, Mintův proces má následující vlastnosti.

  • Vstupem mincovny je mincovna, která je zpočátku generována během nasazení.

  • Každá mincovna má jednu a pouze jednu mincovnu jako vstup a libovolný počet mincoven jako výstup (trochu problematické)

  • Každá mincovna má pouze jeden žeton (trochu problematické)

  • Pořadí výstupu je povinné, minter musí následovat token

Když známe proces Mincovny, můžeme skutečně objevit některé zvláštní situace, díky nimž bude celý proces Mincovny zajímavý.

Například minter jako výstup mincovní transakce může být 1, násobek nebo dokonce 0. Pokud je Mint pokaždé nastavena na 1, pak počet mincoven, které lze použít v celé síti, zůstane nezměněn (1), což způsobí, že Mint bude přeplněný a každý musí tento minter chytit, aby se tomu zabránilo případě je nutné nastavit počet mincovníků pokaždé na větší než 1, aby po mincovně bylo možné používat další a další mincovny.

Každý další výstup minteru však znamená, že musíte zaplatit více utxo Z ekonomických důvodů více lidí rádo nastaví minter na 0, což nevyhnutelně způsobí minter deflaci, což vyžaduje, aby někteří lidé přišli darovat a zaplatit. extra minter dobrovolně.

Ve verzi V2 je výchozím nastavením generování dvou minerů a stav těchto dvou minerů bude co nejpodobnější.

Transakční strukturování

Někteří přátelé možná objevili problém, tedy proč lze použít minter's utxo ke konstrukci transakcí? Abyste tomuto problému porozuměli, musíte analyzovat zdrojový kód „smlouvy“.

1, odhalit utxo

Nejprve analyzujeme transakci během procesu odhalení a zjistíme, že jako vstup používá výstupní potvrzení předchozí transakce. Proč můžeme vzít utxo, které není naše adresa, a vytvořit vstup transakce?

Podle zdravého rozumu soukromý klíč odpovídá veřejnému klíči a veřejný klíč odvozuje adresu. Při ověřování, zda je vstupní utxo platný, se obvykle zjišťuje porovnáním, zda je podpis konzistentní s původní transakcí po dešifrování veřejným klíčem. Tato část logiky je napsána bitcoinovým skriptem. Můžeme tedy chytře přepsat logiku skriptu Páry veřejného a soukromého klíče zapsané ve skriptu patří k naší vlastní adrese, takže můžeme ovládat utxo dvou různých adres.

Při pohledu na zdrojový kód můžeme vidět, co se stalo:

 

Zde je další problém, to znamená, že soukromý klíč odpovídá veřejnému klíči, tak proč se vygenerovaná adresa commitu liší od naší adresy? Zde to můžete vidět ze zdrojového kódu

Jinými slovy, náš soukromý klíč upraví veřejný klíč podle ISSUE_PUBKEY, což je také charakteristika adres P2TR.

2、minter uxo

Během procesu odhalení používáme jako vstup různé utxo, ale ve skutečnosti je šifrovací klíč stejný, což je soukromý klíč nasazeného. Ale ve fázi minter může každý použít tyto utxo jako vstup, jak se to dělá?

Myslím, že tato část je již zmíněná schopnost OP_CAT, tedy schopnost chytrých kontraktů Každý minter je chytrý kontrakt. Zdrojový kód této části však v současnosti nebyl zveřejněn a konkrétní implementaci zatím neznáme.

Stav transakce (V2)

V mincovně je zachován i stav. Tento stav existuje na dvou místech: jedno je v OP_RETURN transakčního výstupu a druhé je uloženo v inteligentní smlouvě, což je výše zmíněný miner a token.

To, co je uloženo v OP_RETURN, je hash aktuálního stavu výstupu transakce a zbývající časy mincovny tokenu jsou uloženy ve smlouvě. Po každé mincovně se počet mincoven nově vygenerované mincovny rovná zbývajícímu počtu mincoven děleno dvěma. Znázorněno diagramem:

 

Na konci hry je zbývající číslo všech minerů 0.

Vrátíme-li se k původnímu obrázku, kromě toho, že Minter je inteligentní kontrakt, vygenerovaný Token je také inteligentní kontrakt, což je CAT20. CAT20 má dva základní stavy: množství a adresu vlastníka tokenu. Můžete vidět, že na rozdíl od předchozího nápisu BRC20 nebo nápisu, vaše CAT20 není na UTXO vaší adresy.

Převod

Při převodu musí být počet vstupních a výstupních tokenů v transakci konzistentní. Samozřejmě, že ve stejné transakci může být více různých tokenů, pokud jsou vstupní a výstupní čísla různých tokenů konzistentní.

Hořet

Pokud chcete Token spálit, stačí přenést Token na normální adresu.

Shrnout

Je vidět, že všechny operace si konstruují sami uživatelé, což je velmi flexibilní, takže je potřeba udělat hodně ověřovací logiky ve smluvní části. Některé z dosud odhalených zranitelností jsou také způsobeny nedbalostí v ověřovací logice.

Takový design může mít některé výhody:

  1. Chcete-li zjistit stav držení všech tokenů, stačí zkontrolovat utxo tokenu a není třeba dále hledat.

  2. Pokud chcete zkontrolovat aktuální situaci máty, můžete transakce s cat vyhledat v OP_RETURN.

ZAN je tu, aby získal vodu bez jakéhokoli prahu!

Tip: Každých 24 hodin můžete obdržet 0,01 ETH testovacího tokenu zdarma, který vám pomůže zažít a otestovat Web3 projekty v ekosystému Ethereum

Brzy budou podporovány další veřejné řetězce~

Tento článek napsal Yeezo (X účet @GaoYeezo75065) týmu ZAN (X účet @zan_team)