Segregated Witness vstoupilo do závěrečné fáze testování před zavedením v bitcoinové síti. To je dobrá zpráva, hlavně proto, že inovace zavádí zvýšení kapacity umožňující více transakcí v síti a zároveň řeší tvárnost transakce.
A zavádí verzi skriptu – rozšíření protokolu Bitcoin, které umožňuje celou novou kategorii inovací.
Jedna z těchto bezprostředních inovací je již nějakou dobu na vrcholu seznamů přání několika vývojářů bitcoinů: Schnorr podpisy.
S blížícím se vydáním Segregated Witness může brzy poté následovat implementace algoritmu kryptografického podpisu Schnorr, což potenciálně zlepší škálovatelnost, efektivitu a soukromí bitcoinů, a to vše najednou.
Zde je návod.
Podpisy
Nejprve krátký re-cap: co jsou podpisy?
Jádrem bitcoinu je matematický trik zvaný „kryptografie veřejného klíče“, kryptografický systém, který používá dva druhy „klíčů“ (opravdu řetězce čísel): soukromé klíče a veřejné klíče.
Soukromý klíč a veřejný klíč jsou matematicky propojeny. I když je velmi snadné vytvořit veřejný klíč ze soukromého klíče, je prakticky nemožné vyrobit soukromý klíč z veřejného klíče. Je to „jednosměrná ulice“.
Aby bylo možné utrácet bitcoiny z konkrétní bitcoinové adresy, je třeba prokázat „vlastnictví“ (neboli znalost) soukromého klíče, který odkazuje na veřejný klíč spojený s touto adresou. A k prokázání vlastnictví soukromého klíče, aniž byste museli tento soukromý klíč odhalit, se používá kryptografický podpis.
Podpis je vytvořen provedením výpočtu pomocí dat transakce a soukromého klíče. A tady přichází kouzlo kryptografie veřejného klíče: Pokud znáte veřejný klíč, každý může zjistit, zda byl k vytvoření podpisu použit správný soukromý klíč. Aniž byste museli znát samotný soukromý klíč.
„Vlastník“ soukromého klíče může tedy podepsat transakci a utratit bitcoiny, aniž by se obával, že někdo jiný může tento soukromý klíč vzít a ukrást bitcoiny; soukromý klíč není nikdy vystaven a podpis je platný pouze pro konkrétní transakci.
(Podrobnější vysvětlení kryptografie veřejného klíče v bitcoinu najdete v tomto článku. Nebo jen pokračujte ve čtení. Zatímco na základním konceptu podpisu záleží, podrobnosti nejsou pro účely tohoto článku rozhodující.)
Schnorr
Takže jaké jsou tedy Schnorrovy podpisy?
Schnorr, pojmenovaný po svém vynálezci Clausovi-Peteru Schnorrovi, je schéma podpisu: řada matematických pravidel, která spojují soukromý klíč, veřejný klíč a podpis dohromady. Mnoho kryptografů považuje podpisy Schnorr za nejlepší v oboru, protože nabízejí silnou úroveň správnosti, netrpí tvárností, jsou relativně rychle ověřitelné a – což je důležité – podporují více podpisů: několik podpisů lze agregovat do jediného nového podpisu.
Doposud však nebylo možné Schnorra využít v bitcoinech. Další typ podpisového schématu, eliptický křivkový digitální podpisový algoritmus (ECDSA), je zapracován do bitcoinového protokolu a jeho změna by vyžadovala tvrdou vidličku.
To je místo, kde přichází Segregovaný svědek.
Se Segregated Witness se všechna data podpisu přesouvají do samostatné části transakce: svědek, který není vložen do „starého“ bitcoinového protokolu. A díky verzování skriptů lze téměř jakoukoli pravidlo použitou ve svědkovi změnit pomocí měkké vidlice. Včetně použitého typu podpisového schématu.
To otevírá dveře Schnorrovi.
Kapacita
Vlastností Schnorr, která nejvíce těží z bitcoinů, je multisignature agregace.
Mnoho bitcoinových transakcí zahrnuje více vstupů s odkazem na adresy, ze kterých jsou bitcoiny odesílány. (To lze přirovnat k tomu, jak platby v hotovosti často sestávají z několika menších bankovek a mincí k zaplacení větší částky peněz.) Právě teď všechny tyto vstupy vyžadují svůj vlastní podpis, což znamená, že všechny tyto podpisy musí být zahrnuty do transakce, všechny musí být přenášeny po síti a všechny musí být zahrnuty do bloku.
U Schnorru však budou všechny vstupy místo toho vyžadovat pouze jeden kombinovaný podpis, který bude reprezentovat všechny tyto různé podpisy. To nabízí zjevnou výhodu v oblasti dat, protože do transakce musí být zahrnut pouze jeden podpis, pouze jeden musí být přenesen po síti a pouze jeden musí být zahrnut do bloku. To znamená, že existuje větší prostor pro transakce.
Například:
Segregated Witness, jak navrhuje Bitcoin Core, nabízí (zhruba) 75% slevu na všechna data obsažená ve svědku, nikoli na původní blok. Jeden megabajt dat svědků je proto „zvážen“ jako 25 megabajtů, což by ponechalo prostor pro. 75 megabajtových transakčních dat v původním bloku, tedy celkem 1 megabajt.
Pokud agregované podpisy Schnorr sníží celkovou velikost dat svědků, řekněme z 1 megabajtu na 5 megabajtů, pak by tento 5 megabajtů byl zlevněn na 0,125 megabajtu, což by v původním bloku ponechalo prostor až 0,875 megabajtu. (Zvýšení kapacity přibližně o 17 procent.)
Přesné množství přidané místnosti závisí na typech transakcí zahrnutých v blocích. Hrubé odhady vývojáře Bitcoin Core Erica Lombroza však naznačují, že podpisy Schnorr by mohly nakonec zvýšit celkovou kapacitu o 40 procent nebo více – to je navíc k přidaným 60 až 100 procentům, které již nabízí Segregated Witness.
Multisig
Zvýšení kapacity, jak je popsáno výše, platí pro běžné transakce, protože mnoho transakcí zahrnuje více než jeden vstup. Výhoda však může být ještě větší v případě transakcí s více transakcemi – transakcí, kde jeden vstup sám vyžaduje několik podpisů (obvykle od různých lidí).
Stejně jako u běžných transakcí nemusí být do jakékoli multisig transakce zahrnuty více než jeden podpis. Bez ohledu na to, kolik podpisů je požadováno, bez ohledu na to, kolik lidí je zapojeno.
Tím se otevírají dveře do mnohem složitějších konstrukcí chytrých kontraktů, a to za zlomek běžně požadovaných dat. Ať už se jedná o typy transakcí typu multisig typu dva ze tří, tři z patnácti nebo sto ze sto, všechny budou mít stejné množství dat podpisu jako typická transakce s jedním podpisem.
Soukromí
A za třetí, podpisy Schnorr by mohly nabídnout další zajímavou výhodu: motivované soukromí.
Jak již bylo zmíněno, jedna transakce může zahrnovat více vstupů. Nejčastěji se tyto vstupy týkají adres, které všechny ovládá stejná osoba. (Podle příkladu více bankovek a mincí.)
Ale trik na zvýšení soukromí, který vynalezl vývojář Bitcoin Core Gregory Maxwell, CoinJoin, umožňuje různým uživatelům kombinovat všechny své transakce do jedné transakce. Jedna transakce bude zahrnovat více vstupů pocházejících od různých plátců, které posílají peníze na více výstupů patřících různým příjemcům.
(Lze to přirovnat ke skupině lidí, kteří házejí své bankovky a mince dohromady do košíku, který nakupují v různých obchodech, aby si koupili produkty, které všichni chtějí. Každý jednotlivec dostane zboží, za které zaplatil, ale je nepravděpodobné, že by někdo zaplatil „vlastní“ účet za produkt, který si jednotlivec koupil.)
Pokud se to udělá správně, CoinJoin je skvělý způsob, jak zlepšit soukromí na bitcoinovém protokolu, protože není jasné, které vstupy platí, které výstupy přesně, natož která osoba platila které osobě.
CoinJoin není nový koncept. Ale až dosud byl CoinJoin obvykle trochu potíží. Většina lidí se proto neobtěžuje. A protože se většina lidí neobtěžuje, mohli by být ti, kdo se obtěžují, automaticky označeni jako podezřelí; potenciální porážka účelu používání CoinJoin na prvním místě.
Podpisy Schnorr však mohou CoinJoinu přidat novou výhodu. Umožňuje všem účastníkům transakce CoinJoin nejen kombinovat své transakce, ale také kombinovat své podpisy. To znamená, že velikost transakce by byla ve skutečnosti menší než všechny jednotlivé transakce dohromady. Což zase znamená, že těžaři by za zpracování transakce obvykle účtovali menší poplatek.
Se společností Schnorr by tedy CoinJoin nejen zvýšil soukromí, ale také – což je důležité – snížil náklady pro všechny zúčastněné. Skutečně by bylo nákladově výhodné využívat nejsoukromější možnost, což by ji mohlo udělat volbou go-to pro každého – obrovské zvýšení ochrany bitcoinů pro všechny.
Poznámka: Proces implementace Schnorrových podpisů v bitcoinech je stále ve fázi konceptu. Zatímco se zdá, že většina vývojářů bitcoinového jádra věří, že Schnorrovy podpisy lze bezpečně nasadit v bitcoinech, je příliš brzy na to s jistotou říci.
Díky vývojáři Bitcoin Core a Blockstream spoluzakladatel Dr. Pieter Wuille pro poskytování informací a vývojář Bitcoin Core a Ciphrex CEO Ericovi Lombrozovi za korektury a další návrhy.