- 區(qū)塊鏈應用開發(fā)指南:業(yè)務場景剖析與實戰(zhàn)
- 熊麗兵 董一凡等
- 695字
- 2022-07-28 20:17:55
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ā)明的,比特幣在這里借用了這種語言的語法。
- 數(shù)據(jù)產(chǎn)品經(jīng)理高效學習手冊:產(chǎn)品設計、技術常識與機器學習
- 大數(shù)據(jù)技術基礎
- Google Visualization API Essentials
- 數(shù)據(jù)要素五論:信息、權屬、價值、安全、交易
- 深入淺出MySQL:數(shù)據(jù)庫開發(fā)、優(yōu)化與管理維護(第2版)
- Python醫(yī)學數(shù)據(jù)分析入門
- 數(shù)據(jù)驅(qū)動設計:A/B測試提升用戶體驗
- 深入淺出Greenplum分布式數(shù)據(jù)庫:原理、架構和代碼分析
- Python數(shù)據(jù)分析從小白到專家
- MySQL數(shù)據(jù)庫實用教程
- Oracle 11g數(shù)據(jù)庫管理員指南
- SOLIDWORKS 2018中文版機械設計基礎與實例教程
- SQL Server 2012 數(shù)據(jù)庫教程(第3版)
- Configuration Management with Chef-Solo
- Redis 6開發(fā)與實戰(zhàn)