繼續(xù)記錄讀比特幣白皮書(shū)的知識(shí)點(diǎn)畏妖。
[2. 交易]
We define an electronic coin as a chain of digital signatures.
[譯] 我們定義一個(gè)電子貨幣為一串?dāng)?shù)字簽名。
[注] 傳統(tǒng)的交易是第三方中心化的平臺(tái)進(jìn)行記賬疼阔,其實(shí)就是一個(gè)清算戒劫。如A用網(wǎng)銀從工商銀行轉(zhuǎn)賬200元給B的農(nóng)業(yè)銀行,其實(shí)并不會(huì)存在工商銀行把現(xiàn)金提取出來(lái)再存儲(chǔ)到農(nóng)業(yè)銀行的B的戶頭上婆廊。而是通過(guò)一個(gè)清算中心進(jìn)行定期的清算迅细,即記賬A減少200元,B增加200元淘邻,最后定期(如一個(gè)月月底)進(jìn)行匯總清算茵典,如工商銀行最終少了X元,農(nóng)業(yè)銀行最終多了Y元宾舅,進(jìn)行劃撥统阿。以上是個(gè)人理解,可能中間還有描述錯(cuò)誤的地方筹我。中間的清算是中國(guó)人民銀行清算總中心扶平,國(guó)際的匯款的清算是國(guó)際清算銀行。而比特幣中的交易并不是這種清算蔬蕊,而確實(shí)是有A轉(zhuǎn)移到B结澄,A轉(zhuǎn)移到B是一種記賬也是比特幣的存儲(chǔ)方式。并不會(huì)像Q幣一樣會(huì)中心化記錄你有多少個(gè)幣岸夯,而是從所有的記錄中回溯你有多少?zèng)]有消費(fèi)的幣麻献,術(shù)語(yǔ)為:utso(unspend transaction output)未消費(fèi)的交易輸出。
[問(wèn)題1] 比特幣鏈上(網(wǎng)絡(luò)上)只會(huì)記錄交易猜扮,可以視為一個(gè)公開(kāi)的賬本勉吻,那么UTSO是如何記錄的呢?是由每個(gè)節(jié)點(diǎn)進(jìn)行對(duì)每個(gè)地址遍歷查找計(jì)算來(lái)維護(hù)的嗎破镰?
如果是這樣的餐曼,那么對(duì)于一些輕量級(jí)的錢包压储,其只要維護(hù)該地址的UTSO就可以了,因?yàn)樽约恨D(zhuǎn)賬給別人的時(shí)候源譬,檢查自己是否有足夠的UTSO集惋。如果別人轉(zhuǎn)賬給自己,則通過(guò)區(qū)塊鏈的抓取踩娘,并且確認(rèn)后就可以認(rèn)為自己已經(jīng)收到了比特幣刮刑。一些錢包還有有查看確認(rèn)次數(shù)的功能來(lái)進(jìn)行查看。
因此养渴,比特幣網(wǎng)絡(luò)上并不需要同步所有人(所有地址的)UTSO雷绢,只需要記錄所有的交易,這樣更像現(xiàn)金理卑,所以翘紊,比特幣在白皮書(shū)中也稱為新型的現(xiàn)金系統(tǒng)。這樣就可以簡(jiǎn)化網(wǎng)絡(luò)結(jié)構(gòu)藐唠。并且所有的比特幣都是有比特幣的鏈上創(chuàng)造(挖礦)帆疟,所有也不需要記錄初始值(創(chuàng)世區(qū)塊前各個(gè)地址的幣,或有其他的地方或鏈上來(lái)的幣)宇立。
[注] 關(guān)于公鑰和私鑰:公鑰和私鑰是成對(duì)出現(xiàn)的踪宠。并且所有用“公鑰”加密的內(nèi)容只能用“私鑰”打開(kāi),所有用“私鑰”加密的內(nèi)容只能用“公鑰”打開(kāi)妈嘹。
比特幣的交易(轉(zhuǎn)賬)的格式非常簡(jiǎn)單柳琢,要轉(zhuǎn)賬到的地址(由Public Key形成)、交易金額润脸。因此柬脸,上圖中的Owner 0轉(zhuǎn)賬給Owner?1,需要Owner?1的Public Key毙驯。把轉(zhuǎn)賬記錄進(jìn)行哈希最終得到一串?dāng)?shù)字肖粮,這串?dāng)?shù)字可以進(jìn)行校驗(yàn)。如Owner?1又想轉(zhuǎn)賬給Owner 2尔苦,則它需要使用自己的私鑰進(jìn)行簽名涩馆,這個(gè)簽名其實(shí)是用私鑰加密一串內(nèi)容,這串內(nèi)容使用公鑰解密允坚。解密的內(nèi)容與前一個(gè)與Owner 0交易哈希之后獲得的內(nèi)容是一致的魂那,從而說(shuō)明Owner?1是擁有這筆比特幣的。這樣他再把自己的簽名放到比特幣交易的后面進(jìn)行連接下去稠项。
[思考] 所以上述的鏈并不是順序的涯雅,如Owner 2與Owner 3之間還存在著其他的交易。這里只是描述的交易順序的鏈條展运。與真正的區(qū)塊的鏈條不一致活逆。如當(dāng)前時(shí)間(比特幣的區(qū)塊高度已經(jīng)到達(dá)了530582)精刷,我開(kāi)始沒(méi)有比特幣,我從A那里獲取了比特幣這次交易可能在530582中蔗候,我可能明天有轉(zhuǎn)賬給了B怒允,這筆交易可能在530600區(qū)塊了。中間的區(qū)塊是其他人的交易锈遥。但從A到我纫事,我到A符合上圖的交易的鏈條。
[數(shù)字簽名] 證明你認(rèn)可這筆交易所灸。證明你擁有對(duì)應(yīng)公鑰的私鑰丽惶。如Owner?1轉(zhuǎn)賬給Owner 2,交易為交易的信息加上Owner?1的數(shù)字簽名爬立。如何證明Owner?1有Owner?1對(duì)應(yīng)的公鑰(地址)里面的錢的私鑰呢钾唬?即如何證明我用的是我的錢,而不是隨便拿的別人的錢去花呢侠驯?或者映射到顯示生活中知纷,如何證明我用的是我的信用卡,而不是別人的行用卡陵霉?當(dāng)然需要簽名。比特幣利也是需要這種數(shù)字簽名的伍绳。Owner?1的簽名是:將交易信息進(jìn)行Hash踊挠,把Hash的值使用私鑰進(jìn)行加密,就形成了數(shù)字簽名冲杀。別人如何驗(yàn)證說(shuō)你的簽名是正確的呢效床?別人用交易信息(交易信息要上鏈,是公開(kāi)的)進(jìn)行Hash权谁,對(duì)Owner?1的數(shù)字簽名用Owner?1的公鑰進(jìn)行解密剩檀,就獲得了你加密之前的內(nèi)容,如果這個(gè)內(nèi)容與獲得的Hash值是一致的旺芽,說(shuō)明你擁有私鑰沪猴,你用的是自己的錢。
所以采章,誰(shuí)有私鑰运嗜,誰(shuí)就擁有了該地址(公鑰)對(duì)應(yīng)的比特幣。所以悯舟,必須要保管好自己的私鑰担租,最好是用筆記錄到本子中。不要截圖抵怎、不要放到郵箱奋救、不要放到微信\QQ中岭参,接觸到網(wǎng)絡(luò)的地方就有被盜的風(fēng)險(xiǎn)。如果金額大尝艘,也可以考慮冷錢包演侯。
接下來(lái)白皮書(shū)又提到了雙重支付的問(wèn)題。雙重支付的問(wèn)題的解決方法是時(shí)間戳服務(wù)器利耍,接下來(lái)繼續(xù)學(xué)習(xí)蚌本。