Bitcoin právě teď není ve skutečnosti anonymní. Ačkoli bitcoinové adresy nemusí nutně souviset s identitami reálného světa, mohou být. Monitorování nešifrované sítě peer-to-peer, analýza veřejného blockchainu a politika Know Your Customer (KYC) nebo regulace boje proti praní peněz (AML) mohou odhalit mnoho o tom, kdo používá bitcoin a za co.

To není z hlediska ochrany soukromí skvělé. 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ů.

Navíc bitcoiny, které lze vysledovat, případně „poskvrnit“ a které mají potenciálně nižší hodnotu než jiné bitcoiny, jsou v rozporu se zastupitelností. To by mohlo dokonce zpochybnit hodnotovou nabídku bitcoinu jako peníze.

Existují však potenciální řešení pro zvýšení soukromí a zlepšení zastupitelnosti.

Jedním z těchto řešení je „Důvěrné transakce“.

Pozadí

Na rozdíl od většiny digitální finanční infrastruktury jsou všechny typické bitcoinové transakce zaznamenávány na veřejném blockchainu a jsou viditelné pro kohokoli. To je nutné k ověření transakcí bez jakéhokoli centralizovaného orgánu, ale také je triviální sledovat, kolik bitcoinů se odesílá z jakých adres na které adresy.

Pro zvýšení soukromí je možné skrýt množství transakcí bitcoinů. První verze tohoto konceptu, označovaná jako „bitcoiny s homomorfní hodnotou“, byla první navrhováno v roce 2013 vynálezcem hashcash a aktuální Blockstream prezident Dr. Adam Zpět. Myšlenka se později ujala Bitcoinové jádro a vývojáři Blockstream Gregory Maxwell a Dr. Pieter Wuille a matematik Blockstream Andrew Poelstra. To nakonec vedlo k implementaci důvěrných transakcí v testnet-sidechain společnosti Blockstream, Alfa.

Jak to funguje

Důvěrné transakce kombinují a využívají několik kryptografických triků, zejména Borromejské prstenové podpisy a Systémy závazků Pedersen.

Aniž bychom se ponořili příliš hluboko do kryptografických specifik, jsou tyto triky aplikovány tak, že pouze odesílatel a příjemce transakce jsou si vědomi transakční částky. Všichni ostatní by viděli pouze to, že bitcoiny jsou obchodovány, ale neví kolik.

Chytrá věc je, že zatímco některé nebo všechny částky jsou maskované pro „diváky“, tito diváci mohou stále používat maskované částky pro určité typy výpočtů. Konkrétně lze sčítat všechny vstupy transakce, lze sčítat všechny výstupy a tyto dva součty lze porovnávat, aby se zajistilo, že jsou si rovny – to vše, aniž by byla odhalena jakákoli maskovaná částka, ani součty. Jako takové mohou uzly ověřit, že žádné bitcoiny nebyly vytvořeny z ničeho, aniž by věděl, kolik bitcoinů bylo skutečně odesláno.

(Na vedlejší poznámku je vždy viditelná jedna ze částek: poplatek za těžbu. To má zajistit, aby si horníci nemohli sami přiznat příliš mnoho poplatků, a nemá to žádné další důsledky z hlediska ochrany soukromí. Lze zviditelnit i další částky, pokud si to odesílatel nebo příjemce zvolí.)

Soft Fork

Možná překvapivě by důvěrné transakce byly víceméně kompatibilní se současným bitcoinovým protokolem. I když je třeba upřesnit specifika, řešení lze zavést jako a měkká vidlice – i když to může být trochu „hacky“.

Zde je návod.

Aby se zajistilo, že „staré“ (neupgradované) a „nové“ (upgradované) uzly zůstanou synchronizované, bitcoiny použité v důvěrné transakci by nejprve musely „projít“ adresou „kdokoli může utratit“. Toto je bitcoinová adresa, ze které může každý utratit, a to i bez odpovídajícího soukromého klíče nebo podpisu.

Nebo se to zdá starým uzlům.

Nové uzly by rozpoznaly adresu jako první krok v důvěrné transakci a přijaly by pouze transakce z této adresy, které obsahují správný podpis. Dokud tato pravidla použije většina hashovací síly, bitcoiny na adrese kdokoli může utratit nemůže být ukraden kýmkoli, kdo nekontroluje odpovídající soukromý klíč. (Staré uzly by se mohly divit, proč nikdo neutrácí volně dostupné bitcoiny. Ale také by jim nevadilo, že to nikdo neudělá; z jejich pohledu nejsou porušována žádná pravidla protokolu.)

Zde je to zajímavé.

Pokud je důvěrná transakce provedena z adresy, kterou může utratit kdokoli, mohou tuto transakci vidět staré i nové uzly. Ale vidí něco jiného. Nové uzly by rozpoznaly transakci jako Důvěrnou transakci a například zkontrolovaly, že neexistují žádné bitcoiny vytvořené ze vzduchu. Mezitím by staré uzly byly podvedeny k tomu, aby si myslely, že jde o transakci s nulovými bitcoiny: věřily by, že žádné bitcoiny nezanechají vůbec adresu, kterou může každý utratit.

Tato logika platí pro každou následující transakci. Nové uzly uvidí nové transakce a vědí, že určité množství bitcoinů se pravděpodobně přesouvá z adresy na adresu – ačkoli by vůbec netušily, kolik. Staré uzly po celou dobu vidí „transakce s nulovými bitcoiny“ a věří, že všechny bitcoiny stále sedí na adrese, kterou může každý utratit. (Staré uzly by se mohly divit, proč si lidé navzájem posílají prázdné transakce. Ale zase by jim to nevadilo.)

Důvod, proč to nezpůsobí zmatek (konkrétně kvůli nekompatibilitě Sady UTXO) je, že bitcoiny přijaté prostřednictvím Důvěrné transakce lze zpočátku utratit pouze jako Důvěrnou transakci. Prozatím jsou „uzamčeni“ na adrese kdokoli může utratit a vůbec se nemohou viditelně pohybovat po bitcoinovém blockchainu.

Aby bylo možné tyto bitcoiny znovu utratit v běžné transakci, musí nejprve „projít“ původní adresou, kterou může každý utratit. Příjemce Důvěrné transakce by je musel poslat zpět na adresu, kterou může kdokoli utratit, a odtud začít znovu pohybovat coiny v dohledu na blockchainu.

Jakmile se znovu začnou pohybovat na dohled, nové uzly zkontrolují, zda se nepřesouvá příliš mnoho mincí, zatímco staré uzly jednoduše předpokládají, že se mince pohybují poprvé od doby, kdy byly „uzamčeny“.

Jako taková může adresa, kterou může každý utratit, účinně fungovat jako maskovací zařízení. Předáním adresy, kterou může kdokoli utratit, činí částky následných transakcí neviditelné pro všechny uzly. Bitcoiny by se „znovu objevily“ až poté, co se vrátí na původní adresu, kterou může každý utratit.

Nevýhody a kompromisy

Důvěrné transakce bohužel nejsou pro ochranu soukromí žádnou stříbrnou kulkou.

Je zřejmé, že zatímco Důvěrné transakce maskují částky, diváci stále mohou vidět, která adresa platí za kterou adresu.

Existují však i potenciální řešení, jak to vyřešit.

Zaprvé, je triviální vytvářet falešné negativy a platit nulové bitcoiny na několik adres, abyste zamaskovali, kam bitcoiny skutečně šly. Důvěrné transakce mohou být navíc zvláště užitečné v kombinaci s CoinJoin, který kombinuje odesílání a přijímání adres z několika transakcí do jedné velké transakce.

Další potenciální slabinou Důvěrných transakcí je to, že maskované částky jsou maskované pouze pro konkrétní transakci. To může být poněkud zbytečné, pokud následná transakce není důvěrnou transakcí. Informace z pozdějších transakcí lze někdy použít ke zpětnému výpočtu, kolik bitcoinů muselo být zapojeno do důvěrné transakce.

(Například: Pokud Alice pošle Bobovi neznámé množství bitcoinů a Bob následně pošle 5 bitcoinů Carol a 2 sobě jako změnu, pak to zjevně znamená, že Alice zaslala Bobovi 7 bitcoinů.)

To znamená, že důvěrné transakce jsou opravdu užitečné, pouze pokud je takové použití rozšířené. Ale to nás přivádí k možná ještě většímu problému: Důvěrné transakce jsou docela náročné na zdroje. Důvěrná transakce je asi 20krát větší než normální transakce, a dokonce třicetinásobně zvyšuje výpočet. Náklady na každou Důvěrnou transakci by tedy byly podstatně vyšší ve srovnání s typickými transakcemi, což by odrazovalo lidi, kteří je skutečně používají – což by snížilo jejich užitečnost i pro všechny ostatní..

Kromě toho samotná velikost důvěrných transakcí je staví do rozporu s buď škálovatelností (protože bitcoinová síť by byla schopna zvládnout méně transakcí), nebo decentralizací (protože méně uživatelů by bylo schopno spustit celý uzel a ověřit všechny transakce) ), nebo oboje.

A v neposlední řadě: Není jasné, že všichni souhlasí s tím, že bitcoin by měl být soukromější nebo zastupitelnější, což by mohlo ještě více zkomplikovat zavádění potenciálních soft forků, jako jsou tyto.

Díky Pieterovi Wuille, Adamovi Backovi a Monero vedoucí vývojář Riccardo Spagni pro informace a přidanou zpětnou vazbu.