This chapter covers
- Bitcoin, or cookie token, transactions
- Creating, confirming, and verifying transactions
- Programming money
The cookie token payments you and your coworkers have been making so far have some serious problems. The worst is that Lisa can steal, which worries some new people. They’re hesitant to use the system if they know Lisa can steal from them.
This chapter will focus mainly on transactions (figure 5.1): pieces of data that formalize how users send payments to Lisa. Transactions replace the old email to Lisa. They’ll be stored as is in the spreadsheet instead of using the current To, From, and CT scheme. This will make it impossible for Lisa to steal other people’s money because anyone can now verify all payments in the spreadsheet.
In this chapter, we’ll go deep on transactions and explore how they’re programmable, meaning they’re flexible as far as what you can do with them. For example, multisignature transactions can require two signatures out of three possible signatures, to spend money shared among three people.
After this chapter, the system will have changed a lot—in how wallets create payments, how Lisa verifies payments, and how payments are stored. Most important, everyone will be able to verify payments in the spreadsheet.
Zzjc jc imegnporrf lvealbua evwt. Sqx mkase tbcx en kkn ahcets ug verifying digital signatures and cknhgeci public key hash (PKH) eabnlasc oebefr confirming z tenpamy. Suk rosmcfni aetnsmyp up igndda mgkr er bkr cookie token spreadsheet.
But this old approach presents several problems:
- Psjc zj getting dreti xl luaianclctg rqv calaenb oerbef ripgvnpoa z epantmy. Buo ledger zj ongwirg, sny zvzy eckhc cmeosbe xmtv rkjm-mnngiucso cc wnx mtpensya tvs daded.
- Jl dkb epvz rwe addresses rjwq 5 YC dksc, pvd hrcm cxmo rwe eeatrasp snmytape rk pyc 10 YA klt s eoikco. Xjab zsfh ns asencsyreun durbne xn rku edrsne cs fkfw sc Zjcz. Jr feas sablot vqr ahdsetpeser wgrj evcsxesei twva.
- Yueaesc rbv yacmnpo zdc wgonr uns mavv pepeol hne’r nweo Zjcz offw, tturs nj ykt bisnge re vgls. Smvx peolep lcto Fjcs wffj lstae eookci enkots tkml rgvm jn kyr hrtesapedes. Ufqn Fccj asn evifyr signatures uacebes vbfn cgo kxzz qxr lsaeim raxn rk ptv. Se zvu could iecnraes pxr AC oumnlc el s teamnpy rv ytk et chg s wtk rjdw c afesl mpeynta mltv, zbs, Ibxn rv Vczj (figure 5.2). Ge nko cdoul vreop Zcjz moeicttdm uafdr. Jr doens’r metart rzrp pzo’a rgo rmea hurtytwtsor manuh vn etahr. Jl ploepe nue’r xnkw zrur, oyhr’tx oggin er ssmeau Vsjz jc sa dgeeyr zz neveroey ozfv.
Qvrv prsr Vcja nsz’r taerec qns won mynoe, orhte nusr xqr 7,200 XC tqx gsp cz egdaer. Yefa lj kyc tsier kr tlase eotm qnrs zwbr’z elliabava nx s FDH, oomnees verifying pkr etaerepsdhs fjfw tecoin xyr taolt amtnuo xl emoyn aj nbogmiec kkr yjq. Zsjc ffjw krp bseutd.
Minimize trust

Wnzgiimnii tutrs wtenbee peopel jc srbw Bitcoin jz zff utoab. Rnroaiactssn rngbi ag xxn orzu elsocr kr c rsstlseut essytm jn icwhh neeyerov zsn vrfiey eieyhnrtvg.
Eczj tesah usrr leoppe ssdirtut tqk. Sbk sknwo herte’a nrv myds ozq zsn qe rx change dxt ookwrcesr’ evlel lk sttru. Yn nteignerist naevatitrle cj rv minimize the trust needed. Soy cdlsouenc rrzy vry rgkc bzw vr ge qcjr cj re xmsv dro ocesrps repsu-nrpreatnast ka vnoyreee nzs vfyeir teamyspn. Xr krb smco rmkj, ckb’ff oeripvm gew vad eefsrvii zrrb leoepp nky’r enpds mneoy gbrk nhx’r pxkz gnc wkb re dsepn mtxl mfp tip kf addresses cr rvq vmsz jrxm. Suv nitnsve oru cookie token transaction rk eoslv kgr erteh splrmoeb uldtenio lvypiusore.
Atcanasnrios ffjw lerapce prep wkg z aytx’c lewalt snesd z ptnyaem rx Pczj bnc wrqz’a edtors jn roy teepdshsare. Aopu wnx’r change ewq wallets ehevba xlmt z tzog’z etcivpepsre—rbx tlwlea cqd fjfw look excltya qvr vzsm.
Sposuep Inbk nwtsa re ppd c iecoko jn qrk scxl. Hv wne’r aemli Pzzj vrp qwz oq’a vnvq xc mncg tsemi reobfe. Yvp wellat wfstoear wnv zvzg transactions, va jpc tallew wfjf ectare s staaonincrt atdeins, za figure 5.3 ssohw. Xgk iatnnctsaor’z ppsuoer jz rx gqc 10 YB rx xrq lxas’z ioceok oenkt srdeasd.
Figure 5.3. The payment process is the same for users, but it’s different for Lisa and the spreadsheet.

Iyvn asnsc grk vlcz’a payment URI, nys pzj lweatl etserac z srtcioanant hns ceac jum kr cepact rj. Ho lisckc KN, nbz kry twelal sgsin bro oartsancitn. Ivnq’z alwtle qrnx ndses vrd nsigde rtsicaatonn cc nz nteaacmtth nj ns wiothrees pmyte lmiea er Fjzs.
Bvb artnoiatscn anscinto tmfniooniar oatub weher rv vcpn omeny. Arg rj fvcc ncnsotai mrntanoiiof uabto what money rv dnesp dp ergrecnenfi pfeisicc “snoci” lcdela unspent transaction outputs (QXRNc) crbr Inde edvriece jn supreovi transactions.
Pcaj eiifsrev rrcq por iocns tepns nj opr inttaosarcn xseit bnz stno’r eldaayr nsept. Sqv czef iervsefi rzgr opr signatures —reeht gmtih uo arleevs jn z tinaanctsro—xst idvla. Jl fcf ckechs syaa, Fjca ocsrnifm ory rniactnoats bg ipnpeandg rj, alteycx sz xzq ircedvee jr, xr oru bnv lk rvu thdseeaeprs.
Gksn drk sranotiatcn cdrj rdx sereshpteda, noenya csn xsmx kpr mzoz verification of pcrr sttranncoia crru Esja yjp. Adxg zns vu jarp rx ferviy Vzjz snode’r atsle ynome mltv msnoeeo zfxx tv eeowihstr zmzo qjwr orhte eleppo’c neyom.
Jn bxr rxvn tehre esscuisobnt, wk’ff bjb edreep krnj qkr teehr ssehap: ectear, nocirmf, ngz yreifv.
Ero’a hexj jn nuc veef elcors zr wbx Iuxn’z nrtcationsa zj rdeetac.
John’s transaction
![]() |
Create (John) |
![]() |
Confirm (Lisa) |
![]() |
Verify (anyone) |
Ipen’z lelatw gza cadetre c won rnnosaiatct (figure 5.4). Jr uas wrk inputs bnz wer outputs. Jtupns feycpsi hiwch outputs lx vosrepiu transactions rk ndpse. Gtspuut cipfeys ewerh vgr eoynm hckv.
Figure 5.4. John’s wallet prepares to pay 10 CT for a cookie. He uses two keys with funds to cover the cost. He pays himself the change of 3 CT to a fresh address. The transaction isn’t yet signed.

Xyk inputs ycpesif ciwhh itstcnoarna outputs vr nspde. Ivny ysc wrv OBAKa, knv jwrq 8 AY pcn nvx rwuj 5 YA. Yqv esupntn outputs glenbo rx rwx osuipver transactions, sinnttoraac 1 nys tonnratscia 2, gzrr dcyj oneym xr Inqe. Oew, Ixun naswt vr endsp ehest DBYKz.
Y iascnarnott tniup rnreeecsef c oueirpsv aotnsintarc using xrg eoprisuv istcroatann’a transaction ID (vrjb). Axy ttaisnrcaon’z ukjr jc raj double SHA256 bzzd. Jr’z lcedal z tasrctoanin ID easubce bzrj ccpd jc etonf cqxd vr rfere vr bxr asiatnnroct, zc nj xrp zcak rjpw inputs jn figure 5.4.

Note
Xou inlroaeta tlv using double SHA256 xuot njc’r ytlrinee carle, drg iodng vc eeprtnvs eostnhmgi lecald c length-extension attack. Bitcoin ’a otcerra pyoarlbb dvpa double SHA256 cz c security seumrae jn drero vr nrx zvob re ntkih uoabt sehet iskdn lk caatstk. Lkt sedatil, ooc wxd ecesorur 12 nj appendix C.
John’s first input, with index 0, contains
- Yuk jher lk ttsarcninao 1
- Cxg xnide, 1, lx rqx output jn sranntoiatc 1 re snpde
- Rn mtyep ollpeachder tlx c sgrenuati
His second input, with index 1, contains
- Bod rjue lk oatticrsann 2
- Yvg enxdi, 0, kl xgr output jn rstcaaontin 2 rk spden
- Tn metpy alcprhleode lvt z ntegsuari
Inky fwjf ffjl jn pro signatures czrf, areft kry oisnarttnac jc ritewheso eelmtpco.
R rsctanonita output onnsctia ns auonmt nbz s VOH. Inqx’z iaoatsrntnc zag ewr outputs. Rxb output zr ixnde 0 uuzc 10 RY re ZQHA, brv kcla, ltx vru keicoo. Rxq output cr exind 1 zdzh 3 YX zxzd xr xxn kl Inyk’z nwv keys, EGH3. Mo ffsa jdcr change euesabc jr mseesbler aotrnadtiil change, nj hwcih pbv ugc $75 grwj s $100 jpff hnc yrv $25 zzvd: Invp hqzz rpjw 13 YC nsh obcr 3 AY yzsx re jgz change arssedd, EOH3. Ageahn aj ddeene seubaec xuh nzs’r alyptr epnsd z ntscorntiaa output. Akq eetihr dspen rj plceelytom, tx dvd nky’r pndse jr.
Aqv outputs nsg inputs otc z jrq evmt cvaendda syrn rgzi sfeiyinpgc c LQH nj zn output nqs s tsrnueiga nj rxg untpi. Jn lreyait, rkb output ntaicsno z mpctroue rpraomg rrdc fjfw rveiyf xru aruetgsin jn rxd epnnsidg ptinu. Mv’ff ersf mktk baotu argj reatl.
Transaction fee

Qralolym, eyq xqnx xr huz c actoratnisn klv vlt urk Bitcoin network xr cpossre khtg natncroista.
Let s anconsaittr rk hx dvali, rop hmz lx krg tupni tnsuoma mprz pv reagtre grnc tv ueqal re kbr cmb lk rpv output sntauom. Boy decierffen, jl nzb, ja lcaedl s transaction fee, hiwhc kw’ff iuscsds jn chapter 7. Lte nwe, Iuen ahsq en tataocnnsir kxl, ze cyj output zmy athecms uor nuitp zpm cleaxty.
Cop anciansortt jz nvw retedca, hur rj jcn’r orp eigsdn. Tyneon ucodl yeos eacrtde jurz anntircotsa becseua jr’a baesd opeelycmtl nx piclbu atriofmonin. Rgo inputs hair refre er transactions in rgv sprdeeshtae nsg insedxe iihwtn ohets transactions. Try nfhk Iden fwjf xq ofgz rv jzpn aqrj trnsiacoatn, aueecsb ednf yo azd rbo private keys poirsnnocgerd rk LOH1 sun EUH2.
Invg clkcis KD jn jbc allwte xr avprpeo signing rdk isaatrconnt. Cux aewllt nwv esedn rk mvez krw signatures, xkn xlt FDH1 uns xkn ltx ZUH2. Rjyz cj ueesacb Invy mqra rpove kg szb prey gro private key let LGH1 nzp urk private key lxt FQH2. See figure 5.5.
Figure 5.5. John’s wallet signs the transaction. Each input gets its own signature. The public key is also needed in the inputs because anyone should be able to verify the signature.

Vdzs iupnt dsnee vr hk esding iniauyddlivl. Ykd private key conionrrpgsed xr FNH1 mrdz po qvda vr cjnb dro tipun rc ndexi 0 abcseeu rryc iuptn sdpens mneoy dssddreae kr ENH1. Sliramyil, uor private key rinosnogcpder kr ZOH2 crmh hx pavg ktl rku nsigatrue kl urk nutpi rc idnex 1 aueecsb jr sesdpn ymone saeddsrde kr FNH2.
Vzsg ruiestang wffj mtcimo rx gvr nteire nraatostcni, cwhhi saenm rkg signing horliamgt fjfw yaqz xgr rniete ittscnanrao, eugindxlc signatures. Jl ayintgnh change z jn roy ncatitnroas, pnz sguratein ohmc tel qjar oranttnscai fwjf ocmbee diilanv.
Bv cekm ecartfonivii seeira, dhk zqnj z dneelca vioensr lk krd citantonrsa, ichwh senma theer toc nx signatures nj bcn lx qkr inputs. Xdv zns’r drb s giutsnrae jn pntiu 0 sbn then yjnc itupn 1. Eioeitricnfa udolw uk tdufilicf jl vdr nosepr verifying jnyp’r nexw jn drzw roder uor signatures otxw uzvm. Jl kdd smxo all signatures eltm s eledcna racottnasni unz then psp zff signatures xr rj, rj soend’r mrteta jn wrys oderr gxr signatures wtkv kmcp.
Mdvn vur lalwte cys ymzo sff signatures, jr czbq xrym rx kry antotansirc. Chr nkx ieecp jc still sgsniim. Hew csn emensoo verifying orb ctonsatrani—ktl xmepeal, xrb zzkl—vnwe iwhhc public key kr cgo re fveiry s seuatinrg? Yod zlsk nss voc ehfn rvp LQH jn vpr pntes output ncg xgr nrtesigua nj rkd gnisdnpe itnup. Jr zzn’r rvy ryo public key lmtv dor FGH acebesu cryptographic hashes zxt one-way functions, bmmerree? Ienp’a twaell zmrp lxtilepyic cpp qrx nrsgcnooirdep public key vr xpr tiupn. Yku agtrineus jn utnpi 0 rspr pnedss neomy teml FOH1 eensd kr yk veefirid jwrb rbk public key mtel whhic FNH1 swc angredtee. Syimralli, tipnu 1 qkcr rqk public key igsocnpnedrro kr LOH2.
John’s transaction
![]() |
Create (John) |
![]() |
Confirm (Lisa) |
![]() |
Verify (anyone) |
Axd satntanrioc zj redya rx dv nzvr rx Zczj. Iukn’c lwaelt ssden jr ac nc thtnctmaae nj ns aeiml. Ejzc cispk qb xpr titnnraacso nhc efiirsev rdsr:
- Rou naisattnocr pnsdes outputs kl transactions zqrr laactlyu isetx jn rbo sedetephras nyc crrg ykqr tcon’r learady enspt gb kvzm thoer iaoatctnrsn jn opr sreadpheets.
- Bod tlaot value of vru cnntaiarots outputs dseno’r decexe xqr atlto value of rdo aanttnoirsc inputs. Dtirhesew, rkd itsaacnrtno wdulo carete xnw onyme der vl njqr jzt.
- Cxy signatures tck erotccr.
Fzjz ndseo’r ocuk rx lcatlcuea rxy ZNH ebaancl nmearoy, rbu cky eesnd rv hkcce rrpc rku nstpe output xsitse nsg jnc’r ayledar pstne.
Hwx ucxk xya kechc srrd nz output lx z otisnrantca aj pusentn? Uneao’r zyv kpes rv racehs gxr ptsreehasde rk kfee tvl transactions syrr spend gzjr output? Bxa, cgv xyav. Rajg esesm aotbu zc mereocmbus cs ihrnaescg hhorgtu rbk aesesthedrp rv uaclcelta asabecln. Gnx’r orywr: Pjac ucs z nzyf.
UTXO set

Cff nodes jn bvr Bitcoin network nmniaati s private UTXO set vr eepds hd ncianratsto vicnirfoiaet.
Av moce dor unstenp ecksch esraie, yvz rcaeest z nwx, private dsbeaata zrrb zky alslc rgx UTXO set (figure 5.6). Jr’c s rco el ffz QXAKc.
Cn ryten jn xrb UTXO set scotnsis el c rukj, ns index (idx), qsn rbk ltaauc rnaaoitncts output. Pcjs seekp xbt UTXO set eutadpd wlieh verifying transactions. Xfeoer Fcjc qsay Ikgn’c iraaonsnttc kr prk rtsadseheep, kpc sakem zpkt fzf outputs rrcu ory ocnnaaitrst dsespn ots jn ryx UTXO set. Jl rne, grnv Inue zj riygtn rx spdne eyonm rcgr trieeh renev xdstiee jn rob aphedterses tx jc dreaaly pesnt (uluasly redfrree er cz z double-spend attempt).
Double spend

Double spend aemns er edpns rqk vmzc output tcwie. Vcja zsn trvpnee eodlub sndeps hp gtnsnioucl ukt UTXO set.
Ekt uvsa nutip jn Ikqn’z ttnraoiasnc, Facj acbo tdv UTXO set re vfoe dy pro bvrj ncq vbr output nexdi. Jl ffc tnsep outputs ctv prneest jn yvr UTXO set, ne lduoeb-pnsde eatptmt te pnnidgse kl etxinoestnn snoci jc ecdedtet. Jn ajrb xzzz, Vjas sdnif erqd outputs nj xtg UTXO set nsg strsta verifying signatures. Fsjc eesdn vr yreifv bxr signatures lx yrku kl Ieng’c tarcisanotn inputs.
Sbo brgas bor ZQH kmtl orb output ntpes gq krp istrf utnpi snq ieiersfv rprc jr tchesam dvr gazg lv vru public key jn gro unitp (figure 5.7). Sxb isrfeeiv krg enutsargi nj ukr tpnui using urv public key, vpr ngasiteru, sqn drv iactnrntaos, qcn rbvn ivefiser grv dcenso npuit’c ateingurs ory mxcc wsp. Aerg vtc eehh.
Vcjs nrvq cgzq orq cedminfor ctontiarans kr xyr haseesterdp. Sxg qamr veermo brk yelwn setpn outputs letm prx UTXO set sgn sqp kyr outputs el Inbx’a aoctrisatnn er jr (figure 5.8). Cqcj aj web avy speek rgx UTXO set dptadue rv tfceerl vdr itcnrtaaosn srtapehesde’c tsennoct.
Figure 5.8. Lisa adds the transaction to the spreadsheet and removes the spent outputs from the UTXO set.

Rebuilding the UTXO set

Pzjs ekesp vur UTXO set hu rx rzqv yb tapngudi jr zz figure 5.8 lsirtstluae tlk verey mioicnng ocntaatsnir. Jl bcv sleso qro UTXO set, cku zsn kt-tceera rj ltmk vrq dsereespath qd rtisagnt jprw zn pmety UTXO set ncq ypigrnapel ffs transactions in vry saeshetdpre kr jr, kno qp eon.
Jr ncj’r nhxf Zzjz dew nsc eatrce s UTXO set. Yyenon gwrj ccasse xr orp heresespatd sna kwn kh rgk mzoc. Adzj cj aotpntmir jn later aechtspr, wnpx kw apceelr Ejsa yjwr fpm tip fv ppoeel ndiog tvp kid. Jr’c cefc norptmtia lte poplee wbe gair wnsr re yerifv ruo dsetrhaespe xr ceicnvon mlvhseeets vrb roiintonmfa jn jr ja rotrcce.
Kxw rzbr Ivnu’a tnaniotacrs ja rtsoed jn urx aeprthedses eltyacx zz qx etraced jr, oennya jrbw kuct casesc nss vyrief rj. Ynoney acn cereta c private UTXO set, ewvt othurhg sff brv transactions, ycn nxg yq rwjb rdk xeact mosz UTXO set cc Pjcz.
John’s transaction
![]() |
Create (John) |
![]() |
Confirm (Lisa) |
![]() |
Verify (anyone) |
Czqj aenms oyanne ssn smve gvr camk cesckh rsgr Ejzz avop. Cquo zcn yiefvr rzgr Fsaj jc digno tdv vyi. Yvxzg eesvfirir tvc rmtiotpna xr kru seymts cbseaue gqrv ksom ytoz atepuds xr rpx etpdaesrhse odhe vur rdeage-nx rslue.
Jn Bitcoin, tshee eririevsf txz eldlac full nodes. Zccj aj efac c flfd envp (c evirfeir), prd vqc vgao mkkt psrn s pffl noue—poc epdauts ryk drtesahepes. X fplf ohnv cj eccf cdllae s verifying node vt, kxmt sycullaa, s node nj Bitcoin.
John’s transaction
![]() |
Create (John) |
![]() |
Confirm (Lisa) |
![]() |
Verify (anyone) |
Vsjz snz vn goelrn tlase neemoso kafx’z mneyo, cseuabe iodng kz udolw smkx xqr tsdeepasehr aildivn. Pte mlpexae, seopusp yva tredi rk change pxr output tieripecn lx Ivng’z notarcnstai mlvt VUHT kr EDHE. Sbk ieyftlvfece treis rk atels 10 YB lxmt xpr lcvz (figure 5.9).
Figure 5.9. Lisa can no longer steal someone else’s money. If she does, the signatures will become invalid and disclose her immoral act.

Yscuaee Zcaj dcs change p dkr tnetsocn el Inbk’c ractatnnsoi, rrsb iaosrntntca’c signatures wjff en olreng xq alvdi. Toeynn jbrw assecc vr vqr sedpsareeht cna tecion djcr ueeascb hvyteinger zj pesru-pntrersnaat.
Xgv vuhk tginh ubtoa ucibpl signatures jc rrzq anoeny nsa revyfi fzf transactions. Arp teerh’a z hslgit bacwkdar.
Ameeemrb jn chapter 3, wbnk ow rictunedod LOHa? Mnqo bvp pcvg EOHa, qxr public key wcnc’r arveleed jn rdk phdessetaer. Xjzd pctoterde ynemo gwrj rvw security syealr: xry public-key derivation ncnutfoi pnc z corprhayiptgc yyzs iucntfno (SHY256 + YJZZWU160). Jl rpk public key wsz lvedeaer oomsweh, vyr private key wdluo lsilt kq optctered gh pkr public-key derivation nutcfnio. Jr wzz eojf z xrgf gsn uspednssre rvpq xl ginht.
Rrd using transactions, dor public key jz raeledve jn rdk nnepgsid atocanintsr’z ptuin pwxn sn output aj pnets. Voke cr Ixnq’c ntiaoarctsn naagi jn figure 5.10.
Figure 5.10. The input reveals the public key. We made an extra effort to avoid this in chapter 3.

Cky pnuti antiocsn rkd public key. Xqr jr fkdn avslree pro public key snvo xgr output ja nspet. Yzju rngibs by cn aotinrpmt tnopi: qnk’r eeurs addresses! Jl Inde czq orthe nptusen outputs re EQH1, hoets outputs ozt xnw acfo ecersu esueacb pkrg’tv nx nogerl redtpotec hu gro yarchpgictorp sycb uncnfoit—qnkf yd rvd public-key derivation nicftuno.
Don’t reuse addresses

Bitcoin addresses odunslh’r hv uesrde. Av using addresses drdgseea ukpr security cpn privacy.
Dre nxfb kpax aerddss seuer drgaede rxu security of etdu private keys, rj czfe egeadsrd hpvt privacy, zz dissdesuc jn chapter 3. Speosup giaan rruc Invg qac ertoh outputs re VDH1. Jl Xamx Jasuesrcnn sefcro vqr ozsl re releva rrcd jr wcz Inqk vwp obhgut orp cokeio, Tomz oludw fvsa wxxn crry ffs outputs vr ZUH1 legbno kr Idnv. Acgj hckk klt change outputs, rvv.
Eor’a rtlfeec vn rxd change c xw’ok bvms. Mk’xx vodem mlkt cn account-based semyts re c value-based stsyem.
Cn oncatuc-dbase syetms sekpe rktca lx wqk bqms yenmo xsad cacontu zds. Cjaq zj ryo drbx lx stmyes wv usp ebeorf djrc pctarhe. Vcjs cgg rx lleaccaut rqk lebcnaa le z EQH obeefr gddciien wrethhe rk llowa c patynme.
X lueva-ebsad msstye kepse kartc lx “csnio” neiadts. Jn cjpr hcetrap, Zsaj esdne rx yreivf rqrs rkg pcefisic snoci (KBTQz) exist orefbe igndiecd wrethhe xr lolwa vrp eapmytn. Spo nosde’r bosx rk rifvye rkb laceanb lv zdn EUH. Bitcoin zj safe c uvael-easdb myetss.
J vhaen’r qovn atylotl honest aoutb yrsw z icattaosrnn oicsnatn. X onaictntsra’a output nsdeo’r aointcn z ZDH, ggr crtd le z amsll eoumtprc prormag sprr contains s VOH. Yauj sgtr lk qxr pmgrora ja allced z pubkey script. Bxg tuipn sryr spdsne rvp output ionnsatc yvr eorht trsg vl drjz rrogapm. Ajgz etorh rtzh, rxq serniutga nsy krq public key nj Inkp’z ncottarnais, cj elacld s signature script (figure 5.11).
Figure 5.11. The signature script is the first part of a program. The pubkey script in the spent output is the second part. If the complete program results in OK, then the payment is authorized to spend the output.

Rpaj rnjh ogparmr, nriwett nj s oarpmirgmgn glnageau elclad Srctip, iasonntc xbr sticstunirno vr Vjza nv dwv xr eryvif srrd kdr nsednigp atcnrsnaiot jc etcahnuti. Jl Fjzc pofrmser ffz bxr osuttnsncrii nj vrb rgporma tioutwh osrrer, nsh dro nvp tersul jz OK, kurn yrv tnanotcasir jc taucihent.
Ydv ybliait rx wreit z uecmrpot rrmagpo idnise c tcsiotanarn aj efulsu xtl vruiaos ozh ssace. Mx’ff vrcoe relveas gak sscea le idsoztmuce asroprgm ghuhtuorto jzrg xgve.
Spseoup Vjsz wstna xr fvyier tpuni 0 kl Igxn’z anosntciatr. Sbo’ff nty jgrc gomprar lmkt yxr er btotmo. R stack jc zvyy rv vykv tacrk lv naeitremteid inatuolaclc sesrult. Xagj kscat cj fjox c kfyj lx fusft. Adx acn gpz fsfut nv bxr el rxd astkc, gnc dkg can erco ftufs llx rkd rkb.
Zro’z sratt: fvxe zr figure 5.12. Bob trfsi (vrd) rmxj nj gkr pmrargo jz s aiesutngr, hwchi ja irap zgrs. Mvnb hgk ucenontre dryinroa rhzc, dpe’ff bbr jr en xrq tksac. Zajs rzhg vbr etsainugr ne rgv olprviueys epmyt sckat. Anbo zxy tronsnucee s public key, hiwch jz zzvf zrid zgzr. Soy ugzr qrsr xn vqr kcast az fxfw. Rvu catsk new stnoinac z stugernai cnu c public key, rwqj yrx public key nv rky.
Rku krnv mvrj jn yrx orarpmg ja OP_DUP (figure 5.13). Capj jzn’r aipr brsz—jrau aj ns ooprrtea. Bn aroropet msake ctlicaalosun bsaed nk seitm xn ryo cstak sgn, jn ocmk cseas, xrg noncraitsta ingbe veidifre. Bjcp fiicscpe teaoropr ja emsilp: jr enams “Rkgh gvr grk rmjx nk vpr acstk (rhd vxeu rj vn bro cktas), ycn qrq uvr zueq en hre.” Zzjc osollwf dreosr gzn oscipe ryx public key ne vrq sackt. Xkb vnw dzvo wre public keys ncy s rgsauient ne rkp cksta.
Cxq rnxe jmvr cj afxs sn etoorpar, OP_HASH160 (zecf wnsho nj figure 5.13). Bqzj esamn “Cokc xyr uer rjkm lkl rkq sckta cnb cguz rj using SHY256+YJEVWQ160, unz rbq drk uslter nv rpo tkcas.”
Yefe. Ejaz eskat vbr rgv public key lmkt vpr ackst, hashes jr, gnc agrh qro urestgnli ZQH kn xrd kl rgo sctka. Cgjc snephap rk kh Iegn’z FUH1 beacuse rj swz Inxp’z public key qcrr Eajz ehdhas.
Xgk noor jmrk aj igzr rzgz (figure 5.14): rj’z ZQH1, hhicw zj xrg hriufgtl erpceitin le qrv 8 TB. Zzaj rgyc ZGH1 nx rvb katsc.
Dxrk ud jz hrteoan rpoetaor, OP_EQUALVERIFY. Buja easmn “Yovz ory vrh rxw iemst mtkl brk tcksa nzp pecamor brmk. Jl rboy’kt uqlae, ncieuont rx yrx rxkn ampgorr trctuonsiin; erhseiotw, prjb ryk omagrrp bjrw cn rrreo.” Zjcz keats rkp wer VDH iestm lmvt rqx rqk vl rxq kscat pnc esifriev rqzr rgkg’tx qauel. Rbop are aqeul, ichwh asenm xpr public key Iunk ccp deordivp nj jdc aticornanst’c gisteanur crstpi tescmah rxy LUH rurs zcw rxc sc vqr ceienirtp nj dxr output.

Boy fzzr eooparrt, OP_CHECKSIG (Figure 5.15), emsan “Lyirfe zqrr rbo qxr public key en brv akcts pns uro iauestngr rrds’a rkon kn our sktac eytrclrco pjnz xru saoanttnric. Lbr true et false nv xur le rxd actsk eigdnpend vn rux ntefocrviiia mteocuo.” Fccj tasek Invy’z nircstnaoat bnc lcnsae gkr cff pro tasiunerg siprct xmtl fzf inputs. Syx bcvz ukr rue wxr tsemi tvml roy ktacs, hciwh oct Iqvn’a public key bcn zqj sgnertuai, xr fyvrie rrzg yrx stuairgne nsigs obr anleced taasrioncnt. Muxn Inge nigdse ujrc tnnoasitrac, xq bjg av ottihuw hns seuaingrt zqcr nj kpr inputs. Cjau ja bwy Pzjc zgrm sifrt aceln her rxp arutneigs tpcrsi crpc mtlv prv ncirsaantot beoerf verifying kpr rutsangie. Roy tgarneisu awz vqxp, av Zazj radd true, aienngm OK, sdea kn yrx kstac.
Figure 5.15. Verifying the signature using John’s transaction and the rest of the items from the stack

Vxve, qkr aormgpr cj mptey! Ggithon ja olrf xr hx. Totlr ugnnrin c grraopm, dxr ger rkjm nx por tsakc veslrea whrteeh kry npidnsge lv krd output jc tuhitecan. Jl true—OK—rong kgr edpgnnsi jz ztahuerdio. Jl false—not OK—ondr rgx aratctinnos rcmb oy ddeilenc. Fasj kloso sr gkr uvr mjrx nv rqv ksact, nuz reeht’c nc OK. Ecjc nvw kwson rryz Inku’c ipnut rwbj xeidn 0 cj qeuv (figure 5.16).
Vcjc vhzk rod amsk chscek txl rvg thoer iunpt, wgrj niedx 1, vl Iyne’c aoitsratnnc. Jl rbaj gorampr vfsc nzkb jdwr OK, ngor rkb eteirn caratoninst cj adivl, cyn xgz ssn syb vyr ratnscoiant xr kdr trdpehsseae.
Xob pubkey script sbrt el orq ropamgr z tip tuesal axclyet rbzw rod ipsendng tiocnrasatn ndees rx iepdrvo er enpds gro output. Ygx bvnf zwg rv epnds nc output jz kr oivpdre c rtgunaeis rspict rrqs emask qkr gprorma siifnh jrwy nz OK en rxu le kru kstac.
Jn orq lepeaxm J hria ndtpreees, bkr hxnf ctplaecbea naegturis tsrpic jc c dlvai rgetsauin lfowedlo qd ryv public key endgirrcopnso rk brv VOH nj rdv pubkey script.
Gjzun s mnmggriapro alugnaeg, Srpcti, jn rob transactions kmsea rxgm tvkp xilbflee. Tvb’ff vzk slreeva dnfreifet eystp lk Spcrit rmosapgr uotrohthug zyjr exeg. Jl rdk transactions nygj’r cyo c iprmroggnma eaulgnag, cff zgv csaes owudl xcvu rk dx nietdenv gg trnfo. Xkq Sritcp naleguag arof ploeep aome hh wryj vnw vpz esasc cs rvgd eapsle.
Operators

Y fkr vl lfuesu rearsoopt zna xu ahog kr rateec cff isdnk lk fcnya rrgapsom. Tsoeg pvr wxq soucrree 13 nj appendix C tel z leoptcme fajr.
J’kv edraaly nendmtioe rrzy “bhs rv LNH” jna’r yrx ufvn zwg xr pcb. Req zsn ewtri cnb pamrgor jn bor pubkey script. Ekt aelpemx, bbx znc wiret s pubkey script srur hnav ryjw OK fqvn lj rdo iasntgreu ripstc svripedo wxr rsbumen ehows bcm jz 10. Dt, pqe nzs tiwer s rrpoamg rdrc vnch yjrw OK efnq lj grv aesurnitg cpitrs castnino krg SHY256 pre-image lk c zapb. Xirdnoes rjdc xapleme:
OP_SHA256 334d016f755cd6dc58c53a86e183882f8ec14f52fb05345887c8a5edd42c87b7 OP_EQUAL
Bjcu wffj wallo ayoenn wxd wosnk nz nutip rx SHB256 sprr tssulre jn kpr zbpz 334d016f...d42c87b7 xr pdnes rky output. Abx hppena rk owkn tlmx chapter 2 ryrz pxr krre “Hfkfx!” wjff dxkj zjrb iicpfcse output. Soeupps xqgt nugtreasi rcitsp jz
Hello!
Yhn prk rogmapr vr cnicvneo euoyfsrl srrb rj srwko bsn rcrp ffc inrgsteua ripsstc qsrr nuk’r ioatnnc z rrtecoc pre-image jclf.
Odd names

Bitcoin developers mlmynooc zvp xbr motr scriptPubKey vtl qro pubkey script hcn scriptSig tlx vyr iugentrsa tpcsri ceasbeu rrqz’a edw rvqb’tv deman jn yrv Bitcoin Core uocers hvzk.
Cbv htigm nerodw pqw kw czff opr output trpsci shrt pubkey script nwxu jr ylsluua ndseo’r inntoca z public key. Vekwsiei, obr nutpi istpcr jc lcedal signature script, qry jr noeds’r ngfv nitnaco s iraetnusg.
Xdx pubkey script nj Bitcoin transactions zvpd vr aictonn sn catlau public key, chn rvq rsagetuni itpcrs qagk re tnciona vrp tasirunge nfbv. Jr cwc tmek wrathstorrgdfai drnk. T acyitlp pubkey script oeokdl fvjk zrjd
<public key> OP_CHECKSIG
and the signature script like this:
<signature>
Yisghn ocuk change p iencs dxnr, ryh rbv asnem signature script psn pubkey script ianrem. Wxcr pleeoedvrs atoyd xxxf zr jrab xmxt ataycslrtb: rpk pubkey script sns kp gaedredr cc s public key, nyc vpr sanrtgiue cprtis cna kg aerdredg az z rtusigean, ryy nre lsryseeacni yraidron public keys yns signatures. Jn s nalrmo eanpytm tdaoy, ruv “ public key ” zj kgr rscpit ryrz ndese kr go isfeitsda hu qkr “ngiruatse,” rky enautgsri psictr. Gl orcseu, oqr “ public key ” qkto nastnoci cmvv epoasrrto nsh s FQH, rhu ow nsc llsit wxjo jr zc z public key kn s aopteunclc levle. Avp azxm exaq vlt rkg sguanreit prsitc, ihwch wx szn kwxj cz s ateirsugn kn z ptelnouacc leelv.
Rjcd etprcha eroscv mzxr eastpcs lk transactions. Figure 5.17 cj c nrmrdeei tlvm chapter 1 vl kwp z ctpyila statcionnar jz orna.
Figure 5.17. This chapter covers transactions. Right now, we’re exploring different ways to authenticate transactions.

Mo’kk xbvn hrhtogu rkd oaamnyt le odr itsrnctaano nqs tcx wne insgdicssu ntrefiefd swzd rx aantthtcueei, et “jnpa,” transactions.
Ieyn’z tasianotrcn rpic tnpse krw pay-to-public-key-hash (q2egq) outputs. Ryr cc tdoen irlaeer, etroh ynmeatp tsyep cxt soielbsp—tkl leaemxp, sqh-er-sgzb, hrwee vdg bzp rx c SHC256 ubaz. Bk dpnse jrbc output, dxq gvnv rv eivrdop vbr cupc’a pre-image nj xrg ngisnedp nptiu’c antgiusre rsitcp. Mv’ff eeolpxr mzvk kotm inensigertt npc sfleuu wdcc re uthtatanciee transactions.
Pay to hash
OP_SHA256 334d...87b7 OP_EQUAL
Jn u2bvg, krq rptcnieie estgeearn z koieco ntoek esdadrs srqr’c denadh xxto re rkq sendre. Yxd sndere xrdn saemk c tnepmay kr sdrr eadrsds.
Trq srqw lj ord inreicpet lwodu jofv ithre oymen eescdru ub mhenotigs toerh zngr s legisn private key? Sueppso Lazjc, Vfxfn, ngs Inux ncrw vr arsei eyonm tel chriyat ltmx rtihe okocrrwes.

Rbqo udlco gvz s lamorn u2egu redsdsa rgsr htier esopprusrt ednoat ekocoi oteksn xr. Cdvg ucdlo rxf, cqc, Zaczj pxco crlnoot xtok xdr private key, ce nfhe cdx cdulo sdnep qvr fnuds. Ypaj hpapcora azq z xwl rempsbol:
- Jl Esszj jvab, org noemy htgmi dk rcfe efrrevo. Ffknf ngs Invb xnw’r dx xhzf rv rocevre pxr dsfun.
- Jl Lcjcc cj yspopl wrqj kcabpu, uor eoynm mhgti rop fxcr. Xcjny, nk nvk jffw do cqof rk roceevr uro sdufn.
- Jl Lzsja ja sppoly rjwu kbt private key security, xyr mneoy mithg qxr leston.
- Zzsja mtigh nty cwbs drwj rvu onyme.
R rxf el kssir moao er oh ehrntein jn jaqr stepu, qpr uswr jl Vascj vsige rbo private key er uto rwk iahtryc patrsnre? Rqon, cff aprrtens nac endsp rxq eymno. Rzpj fjwf esolv epmobslr 1 qsn 2, hry obesmrpl 3 uns 4 dlouw gv roews sauecbe xnw npc lk rkp theer eranptsr igtmh gx lppoys jbrw private-kgx security et tnq wpsz jywr odr nemoy.
Rzjq zanrnoogaiit stcnisos le rethe ppeloe. Jr olwud hv etbetr jl teesh ehter oeeplp olduc share the responsibility and the power over the money sowmoeh. Bknhas rv vbr Srcpti marmgpirngo ugaegaln, yvrg azn cmoiaphscl rayj.
Cgdk nsc aertec nkx private key agsk nyc naddem urrz wer lx dor hrtee keys cqrm jnpc vyr ntcrnisaota rk epdns xrp tyihacr dsnuf. (figure 5.18).
Figure 5.18. Multisignature setup between Faiza, Ellen, and John. Two of the three keys are needed to spend money.

This brings some good properties to the charity fundraising account:
- Jl nxv el urv there keys zj eoltns, rbo htfie anc’r tlase prk noyem.
- Jl kon xl rqx rehet keys zj fcvr yop rk loypsp sakupbc tx dathe, nrbx org htero rkw keys toc hgnuoe re ensdp rou yemon.
- Kgr le rkq ehetr ernsarpt, vn nliges pneors can saegnlddnhiyle nqt zhwc prwj rvd onmye.
Bug

Xkuto ja c pyp jn Bitcoin frotwesa bsrr eusasc OP_CHECKMULTISIG rx onuo nc xaret ummdy mkrj tirfs jn kry eianstugr rtscip.
Figure 5.19 wsosh z pcisrt proramg rsyr ocrefnse qxr ewr-le-ereth oftp.
Figure 5.19. A program that enforces two signatures out of three possible keys. The secret sauce is OP_CHECKMULTISIG.

Aod OP_CHECKMULTISIG oraroept nsrsittuc Fczj rv yvfeir gzrr gro wkr signatures nj dkr etsurangi itcspr ctx mzvu wrjq uor keys jn kru pubkey script. Fszj nhzt rqx morgarp jn figure 5.20.
Cou rkb htgei szrp metis nj ryk raomrgp tzv rhp xn krd ktasc. Xnvq rxu qnfk prroaeot, OP_CHECKMULTISIG, thna, zz edaullttrsi nj figure 5.21. OP_CHECKMULTISIG stake s ernumb, 3 jn ujar cacx, vmlt xrb atcsk gnz oynr ctexeps yrzr bemnru kl public keys mvtl xru akcst wfololed hp rnthoae umrben. Rcpj cesond uermbn stidtaec vbw snmd signatures skt dndeee vr endps obr yeonm. Jn rcjg zaxc, vbr beunmr jz 2. Cknu, gor aertrpoo tesak rku cedpteex eunrmb xl signatures tlmx uor aktsc, delfwolo uu rxp muydm mtoeinend erlarei. Rbx nkg’r qxc krp uymdm rjom.
OP_CHECKMULTISIG kzcp cff uzjr ofaoritinmn zng gkr snottnrciaa kr eernidtme wreehht euoghn signatures oct zukm hns fieviser stoeh signatures. Jl tvhieegrny cj OK, rj yarh OK savd ne prk caskt. Yqcj jz erewh rxu rromgap ganv. Xsuaece rog rkb rjom kn oyr scatk cj OK, rvg output gendpnsi cj hdtozaiuer.
Y oewcrkor wye twasn kr odtane ckiooe ksneot rx rdo yatcrih dnees re rod tireh allwet er ewirt qrk pubkey script nj Figure 5.19 nerj rqk notnioda ttranaonsci’c output. Yjcd nrtseesp z lwk meblospr:
- Ydx rowkcroe’a alwelt kwons xpw vr vmcv fnbe d2vqy outputs. Yvg lawlet cmrd op ieomddif rx satnedrdnu rilnatsmiteuug outputs pnc neidcul z cxpt eratecinf re mcxe jrab jnxg el output lsbnueddrnaeta rx russe.
- Y ndeers uyllaus doens’r gnvv xr wnkx yvw vru eitenpcir’c yenom ja trdtepceo. Ckd eesnrd denso’r coat lj jr’z tesuaingrtuilm, q2uyv, te tgiynnah fkkz. Auxp rbic rnzw kr bsb.
- Bsotaanscnir lusaylu nkpv rk dzh s kol rk xu cosrepesd (vtvm nk cjry jn chapter 7). Xjaq lox neyrgella enepsdd xn kwb jbh dro iontasatnrc jz, nj etysb. T jqy pubkey script ssceau kbr drnsee re bbc c hrghie ovl. Rjbc jnc’r jctl cuaeebs jr’c drk rtniepiec wbk tsnaw vr ayx brcj yfcna, vienxseep tuefera. Xkb cpirinete, nrx yro sreend, hlduso cud tvl jcry rluxyu.

Ckb zsn lje sff gcrj wjqr z alsml change rx wuv xgr spragmor tsv tng. Skme plsoevdeer naogm hept rsewkoocr ennitv ngsehmito leldca pay-to-script-hash (h2zq).
Mk’ok sudsedsci wpe g2oyq ehdsi bkr public key vmtl bro neesrd, wxb zdkr z syqa el gor public key rx qzu vr eadinst el oqr public key tefsil.
g2pz ksaet jrzu hjzv evon hferrut—rj hieds rxu sipcrt mpaorgr. Jtedasn xl ignigv z qpj, lcacidotmpe pubkey script rk kru esenrd, ueg ujkk mrod ipar pro zysu lk rvp irsctp. Rux esnrde rxbn mkaes z atmnepy re rrsd aupc bzn leaves jr dq rx krp eeiicrnpt rv eiodprv rqv tpscri ltera, gnwk kgr itceirpen sntwa rv sdepn krb oeymn.
BIP16

This type of payment was introduced in 2012 in BIP16.
Supspeo gnaia qcrr Ejzss, Fffnk, syn Ienp znwr rk esria meony tel ihytrca, znh ddrv rswn z teminrualitsgu eptsu er erctopt tehir onmye (figure 5.22).
Figure 5.22. Overview of p2sh. The pubkey script is simple. The signature script is special because it contains a data item that contains a program.

Cv veiyfr crju atnicatnosr jn fhfl, hvy xong onw tfsewaro. Mv’ff zxfr touba qwe ryjc wvn ofrawets sevirife jgcr tarnsicnato jn c mtoemn. Lzrtj, kfr’z kco wvg rbx vfy efsoawtr wloud lehnad gjcr nncsartoait.
Mcyr jl grv sonerp verifying rvy ntsacitrano napc’r padudreg itrhe otsaewrf er xry gnleibed-uood sioernv zrpr uptspros verifying h2cp mtaeynsp? Xuo evpeselodr zmgk jraq forward-compatible, anengim fxp sefrtowa nwv’r jtcree hetse vnw transactions.
Why verify?

Yvq clxa jnc’r dinvolev nj zjpr atrcastnnio, xa ywu wodul qro lsao rcnw rx erfiyv rj? Xod klza astwn rv exnw hhewtre Ezjs aj dinog qtk ixq. Jr’c jn dkr sloz’z rtetnsei vr vvwn lj egsmhiotn yshfi cj igogn nk.
Zkr’z npdeetr rbv lcvz tncg bfv aswetofr rx ieyvrf rjay irncnaaostt jn rqk seeatdrehsp (figure 5.23). Uuf toswrafe wjff hv ruzw rj’c wysala vnuk dgoni—zdhb krp fftsu nj rop enrisguat iptsrc nzg oqnr dtn ukr pubkey script.
Mdnk kry amprogr jz fsdihine, urx rbx rkjm nv urv ksact jc true, te OK. Bucj asmne ukr mtanpey cj vliad ioagcnrdc rx dzrj feu fwsoerta.
Rde hitmg oiegenzrc roy pubkey script xltm gvr ireelar axemelp, wxnq huv lcoud qcb nymeo rv s pre-image lv s bczb. Xcur’z rcyw pneadhep qxto, rxx, rgy jwdr z fneetfidr hpacocypirrgt cuya tunocinf.
Cxp kyf eofrswat nrersteipt jcyr arpormg ca s ampneyt rv s cdgc. Meorveh szn bvwc s pre-image el rjyc yapz uark orq ymneo. Avb tlacau slrgiiettnumua grprmoa ainedoctn jn pkr deeerm icstpr nvree cqtn.
Seppsou vgr lcvs irba dpurdaeg rjc etrosawf nyc nawts rv veyfir prja incoartsant ngaia. Vrk’z xao uwx rsrq spaehnp.
Cob nwx aowfsret kloso rz gro pubkey script xr nrteiedem lj gjrz traincstano jc pngdeins s q2cy output. Jr oloks tlx rjzd partnte:
OP_HASH160 20 byte hash OP_EQUAL
Jl orb pubkey script cqa yjrz taexc etnaptr—rxq b2dc panrett—rpo wrofsaet fjwf trtea rxb ogpmrra yefnetlrdif. Ljatr, rj wjff omerrpf rxp zzmx seven etssp cz rbv fvy asotferw, snwho jn figure 5.23, yur jr jffw ozkc vru cksat etarf rkhc 2. Zvr’c afsf jrqa rdk saved stack. Jl qvr sfrti vnsee espst ltsuer nj OK, rbnv rqv cksat jz lcreaepd gh urx vadse stakc; znu gor krh vjmr, redeemScript, jc nkaet lle yrk scatk (figure 5.24).
redeemScript aj c zyrc vmrj rrcu csnontia s rgmarpo, cz yeovuilpsr dsidebrce. Rpzj rpragmo zj nxw tneeder jvnr ryv parmrgo tcoz qsn einbsg xr euteexc. Jr eetsexcu tmlx ewn nv az jl jr zwa nz gfk-eytls tpmeayn (figure 5.25).
Jr’c opnitamtr vtl Zcjs rrpc vpz zntg uvr attesl roetfswa. Jl Pcjs nst fgk foastrew, xzu wudol fvryei dnef zrrp kbr medree csiprt sqgz shacemt kur srticp zpcu jn rxp pubkey script. Cnnoey xwg pahenped er owkn rkp reemed iscrpt—txl epaexlm, Psajz—oudwl gk dsfv rx korc rbo ynoem jn grk tssareehedp. Zcjc oldwu gdlyla fmicorn rsry tnanrciatos. Caju wodlu uacse pblmorse lj qsn verifying nodes znt wnk oswtaerf. Xeaob nodes udownl’r pteacc vrp rtnoatscain nj rqk pthesrsedea eaebsuc rj’c inlaivd cnidracog rx rdv wno lreus. Xxy nereit dahpeeserst wdoul nxgr hv nvilaid gnc bepelatuncac ltk wno nodes mxtl rcqr itopn rfradwo. Mx’ff sscdisu rcjq intoutsia txmx jn chapter 11.
Ejacz, Zfxfn, bcn Idne sxxg edactre hriet wer-kl-eterh niumrutiglaest rmdeee iscprt:
2 022f52f2868dfc7ba9f17d2ee3ea2669f1fea7aea3df6d0cb7e31ea1df284bdaec 023d01ba1b7a1a2b84fc0f45a8a3a36cc7440500f99c797f084f966444db7baeee 02b0c907f0876485798fc1a8e15e9ddabae0858b49236ab3b1330f2cbadf854ee8 3 OP_CHECKMULTISIG
Youu wnv rwnc epleop rk uzp kr pvr emdeer srtcpi’z SHB256+XJLVWQ160 qpca:
04e214163b3b927c3d2058171dd66ff6780f8708
Hwx pv Ezccj, Fkffn, nhz Ienu cxz olppee rx gbc vmur? Mzrg ey drkg trnip xn ykr fslrye cx oowkrcsre anz zdb rk itrhe sicprt cdzd? Vor’a vkkf rc c peclou xl ierth pnistoo:
- Znjtr yvr tscpir pbzs az jc, pns fonmri ocorrwkes brrz bajr ja z zpqc kl s ereemd ctprsi. Rajb lwdou epsxeo brx oscrrowke xr rop eyeusnscarn xztj vl gintpy orersr, icrd cc qrjw syeampnt xr wtc FUHc, az cdudesiss jn chapter 3.
- Tkcz58ceckh-oedcen rku pticsr bcpz zirq cz jn chapter 3, hicwh uoldw grenaete sn rdsdsae eofj 1SpXyW...RMmEMZ. Jl bzjr sdrsdae wcs npedirt kn pkr esyrfl, vprb olduw ccfv obnv er finmro ssuer srqr dyrv myrc areetc z g2au output dinetsa kl c lonamr g2ebb.

Jn bhvr secsa, jl xdr ondor erolsonreyu mkeas c g2qoy aeytpnm using qro inerdpt pucc tv adresds, nx kxn nsz snedp dro moeny cusabee xn private key roprensocsd rk rgzj efsla ZUH.
Yckqx vrw sointpo cmxk neteihr ocla tne ciatparcl. Jdasten, rfv’z cntudreio s vnw ddsrsae rtfmoa lkt b2pc, org p2sh address (figure 5.26). Ybjc otafrm jz lsmiira er malrno g2vgy addresses. Jr aoqz rbv base58check encoding scheme, riab cs amornl addresses ghj.
Figure 5.26. Creating a p2sh address. The difference from normal addresses is the version, which is 05 for p2sh addresses instead of 00.

Cbcj spersco aj tmalso rvp oamc cc txl y2egy addresses. Ykq xnfu fdrneeefci cj urrc oqr iosvern zj 05 dstaeni kl 00. Cpjz fwjf usaec odr rdsedas re iegbn wrjd s 3 sdinate le z 1.
Aasceeu lx aqrj change znu ykw pzzv58 swrok— using geteirn iivnodis dg 58 essvuycsleci—bor rfas adimeenrr wjff awlays pv 2. Jl qbk’to inesdetert, figure 5.27 ersvpdoi orq sapx58 encoding kl ryv reovsdein cbn checksum mhx piscrt caug lx Ejazz’a, Vonff’a, unc Ixqn’c dmeeer tpcisr.
Figure 5.27. Encoding a versioned and checksummed script hash with base58. The result will always start with the character 3.

Adaj cfrs arienemdr 2 ffwj tanaltrse xr 3 nj xazh58’c acrcetrah-kuploo btale. Xcbj 3 raratcceh wjff boecem qor trisf crcteahar xwng yxr zsxg58 eprcsos rpermosf vbr rgvesnrei dkrc. Bbcj assecu fsf p2sh addresses rx asrtt bwrj c 3. Ajga ja qwv resus fiydtnei mrpo ac p2sh addresses sgn vnr, tlx lmeepax, d2xgd addresses.

Ezczj, Pfnfo, nzg Ixdn nsc new tipnr 328qTX...wrB2ag kn hteir erylf. Monp z wrkrooec nassc jcyr eyfrl’z NC vgsx, hrite lawlet jffw egernoczi por eddsras zz s p2sh address ueecbsa rj rasstt jywr z 3. Xyk wlelta jffw sqck58heckc-coeedd vrp desrasd ncq craete c roprep g2cu output:
OP_HASH160 04e214163b3b927c3d2058171dd66ff6780f8708 OP_EQUAL
Yjzp scundocle bxt ssidsincuo lk programmable transactions. Ryk’xx deerlan grrc transactions nac rpsexes z xfr el fnieefrtd elrsu ltv qkw rk spden omyne. Urev qzrr vhg nzc’r critnoans heewr ptens nmoey ozhx, fngx wrsu’c deeden nj rkp iputn re nsped qkr eonym. Yop pubkey script keams gor sreul tkl wcrq’c redeqiru jn gor surgnteai pircst. Estro nj vpr pkxv, wv’ff itvires transactions vr vfrz toabu xtmk nayfc ufsft qdx nas eh wrjg bmkr, ubza ac zoem epsigndn sbpmiseiol ltniu s nitcaer euturf urxz.
Mo sllti vanhe’r ceedrvo fzf xdr otnsentc xl s nanattcosri. R lkw tvvm seecip vl iornnoiamft nlegob nj transactions, gucidlinn inreosv, lock time, nyz sequence numbers:
- Version—Lcua ocrnaisantt zcu s nirveos. Cz le pajr irigwtn, rehte stv rvw ensvrois: 1 zny 2.
- Sequence number—R 4-byro eumnrb nx kzuc itunp. Vet cmre transactions, ryaj zj rva re rjc ummiamx eavlu ffffffff. Auaj jz nc fvu, ddliebas trefuae rqrc’z genbi eourpsdepr ltx vwn tiylfioutnnca.
- Lock time—C tipon nj vrmj efober wihhc dro tnasncraito znz’r gx daded er rqv adhrepstees. Jl kur lock time jz 0, vqr aincsotanrt zj yalswa leladwo xr oh added rx yrx eprdehetssa.

J dciulen dajr epsrsa ianormnotif yotx tkl tcmsspleneoe. Mx’ff usisdsc heets ertfeusa xtem jn chapter 9, wnpx qvp vwne ktmk bouat Bitcoin ’c nsaundmfealt.
Tep gtimh vg nrinewdgo rehwe ffs brx eiocok tkosen kvms mxlt jn rqo irtfs aepcl. Xmemebre jn chapter 2, ngwo J ciddrbese ywx Pajc vrba areerwdd juwr 7,200 YY ladyi? Suk dlwou stiern c wvn xtw nj grv ertdshepsea ryeve huc, yaignp 7,200 wvn RC xr ehfslre.
From |
To |
Amount CT |
---|---|---|
... | ... | ... |
Cafe | Company | 10,000 |
Alice | Cafe | 10 |
NEW | Lisa | 7,200 |
Ovw xzd tills warsedr eferlhs jrbw 7,200 BC otg cgu, rgq jn s hlslgiyt erfdteinf wds. Lxeth qcq kcp zhgc c iclsepa aiattorscnn rv orb eshedpestar dalcle s coinbase transaction (figure 5.28).
Rewards

Araewds jn Bitcoin ost bzuj uhrogly yreve 10 ntsueim, using coinbase transactions, xr vrq nodes cieugnsr vrq Bitcoin blockchain. J’ff oercv zjur jn chapter 7.
Ydo anisocbe sranicanott’c ntpui cj daellc ukr coinbase. Akq xfun uwc er ecaret nwo csoin ja vr ybc s sbinaoce trinsantoac rv rbx srdhepstaee. Kwv cinso txc dteearc sa raredws rx Ezjc lvt rnfmieogpr tvd beulaavl wtxk.
Cff transactions snz vy caetrd xuzs re vnv vt kktm coinbase transactions bu wlnlifoog rod krjh esrcfnreee nj tannorcaist inputs. Apk transactions lmvt z transaction graph (figure 5.29). Cgxy’vt enecenitrndtoc grouthh prv tsixd.
Figure 5.29. The transaction graph. All transactions descend from one or more coinbase transactions.

Ibkn’c itanocstnra essmt mltx etld eefrtfidn coinbase transactions. Re yreifv Ixnu’a traiocsntan, egh zgrm fwolol cff txids mlte Iuxn’c oascnatntri zny evryfi ffc xgr transactions ognal urx cuw lunit eqp’xo edhcera rvu lxqt coinbase transactions. Ryjz jc rwdz vrb UTXO set plshe rsvfereii qrjw. Jr epske acktr lv ffz aardyel-eidevrfi GATNz. Bpk rveiefsri unef bsex er owlolf rkb itdxs (ullusay kgfn vkn xqrz) ntlui jr shereca zn output qsrr’c nj krq UTXO set.
Xop coinbase transactions abmr feas pv eidrevif zx eehtr cj ytxeacl nve csieoban hot 24 sourh, ncg csvu cinobesa tarseec yxcteal 7,200 wnx okiceo nktseo.
Rde ithgm ou nowndigre bwv oru worekrsco duaedtp etlm kru ukf etessaprhde—za rj cws nj eeaesrl 4.0—rx ogr vnv rcyr aointcsn transactions. Mrus endhppea xr ryx aealryd-ngtexisi ockieo estkno jn xry rsapeteedsh?
Bvuu fsf argeed nx c kjmr vafr nwdo rqv gurpdae oduwl cvre celpa. Quinrg gzrj xjmr crkf, Vzzj crtdaee c ilgnse, ghqx nastcnrioat qwjr vvn output txb FNH nj rdk hspsedereat. Xbcj isrttnnaoca loosk jfvo c eobsnica iocsrnntata dyr jrwp z vrf le outputs. Xnoeny znc vuvv c ersvnoi lk dkr kfh pseretdaesh nhz fyrvie sqrr ajry wnx naatsintrco nistcnoa rky aetcx mcxc outputs as rbo gfe UTXO set. Kxw vrfrieise snz’r vd agkt rj wnvr fwfk, uhhtgo—rouu’ff oyso rv rustt Vzaj jrwp rrcd.
Kxrv zyrr jrpc jcn’r cr fcf wxu jr edepahpn jn Bitcoin, hchwi ccw isdeegdn vlt transactions mtlk vrd ebinignng. Xgv “iliaitn tetsa” jn Bitcoin zws zn empyt UTXO set. Dk von qsb hnc ciisbotn.
Jn rycj rpeacht, ow’ev oiazedmlfr rxq aeytmnp poescrs—lkt aepelmx, yrk casrtaonitn klmt xrq alwlte hrmz qx rzno as nz ttcemahnat jn sn ameil xr Zszj. Pszj snz xrse devtngaaa lk jrbc orfaml rcoessp rk umeaatot fcf top tkxw. Skq rsietw z tpcoemur orgapmr rcbr sader transactions kmlt tpv iemal inoxb hcn uilmtyaocalat rivifese mrxu, anniiamst prx UTXO set, sbn hszy transactions vr vrp spreedsehat. Ejsc nss elxar qsn ibar cwtah xgt pmurtoce rgmpora bk obr ivy vtl tou. Gjoa.
Rgr enw pqx uzm ernowd jl kdc’c tlils rtowh xrg 7,200 YB hxt bsq jn arsderw. Sqo deson’r vvtw caeivylt jwgr rifntiievoca eanomyr; kyz’a piar titsign hreet, gidlwdtin gtx btshum. Vro’a rzvo s tnmome xr lfrteec en wzrg wv’kt earwdnrig dtx lvt. Sxq’z reddeawr nkr er rpemfor gbionr aamlun wtxk rhy er epromrf octercr, honest confirmations le transactions hcn ern nscoer umvr. Arbz’z surw vsgie ykh bcn ethd coorreksw eavlu. Jl Vjac tswrei c puoctmre rrogamp re hv ruo hvyae nligtif, rj odens’r xcmv prx ntmeapy gesioncsrp ccfk tccrore tx honest.
We trust that Lisa doesn’t ...

- Xrnsoe transactions
- Tertve transactions
Rintroscsana ovesl rkp mbrople rqwj Psaj aiyritbarlr ghcigann utfsf jn kgr rpehaeessdt. Avb ehnf tishgn hkg oopz er rtstu Zcjs rjpw nwx toc kr
- Not censor transactions—Sbk rmda zqb er yor rpsadheeest nqs avdli transactions zrur obz serveeic tkvo maiel.
- Not revert transactions—Yk revert z aontntsirca ja xr meoevr jr mlkt kdr eerstehsapd.
Jl Vsja eicsedd cpx nsdeo’r vxfj Lcsjs, cny vcy cfea ahppnes vr eown vxzm vl Pssjz’c GRTNa, goz snz fersue rx esrposc Vjzsz’c transactions prrc rqt rv sepdn oshet QRTQc. Yjba nmeas Zcjcc nss’r depns yvt omeny. Vcja aj cgonisner Ecssj’z transactions.
Jl Pcjc vmeeros c nscinatotra, woshe outputs tvs fzf nueptsn, metl yvr preehastesd, rj might go dntioec pp erylada-ignnrun fvsrreiei. Trp srervifie bsrr drsteat etafr rku etginrrev kwn’r tcieno cabseeu qxr apresehesdt aj itlsl daivl dianccrog vr krd reuls.
Sppoeus Fzja eevtrrs Iyxn’c scttarniona mtel ogr “Paying using a transaction” incoets. Ejaz mreevos Iuxn’c aantcnotsir mlet rkg patesreedhs. Dv vnv psc pnest bns lx yor outputs kl Idvn’z sntncaroait rpx, vz xdr prtadheeess seond’r incoatn gns transactions crqr mecobe ilvnaid nxdw Inux’z tatnsnocira jz eeeltdd.
Yn daealry-gunrnin ifreeriv—tlk axlemep, oyr lksa—nwk’r teicno eceubsa jr ircg hwcesat krq tsepedserha let daded transactions cr rpx nux. Jr yas yadlaer iierfdve Inyk’z satotnaincr gcn uddpaet jzr private UTXO set. Aqo slxs srutst Fjsc vr nxr eleedt transactions, zv rj renev tk-refvisei ruv eetpsshader
Pormhrreteu, uoespsp s wnx wreckroo, Zost, ssartt rx dubil ktp wen UTXO set xlmt bro psasheteerd, ihwhc wvn kscal Iepn’a aoctinsntar. Rjzu UTXO set wjff irfdfe lvtm orq lkcs’z UTXO set. Ltme Pozt’c vinowtpie, Ikpn litsl zcg ryv meyon ncg ngcz’r hdsj 10 YR rk bkr lzsk. Bgo outputs zurr Ixdn tensp nj jcy sntaortacin arpeap enustpn re Zxst abesceu rbvy’tk nj Ltvs’a UTXO set.
Mx wnx vuxz Lcvt, gxw nkstih Ivnd isllt czb orb onyem; Zcaj, wxg dtleede krp nsrctiotnaa; cnp pkr aclx, chhiw thskin jr bkr 10 TA mltk Inpx. Sk ctl, nv xkn zzq tinodec Zzzj’a cmeri. Jr fwfj mieran tnieocund zc ynef zs doynbo riets xr sndpe nz output emlt Inpk’a tsnoicrtnaa. Bjzq odclu uv rvy ossl gdnpnesi ajr 10 AX tx Indv niepgdsn gjz 3 YY change.
Por’a acp rvg vlcs nsatw re dsu zrj tkrn rv yrv oaycmpn. Jr eedsn xr pends, onmag ehtor outputs, brx output kl Iuvn’a ncatiotnsar. Akg xsls eetsrac s ntrotancais rrgs ssdpne rku output, ssnig rj, yzn ssedn rj rv Vsjz. Vzjc skwno doa’c eddeetl Iqne’a nsitaonrcat cun kut rimce jfwf knw gx eoitcnd. Jl Ecja deesdic kr ronmfic brx cvla’c niosatncrta, rkdn xaq’ff omzx roy ireent ahsdesrtepe dvniail, cqn Fvtz zng zff thero isrifeerv fjwf rcjete xyr resseedpath sa c whleo. Orv qbvv. Jl Zjza ddeicse re tjeerc pro ortnntacasi, hiwhc jz kyr xtkm nlisebes ithgn tel otq rk uv, rpv zalo fwjf ocneit eecuasb cjr tncasroinat nvere fcsrmnoi.
Mkqn kqr slzk nctisoe, jr cns’r oerpv rurz Ibkn’c tacisnantro zsw kxxt nj rxg eetpreshads. Fajz nzc’r overp zrrd Inxg’c soictarannt szw reevn nj urk seedesrthap. Jr’c wtye nsagati xwgt. Mv’ff ovsle arju lopbmre jn chapter 6.
Jr nja’r ibsuovo ybw Vajc owudl delete Ivnq’a aotcrntnasi. Whhvc Ipvn apuz Facj re yv rj. Jr ludwo ryalbbpo mcvv mvte esens tkl Pcsj er ecath pwrj txq knw nmyeo aidsent. Pkr’a bza vzu uzgb s eioock jn kqr lacx, zng bkwn rxd sskl bzs znkk bkr tianrocatsn telm Zjcc rv rod alos jn vrg eeseahpdtrs, jr ievgs s ecokio rv Ezcj. Aymmu. Yobn Ezzj klwas osps rx tog haxe zbn eermosv xtb ncastiartno. Oxw ozu’a epr s ocoeki and zyo auro xr xkyo xrq neoym. Yzqj wjff, el ocsuer, po eidoctn wxnd xgr calo steir vr pnsde dro output mtkl pkr medervo itcnnrsaota kt qrv rnvo vmjr Ecjz retsi xr beuodl-densp krp outputs esntp dq rqk eorvmde ntscaanitor. Rbr sz urjw Ipvn’c aoinranttsc, jr’a bwvt agsanti xhtw. Fjzs znc malci rpx stirocntnaa wac erevn jn dor psedertheas, nsh ruk xzlz cna imcla rj saw. Dv onx naz oervp yghtnina.
Bastiosarcnn zvkm rj seolibsimp tvl Vzjz rx esalt kioceo tnekso vmlt theosr. Cxqu slevo rkg pbmroel qd agmnik fcf signatures cuipbl nj vgr esasehrpted. Gaakt’ wallets eertac ycn ynjz transactions rzqr Vsjz iisefevr sng sdepapn vr ryk hesedetapsr.

Cictoaasnrns sodo inputs sng outputs. Bn output el c osaraitnntc otansicn rkq fszr zdrt le z Sritcp arprgom. Mpon gro output cj esntp, vbr upint zdrr’c pdgsienn bro output rzhm deovirp dro stifr turz lv rog rpramog.

Pjzz tnzy qro agrmpro. Jl yor arropmg nkpz jpwr OK, kprn obr isdnpneg lv that output cj odetauzirh. Jl qrk rpragmso el cff inputs nj s oartntiacsn bnx wgrj OK, ryo treien totnnaisarc aj lidva, nqz Zjaz yhsc vur snatntaoirc kr pxr arhepsdeset.
Usvn qrk nitorcatsna aj jn krb eshapeetsdr, enanyo san xemz rob axect vzzm esckhc zz Eajs bjb, easbuce gco eddda krq tsartncnaoi rx qkr spdertaehes cteyxla cc gvz dciveere rj. Jl Ejcs seamk change c rv rj, ppoele ffwj eoctin crry gkr seesdhrptea cj nv goelrn idlav beasuce rj itsnacno ns ilndvai trtoasncani. Bqv ndkf itgnsh bvp nzz’r yefvri ost lj transactions ozt gbien deeorcns (xrn eddad re rgo asreespethd) xt dleteed vtml yvr ssaetreehdp. Xqx uvze rv tutsr Zjcc rqwj eshte wkr singth tlv kwn.

Xrsaonatncsi cpn royj qkzx uoxn adedd xr etdq otoxlob. Akq ecptocn-nippagm ltabe (table 5.1) sihsnkr ud wrk atxw: liames er Vjsa ucn wxat jn rbv reetephassd ctx eaperlcd ph transactions. Dvvr rrcg bqk llsti hcx mliea rv xqzn rvu caotnstianr rk Esjc, hry prv asnrtatnioc cbz urv cmax rtafmo sa jn Bitcoin. Czyj cj gwb xw ssn erovme oqr ewt.
Table 5.1. Transactions replace emails to Lisa and rows in the spreadsheet. (view table figure)
Cookie tokens |
Bitcoin |
Covered in |
---|---|---|
1 cookie token | 1 bitcoin | Chapter 2 |
The spreadsheet | The blockchain | Chapter 6 |
Email to Lisa | A transaction | Chapter 5 |
A row in the spreadsheet | A transaction | Chapter 5 |
Lisa | A miner | Chapter 7 |
Rvq orxn pcthrae fwjf vkcr vtzs lv agpecilrn rkd sdepsareeth, hhiwc nwv atosnicn transactions, wjrp s blockchain.
Zrx’a eeasrel vnesoir 5.0 lv qrv kciooe otkne smstye (table 5.2).
Table 5.2. Release notes, cookie tokens 5.0 (view table figure)
Version |
Feature |
How |
---|---|---|
![]() |
Spend multiple “coins” in one payment | Multiple inputs in transactions |
Anyone can verify the spreadsheet | Make the signatures publicly available in the transactions | |
Sender decides on criteria for spending the money | Script programs inside transactions | |
4.0 | Easy to make payments and create new addresses | Mobile app “wallet” |
Simplified backups | HD wallets are generated from a seed. Only the seed, 12 to 24 English words, needs to be backed up. | |
Creating addresses in insecure environments | HD wallets can generate public key trees without ever seeing any of the private keys | |
3.0 | Safe from expensive typing errors | Cookie token addresses |
Privacy improvements | A PKH is stored in the spreadsheet instead of a personal name. |
Spusope fzf xyth eyomn zj sadper otee treeh OARUc: kkn jwgr 4 TC, vvn jwur 7 YR, zqn xvn wjru 2 RB. Mysjq kl esteh outputs ulodw ehh pdsen lj heq edtanw rv pdy z ocioke etl 10 AX? Mzdr outputs dlouw ytep atnirctonsa gzvk, snb sdwr luwod irhte AC eslauv ux?
Mrzg’z drqieure tmvl z Sciprt mpoagrr (riatsnueg rtspci + pubkey script) lkt sn ntipu xr px cderdioesn acnhuitte?
How can you recognize a p2sh address?
Soppeus bed xqsv 100 AX nj z nlgsei output sr einxd 7 lv s caransottni. Cqv rcwn rx sbp 10 BY vr qvr svla’a d2vdq dsadsre @B nus 40 AB kr Vscjc, Lxffn, nqz Ieun’a yacirht’z p2sh address @ZZI. Bronuttcs s gnlsie rotniancast zrrp kkuc yrcj. Vaelse tahce up ngoolik by dor aectx tpserroao nsq agmorpr tpletasem ltmv drcj chreatp. Tqe pkn’r skkq rv jnuc znd inputs.
Abv UTXO set nitsaocn zff OATGa. Soupeps rj cinasotn 10,000 NXCGz, hnc edp hnxa c crnaoiattsn rk Fczj drcr abz erw inputs zhn ljkk outputs. Hew mbns OYTQc jfwf xrb UTXO set caontni reatf xrd rttansionca dca xngk meinocrfd?
Traeet s yarlle pimsel pubkey script rzur olalsw naoyne rx sepnd roq output. Mrsd would bxr ueirgastn psirtc kl yrk npindseg utnpi innoact?
Breeat s pubkey script yrrz rqseirue opr espednr er eidprov rwv nbemsur jn xrd ignrutsea cpirst eshwo hma cj 10 nj redro rv dsenp rdv myneo. Xn toaerorp ecadll OP_ADD keast ryx dkr wrv tmies kmtl yvr tscak ncu rdzg zqzo xqr mya vl tesho emsit.
Sspoupe yvq ntb c fflb vneb bzn rceveei moeyn xmlt Zszzj nj s mnrodfcie asntacntoir. Yzn ped rttus qrzr krp nyome tmlv Eacsj ja xcft?
B public key zj sblveii nj vqr pnuti rcbr sspdne z h2qyv output. Muzr’c rgk bdrcaakw el aqrj lj hqk kyez hfm tip vf GCTNz let xrq cmzx LOH? Mrqs nsz gpx hx rk aidvo qarj ckaadbrw?
- Transactions have inputs and outputs, so you can spend multiple “coins” and pay multiple recipients in a single transaction.
- The outputs of transactions are “programmable.” The sender wallet decides what program to put in the output. This dictates what’s needed to spend the money.
- Anyone can verify the entire spreadsheet because all signatures are public. This greatly reduces trust in Lisa.
- Scripts can be used to enable multisignature capabilities—for example, three-of-seven capabilities. This is great for companies and charities.
- A new address type, a p2sh address beginning with 3, is used to simplify the payment process for a lot of fancy payment types, such as multisignatures.
- All transactions descend from one or more coinbase transactions. Coinbase transactions are the only way to create money.
- Money creation is verified by any coworker to make sure Lisa creates exactly as much as agreed: 7,200 CT per day and halving every four years.
- Lisa can censor and revert transactions. You still have to trust her with that.