Úvod do důvěrných transakcí
Domů
Články
Úvod do důvěrných transakcí

Úvod do důvěrných transakcí

Středně pokročilí
Zveřejněno Feb 10, 2020Aktualizováno Dec 28, 2022
6m

Úvod

Pro fungování blockchainu je často považováno za zásadní, aby byl systém transparentní. To znamená, že každý uzel v síti si může uložit kopii a ověřit, že nejsou porušována žádná pravidla. U mnoha distribuovaných účetních knih si každý může otevřít online prohlížeč bloků, který mu umožní prohledávat bloky, transakce a adresy.

Z hlediska ochrany soukromí to není ideální. V systému, jako je Bitcoin, lze každou transakci spojit s předchozí transakcí. Coiny nejsou technicky zaměnitelné, což znamená, že každý z nich může být spojen s konkrétními transakcemi. Nikdo vám nemůže zabránit v odeslání bitcoinu, ale může odmítnout přijmout vaši transakci, pokud tyto coiny předtím prošly adresou uvedenou na černé listině.

V nejhorším případě by chybějící zaměnitelnost mohla mít hluboký dopad na samotné základy systému. Čisté coiny by mohly být dražší, zatímco starší coiny by vzhledem ke své historii měly nižší hodnotu.

Soukromí je v síti Bitcoin často přeceňováno. Nejen coiny, ale i uživatelé mohou být sledováni. Ti se sice mohou těšit pseudonymitě (místo jmen jsou vidět veřejné adresy), není to však zcela spolehlivé. Sofistikované analytické techniky mohou s rostoucí přesností seskupovat adresy dohromady ve snaze deanonymizovat síťové entity.

Jednou z navrhovaných aktualizací, která má zajistit skutečné soukromí transakcí, jsou důvěrné transakce.


Co jsou důvěrné transakce?

O důvěrných transakcích (CT) poprvé hovořil generální ředitel společnosti Blockstream Adam Back v roce 2013 a později je rozvinul vývojář Bitcoinu Gregory Maxwell. Maxwell nastínil problémy uvedené v první části (zaměnitelnost a slabá pseudonymita) a navrhl řešení. Převáděné částky mohly být chráněny před širší sítí, takže pouze strany, které transakce provádějí, by věděly, jaká částka byla odeslána.



Za normálních okolností (při veřejně viditelných transakcích) je pro uzel snadné ověřit, že přijatá částka nepřevyšuje částku odeslanou. Pokud chce Alice poslat Bobovi 0,3 BTC, vezme neutracený výstup (říkejme mu 1 BTC) a rozdělí ho na dvě části: 0,3, které mají být zaslány Bobovi, a 0,69, které mají být zaslány zpět jí (zbytek propadne jako poplatek za těžbu).
Pro ostatní uzly je to jednoduchá algebra: 1 je vyšší než 0,3 + 0,69, všechny podpisy jsou správné a Aliciny vstupy ještě nebyly utraceny jinde, takže transakce musí být platná. Při skrytí částek však věci tak triviální nejsou. Jak vůbec začít vyhodnocovat, zda se neznámá částka rovná nebo přesahuje součet dvou jiných neznámých částek?


Přehled související kryptografie

Pro skrytí dat je nutné šifrování. Tradiční metody se však podobají ukládání dokumentů do trezoru: jakmile jsou jednou uzamčeny, stávají se nepoužitelnými, dokud je nevyjmete. K tomu, aby důvěrné transakce fungovaly, potřebujeme digitální trezor, jehož obsah není odhalen, ale jehož vlastnosti může ověřit osoba zvenčí.

Odpověď spočívá v homomorfním šifrování, konkrétně ve schématu zvaném „Pedersen commitment“. Tento typ šifrování umožňuje cizí osobě provádět operace se zašifrovanými daty (která nemůže vidět) pro řadu účelů. 

Běžný hash lze použít na data, která chcete odhalit později. Předpokládejme, že chcete na sociálních sítích vyhlásit soutěž, ve které ten, kdo uhodne vaši oblíbenou burzu, vyhraje cenu 0,01 BTC. Účastníci by mohli být skeptičtí, protože byste se mohli po ukončení soutěže prostě podívat na odpovědi a vybrat burzu, která nebyla zmíněna.

Svým followerům můžete poskytnout hash: řetězec zdánlivě náhodných čísel a znaků, který odpovídá konkrétnímu vstupu. Název své burzy necháte projít funkcí, abyste získali určitý výstup. Pro ilustraci použijeme algoritmus SHA256:


f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191


Když se na to podíváte, nemáte tušení, jaký byl vstup. Funkci nemůžete ani obrátit, abyste ho získali. Pokud však víte, že vstupem bylo slovo „Binance“, můžete snadno zkontrolovat, zda se jeho hash shoduje s hashem uvedeným výše. Tímto způsobem mají vaši followeři určitou jistotu, že svou odpověď v závěru soutěže nezměníte – to by vedlo k úplně jinému výstupu.

Reálně to však není příliš bezpečné. Vaši followeři sice nemohou algoritmus zpětně analyzovat, ale mohou si sestavit seznam možných burz a každou z nich hashovat, dokud nenajdou shodu. Tuto pravděpodobnost můžeme snížit tím, že k datům, která se chystáme hashovat, přidáme náhodná data zvaná zaslepující faktor. 

Pokud zadáme „Binance je moje nejoblíbenější burza, mám ji radši než jakoukoli jinou burzu 2#43Wr“, bude pro oponenty podstatně těžší ji uhodnout (a pro 0,01 BTC je rozhodně nepravděpodobné, že by se o to někdo vůbec pokusil).

Schéma „Pedersen commitment“ nám umožňuje přidat vstupy za závazky. Jak dokládá Maxwell:



C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)

Kde BF je zaslepující faktor a D jsou data


Odtud vede několik dalších kroků zahrnujících kryptografii eliptických křivek a důkazy rozsahu, ale základní myšlenkou je, že uživatel má schéma „Pedersen commitment“ pro svou adresu. Při odesílání finančních prostředků jsou vytvořeny dva další závazky (jeden pro změnu adresy pro vrácení uživateli a jeden pro cílovou adresu). 

Nikdo neví, kolik se posílá, ale může se zkontrolovat, zda se závazky pro změny a určení (levá strana Maxwellovy rovnice) rovnají adrese původu (pravá strana rovnice). Pokud se to vyhodnotí správně, pak je transakce uživatele platná, protože lze dokázat, že vstupy se rovnají výstupům.


Čeho mohou důvěrné transakce dosáhnout?

Pokud by byly důvěrné transakce implementovány do Bitcoinu, měli bychom k dispozici mnohem privátnější systém. Vstupy i výstupy by byly maskovány před širší sítí a záznamy v účetní knize by byly zastřené – uzly by však stále mohly ověřovat jejich pravost. Díky tomuto masivnímu zvýšení soukromí by se bitcoiny mohly stát efektivně zaměnitelnými, protože analýza chainu by již neodhalila historii dané jednotky. 

Pokud jde o to, zda budou důvěrné transakce začleněny do protokolu, nezdá se to v současné době pravděpodobné. Díky této přidané funkci jsou transakce mnohem větší než standardní – vzhledem k omezenému prostoru pro bloky by to jen zvýšilo poptávku. Vyžadovalo by to také souhlas většiny účastníků se změnou kódu, což se tradičně ukazuje jako obtížný úkol.


Závěrem

Důvěrné transakce se dočkaly několika opakovaných pokusů u jiných kryptoměn a sidechainů Bitcoinu. Například Monero je používá v kombinaci s koncepty zvanými kruhové podpisy k dosažení anonymity a zaměnitelnosti. Sidechain Liquid je implementuje pro větší soukromí a MimbleWimble je rozšiřuje za stejným účelem.

Výhody, které přinášejí, jsou u důvěrných transakcí kompenzovány větším potřebným prostorem. Kryptoměny často bojují se škálovatelností a propustností na základní vrstvě a větší velikosti transakcí nevyhovují všem. Přesto zastánci ochrany soukromí považují za nezbytné skrývat částky transakcí a jejich účastníky, aby kryptoměny mohly skutečně sloužit jako zastupitelné peníze.