Jimmy Song je vývojář, lektor a autor knihy Programming Bitcoin. Učí, jak fungují bitcoinové transakce, klíče a digitální podpisy, pomocí příkladů v programovacím jazyce Python. Jeho přístup je praktický: místo spoléhání na hotovou aplikaci si čtenář postupně sestavuje vlastní malé nástroje a sleduje jejich výsledky. Vedle technických knih publikuje i názory na peníze a společnost; ty mají jiný druh argumentace než programátorské cvičení.
Songův životopis popisuje vývojářskou práci a semináře Programming Blockchain. O’Reilly jej uvádí jako autora Programming Bitcoin. Spojuje je důraz na vlastní pokus: princip se nestane srozumitelným jen tím, že si přečteme jeho název. Když jej naprogramujeme, musíme vědět, jaká data dostane a co má vrátit. Označení vývojář ovšem samo neznamená správce Bitcoin Core ani pravomoc rozhodovat o pravidlech za ostatní uživatele. [1] [2]
Programming Bitcoin vyšlo u O’Reilly v roce 2019. Začíná konečnými tělesy, tedy počítáním v omezené množině prvků podle přesných pravidel, a eliptickými křivkami, matematickým základem používaných podpisů. Pak přicházejí klíče, podpisy, transakce a zprávy mezi počítači. Čtenář v Pythonu skládá knihovnu, soubor funkcí použitelných v dalších programech. Nemusí tedy přijmout tvrzení, že podpis funguje: může sledovat jednotlivé výpočty. Je to cesta k pochopení vnitřku peněženky, ne jen jejího ovládání. [2]
Představme si, že program dostane transakci. Nejdřív musí rozpoznat její části; tomuto rozebrání dat se říká parsování. Běžný vstup odkazuje na výstup dřívější transakce, tedy na konkrétní částku s podmínkami utracení. Potom je třeba ověřit splnění těchto podmínek, například podpis. Ani správný podpis však sám neříká, zda odkazovaný výstup zůstává neutracený. To vyžaduje kontrolu vůči stavu řetězce. Songova cvičení tak pomáhají oddělit čitelnost zprávy, oprávnění k útratě a platnost celé transakce. [3]
Matematicky správný výsledek je důležitý, ale bezpečný podpisový program potřebuje víc. Knihovna libsecp256k1 řeší také konstantní čas a způsob přístupu do paměti při práci s tajným klíčem. Smyslem je, aby pozorovatel z průběhu výpočtu nezískával informace o tajemství. To je jiný problém než správná odpověď u cvičení. Kód vytvořený pro pochopení principu proto nelze automaticky zaměnit za prověřenou kryptografickou knihovnu pro skutečné peníze, ani když oba programy správně ověří stejný zkušební podpis. [4]
Repozitář programmingbitcoin obsahuje podklady ke kapitolám a práci v Jupyter Notebook, prostředí, které propojuje text, spustitelný kód a jeho výsledky. Při opakování cvičení záleží i na verzi kódu a závislostech, tedy dalších balíčcích, které program používá. Starý instalační návod není automaticky doporučením dnešních verzí. Zaznamenané prostředí pomáhá vysvětlit rozdíl mezi výsledky; úspěšný běh na cizím počítači nenahrazuje ověření na vlastním. [5]
Kniha z roku 2019 dává základ, ze kterého lze rozumět další dokumentaci. Nelze ale předpokládat, že popisuje všechna pozdější rozšíření. Například libsecp256k1 dnes nabízí i Schnorr signatures podle BIP340, specifikace jiného podpisového schématu používaného v Bitcoinu. Čtenář tak potřebuje rozlišit, co vysvětluje konkrétní vydání knihy a jaké funkce poskytuje současná knihovna. Pro práci s jejím rozhraním, tedy způsobem volání funkcí, je rozhodující dokumentace příslušné verze. [2] [4]
Ve Fiat Ruins Everything z roku 2023 Song rozvíjí tezi, že fiat peníze, běžné státní měny, zásadně ovlivňují fungování institucí a že Bitcoin nabízí nápravu. Zde už čteme autorův výklad společnosti, nikoli postup ověření podpisu. Takové tvrzení potřebuje vlastní argumenty a doklady. Správně spočítané kryptografické cvičení samo nepotvrzuje společenskou tezi; nesouhlas s ekonomickým názorem zase sám nevyvrací technické vysvětlení. Tyto části jeho práce lze hodnotit každou podle odpovídajících důkazů. [6]
Songův web popisuje ověřování fotografie předmětu s autogramem pomocí PGP, nástroje pro digitální podpisy, a SHA-256, funkce vytvářející otisk souboru. Shodný otisk pomáhá ověřit, že pracujeme se stejným souborem; platný podpis váže podepsaná data ke klíči. Zbývá ale doložit, komu klíč patří. Stránka při této revizi označuje starý a nový klíč nejednotně, a proto její zkrácený identifikátor nepřebíráme jako ověřenou identitu. Je to praktická připomínka, že ověření dat a důvěra v jejich původ jsou odlišné kroky. [7]
Pro nejúplnější obraz čtěte toto heslo společně s Alex Gladstein, Bitcoin Script, Private Key. Opačným směrem na něj odkazují také Hackers Congress Paralelní Polis, Cathie Wood.