Uživatelé bitcoinů mohou být zanedlouho schopni těžit z triku s názvem „Taproot“. První navrhováno přispěvatelem Bitcoin Core a bývalým technickým ředitelem Blockstream Gregory Maxwell, Taproot by rozšířil flexibilitu chytrých kontraktů bitcoinů a zároveň by při tom nabídl větší soukromí. I ty nejsložitější inteligentní smlouvy by na blockchainu byly obvykle k nerozeznání od běžných transakcí.

I když jde o velký podnik, nejde jen o teorii. Několik nejplodnějších přispěvatelů Bitcoin Core – včetně Pieter Wuille, Anthony Towns, Johnson Lau, Jonas Nick, Andrew Poelstra, Tim Ruffing, Rusty Russell a samozřejmě Gregory Maxwell – pracuje na návrhu podpisu Schnorr, který by zahrnoval Taproot, všichni v jednom upgradu protokolu.

Co je Taproot a jak funguje?.

P2SH

Všechny bitcoiny jsou v zásadě „uzamčeny“ ve skriptech: pár řádků kódu vložených do transakce obsažené v blockchainu, které definují, jak lze mince utratit v další transakci. Podmínky utrácení obvykle zahrnují poskytnutí podpisu k prokázání vlastnictví mincí. Ale další známé podmínky zahrnují například časové zámky (mince lze utratit pouze po konkrétní výšce bloku nebo datu) nebo multisig (mince lze utratit, pouze pokud určitý počet soukromých klíčů ze sady soukromých klíčů poskytuje podpisy).

Různé podmínky lze kombinovat a porovnávat a vytvářet složité typy inteligentních smluv. Příkladem takové smlouvy může být, že mince lze utratit, pokud se podepíše jak Alice, tak Bob, nebo pokud Alice po týdnu podepíše sama, nebo pokud Bob sám podepíše a zároveň poskytne tajné číslo. Kterákoli z těchto tří podmínek je splněna jako první, je způsob, jakým jsou mince utraceny.

Od roku 2012 skripty (podmínky) zpočátku často nejsou veřejně viditelné; pouze nový majitel mincí ví, jak je lze utratit. To se děje trikem zvaným P2SH (pay to script hash), kde je do blockchainu zpočátku zahrnut pouze hash skriptu. Toto zdánlivě náhodně míchané číslo drží mince. Když majitel utratí mince, odhalí celý scénář stejně jako „řešení“ skriptu současně. Kdokoli pak může použít počáteční hash, aby zkontroloval, zda dodaný skript byl skutečně původní skript zamykající mince, a může okamžitě dojít k závěru, že byly splněny požadavky skriptu.

I když jsou mince utraceny, je v současné době nutné odhalit všechny možné podmínky, které mohly být splněny – včetně podmínek, které nebyly splněny. To má dvě hlavní nevýhody. Zaprvé, je to datově náročné, zvláště pokud existuje mnoho podmínek. A za druhé, je to špatné pro soukromí. Každý se učí všem různým způsobům, jakými mohly být prostředky vynaloženy, což může například odhalit, jaký druh peněženky byl použit a možná ještě více.

STOŽÁR

MAST (Merkelized Abstract Syntax Tree) je navrhované řešení, které k řešení těchto dvou nevýhod využívá stromy Merkle (kompaktní datová struktura stará desítky let, kterou vynalezl kryptograf Ralph Merkle). Stručně řečeno, všechny různé podmínky, za kterých lze finanční prostředky použít, jsou jednotlivě hashovaný (na rozdíl od kombinovaného do jediného hashe) a zahrnutý do stromu Merkle, který nakonec vytvoří jediný hash: kořen Merkle. Tento kořen Merkle „zamkne“ mince.

Jedinou výhodou je, že pokud žádný dat ve stromu Merkle se odhalí, lze použít kořen Merkle a některá další data (nazývaná cesta Merkle) k ověření, že konkrétní data byla do stromu Merkle zahrnuta. Zbytek stromu Merkle zůstává hašovaný a skrytý.

U MAST to znamená, že musí být odhalena pouze podmínka, která je splněna. Pokud v počátečním příkladu výše Alice sama utratí prostředky po týdnu, pouze odhalí tuto podmínku (a cestu Merkle). Nikdo se nedozví, že peníze mohla utratit také Alice a Bob společně, nebo sám Bob, pokud přidal tajné číslo. Díky tomu je MAST efektivnější data než složité inteligentní smlouvy P2SH a přidává se ochrana soukromí při zavádění.

Se Schnorrem však Taproot dokáže ještě lépe: transakce může skrýt, že vůbec existuje struktura MAST.

Schnorr

Schéma podpisu Schnorr je již dlouho na seznamu přání mnoha vývojářů bitcoinů a je v současné době ve vývoji, který bude nasazen jako upgrade protokolu soft fork. Mnoho kryptografů považuje Schnorrovo podpisové schéma za nejlepší v oboru, protože jeho matematické vlastnosti nabízejí silnou úroveň správnosti, netrpí tvárností a ověřuje se relativně rychle.

Schnorrova „lineární matematika“ jako nejznámější výhoda v kontextu bitcoinů umožňuje agregaci podpisů: několik podpisů ve stejné transakci lze kombinovat do jedné. Podobný trik by mohl být použit i pro multisig transakce. Kombinace veřejných klíčů a podpisů do „prahových veřejných klíčů“ a „prahových podpisů“ může být multisig transakce nerozeznatelná od jakékoli běžné transakce.

A podpisové schéma lze použít ještě zajímavějšími způsoby. Například je možné pomocí dat „vyladit“ soukromý i veřejný klíč. Jako zjednodušený příklad lze vyladit soukromý klíč a jeho odpovídající veřejný klíč vynásobením obou dvěma. „Soukromý klíč x 2“ a „veřejný klíč x 2“ by stále odpovídaly a „soukromý klíč x 2“ by stále mohl podepisovat zprávy, které lze ověřit pomocí „veřejného klíče x 2.“ Kdokoli, kdo by nevěděl, že byl původní pár klíčů vylepšen, by ani neviděl žádný rozdíl; vylepšené klávesy vypadají jako jakýkoli jiný pár klíčů.

To je to, co umožňuje Taproot.

Taproot

Taproot je založen na zajímavé realizaci: bez ohledu na to, jak složitá, téměř jakákoli konstrukce MAST může (nebo by měla) obsahovat podmínku, která umožňuje všem účastníkům dohodnout se na výsledku a jednoduše se společně přihlásit k transakci vypořádání. V dřívějším příkladu, pokud Bob ví, že Alice může příští týden sama získat všechny prostředky, mohl by s ní nyní také spolupracovat, aby se společně odhlásili. (V mnoha typických nastaveních inteligentních kontraktů by byl dokonce penalizován, pokud by tak neučinil. Složitost opravdu slouží jen k tomu, aby byl každý upřímný.)

Taproot připomíná MAST a vždy zahrnuje podmínku, kdy mohou všichni účastníci spolupracovat na utrácení finančních prostředků: „uzavření družstva“.

Díky využití podpisů Schnorr je to zajímavé.

Nejprve by kooperativní uzavření využilo Schnorrův prahový trik, aby to vypadalo jako běžná transakce, od jedné osoby k druhé. Veřejné klíče všech účastníků se tedy sčítají, což má za následek „prahový veřejný klíč“. V souladu s tímto prahovým veřejným klíčem jim kombinace podpisů všech účastníků – jejich „prahového podpisu“ – umožňuje utrácet prostředky.

Zatím je to v pořádku, ale utrácení finančních prostředků, jako by šlo o normální transakci, je jediná věc, kterou mohou udělat – zatím žádné HLAVNÍ struktury. To je místo, kde přichází další trik Schnorr.

Všechny alternativní způsoby, jak lze finanční prostředky vynakládat – nespolupracující výsledky – jsou tentokrát kombinovány do jiného scénáře. Tento skript je tedy hašován a zvyklý vyladit prahový veřejný klíč. Spíše než „veřejný klíč x 2“, jak je použit v předchozím příkladu, bude výsledkem „prahový veřejný klíč x skript“. (Stále zjednodušujeme.) Tento „skript prahového veřejného klíče x“ odpovídá samozřejmě „skriptu prahového podpisu x“.

Nyní, pokud jsou peníze vynakládány společně, všichni účastníci spojí své podpisy do „prahového podpisu“ a vyladí je pomocí skriptu. Výsledný „skript prahové hodnoty x“ jim umožňuje utratit prostředky. A co je důležité, vnějšímu světu, to vše by stále vypadalo jako běžný veřejný klíč a běžný podpis – běžná transakce.

Pouze v případě, že se uzavření družstva ukáže jako nemožné, může být zobrazen prahový veřejný klíč tak, jak to ve skutečnosti je: vylepšeno.

V tomto případě oba originál prahový veřejný klíč a skript jsou odhaleny. To dokazuje, že „prahový veřejný klíč x skript“ byl vylepšen tímto konkrétním skriptem. Stejně jako hash v P2SH je vyladit dokazuje světu, že finanční prostředky by měly být použitelné, jsou-li splněny alternativní podmínky uvedené v tomto skriptu. (A stejně jako u P2SH jsou tyto podmínky samozřejmě okamžitě splněny, aby bylo možné prostředky utratit.)

Alternativně můžete místo vylepšení prahového veřejného klíče pomocí skriptu vylepšit prahový veřejný klíč kořenem Merkle stromu Merkle, který zahrnuje všechny různé podmínky, za kterých lze prostředky utratit: strukturu MAST. Abyste mohli prostředky utratit, je třeba odhalit pouze podmínku utrácení, která byla splněna.

Taproot jako takový nabízí všechny výhody MAST, zatímco za normálních okolností nikdo nikdy nebude vědět, že běžná transakce skrývala tak složitou inteligentní smlouvu jako záložní.

Toto je obecný nástin konceptu Taproot; specifika implementace se mohou lišit. Pro více informací si přečtěte původní návrh Taproot Gregory Maxwell nebo hodinky tuto prezentaci autor: Pieter Wuille.