摘要:電子貨幣比特幣白皮書中對(duì)電子貨幣進(jìn)行了定義將一枚電子貨幣定義為數(shù)字簽名鏈。電子貨幣從所有者轉(zhuǎn)移給下一個(gè)人是通過,所有者使用私鑰,對(duì)交易和下一個(gè)人的公鑰進(jìn)行數(shù)字簽名,并將數(shù)字簽名附在這枚電子貨幣數(shù)字簽名鏈的后面。
在上篇文章中,著重介紹了數(shù)字簽名,在這篇文章中,深入到比特幣交易源碼的部分進(jìn)行探究,并回答以下問題:
如何給電子貨幣一個(gè)單位。
如何將一個(gè)電子貨幣進(jìn)行分割成多個(gè)電子貨幣。
如何將多個(gè)電子貨幣進(jìn)行整合成一個(gè)電子貨幣。
如何表示一個(gè)沒有被花費(fèi)電子貨幣。
電子貨幣的交易流程是什么。
定義有一些關(guān)鍵詞,翻譯成中文后,完全失去了原來的意思了。本文約定關(guān)鍵詞如下:
inputs: 交易輸入的集合,由一個(gè)或多個(gè) input 組成
input: 一個(gè)交易輸入。一個(gè)交易輸入通常是由一個(gè) UTXO 和數(shù)字簽名等信息組成
outputs: 交易輸出的集合
output: 交易輸出的新的電子貨幣。通常是由電子貨幣的值和驗(yàn)證數(shù)字簽名的腳本組成
double-spend: 雙花。一枚電子貨幣可能被兩次或多次
UTXO: Unspent Transaction Output 的縮寫。通常引用一個(gè) output
tx: Bitcoin transaction 的縮寫。交易。
txid: Transaction id 的縮寫。指的是交易的 hash 值。
satoshi: 1 BTC = 100,000,000 satoshi
電子貨幣比特幣白皮書中對(duì)電子貨幣進(jìn)行了定義:
將一枚電子貨幣定義為**數(shù)字簽名鏈**( a chain of digital signatures)。電子貨幣從所有者轉(zhuǎn)移給下一個(gè)人是通過,所有者使用私鑰,對(duì)交易 Transactions 和下一個(gè)人的公鑰進(jìn)行數(shù)字簽名,并將數(shù)字簽名附在這枚電子貨幣(數(shù)字簽名鏈)的后面。收款人對(duì)數(shù)字簽名進(jìn)行檢驗(yàn),就能校驗(yàn)自己是否收到了電子貨幣。
一枚電子貨幣,從被創(chuàng)造出來開始,在不斷地被交易,被附上數(shù)字簽名。我們可以等價(jià)的認(rèn)為一枚電子貨幣,就是一條數(shù)字簽名鏈。如:
Owner 0"s 將他的數(shù)字簽名和 Owner 1"s 的公鑰附在了第一筆交易的尾端(從左到右)
比特幣系統(tǒng)驗(yàn)證無誤后,這枚電子貨幣就屬于了 Owner 1"s。
Owner 1"s 將他的數(shù)字簽名和 Owner 2"s 的公鑰附在了第二筆交易的尾端
比特幣系統(tǒng)驗(yàn)證無誤后,這枚電子貨幣就屬于了 Owner 2"s。
第三筆交易也是類似...
使用電子貨幣進(jìn)行交易在比特幣中,一枚電子貨幣的價(jià)值由 value 來衡量,單位是 satoshi。1 BTC = 100,000,000 satoshi。一筆交易本質(zhì)就是價(jià)值的轉(zhuǎn)移,即所有者對(duì)他的一枚或多枚電子貨幣進(jìn)行數(shù)字簽名,即 inputs。比特幣系統(tǒng)驗(yàn)證后,創(chuàng)建一枚或多枚屬于收款人的電子貨幣,即 outputs。注意一枚電子貨幣,就像一張人民幣一樣,不能撕開成兩半用,但是可以將其兌換成若干個(gè)等值的電子貨幣。
舉個(gè)例子:Alice 支付 Bob 價(jià)值 0.2 BTC 的電子貨幣,Bob 收到一個(gè) 0.15 BTC 的電子貨幣,并且找零給 Alice 一個(gè) 0.05 BTC 的電子貨幣。
Alice 創(chuàng)建一次交易。
Alice 選擇一枚價(jià)值 0.2 BTC 的電子貨幣作為本次交易的 inputs。
Alice 付給 Bob 一枚價(jià)值 0.15 BTC 的電子貨幣,并找零給自己 0.05 BTC 的電子貨幣,這部分是本次交易的 outputs。
比特幣系統(tǒng)驗(yàn)證通過后,Bob 就收到了一枚 0.15 BTC 的電子貨幣。
當(dāng)這筆交易結(jié)束后,Alice 那一枚 0.2 BTC 的電子貨幣,就被比特幣系統(tǒng)這個(gè)“造幣廠”作廢了,而“造幣廠”同時(shí)發(fā)行兩枚新的電子貨幣,一枚 0.15 BTC 的電子貨幣給了 Bob,一枚 0.05 BTC 的電子貨幣找零給了 Alice。只有不被“造幣廠”作廢的電子貨幣,才能用于交易,這樣就能夠防止 double-spend。“造幣廠”發(fā)行的電子貨幣稱為 output,其中,沒有作廢的電子貨幣稱為 Unspent Transaction Output,縮寫為 UTXO。
交易的數(shù)據(jù)格式下圖這是一筆早期比特幣交易。
主要包含四個(gè)獨(dú)立的部分:
黃色部分表示的是:hash - txid(Transaction ID)
藍(lán)色大括號(hào)表示的是:交易的描述信息和元數(shù)據(jù)
粉紅色部分表示的是:inputs
綠色部分表示的是:outputs
transaction 的一般格式
名稱 | 描述 |
---|---|
version | 比特幣系統(tǒng)的版本號(hào) |
hash | 本次交易的 hash 值 |
inputs | 由 input 組成的數(shù)組 |
outputs | 由 output 組成的數(shù)組 |
lockTime | 值為 0,立刻執(zhí)行交易;值不為 0,在指定區(qū)塊高度或時(shí)間戳執(zhí)行交易。 |
output 的數(shù)據(jù)格式
名稱 | 描述 |
---|---|
value | 電子貨幣的價(jià)值,單位 BTC |
scriptPubKey | 通常是收款人公鑰等組成的鎖定腳本 |
input 的數(shù)據(jù)格式
名稱 | 描述 |
---|---|
prevTxId | 上一筆交易的 hash 值 |
outputIndex | 上一筆交易 outputs 的 index |
scriptSig | 通常由付款人的數(shù)字簽名和收款人的公鑰等組成的解鎖腳本。 |
注意,input 實(shí)際上是一個(gè)引用。在計(jì)算交易時(shí),是通過 prevTxId 和 outputIndex 屬性,找到上次交易的 output 作為本次交易實(shí)際的 input。
參考文章:
Bitcoin: A Peer-to-Peer Electronic Cash System
Transaction
How a Bitcoin Transaction Works
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/23953.html
摘要:比特幣作為一個(gè)點(diǎn)對(duì)點(diǎn)電子現(xiàn)金系統(tǒng),卻需要一個(gè)中心化的交易所來撮合交易。具有比特幣精神的交易所具有比特幣精神的交易所應(yīng)該不需要注冊(cè)不需要充值到交易所指定的錢包訂單撮合成功后資金應(yīng)該回到用戶自己的錢包里面,而不是需要審批才能提走。 比特幣作為一個(gè)點(diǎn)對(duì)點(diǎn)電子現(xiàn)金系統(tǒng),卻需要一個(gè)中心化的交易所來撮合交易。這雖然不符合點(diǎn)對(duì)點(diǎn)的精神。但是依然被客戶迅速的接受了。 中心化交易所的風(fēng)險(xiǎn) 資產(chǎn)安全 封閉...
摘要:書接上回區(qū)塊鏈筆記基礎(chǔ)概念掃盲,我們討論了關(guān)于比特幣以及區(qū)塊鏈的許多基礎(chǔ)概念,可能通過我略帶類比的描述,讓你初步有了一些概念,但是對(duì)于一個(gè)比特幣到底長(zhǎng)什么樣以及如何使用比特幣進(jìn)行交易可能還不是很清楚,說的直白點(diǎn)就是聽過豬叫,但沒吃過豬肉。 解惑是每個(gè)人都在走的一條路,可誰又能解這漫漫無期呢?路上總是麻醉的人多,釋懷的人少。 書接上回區(qū)塊鏈筆記(1)基礎(chǔ)概念掃盲,我們討論了關(guān)于比特幣以及...
摘要:文章前部分適合想了解比特幣和區(qū)塊鏈的非開發(fā)人員,整篇文章適合想轉(zhuǎn)入比特幣與區(qū)塊鏈相關(guān)開發(fā)的技術(shù)人員。張三和李四均可通過查詢區(qū)塊鏈網(wǎng)絡(luò)確認(rèn)轉(zhuǎn)賬成功。 ??常見的比特幣與區(qū)塊鏈入門文章大約分為兩類,一類是面向非開發(fā)人員的科普讀物;另一類是面向開發(fā)人員的技術(shù)指南。前者易流于淺表,讓讀者接觸了一堆名詞和概念,卻無法對(duì)比特幣與區(qū)塊鏈有個(gè)直觀的認(rèn)識(shí);而后者又往往直接進(jìn)入細(xì)節(jié),使開發(fā)人員一葉障目不能...
摘要:比特幣主網(wǎng)絡(luò)現(xiàn)在已經(jīng)有數(shù)百大小。加密錢包密碼應(yīng)該包括位以上,且不要使用生日名字證件號(hào)碼等易被猜測(cè)的密碼。警告遺忘密碼等于丟失所有比特幣。例如比特幣免費(fèi)領(lǐng)取測(cè)試比特幣。 showImg(https://upload-images.jianshu.io/upload_images/4834364-4db38e8ae57ed028.png?imageMogr2/auto-orient/str...
閱讀 969·2023-04-25 23:55
閱讀 2690·2023-04-25 14:13
閱讀 3285·2019-08-26 13:47
閱讀 2956·2019-08-23 18:16
閱讀 615·2019-08-23 17:20
閱讀 3216·2019-08-23 16:55
閱讀 3134·2019-08-22 15:39
閱讀 3183·2019-08-20 18:10