Dvojité utrácení ( angl. Double-spending ) - přeprodej (zcizení) stejných aktiv. Obvykle mluvíme o elektronických platebních systémech, které mají přirozeně schopnost kopírovat stav, což umožňuje provést několik plateb ze stejného výchozího stavu.
U většiny malých nákupů proces nákupu a prodeje spočívá v přímé výměně zboží za peníze. Bezprostředně po předání zboží se kupující stává novým vlastníkem. Existují však situace, kdy mezi uzavřením transakce a registrací převodu vlastnictví uplyne značné časové období. Poměrně často k takovým situacím dochází při transakcích s nemovitostmi. To umožňuje prodejci prodat stejný produkt několikrát různým kupujícím a několikrát od nich přijmout platbu. K tomuto výsledku vedla praxe opakovaného půjčování peněz od různých lidí proti zabezpečení stejného majetku [1] [2] . Nyní se tak občas stane z nedbalosti prodejce [3] , ale nejčastěji jde o variantu podvodu [3] . Například po zaplacení peněz za byt v novostavbě může majitel po čase (někdy i několika letech) zjistit, že jeho nový byt nepatří jen jemu. K podobným incidentům dochází při nákupu bytů na sekundárním trhu [4] , kdy se kupující může ujistit, že nemovitost dříve skutečně patřila prodávajícímu, ale není zaručeno, že nebyla prodána krátce před transakcí nebo nebude prodána. znovu krátce po něm. Změny v legislativě a používání jednotné evidence údajů o takových transakcích mají za cíl eliminovat možnost klamání kupujícího [3] .
Zásadně odlišná je situace u digitálního zboží – vždy existuje možnost prodeje identické kopie. V tomto případě obdrží každý kupující kompletní kopii zboží a není to považováno za podvod. Ale snadnost kopírování a totožnost kopií se stává vážným problémem pro schémata digitálních peněz podobná hotovosti. Digitální „mince“ pro bezplatný převod musí mít tvar . Ale digitální soubor lze snadno zkopírovat. Majitel „mince“ může při platbě za zboží převést její kopie na velký počet prodejců. Každý příjemce se může snadno přesvědčit, že přijatý soubor plně odpovídá standardu, ale nebude mít jistotu, že stejná kopie nebyla zaplacena jinému prodejci [5] .
Všechny platební systémy kromě kryptoměn jsou centralizované - mají centrální (administrativní) vazbu, kde je zajištěna kontrola přípustnosti konkrétní operace [5] . Podkladem pro rozhodování jsou přitom informace samotného správce, nikoli informace poskytnuté plátcem. Zkopírování stavu platebního systému plátcem vám proto umožňuje generovat pouze dvojí útratu (například pokud máte na účtu 1 000 rublů, vytvořte v klientské bance dva platební příkazy za 1 000 rublů), ale skutečné provedení proběhne v pořadí, v jakém jsou příkazy přijaty bankou, a některé z nich budou odmítnuty z důvodu nedostatku finančních prostředků.
Při platbě v hotovosti není potřeba žádný prostředník. Kupující převede peníze prodávajícímu a již nemůže převést stejné peníze jinému prodávajícímu. Pokud by bylo možné podobnou transakci provést elektronickou formou, pak by správce platebního styku nebyl potřeba. Přímou analogii však nebylo možné realizovat.
Jednou z forem bezhotovostního peněžního oběhu je směnka [6] . Kdo je aktuální majitel směnky a jeho pravomoci lze zjistit řetězcem indosamentů ( indosamentů ). Pokud současná majitelka směnky, Alice, učiní indosament „platit na příkaz Boba“ a připojí svůj podpis, stane se Bob dalším majitelem směnky a pouze on s ní může disponovat, včetně vytvoření nového indosamentu. Byl to podobný mechanismus, který se ukázal být implementován v elektronické podobě. „Elektronická mince“ obsahuje kvantitativní informace („hodnota“) a označení vlastníka (přesněji jeho adresa, vytvořená z jeho veřejného klíče). Pro převod „elektronické mince“ vlastník podepíše hash předchozí transakce a veřejný klíč (adresu kryptoměny) budoucího vlastníka svým soukromým klíčem [5] . Nově bude moci s touto „elektronickou mincí“ provést novou transakci pouze vlastník soukromého klíče z nové adresy. Zbytek síťových uzlů před přijetím transakce ke zpracování ověří podpis. Správnost podpisu znamená, že iniciátorem transakce je vlastník tajného klíče odpovídajícího adrese aktuálního vlastníka. Příjemce „elektronické mince“ může zkontrolovat celý řetězec podpisů (až do okamžiku vydání ) a ujistit se, že je správný. Ale vzhledem k možnosti kopírování nebude příjemce schopen určit, kolikrát již bývalý majitel tuto "minci" utratil [5] . Na konci roku 2017 již bylo navrženo několik algoritmů, které mají zajistit shodu na tom, která transakce je považována za pravdivou, což umožňuje ignorovat pokusy o dvojnásobné utracení stejné „elektronické mince“.
V decentralizovaných platebních systémech (kryptoměny) neexistuje žádný kontrolní orgán. Aby se zabránilo dvojímu utrácení, bylo navrženo sloučit transakce do bloků, které jsou zabudovány do souvislých řetězců – tvoří blockchain . Pro získání práva na přidání bloku musíte prokázat provedení práce („Doklad o práci“) [7] . Kontrola řetězu vám umožní ujistit se, že stejná „elektronická mince“ nebyla dříve utracena. Ve skutečnosti je transakce certifikována uzlem, který ji zahrnuje do bloku. Jakékoli další transakce se stejnou „elektronickou mincí“ a stejným vlastníkem budou nyní systémem ignorovány. Později byla navržena schémata, kde se místo dokladu o práci používá důkaz o sázce . Hlavním cílem budování blockchainu je poskytnout kritérium pro dosažení konsenzu o tom, která verze transakcí je považována za správnou. Systém je bezpečný, pokud je největší část jeho výpočetních zdrojů pod kolektivní kontrolou poctivých účastníků [8] .
Informace v blockchainu jsou otevřené všem. Protistrany však mohou pouze zkontrolovat, zda odesílatel má aktiva v určitém časovém okamžiku v minulosti. Pokud je dostatečně rychle provedeno několik plateb převádějících stejné aktivum, informace o nich ještě neobdrží potvrzení (nebudou spadat do dalšího bloku nebo nebudou jinak legitimovány) a každý z příjemců bude mít jistotu v legitimitu transakcí. . Teprve poté, co je potvrzena jedna z transakcí (ne nutně první v čase), ostatní transakce se stejným aktivem již nebudou platné. Existuje však možnost, že kvůli dočasnému rozvětvení blokového řetězce mohou paralelní větve obsahovat transakce, které spravují stejné aktivum různými způsoby. Každá z větví je stejná, není chybná. V procesu formování nových bloků ( těžba nebo kování ) se jedna z větví prodlouží. Využije výhodu a krátká větev zemře a všechny transakce, které jsou v jejích blocích, bude nutné znovu umístit do bloků [9] . Protože jedna z verzí sporné transakce zůstane v dříve vytvořeném bloku, verze transakce z „mrtvé“ větve bude při pokusu o přidání do nového bloku odmítnuta. Pravděpodobnost existence paralelních řetězců je extrémně malá a s rostoucí délkou řetězce exponenciálně klesá [9] . Čím více potvrzení transakce má, tím menší je pravděpodobnost zrušení transakce z důvodu smrti řetězce, který ji obsahuje. Obchody s nulovým počtem potvrzení jsou proto potenciálně rizikové a řada prodejců si klade požadavek na minimální počet potvrzení. Obecně platí, že šest potvrzení je dobrou rovnováhou mezi čekáním na všechna potvrzení a zajištěním, aby transakce nebyla podvržena. [deset]
Jak v těžbě , tak v kování , pokud má útočník pod kontrolou dostatečně velký podíl emisí (celkový těžební výkon nebo celkové množství zdrojů při kování), existuje značná (ne zanedbatelná, jako v obvyklém případě) pravděpodobnost „tajně“ seřazovat dlouhé paralelní řetězce bloků. Po jejich zveřejnění v síti bude delší řetězec rozpoznán jako hlavní. Zrušení blokového řetězce může vést ke zneplatnění transakcí, a to i těch potvrzených několika bloky, a k následnému „zpětnému převodu“ aktiva na jiného příjemce [11] .
S koncentrací v jedné ruce více než 50 % celkové těžební síly je možné vybudovat paralelní řetězec libovolné délky, který umožňuje měnit příjemce v transakcích vlastníka koncentrované síly ( „Double Spending “ útok nebo “51% útok”) [12] . Pokud je výkon pod kontrolou menší než 50 %, pak pravděpodobnost úspěchu s každým potvrzením exponenciálně klesá. U kování koncentrace více než 50 % zdrojů nezaručuje úspěšnou výstavbu dlouhého paralelního řetězce, i když výrazně zvyšuje pravděpodobnost.
I když je útok s dvojitou útratou úspěšný, nebude mít za následek:
Na začátku roku 2013 byla síla bitcoinové sítě nižší než 25 THash/s, ale během následujících 3 měsíců vzrostla na 55 díky masové distribuci specializovaných procesorů ( ASIC ) navržených speciálně pro těžbu v bitcoinové síti [ 13] . V červnu 2013 přesáhla kapacita sítě 120 THash/s. Do září kapacita přesáhla 1000 THash/s, v říjnu se kapacita zdvojnásobila a 1. prosince 2013 přesáhla 6000 THash/s [14] . Uživatel s nejvyšším výkonem má přitom méně než 100 THash/s [15] . Soustředit potřebnou celkovou sílu do jedné ruky je stále obtížnější a nákladnější. Těžba se ale dlouhodobě soustřeďuje do poolů, z nichž největší se již několikrát přiblížily hranici 50 % celkové kapacity.
Dvojité utrácení bitcoinů v praxi nebylo zaznamenáno. Od května 2015 paralelní řetězce nikdy nepřesáhly 5 bloků [16] .
Blockcypher Trust FactorV některých případech povaha transakce zahrnuje převod zboží ihned po zaplacení (například nákup v kavárně), to znamená s nulovým potvrzením. V tomto případě je možný „běžící útok“, což je varianta dvojího utrácení - nejprve se vytvoří převod finančních prostředků na sebe nebo na přátelskou osobu a poté se ze stejných prostředků vytvoří platba v kavárně. Když první transakce vstoupí do blockchainu, druhá se stane chybnou a prodejce se stane obětí podvodu. Obchodníci mohou přijmout opatření ke snížení rizika plíživého útoku, i když nemusí být schopni hrozbu zcela eliminovat.
Projekt Blockcypher si klade za cíl v takových situacích pomoci. Pro každou transakci s nulovým potvrzením je přidán atribut důvěryhodnosti podle speciálního algoritmu [17] . Pokud je tento ukazatel 99,9 %, pak pravděpodobnost pokusu o dvojnásobné utrácení je pouze 0,01 %. [18] Výpočet je založen na analýze dvou aspektů transakce: "formát" a "chování". "Formát" analyzuje strukturu transakce: jaké jsou vstupní a výstupní data, jejich historie, typ podpisu. „Chování“ zvažuje, jak je transakce distribuována po síti, sleduje změnu jejích parametrů v čase.
MasternodesKryptoměna Dash využívá speciální službu InstantSend určenou pro velmi rychlé transakce (potvrzení je vystaveno za 1-3 sekundy). Při platbě pomocí tohoto protokolu je transakce odeslána 7-10 náhodným masternodům, které na cca hodinu zablokují vstupy transakce, aby se zabránilo opětovnému použití zapojených jednotek [19] .
Rippleův konsensuální přístupSystém Ripple řeší problém dvojího utrácení konsensem . V první fázi všechny servery přijímají všechny platné transakce, včetně nových. Poté každý server hlasuje pro pravdivost přijatých transakcí. Transakce, které získají více hlasů, přecházejí do nové fáze, kde se také hlasuje, ostatní transakce, které získají nedostatečný počet hlasů, jsou vyřazeny. Transakce se přestane účastnit hlasování, když shoda na ní dosáhne 80 % [20] .
Obecně se uznává, že je nemožné vyřešit problém byzantských generálů , pokud je více než 33 % systému podvodných. [21] V protokolu Ripple je shoda správná, dokud systém není z více než 20 % podvodný. [22]
Je možné, že podvodná transakce bude potvrzena konsensem, ale taková transakce nepředstavuje hrozbu. [22] Předpokládejme, že se uživatel pokusí zdvojnásobit útratu, ale i když jsou obě jeho transakce potvrzeny procesem konsenzu, po použití jedné z transakcí je druhá již neplatná. Jde o to, že hlavním požadavkem na konsensus je závislost na deterministickém (reprodukovatelném) algoritmu pro zpracování událostí, které nastaly, což znamená, že jsou vyloučeny všechny situace, které si navzájem odporují. [23]
Srovnání Bitcoinu a Ripple v oblasti dvojitých výdajů spočívá na srovnání „ důkazu práce “ a výše uvedeného konsensuálního algoritmu. Bitcoinový systém se stává zranitelným, pokud je více než 51 % celkové síly soustředěno v jedné ruce. To však pro Ripple není problém díky konsensuálnímu přístupu. [24] Přebytek síly nedává útočníkovi žádnou výhodu. Podobným útokem pro Ripple by bylo nechat útočníka ovládat většinu serverů ( validátorů ), které jsou odpovědné za ověřování shromážděných transakcí. Členové Ripple se však tomuto problému mohou snadno vyhnout, protože si vybírají vlastní validátory. Zjištěný útok lze snadno korelovat s „podvodným“ validátorem a v budoucnu je takový validátor z kontrolního seznamu vyloučen. Vzhledem k minimální odměně pro útočníka a obtížnosti provedení útoku je nepravděpodobné, že by takové útoky byly zahájeny. [25]
Servery Ripple jsou spravovány jednotlivci, organizacemi a známými společnostmi. Úroveň ochrany roste úměrně s růstem sítě Ripple.
Pokud je tatáž nemovitost zastavena opakovaně a každý následující věřitel-zástavce neví, že jeho závazek je zajištěn zástavou dříve zastaveného majetku, pak to nepříznivě ovlivňuje splácení dluhu dalším zástavním věřitelům.
V jednu chvíli bylo možné zastavit majetek dvakrát, to znamená, že byl poskytnut úvěr proti zajištění již zastaveného majetku. V některých případech byla povolena i třetí půjčka.
Kryptoměny | |
---|---|
PoW založené na SHA-2 | |
PoW založené na Scrypt | |
PoW založené na CryptoNote | |
Další algoritmy PoW | |
PoS algoritmy | |
Jiné technologie | |
související témata |
|