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

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

主站蜘蛛池模板: 满洲里市| 鲜城| 东至县| 钟祥市| 保亭| 青田县| 河津市| 莱芜市| 武宁县| 定边县| 龙门县| 康乐县| 鄂尔多斯市| 搜索| 扶沟县| 绍兴县| 邢台县| 遵义县| 顺昌县| 隆子县| 集安市| 蕉岭县| 惠水县| 西青区| 永定县| 龙山县| 堆龙德庆县| 花莲市| 澳门| 美姑县| 东平县| 类乌齐县| 奉贤区| 奉新县| 上思县| 千阳县| 万全县| 磐安县| 长宁区| 即墨市| 永登县|