Home » Velký upgrade Taproot: mýty a pravdy

Velký upgrade Taproot: mýty a pravdy

by Patricia

Poslední týden byl aktivován Taproot, jeden z nejdůležitějších upgradů v historii Bitcoinu. Co však ve skutečnosti dělá, je obtížné pochopit a nezřídka se o něm mluví nesprávně. Proto jsme se obrátili na odborníka.

Minulý týden byl aktivován Taproot, jeden z největších upgradů bitcoinu všech dob, na který komunita netrpělivě čekala několik let. Ale co přesně je Taproot? A co dělá?

Každý, kdo čte zprávy o Taprootu s touto otázkou na mysli, sklidí docela velký zmatek. Tento článek tedy začíná malým přehledem toho, co píší ostatní.

Když tiskové agentury již informují o upgradu bitcoinu …

Jednou z nejpozoruhodnějších vlastností Taprootu je, že se jedná o první upgrade Bitcoinu, který byl pro tiskovou agenturu DPA zajímavý. To vysvětluje, proč najednou najdete informace o Taprootu téměř ve všech médiích, od Süddeutsche a FAZ až po Wiener Standard a Maloměstské noviny. Nebo spíše: dezinformace.

Taproot, vysvětluje Finanzen.net, má „dalekosáhlý význam pro Bitcoin blockchain“. Díky této modernizaci je Bitcoin „ještě agilnější a flexibilnější“ a otevírá „cestu k důležitým technologickým inovacím“. FAZ a mnoho dalších novin cituje zprávu agentury DPA, podle níž modernizace přináší „více soukromí, menší nároky na ukládání a klesající náklady“.

To vše zůstává tak nejasné, že to nemůže být ani špatné, ani správné. Pokud chce člověk vědět konkrétněji, dozvídá se spíše méně, a pokud ano, pak rád špatně nebo zavádějící. Například na Finanzen.net se píše, že Taproot „generuje pouze jeden veřejný klíč pro platby namísto několika veřejných klíčů […]“, což je kromě záměny pojmů přinejlepším jen poloviční pravda. Kromě toho Taproot umožňuje „složitější chytré smlouvy na blockchainu Bitcoinu“, což je důvod, proč by Bitcoin mohl brzy konkurovat Ethereu.

Ve FAZ se dozvídáme, že Schnorrovy podpisy „poskytují větší soukromí pro Bitcoin“. Noviny a agentura DPA požádaly o vyjádření profesora blockchainu Philippa Sandnera, který přednášel, že „tyto Schnorrovy transakce … uvolňují svazek transakcí s jediným podpisem“. I profesor se někdy může mýlit tak, že člověk neví, kde začít.

Nejkompetentnějším zdrojem informací o společnosti Taproot je společnost Heise. Časopis IT vysvětluje, že aktualizace zavádí typ transakce „Pay-to-Taproot (P2TR)“, „který kombinuje koncepty Schnorrových podpisů a ‚Merklized Alternative Script Trees‘.“ Ale i Heise se zarazí, když časopis tvrdí, že Taproot zvyšuje soukromí transakcí nebo že Schnorr umožňuje podepsat transakci poškozeným podpisem.

To je přinejlepším poloviční pravda a hlavně to ukazuje, jak obtížné je pochopit – a vysvětlit – technicky propracovaný upgrade, jako je Taproot.

Upgrade jako zábal

Snažíme se vnést do chaosu Taproot trochu pořádku. Za tímto účelem jsme se spojili s Markem Erhardtem, na internetu známým také jako Murch. Mark pracuje v New Yorku ve společnosti Chaincode Labs, dříve pracoval pro BitGo v Palo Altu. Je těžké se dostat blíže k centrům vývoje bitcoinu než k rodilému Badenovi.

Mark nám pomohl nejen lépe porozumět konceptu Taproot, ale také konkrétně pochopit, co nyní upgrade znamená.

Co se v Taproot mění? Jaké jsou výhody aktualizace?

Taproot se zhruba skládá ze dvou složek: Schnorrovy podpisy a strom skriptů. Obě složky jsou na sobě nezávislé, ale fungují společně a každou z nich není snadné pochopit. To je jedna z překážek k pochopení toho, co Taproot skutečně dělá – a co nedělá.

Schnorr – lepší ECDSA

Schnorrovy podpisy jsou nejsnadněji pochopitelné. Jak Mark vysvětluje, tyto algoritmy existovaly ještě před podpisovým algoritmem ECDSA, který používá Bitcoin.

„Proces podepisování je velmi zajímavý, ale vynálezce Klaus-Peter Schnorr si ho nechal patentovat. Protože poplatek za patent byl příliš drahý, vynalezli jiní kryptografové systém ECDSA, který je rovněž založen na eliptických křivkách. Mezitím však patentová ochrana vypršela.“

ECDSA je dobrý, vlastně velmi dobrý, což je důvod, proč Satoshi zvolil tento algoritmus pro Bitcoin. Není však tak dobrý jako Schnorr a bez patentové ochrany by pravděpodobně nikdo neměl důvod používat ECDSA místo Schnorru.

Nejdůležitější rozdíl spočívá v malém, ale zčásti zásadním detailu: „Podpisy nejsou v ECDSA lineární, ale ve Schnorru,“ vysvětluje Mark. „Pokud je podpisové schéma lineární, můžete agregovat více podpisů tak, aby vám agregace umožnila kontrolu. To u nelineárních schémat, jako je ECDSA, nelze.“

Teoreticky je tedy pravda to, co tvrdí FAZ a Heise: všechny podpisy v transakci by bylo možné shromáždit do jednoho prostřednictvím Schnorra. V současné době, pokud má transakce mnoho vstupů – tedy kombinuje mnoho mincí – musíte každý vstup podepsat a každý podpis zapsat do blockchainu. To představuje velkou část údajů o transakcích. Schnorr by to mohl změnit.

Mohl! Protože „tato agregace se bohužel nedostala do aktualizace Taproot,“ vysvětluje Mark. „To by vyžadovalo další definice a diskuse, proto se rozhodli to udělat později.“

Signatury tajně agregované

Nicméně agregace podpisů Schnorr s Taproot je možná již nyní. Ale ne pro běžné transakce, pouze pro transakce s více signály. Multisig znamená, že transakci musí podepsat dvě nebo více stran, aby mohly být mince vydány ze zvláštní adresy (multisig adresa).

„Řekněme, že si společně vytvoříme peněženku, kde můžeme utrácet peníze, jen když se oba podepíšeme. To by byl „multisig 2 na 2″. Díky službě Taproot můžeme agregovat své veřejné klíče: Dáte mi svůj veřejný klíč, já ho spojím se svým a výsledek je k nerozeznání od běžné adresy. Takže nepoznáte, že je to sdílená peněženka.“

Právě tato „neschopnost sdělit“ je rozhodujícím důvodem, proč se o Taprootu říká, že zlepšuje soukromí.

Dříve bylo možné vícesignálové adresy snadno rozpoznat. Začínaly trojkou, nikoli jedničkou jako tradiční adresy. SegWit to trochu zmírnil, protože formát adresy SegWit také začíná trojkou. Přesto různé typy adres vytvářejí rozdíly, které částečně narušují soukromí Bitcoinu.

S Taprootem lze tyto rozdíly zcela vyrovnat. Nezáleží na tom, jaké výstupní podmínky adresa obsahuje – jeden podpis, více podpisů, časové zámky, chytré smlouvy – všechny vypadají stejně.

Ale samotné podpisy Schnorra k tomu nestačí. Ty jsou totiž účinné pouze pro jednoduché vícesignály: „2 ze 2“, „3 ze 3“ atd. V praxi jsou však oblíbenější jiné modely, a to takzvané prahové signatury, například „2 ze 3“: Třetí strana má záložní klíč a zasahuje v případě ztráty jiného klíče nebo rozhoduje, pokud se ostatní dva neshodnou.

V takových modelech agregace pomocí Schnorrových signatur nefunguje. V tuto chvíli je tedy třeba hovořit o druhé části Taprootu: stromu skriptů.

Strom skriptů pro ostatní případy

Markův bývalý zaměstnavatel, poskytovatel peněženky BitGo, nabízí klasickou konstrukci „2 ze 3“: existují tři klíče. Jednu má zákazník, druhou společnost BitGo a třetí je dobře zabezpečená, v chladu uložená záloha. Z těchto tří klíčů jsou k odeslání transakce obvykle potřeba dva klíče, a to klíče klienta a klíče služby BitGo.

„Předpokládá se, které dva klíče budou použity. Nyní je lze obsluhovat pomocí agregovaných Schnorrových signatur. Vytvoříme tedy výstup P2TR s klíči od vás a od BitGo, a když nastane běžný případ, můžeme se podepsat souhrnným podpisem.“

Tento způsob podepisování transakcí dvěma stranami je nejelegantnější, nejjednodušší a nejkrásnější. Ve srovnání s tím je současná metoda využívající adresy P2SH (pay-to-script hash) přímo obludně složitá.

Ale co když dojde na záložní případ? Pokud ztratím svůj klíč a BitGo se podepíše záložním klíčem? Nebo pokud BitGo selže a já budu muset použít záložní klíč?

„Tyto další, neočekávané cesty jsou vetknuty jako listy do stromu skriptů, který společnost Taproot zavedla,“ vysvětluje Mark. A toto vysvětlení samozřejmě samo volá po vysvětlení.

Od listů ke kořeni

Strom skriptů je v podstatě „jen“ Merkleho nebo hashový strom skriptů. Co je to ale hashovací strom?

Strom hashů je speciální uspořádání velkého počtu hashů. Řekněme například, že máme čtyři bitcoinové transakce a hashujeme je. Pak bychom měli čtyři hashe. Ve stromu hash se nazývají „listy“.

Cílem cvičení je postupovat od listů přes větve ke kořeni stromu hash. Za tímto účelem nejprve spojíme první a druhý hash dohromady a vytvoříme hash. Stejně postupujeme i u třetího a čtvrtého. Dva hashe, které máme jako výsledek – větve – také hashujeme. Tím získáme kořen: hash, který znamená množství hashů.

Tento strom hash vypadá jako strom vzhůru nohama: Koruna je dole, kořen nahoře. Obrázek z wikipedia.org, licence: Creative Commons

Tento strom hash vypadá jako strom vzhůru nohama: Koruna je dole, kořen nahoře. Obrázek z wikipedia.org, licence: Creative Commons


Co takový kořen dělá? Umožňuje jediným hashem prokázat různá data. Příkladem je blok Bitcoinu: těžaři vezmou velké množství transakcí – obvykle několik tisíc – a vytvoří z nich kořen hashovacího stromu. Tento kořen je základem těžby a umožňuje komukoli zkontrolovat, zda je blok platný.

Ve skriptbaimu, který představila společnost Taproot, je každý „list“ způsobem, jak utratit Bitcoiny – skriptem. Výše uvedená adresa multisig obsahuje nejen souhrn dvou veřejných klíčů, ale také kořen stromu skriptů.

Pokud se nyní stane neočekávaný případ, že se podepíšu svým a záložním klíčem, protože BitGo selže, stane se následující, vysvětluje Mark: „Odhalím příslušný skript, který je uložen v listu stromu skriptů. Abych dokázal, že původní adresa kóduje tyto výstupní podmínky, odhalím hashe ostatních listů a větví tak, aby bylo možné rekonstruovat kořen. Poté vyhovím scénáři obsaženému v listu s podpisy obou klíčů.“

Máme tedy postup, kdy jsou vícesignály obvykle – pokud nastane očekávaný případ – elegantnější, jednodušší a také soukromější. Pouze v neočekávaných případech se spustí strom skriptů. Výsledek je podobně složitý jako metoda P2SH – je však poněkud soukromější.

Protože v P2SH je celý skript zaheslován, což obsahuje všechny možnosti, jak mince utratit. Abych mohl napsat platnou transakci, musím zobrazit čistý text skriptu. Musím tedy zveřejnit, o které veřejné klíče se jedná, i když se vůbec nepoužívají.

U P2TR naopak stačí, když v transakci napíšu volbu, která se skutečně vyskytuje v prostém textu. Všechny ostatní možnosti zůstávají zastřené.

Přelom v oblasti multisig

Není třeba diskutovat o tom, zda je Taproot elegantní. Je to tak. Strom skriptů je užitečným doplňkem k signaturám Schnorr. Je pochopitelné, že vývojář jako Mark je z Taprootu nadšený a nemůže se dočkat, až se aktualizace dostane do všech peněženek.

Ale ti, pro které technická elegance není cílem, ale prostředkem, se nyní pravděpodobně ptají: jaký to má vlastně smysl? V čem je tedy nyní Bitcoin s Taprootem lepší než dříve?

„Multisig je mnohem bezpečnější standard pro správu peněz,“ říká Mark. „Můžete vytvořit zálohy a ztížit tak utrácení peněz. Jste pak méně zranitelní.“

Dosud však měly metody multisig značnou nevýhodu: byly často složité jak pro uživatele, tak pro vývojáře, omezovaly soukromí a byly dražší. Všechny tyto nevýhody s nástrojem Taproot zmizí. „Prozradíte méně soukromých informací, prozradíte méně o svém nastavení a s menším množstvím dat v blockchainu toho zvládnete více.“

Mark doufá, že Taproot pomůže společnosti Multisig prorazit. Že více peněženek přijme Multisig, že budou existovat lepší standardy a že se zlepší uživatelská zkušenost, která je v současné době často stále mizerná.

Co Taproot neumí

Přes všechno nadšení Marek varuje před přehnanými a falešnými očekáváními. Tím se dostáváme zpět na začátek. O zprávě agentury DPA a její interpretaci v redakcích.

„Někdy se říká, že Taproot přináší do Bitcoinu DeFi, protože umožňuje uzavírání chytrých smluv. To je špatně. Chytré smlouvy již existují a vše, co Taproot umí, bylo možné i dříve – jen to bylo složitější, dražší a méně soukromé.“

V souvislosti s aplikací Taproot také kolují mylné představy o ochraně soukromí. „Včera jsem se v jedněch velkých německých novinách dočetl, že Bitcoin se díky Taprootu stává anonymnějším. To také není pravda. Je pravda, že již nelze zjistit, zda jedna nebo více stran podepisuje. Adresa je však stále pseudonymní a stále můžete vidět, které mince jsou vydávány. „

Analytici blockchainu nebudou mít problém s analýzou a shlukováním peněženek a adres jako dosud, a to ani po zavedení Taprootu. „Jen se dozvíte o něco méně o nastavení pod kapotou. Ať už se jedná o běžnou adresu, kanál Lightning nebo nastavení multisig, už ji nevidíte. Obecná sledovatelnost toku peněz však zůstává stejná.“

Nyní je řada na ekosystému

Jak už to tak u bitcoinu bývá, trvá nějakou dobu, než se aktualizace dostane do peněženek a k uživatelům. Stačí si vzpomenout na SegWit. Trvalo dlouho, než se aktualizace rozšířila na velkou část transakcí, a ještě déle trvalo, než se rozšířila podpora adres bech32.

Murch doufá, že pro společnost Taproot to bude rychlejší. „Peněženky BitGo již mohou přijímat mince pomocí Taproot. To ukazuje, že tentokrát to může být rychlejší.“

Abyste pochopili, o co se jedná a proč to není jednoduché, musíte znát několik dalších technických detailů. Riskujeme, že vás zahltíme, ale musíme si promluvit o příslušných formátech adres.

  • Výchozí adresy se nazývají „Pay-to-Public-Key-Hash“ (P2PKH) a začínají číslicí 1.
  • Adresy „Pay-to-Script-Hash“ (P2SH), o kterých jsme již hovořili, začínají číslem 3. Ty se používaly pro multisig a další chytré kontrakty, například časové zámky.
  • SegWit byl také původně postaven na adresách, které začínaly trojkou: „Vnořené adresy SegWit“ nebo – pardon: „Pay to Script Hash Pay to Witness Public Key Hash“ (P2SH-P2WPKH). Zde byl víceméně skript pro SegWit zaheslován a přenesen do adresy P2SH. To umožnilo zavést SegWit méně rušivým způsobem.
  • Nativní adresy SegWit-v0 nebo adresy Pay to Witness Public Key Hash (P2WPKH), které technicky fungují efektivněji, používají formát bech32. Tento nově vytvořený standard vypadá zcela jinak, adresy jsou delší, skládají se pouze z malých písmen a začínají písmenem „bc1“.

Pay-to-Taproot (P2TR) také používá standard bech32. Při generování adres však existuje drobný rozdíl, a proto dosud používané adresy v0 nejsou kompatibilní. Je to záměr, aby nikdo nepřišel o peníze.

„Při přípravě na Taproot jsme zjistili, že některé peněženky ignorovaly verzi Witness v adresách bech32 a vždy definovaly výstupy jako Native-Segwit-v0,“ vysvětluje Mark. „Pokud by některá z těchto peněženek poslala peníze na adresu P2TR, skript P2TR by byl zakódován ve výstupu, ale kvůli chybě verze by vyžadoval dokončení skriptu P2WPKH, aby se utratil. Příjemce by nebyl schopen peníze utratit.“

Pro Marka je proto důležité, aby co nejvíce peněženek nejprve umožnilo posílat peníze na adresy Taproot. Protože dokud to nebude všeobecně možné, bude používání těchto adres pro uživatele vždy nevýhodné.

Vývojáři jádra odvedli svou práci. Práce pro ekosystém však v tuto chvíli teprve začíná.

Related Posts

Leave a Comment