官术网_书友最值得收藏!

1.15.3 比特幣中的交易

我們每個人的銀行賬戶都有一個賬戶余額的概念,可以直接知道賬戶中有多少錢。發(fā)生轉(zhuǎn)賬的時候,轉(zhuǎn)出則導致賬戶余額變少,轉(zhuǎn)入則導致賬戶余額變多。比特幣網(wǎng)絡和傳統(tǒng)的銀行記賬不太一樣,比特幣的每一筆交易記錄的是轉(zhuǎn)賬數(shù)量,具體來說,是從一個或多個賬戶轉(zhuǎn)賬到一個或多個賬戶。比特幣的區(qū)塊鏈數(shù)據(jù)庫中存儲的就是這樣的一筆一筆的轉(zhuǎn)賬記錄。如果需要知道一個賬戶的余額,那么就把所有轉(zhuǎn)入這個賬戶的比特幣數(shù)量減去所有轉(zhuǎn)出的比特幣數(shù)量即可。

在比特幣轉(zhuǎn)賬的時候,有一個傳統(tǒng)的銀行賬戶余額系統(tǒng)沒有出現(xiàn)過的問題。由于一個賬戶里沒有余額,所以一個賬戶發(fā)起轉(zhuǎn)賬的時候,區(qū)塊鏈數(shù)據(jù)中只記錄有這個賬戶的轉(zhuǎn)入記錄。我們沒辦法像傳統(tǒng)銀行一樣,直接基于一個余額扣掉轉(zhuǎn)出數(shù)量即可。這時候我們只能說要把這個賬戶中的某幾條轉(zhuǎn)入記錄一起轉(zhuǎn)出去。這就遇到一個問題,幾個轉(zhuǎn)入記錄的數(shù)量不會正好等于轉(zhuǎn)出數(shù)量,通常都是多于轉(zhuǎn)出數(shù)量。比特幣解決這個問題的辦法非常巧妙,由于比特幣支持一筆轉(zhuǎn)賬中轉(zhuǎn)給多個賬戶,所以可以在轉(zhuǎn)出賬戶中加上自己的這個地址,把多余的部分再轉(zhuǎn)回來。等于自己給自己發(fā)起了一筆轉(zhuǎn)賬。

舉個例子,A賬戶歷史上一共收到過三筆轉(zhuǎn)賬,分別是2枚、2枚、3枚比特幣。這時候賬戶A需要轉(zhuǎn)賬給B賬戶6枚比特幣。處理方法就是以這三筆轉(zhuǎn)賬記錄為依據(jù),生成一個新的轉(zhuǎn)賬記錄,這個轉(zhuǎn)賬記錄中有兩條信息,一條是給B賬戶6枚比特幣,一條是給A賬戶也就是是自己1枚比特幣。

由于轉(zhuǎn)賬記錄不是簡單的一對一,所以比特幣的轉(zhuǎn)賬記錄使用了一個類似Foth編程語言的腳本語言,可以寫簡單的邏輯。Foth語言是查爾斯·H.摩爾(Charles H. Moore)在1970年發(fā)明的,比特幣在這里借用了這種語言的語法。

主站蜘蛛池模板: 天峨县| 吉安县| 霍林郭勒市| 乡宁县| 仲巴县| 神农架林区| 平湖市| 瑞金市| 吉木萨尔县| 灵宝市| 二连浩特市| 高平市| 成都市| 库车县| 曲松县| 衢州市| 红河县| 嫩江县| 栖霞市| 中山市| 砚山县| 民丰县| 绥芬河市| 峡江县| 安阳市| 昌都县| 民勤县| 武邑县| 沽源县| 崇州市| 平凉市| 边坝县| 永胜县| 临澧县| 景德镇市| 龙门县| 黄梅县| 龙南县| 廊坊市| 卢湾区| 托克逊县|