Silent Payments umožňují přijímat bitcoin přes jeden opakovaně použitelný identifikátor, aniž by každá platba mířila na tutéž veřejně sledovatelnou adresu. Peněženka je aplikace nebo zařízení pro přijímání a odesílání bitcoinů. Peněženka odesílatele pro platbu vypočítá nový cíl a peněženka příjemce jej později rozpozná v řetězci. Postup popisuje BIP352. Příjemce nemusí být při placení online ani předem posílat novou adresu.
Když Bob umístí na web běžnou bitcoinovou adresu, kdokoli může v průzkumníku sledovat její příjmy. Průzkumník bloků je aplikace, ve které lze vyhledat transakce a bloky dané sítě. Vydávat každému novou adresu je lepší, ale někdo je musí doručovat. Silent Payments řeší právě tento problém. Bob zveřejní stálé údaje a Alice na jejich základě vytvoří výstup určený jen pro danou platbu, tedy záznam částky a podmínky jejího dalšího utracení. Veřejný kontakt se tak neopakuje jako stejná přijímací adresa v řetězci. [1] [3] [9] [7]
Adresa Silent Payments obsahuje veřejný scan key a veřejný spend key. Soukromý klíč je tajný číselný údaj; odpovídající veřejný klíč lze sdílet s ostatními. Jména označují jejich role: scan key souvisí s vyhledáváním plateb, spend key s jejich utrácením. Příslušné soukromé klíče zůstávají u Boba. Na mainnetu, hlavní bitcoinové síti, začíná sp1 a používá kódování Bech32m. Nejde o obyčejnou Taproot adresu začínající bc1p ani o zálohu peněženky. Tato veřejná dvojice umožní kompatibilnímu odesílateli vypočítat cíl platby, ale sama neposkytuje právo peníze utratit ani seznam Bobových příjmů. [1] [5] [9]
Aby mohla Alice zaplatit, její peněženka vybere dříve přijaté částky. Odkazy na tyto částky tvoří vstupy nové transakce. Pro výpočet cíle se používají klíče těch vstupů, které splňují pravidla BIP352; ne každý druh vstupu je vhodný. Alice spojí jejich soukromé klíče s Bobovým veřejným scan key pomocí ECDH. Tato kryptografická metoda umožňuje oběma stranám nezávisle získat stejné tajemství, aniž by si posílaly soukromé klíče. Z něj a z vazby na konkrétní vstupy peněženka odvodí úpravu Bobova veřejného spend key, a tím klíč nového výstupu. Vazba na vstupy brání opakování cíle při opětovném použití vstupního klíče. Pokud Alice použije RBF, tedy nahradí dosud nepotvrzenou transakci například kvůli vyššímu poplatku, a změní přitom vstupy, musí peněženka cíl znovu vypočítat. Starý výsledek nelze jen převzít. [1] [4]
Bobova peněženka prochází vhodné transakce a s jeho soukromým scan key a veřejnými údaji vstupů dopočítává možné výstupy. Když některý najde, zařadí ho mezi jeho prostředky. V řetězci jde o Taproot výstup bez zvláštní oznamovací zprávy. Bob nemusí být při odeslání online ani Alici předem odpovídat, ale jeho peněženka musí později potřebná data zpracovat. [1] [6]
Scan key slouží k vyhledávání; spend key k možnosti peníze utrácet spolu s odvozenými údaji. Soukromý spend key lze držet odděleně od online skeneru. Samotný uniklý soukromý scan key nestačí k utracení peněz, může však odhalit příjmy při spojení s veřejnými údaji. Předat jej cizímu skenovacímu serveru proto není bez dopadu na soukromí. Seed ani soukromý spend key se takovému serveru neposílají. [1]
Silent Payments nepotřebují zvláštní oznamovací transakci, ale výpočty a přenos dat nejsou zdarma. Příjemce zkoumá způsobilé transakce a provádí popsané kryptografické výpočty. Na telefonu záleží na indexování, zdroji potřebných dat a době od posledního prohledání. Samotný běžný seznam adres k tomu nestačí. Uzel je program, který ověřuje transakce a bloky a komunikuje s dalšími účastníky sítě. Vlastní uzel a externí poskytovatel mají odlišné nároky i dopady na soukromí a dostupnost. [1] [2] [8]
Bob může používat labels, tedy odvozené platební varianty, například pro různé projekty. Nemusí tak pro každou variantu provádět celé vyhledávání nezávisle. Veřejné varianty však sdílejí scan key, takže pozorovatel může poznat jejich společného vlastníka. Štítek pomáhá Bobovi zařadit příjem; nevytváří oddělenou anonymní identitu. Zvláštní štítek patří zbytku vlastní platby: když Bob použije větší dříve přijatou částku, než kolik posílá včetně poplatku, zbytek se vrátí do jeho peněženky. Nejde o refundaci od obchodníka. BIP352 pro tento účel vyhrazuje štítek m = 0. Peněženka jej při obnově vyhledává vždy a nesmí ho zveřejňovat jako kontakt pro příjem plateb od ostatních. [1] [4]
Představte si, že Bob ztratí telefon, ale má zálohu. Seed je tajný výchozí údaj, ze kterého peněženka odvozuje klíče; uživatel jej obvykle zálohuje pomocí Seed Phrase, obnovovacích slov v určeném pořadí. Samotná slova ovšem neznamenají, že libovolná aplikace najde platby Silent Payments. Musí umět stejný způsob odvození klíčů i vyhledávání těchto plateb. Záloha použitých labels a informace, odkdy se peněženka používala, obnovu usnadňují. Pro zjištění aktuálních prostředků lze prohledávat potřebná data transakcí se zbývajícími UTXO: samostatnými přijatými částkami, které ještě nebyly utraceny. Obnovení úplné historie vyžaduje širší průchod řetězcem. Prázdné zobrazení před dokončeným skenováním proto nemusí znamenat ztracené peníze. [1]
Silent Payments omezují propojení plateb přes opakovanou adresu, ale neskrývají částky, čas potvrzení ani historii utrácených vstupů. Alice zná svou vlastní platbu Bobovi a objednávka může obsahovat další osobní údaje. Když Bob později spojí více UTXO do jedné transakce, může znovu odhalit jejich souvislost. Silent Payments nejsou totéž co CoinJoin a jejich kombinace není automaticky bezpečná; BIP352 upozorňuje na chybějící formální důkaz pro spolupracující nezávislé odesílatele. [1] [3]
BIP352 uvádí autory josibake, Ruben Somsen a Sebastian Falbesoner; číslo dostal v roce 2023. Při kontrole 17. října 2026 má stav Complete. To neznamená podporu ve všech peněženkách: zvlášť je potřeba ověřit odesílání, přijímání, skenování a obnovu. Protokol využívá existující Taproot a nevyžaduje nový Soft Fork, tedy zpřísnění pravidel platnosti přijímané sítí. Starší aplikace bez podpory adresu sp1 správně neobslouží. [1] [2]
Pro nejúplnější obraz čtěte toto heslo společně s Soukromí v Bitcoinu, Pseudonymita, Taproot, CoinJoin, Replace-by-Fee (RBF), UTXO. Opačným směrem na něj odkazují také Soukromí v Bitcoinu, Transaction Labeling.