Tento článek je přímým pokračováním našeho Vysvětlovač taproot. Pokud jste si tento článek ještě nečetli, měli byste tak učinit nejdříve.
Pokud je Taproot nasazen na bitcoiny, bude mnoho konstrukcí chytrých kontraktů vypadat jako běžné transakce na blockchainu. Dokud se všichni účastníci dohodnou na výsledku smlouvy – „kooperativní uzavření“ – chytrá kombinace Schnorr a MAST nabízí jak účinnost dat, tak soukromí.
Pokud je však inteligentní smlouva s Taprootem dostatečně složitá – tj. Pokud existuje mnoho potenciálních výsledků – cesta Merkle, kterou je třeba odhalit v případě nespolupracujícího uzavření, by byla stále datově náročná.
A následný návrh přispěvatel Bitcoin Core Gregory Maxwell, „Graftroot“, by mohl poskytnout podobné výhody jako Taproot, ale bez této nevýhody, nabízející ještě větší flexibilitu smlouvy.
Graftroot
S Taprootem všichni účastníci inteligentní smlouvy kombinují své veřejné klíče a vytvářejí „prahový veřejný klíč“, ze kterého mohou utrácet se svým „prahovým podpisem“. Pro Graftroot také všichni účastníci vytvoří takový prahový veřejný klíč. Tentokrát ale tento prahový veřejný klíč nevyladí.
Účastníci vytvářejí různé skripty: alternativní podmínky, za kterých lze peníze utratit. Ale s Graftroot všichni podepisují různé skripty, aby vytvořili prahové podpisy odpovídající těmto skriptům. Každý účastník, který si přeje použít konkrétní skript jako záložní, tento skript a příslušný prahový podpis uloží a uloží. Tyto podpisy mohou později světu dokázat, že skript byl platnou alternativou, „delegací“, na níž se dohodli všichni účastníci.
Řekněme tedy, že Alice a Bob uzavřou chytrou smlouvu, kde mohou oba společně utrácet finanční prostředky, nebo nechte Alici to po týdnu strávit sama, nebo sám Bob je utratí v kombinaci s tajným číslem. V tomto případě Alice a Bob spojí své veřejné klíče a vytvoří prahový veřejný klíč, ze kterého mohou později utratit finanční prostředky, pokud poskytnou prahovou hodnotu. (Tento podpis prahové hodnoty ještě nevytvářejí – pouze když utratí finanční prostředky.)
Poté také vytvoří a okamžitě podepíší alternativní skripty. Alice si ponechá podpis prahové hodnoty odpovídající skriptu, který jí umožní utratit mince po týdnu, a Bob si ponechá podpis prahové hodnoty odpovídající skriptu, který mu umožní utratit mince v kombinaci s tajným číslem. (Všimněte si, že samotné podpisy prahových hodnot a odpovídající skripty nestačí k utrácení mincí; pouze dokazují, že skripty jsou odsouhlaseny Alice i Bobem. K utrácení mincí je ještě nutné splnit podmínky uvedené ve skriptech. )
Následujícího dne, kdy nastane čas na vypořádání smlouvy, Alice a Bob pravděpodobně souhlasí s podepsáním transakce vypořádání. Společně vytvářejí podpis prahové hodnoty, který utratí z veřejného klíče prahové hodnoty, a nikdo jiný se nedozví o alternativních podmínkách utrácení ani o tom, že byla zapojena více než jedna osoba. Vypadá to jako běžná transakce.
Pokud ale z nějakého důvodu selže uzavření družstva, kdokoli může splnit alternativní podmínku, může mince utratit sám. Pokud má Bob tajné číslo, odhalí „svůj“ alternativní skript v kombinaci s prahovou hodnotou odpovídající skriptu. Zbytek světa může porovnat podpis prahové hodnoty s veřejným klíčem prahové hodnoty a dojde k závěru, že všichni účastníci inteligentní smlouvy se dohodli na alternativním skriptu. Bob tedy může oprávněně utratit mince s tajným číslem. Alternativně, pokud uplynul týden, může Alice odhalit „její“ alternativní scénář v kombinaci s prahovým podpisem scénáře a utratit mince. V obou případech se nikdo nedozví alternativní záložní skript.
Hlavní výhodou Graftroot je, že už nezáleží na tom, jak složitá je inteligentní smlouva nebo přesněji, kolik možných výsledků existuje. Zatímco výše uvedený příklad obsahuje pouze dva alternativní skripty, konstrukce Graftroot může obsahovat stovky a nemělo by to žádný vliv. Alice a Bob mohli po vytvoření původní inteligentní smlouvy přidat ještě další podmínky!
Nevýhodou však je, že Graftroot je interaktivní. Účastníci musí navzájem komunikovat, aby mohli podepsat alternativní skripty, a to ještě před utracením mincí. Kromě toho budou účastníci muset uložit prahové podpisy pro alternativní skripty; pokud ztratí tento podpis, ztratí svůj záložní zdroj.
Rozvoj Graftroot
Kdy tedy budou uživatelé bitcoinu moci tuto technologii využít?
Dobrou zprávou je, že funkce Segregated Witness umožňuje funkci nazvanou „Správa verzí skriptů“ relativně snadnou implementaci těchto typů změn – podpisy Schnorr, Taproot, Graftroot – zpětně kompatibilním způsobem.
V ideálním případě by přispěvatelé Bitcoin Core pracující na těchto druzích upgradů – to zahrnuje Pieter Wuille, Anthony Towns, Johnson Lau, Jonas Nick, Andrew Poelstra, Tim Ruffing, Rusty Russell a Gregory Maxwell – raději zavedou všechna tato vylepšení na jednou. Zatímco správa verzí skriptů usnadňuje aktualizaci, vyžaduje to, aby transakce odhalily, která aktualizace protokolu se používá. Takže zatímco Graftroot dokázal dokonale skrýt, že jsou k dispozici alternativní skripty, verze skriptu mohla stále odhalit, že transakce používá Graftroot. Nasazení více upgradů protokolů najednou se tomu do určité míry vyhne, protože by všechny používaly stejnou verzi skriptu. Nasazení několika upgradů navíc přináší výhody softwarové kompatibilitě.
Na druhou stranu je „relativně snadné zavedení“ stále velkým úkolem, pokud jde o změny konsensu u bezpečnostně důležitého protokolu, který běží 24/7, někdy s různými zájmy a preferencemi, pokud jde o upgrady. Každá potenciální funkce má své vlastní kompromisy, takže kombinace mnoha najednou by také mohla vést k dalším námitkám. A samozřejmě kombinace více funkcí do jednoho upgradu také vývojový proces nijak neusnadňuje.
Prozatím proto mají prioritu podpisy Schnorr a Taproot, které mají být navrženy jako jeden balíček. Graftroot může být krokem po tom.
Toto je obecný nástin konceptu Graftroot; specifika implementace se mohou lišit. Další informace naleznete v původní návrh Graftroot Gregory Maxwell nebo hodinky tuto prezentaci autor: Pieter Wuille.