Ačkoli Satoshi Nakamoto je bílý papír naznačuje, že ochrana soukromí byla designovým cílem bitcoinového protokolu, analýza blockchainu může často narušit soukromí uživatelů. Tohle je problém. Uživatelé bitcoinů nemusí nutně chtít, aby svět věděl, kde utrácejí peníze, co vydělávají nebo kolik vlastní, zatímco podniky možná nebudou chtít předávat podrobnosti transakcí konkurenci – abychom jmenovali několik příkladů.

Existují však řešení, jak získat zpět soukromí. Nové řešení bylo navrhováno tento týden v seznamu adres pro bitcoiny a vývojáře vývojář bitcoinů a blesků, který má pseudonym „ZmnSCPxj“. Navrhované řešení s názvem Payswap nabízí jednoduchý, ale efektivní trik, jak zaměnit blockchainovou analýzu obrácením vztahu mezi plátcem a příjemcem.

Funguje to takto.

Sledovatelnost bitcoinových plateb

Typickou bitcoinovou transakcí je platba od jedné osoby (plátce) druhé (příjemce). Řekněme například, že Alice chce Bobovi zaplatit 3 bitcoiny. Pokud Alice vlastní kus mincí (UTXO) v hodnotě přesně 3 coinů a my pro jednoduchost ignorujeme poplatky, mohla by vytvořit transakci s jedním vstupem (s odkazem na její adresu obsahující 3 mince) a jedním výstupem (s odkazem na Bobovu adresu bitcoinu) . Kus 3 mincí by se v podstatě přesunul z Aliceho adresy na Bobovu adresu. Jednoduchý.

Alice však častěji nebude mít kousek přesně správného množství mincí, které potřebuje k zaplacení Boba. Alice může mít například jen kousky 2 mincí. V takovém případě může i nadále vytvořit transakci. Tato transakce by měla dva vstupy (dva bloky po 2 mincích, pravděpodobně ze dvou různých adres), a také dva výstupy: jeden výstup v hodnotě 3 coinů přiřazený Bobově adrese a jeden výstup v hodnotě 1 mince, který odešle zpět jedné ze svých vlastní adresy jako změnu.

Bohužel, právě proto, že taková transakce je tak typická, odhalí analytikům blockchainu informace. Budou předpokládat, že část 3 mincí představuje platbu (Bobovi) a že 1 mince je změněna (zpět k Alici). Koneckonců, pokud platba představovala pouze 1 minci, Alice by nemusela zahrnovat dva vstupy. To umožňuje analytikům blockchainu sledovat platby přes blockchain a nakonec umožňuje klastrování adres a další strategie porušující soukromí.

Zadejte Payswap

Payswap v podstatě nahradí platbu od Alice k Bobovi dvěma platbami: jednou od Alice k Bobovi a druhou od Boba k Alici. Dělat to bezpečně vyžaduje určitou technickou složitost – více o tom níže – ale prozatím to ignorujme.

V tomto případě by Alice stále vytvořila transakci se dvěma vstupy: dvěma kusy 2 mincí. Transakce by ale tentokrát zahrnovala pouze jeden výstup: pošle Bobovi všechny 4 coiny. To už může bloge blockchain analytiky zmást. Protože většina typických platebních transakcí obsahuje adresu pro změnu a tato transakce není, mohou (falešně) předpokládat, že se jedná o transakci, při které někdo například přesouvá své vlastní prostředky do nové peněženky.

Mezitím by Bob také vytvořil transakci s Alicí. Řekněme, že Bob má kusy 0,6 mince. Vytvořil by transakci, která zahrnuje dva vstupy (kousky 0,6 mince) a dva výstupy: 1 mince pro Alici a 0,2 mince jako změnu. To by vypadalo jako běžná transakce (1 mince od Boba po Alici).

Pokud se použijí různé adresy bitcoinů, analytik blockchainu nebude schopen zjistit, že zde popsané dvě transakce proběhly mezi stejnými dvěma lidmi (Alice a Bob). Místo falešného předpokladu, který mohli učinit o Alicině transakci s Bobem, nyní mohou mít také nesprávný předpoklad o Bobově transakci s Alicí. Celkově si mohou myslet, že Bob zaplatil Alici 1 bitcoin, zatímco ve skutečnosti Alice zaplatila Bobovi 3.

Analytici blockchainu by na základě svých falešných předpokladů byli uvedeni v omyl, což by prospělo soukromí Alice i Boba. Rozšířením, pokud jsou předpoklady analytiků blockchainu dostatečně často prolomeny těmito druhy triků, stanou se jejich předpoklady celkově zbytečnými.

Přidání CoinSwap

Ve skutečnosti by byl trik Payswap o něco komplikovanější.

Ve výše uvedeném příkladu zbývá vyřešit problém. Vzhledem k tomu, že si Alice a Bob navzájem nedůvěřují, ani jeden z nich není ochoten provést svou platbu jako první, protože by to druhé umožnilo zmizet bez vrácení platby.

O to se můžete postarat starším trikem, tzv CoinSwap. Na základě atomových swapů (ještě starší trik) lze provést dvě jinak oddělené transakce, které jsou na sobě závislé; žádná ze stran nemohla odmítnout vrátit platbu.

Pokud víte, jak fungují CoinSwap a / nebo atomové swapy, myšlenka za Payswap je ve skutečnosti velmi jednoduchá. Místo použití (téměř) stejných částek v atomicky propojených transakcích používá Payswap nerovné částky; rozdíl představuje platbu. (Pokud je vám to jasné, není třeba číst zbytek této části článku.)

O něco podrobněji Payswap zavádí do rovnice další dvě transakce.

Za prvé, místo vytvoření transakce, která pošle 4 coiny přímo Bobovi, Alice vytvoří transakci, která pošle coiny na velmi základní inteligentní kontrakt. Mince lze z této chytré smlouvy nárokovat dvěma způsoby. Může to buď nárokovat Bob, pokud obsahuje také tajné číslo, které sám Bob vygeneroval. Nebo, pokud si Bob nevyzvedne mince, může si Alice po určité době mince vyzvednout zpět.

Zadruhé, místo vytvoření transakce, která pošle minci přímo Alici, vytvoří Bob také transakci, která pošle minci základní inteligentní smlouvě. (A 0,2 mince zpět k sobě jako změnu.) Mince lze znovu získat dvěma způsoby. Buď ji může Alice nárokovat, pokud obsahuje stejné tajné číslo, které vygeneroval Bob. Nebo to může Bob po určité době reklamovat. (O něco více času než v první inteligentní smlouvě.)

Obě transakce jsou vysílány do bitcoinové sítě, aby byly zahrnuty do bloku.

Nyní, když chce Bob vyzvednout svou platbu (4 coiny), vytvoří transakci z chytré smlouvy, kterou Alice vytvořila, včetně tajného kódu, který vygeneroval, a nárokuje si peníze. Důležité je, že tím odhalí svůj tajný kód na bitcoinovém blockchainu, aby ho Alice mohla vidět. S ním může Alice zase vytvořit transakci z chytré smlouvy, kterou vytvořil Bob, a nárokovat 1 minci zpět na její adresu.

Jinými slovy: Bob může vyzvednout pouze 4 mince tím, že nechá Alici vyzvednout 1 minci. Buď obě transakce projdou, nebo ne.

Pokud z jakéhokoli důvodu Bob nepožádá o svou platbu, vyprší časový limit základní inteligentní smlouvy, kterou Alice vytvořila, a může si vyzvednout své 4 mince zpět. Bob, o něco později, může také vyzvednout 1 minci zpět. Žádná škoda nebyla způsobena.

Za zmínku stojí, že tyto chytré smlouvy lze vytvářet pomocí fantastických matematických triků, které skryjí tajné kódy v kryptografických podpisech, aby se zabránilo propojení těchto transakcí analytiky blockchainu prostřednictvím kódu. Podrobnosti o tom, jak se to dělá, však nespadají do rozsahu tohoto článku; pokud se chcete dozvědět více, přečtěte si tento článek o Skriptech bez skriptů.

Nakonec, zatímco používání atomových swapů přidává určitou složitost, analytici blockchainu by byli stejně zmatení.

Nevýhody Payswap

Payswap přichází s některými kompromisy.

Nejviditelnější nevýhodou je, že platba by vyžadovala čtyři transakce, namísto pouze jedné. K získání finančních prostředků od Alice k Bobovi jsou zapotřebí dvě transakce a dvě transakce jsou nutné k tomu, aby se „změna“ vrátila od Boba k Alici. To vyžaduje více blokového prostoru, a tedy i více poplatků.

Platba navíc vyžaduje interakci Alice a Boba. Alice nemůže jednoduše poslat prostředky na Bobovu adresu; místo toho musí dva komunikovat mimo bitcoinový protokol, aby se také usadili na identifikátoru (hash) Bobova tajného čísla.

Řešení by proto mohlo být ve skutečnosti užitečnější v kontextu Lightningu. Směrování plateb v Lightning Network je zcela založeno na výměně tajných čísel, podobně jako to Bob vygeneroval ve výše uvedeném příkladu, takže není těžké pochopit, jak by platil stejný trik. V Lightning Network by navíc další transakce nezasáhly blockchain, zatímco platby stejně vyžadují interakci.

Ve skutečnosti se společnost ZmnSCPxj, ​​zaměřená hlavně na bitcoinovskou síť vrstvy 2 pro rychlé a levné platby, původně přišla s nápadem pro Payswap v kontextu Lightning Network, kde ji jednoduše označuje jako „samoplacení“. Ale o tomto návrhu více v budoucím článku …