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 možnost mít „chytré smlouvy“ a téměř ve stejnou dobu, kdy byl spuštěn mainnet, byl spuštěn nový tokenový protokol CAT 20. Jakou technickou chytrost má CAT 20? Co se můžeme naučit?

Fraktální bitcoiny

Než pochopíme CAT 20, musíme stručně porozumět Fractal Bitcoin Jejich vztah je stejný jako ERC 20 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 to, jak říká jeho název, tedy několikrát replikovat BTC síť. 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ý ERC 20 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 CAT 20.

Protokol CAT Následující obsah naleznete v bílé knize: Úvod |. Protokol CAT (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 CAT 20 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 CAT 20. Měl by být více podobný ERC 20. Ve srovnání s vyspělým protokolem ERC 20 je pro každého velmi výhodné nasadit token Jak CAT 20 implementuje životní cyklus podobný ERC 20?

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 ERC 20:

Budou zde určité rozdíly CAT 20 může nastavit limity před těžbou a množství pro každou mincovnu. Samozřejmě, ERC 20 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 " bc 1 pucq...ashx " odpovídá potvrzení. Pak jsou zde dvě zbývající transakce ukazující na " bc 1 pszp...rehc 4 ". 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 CAT 20. 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 Mint, můžeme skutečně najít některé speciální situace, které udělají celý proces Mint zajímavým.

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 V tomto případě je potřeba 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 další utxo Z ekonomických důvodů bude více lidí ochotno nastavit minter na 0, což nevyhnutelně způsobí minter deflaci, což vyžaduje, aby někteří lidé přišli darovat a zaplatit. zvláštního mince 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 adresy P 2 TR.

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á?

Předpokládá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 chytré 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. Reprezentovat pomocí diagramu:

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í smlouva, vygenerovaný token je také inteligentní smlouva, což je CAT 20. CAT 20 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 BRC 20 nebo nápisu, váš CAT 20 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:

  • Pokud chcete zjistit stav držení všech tokenů, stačí zkontrolovat utxo tokenu a není třeba pokračovat v hledání.

  • 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 @GaoYeezo 75065) týmu ZAN (X účet @zan_team)