Peněženka nejprve sestaví návrh platby
Když do peněženky zadáte adresu příjemce a částku, aplikace nevybere soubor s mincemi. Najde předchozí výstupy, které může vašimi klíči utratit, a použije je jako vstupy nové transakce. Potom vytvoří výstup pro příjemce, zpravidla výstup s drobnými zpět pro vás, a zvolí poplatek.
Dokud návrh není správně podepsán, sám o sobě nedává síti oprávnění cokoli utratit. Peněženka musí zkontrolovat částky a podmínky, připravit přesná data k podpisu a teprve potom může výsledek odeslat připojenému uzlu. Dobře navržená podpisová peněženka ukáže uživateli cílovou adresu, částku i poplatek ještě před potvrzením.
Vstupy odkazují dozadu, výstupy směřují dopředu
Každý běžný vstup označuje konkrétní výstup starší transakce pomocí identifikátoru a pořadového čísla. Zároveň poskytuje údaje, které splní podmínku jeho utracení. Nové výstupy určují množství satoshi a novou podmínku, kterou bude muset splnit budoucí plátce.
Transakce tedy nezapisuje příkaz typu „odečti z Janova účtu a přičti Petrovi“. Spotřebuje celé vybrané výstupy a vytvoří nové. Pokud mají vstupy větší hodnotu než platba a poplatek, rozdíl se obvykle vrátí odesílateli v samostatném výstupu. Tento model podrobněji rozebere článek 45.
- vstup ukazuje na konkrétní starší neutracený výstup
- výstup určuje částku a podmínku budoucího utracení
- rozdíl mezi vstupy a výstupy může získat těžař jako poplatek
Podpis se šíří, soukromý klíč zůstává doma
Peněženka podepíše určené části transakce soukromým klíčem. Podpis umožní uzlům ověřit, že plátce poskytl požadované oprávnění a že chráněné údaje nebyly po podpisu změněny. Soukromý klíč se přitom neposílá příjemci ani do sítě.
Podepsaná transakce se odešle jednomu či více uzlům. Ty ji samostatně kontrolují a platnou transakci mohou předat dalším sousedům. Její rozšíření však ještě není potvrzením: v této fázi jde o nepotvrzenou transakci, kterou zatím nemusí obsahovat žádný blok.
Příjemce sleduje záznam, ne přicházející předmět
Peněženka příjemce zjistí, že nový výstup odpovídá podmínce, kterou dokáže jeho klíč později splnit. Může jej okamžitě zobrazit jako čekající platbu. Zařazení do platného bloku vytvoří první potvrzení a další bloky snižují pravděpodobnost, že se pořadí historie změní.
Toto vysvětlení nemění Bitcoin na obyčejný bankovní účet. Rozdíl spočívá v tom, že platnost nemusí potvrdit jediný provozovatel účetní databáze. Každý plný uzel může z veřejných údajů a pravidel sám vypočítat, zda vstupy existují, nebyly utraceny a transakce nevytváří nepovolenou hodnotu.