V Bitcoinu došlo ke dvojité útratě, i když ne tak docela

0

Kryptoměnovými médii prolétly titulky o tak zvaném double spendu, který se odehrál v síti Bitcoin. Pokud by se tak opravdu stalo, byl by to velkých bezpečnostní problém.

Jedním z hlavních přínosů kryptoměn je řešení tak zvaného double spend problému, protože samotná decentralizovanost není nic nového nebo revolučního. Problém dvojité útraty spočívá v tom, když někdo může utratit svoje peníze dvakrát.

Jedním z nejdůležitějších úkolů kryptoměnových sítí je proto transakce chronologicky řadit tak, aby v případě konfliktních transakcí bylo jasné, která bude zapsána do historie jako platná a která nikoliv.

Když například budete mít jeden bitcoin a do sítě pošlete požadavek na převod jednoho bitcoinu dvakrát, pokaždé na jinou adresu, je zřejmé, že jen jedna transakce se může uskutečnit. Máte jen jeden bitcoin a ten můžete utratit jen jednou. Síť proto musí uznat jen jednu transakci jako platnou a druhou odmítnout.

K této dvojí útratě zdánlivě došlo v Bitcoinu v bloku číslo 666833, kdy jedna transakce v hodnotě zhruba 21 dolarů byla zapsána dvakrát. Technicky vzato se tedy jednalo o dvojitou útratu. Prakticky ale nikoliv, protože po platné reorganizaci byla jedna z těchto transakcí vyřazena a platná zůstala jen jedna.

Ve skutečnosti se stalo to, že někdo nejdříve poslal jednu transakci s nízkým poplatkem, a zřejmě protože nechtěl čekat dlouho na potvrzení, poslal stejnou transakci podruhé s vyšším poplatkem. Obvykle se stane to, že těžaři „skočí“ na transakci s vyšším poplatkem a zapíší jí, zatímco ta s nižším je ignorována. Říká se tomu anglicky replace by fee.

Jenomže v tomto případě se stalo to, že jeden těžařský pool zapsal do bloku transakci s nižším poplatkem, zatímco jiný pool tu druhou s vyšším poplatkem. Vznikly tak dva konfliktní bloky. Dále se stalo to, co Satoshi Nakamoto předpokládá už ve svém whitepaperu, tedy že konsensem v síti se dospělo k jedné verzi historie, jeden z konfliktních bloků byl ponechán v prázdnotě a budoucnost se začala psát na tom druhém, takže platná je jen jedna z konfliktních transakcí.

Proto je v Bitcoinu důležité čekat vždy na větší počet potvrzení (typicky alespoň šest) a nespokojit se jen s jednou. Jakmile je totiž postaveno za blok s inkriminovanou transakcí dalších několik bloků potvrzených sítí, historie je potvrzena.