10 / 736TX

Transakce

Bitcoin Transaction

Co se děje, když někomu pošlete bitcoin: odkud se vezme částka, kam jde zbytek a kdy je platba potvrzená.

Bitcoinová transakce je zpráva, kterou peněženka předává síti, když chcete někomu zaplatit nebo přesunout bitcoin mezi vlastními peněženkami. Určuje, které dříve přijaté částky se použijí a za jakých podmínek bude možné utratit nové. Síť ověří, že na takový převod máte oprávnění a že neposíláte víc, než máte k dispozici. Samotné stisknutí tlačítka Odeslat ještě neznamená potvrzenou platbu.

Máte jednu dosud neutracenou částku 100 000 sat a chcete poslat 60 000 sat. Sat je nejmenší jednotka bitcoinu: 1 BTC tvoří 100 000 000 sat. Peněženka může připravit transakci, která příjemci přidělí 60 000 sat, vám vrátí 39 000 sat a zbývajících 1 000 sat ponechá jako poplatek těžaři. Připomíná to zaplacení větší bankovkou a vrácení drobných. Původních 100 000 sat se použije celých a vzniknou dvě nové částky. Vrácení obvykle míří na novou adresu vaší peněženky; nejde o další platbu někomu cizímu. Poplatek je rozdíl mezi součtem použitých a nově vytvořených částek, nikoli zvláštní výstup. Pokud by vrácení chybělo, mohl by být poplatek nechtěně příliš vysoký. [2]

Bitcoin eviduje dosud neutracené výstupy předchozích transakcí, zkráceně UTXO. Můžete si je představit jako jednotlivé částky, které smí vaše peněženka použít. Vstup nové transakce ukazuje na takový starší výstup; nový výstup určuje částku a podmínky jejího příštího utracení. Peněženka jich může spojit několik nebo rozdělit platbu mezi více příjemců. Vstup proto neříká jen „posílá tato adresa“: obsahuje identifikátor předchozí transakce txid a pořadové číslo jejího výstupu. Tato dvojice se nazývá outpoint. Odkazovaný výstup musí existovat a být použitelný. Stejný výstup nelze utratit dvakrát, ani ho do jedné transakce započítat dvěma vstupy. [1] [2]

U běžné platby peněženka vytvoří digitální podpis pomocí soukromého klíče. Je to důkaz oprávnění k převodu, který lze ověřit bez odhalení klíče. Pravidla mohou vyžadovat i více podpisů nebo čekání do určitého času. Technicky transakce předkládá potřebné údaje v scriptSig a případně v oddělené části witness; uzly podle nich ověřují podmínky utráceného výstupu. Nastavení SIGHASH určuje, které části transakce podpis chrání před změnou. Ani platný podpis ale neumožní utratit neexistující peníze, vytvořit vyšší celkovou částku nebo obejít dosud nesplněný časový zámek. [2]

Po podpisu peněženka transakci rozešle. Uzly ji zkontrolují a mohou ji zařadit do svého mempoolu, čekárny nepotvrzených transakcí. Přijetí do této čekárny ještě není zápis do bloku. První potvrzení přijde až se zařazením do platného bloku a další přibývají s bloky za ním. Pravidla pro předávání a uchovávání čekajících transakcí se mohou mezi uzly lišit; nejsou totožná s pravidly platnosti bloku. Čekající transakci může nahradit jiná utrácející stejné prostředky. I potvrzení se může ztratit při reorganizaci, kdy síť přijme jinou platnou větev historie. Příjem proto ověřujte ve vlastní peněžence na správné síti podle částky, cíle a potvrzení, ne podle cizího snímku obrazovky. [4]

Peněženka obvykle ukazuje txid, identifikátor pro dohledání transakce. Technicky vzniká dvojím použitím SHA-256 na její zápis bez dat witness. Druhý identifikátor, wtxid, zahrnuje i witness; když transakce žádný witness nemá, oba jsou stejné. Tyto údaje identifikují záznam, samy o sobě nedokazují potvrzení platby. Poplatek zase závisí hlavně na datové velikosti transakce a zvolené sazbě, ne na tom, kolik korun má posílaný bitcoin hodnotu. Pro sazbu se používá virtuální velikost vsize: takzvaná hmotnost transakce dělená čtyřmi a zaokrouhlená nahoru. Spojení mnoha malých vstupů proto může stát více než převod jedné větší částky. [3]

Příklad · TX

Vstupy minus výstupy tvoří poplatek

Pokud běžná transakce použije dohromady 250 000 sat a příjemcům včetně vrácení zbytku přidělí 248 200 sat, zbývajících 1 800 sat je poplatek těžaři. Neposílá se zvlášť na nějakou poplatkovou adresu.

Pro nejúplnější obraz čtěte toto heslo společně s UTXO, Private Key, Mempool, Transaction Fees, SegWit. Opačným směrem na něj odkazují také Bitcoin Whitepaper, Timechain / Blockchain, Full Node, UTXO.

01Lze potvrzenou bitcoinovou transakci vrátit?

Bitcoin nemá tlačítko Storno ani správce, který potvrzený převod na požádání odvolá. Chcete-li peníze zpět, příjemce je obvykle musí poslat novou transakcí. To je jiná situace než reorganizace řetězce, při které může platba dočasně ztratit potvrzení. S dalšími bloky přibývá práce těžařů, tedy Proof of Work, potřebná k nahrazení historie. Více potvrzení tím zvyšuje jistotu, ale nevytváří absolutní záruku.

02Proč peněženka vytváří vratný výstup?

Vstupy utrácejí UTXO celé. Když vybrané vstupy převyšují platbu a poplatek, peněženka obvykle vytvoří nový výstup, který vrátí zbytek pod její kontrolu.

DOC · 001Bitcoin Core v29.0: transaction validationPrimární zdroj DOC · 002Bitcoin Developer Reference: TransactionsPrimární zdroj DOC · 003BIP 141: transaction identifiers and weightPrimární zdroj DOC · 004Bitcoin Core v29.0: block validationPrimární zdroj
Revidováno: Primární zdroje · Nejde o investiční doporučení