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

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ā)明的,比特幣在這里借用了這種語言的語法。

主站蜘蛛池模板: 根河市| 万载县| 全椒县| 定州市| 如东县| 湖州市| 洞头县| 竹北市| 南木林县| 东至县| 凤山市| 渝中区| 长泰县| 察哈| 黄石市| 乌拉特前旗| 蒙自县| 耒阳市| 湘潭县| 双桥区| 枣强县| 东丽区| 读书| 中山市| 安新县| 雷州市| 健康| 柳江县| 竹北市| 孟津县| 金堂县| 永丰县| 黑龙江省| 贺兰县| 三河市| 武清区| 陇南市| 平谷区| 大城县| 金溪县| 衡阳县|