據了解,在漏洞代碼片段中會涉及一些UTXO的相關知識、概念,所以對該漏洞進行理論分析之前需要先了解一下這些知識點,已經了解的可以直接跳過。
1、賬戶模型與UTXO模型
我們在看UTXO模型之前先說說常見的賬戶模型,什么是賬戶模型?賬戶模型的數據結構簡單可以理解為“賬號=>余額”,每個賬號都對應一個余額。舉個例子:若賬號A向賬號B轉賬200,在賬戶模型中完成這個轉賬操作只需要A-200然后B+200;目前大部分軟件都采用的是賬戶模型,比如銀行系統、
以太坊等等。
而
比特幣卻使用了自行研發的UTXO模型,UTXO中是沒有“賬號=>余額”這樣的數據結構的,那怎么進行轉賬?
2、比特幣如何操作轉賬
以上面A向B轉賬為例,在UTXO中完成這個轉賬需要以下操作:
(1). 找到A賬號下200余額的來源,也就是意味著要找到A收款200的這筆交易x
(2). 以x交易為輸入,以向B轉賬200的交易y為輸出,x與y對應且x與y的轉賬金額必須相等
(3). x交易被標記為已花費,y交易被標記為未花費
兩筆交易的轉賬金額必須相等,簡單解釋就是收到多少就只能轉出多少,實際上確實是這樣。
但是又必須只給別人轉一部分的時候怎么辦?答案是只向他人轉一部分,然后剩下的一部分轉給自己另外一個號。
3、引用兩張來自網絡的圖文:
賬戶模型
UTXO模型
在本文當中比特幣為什么采用UTXO模型不是重點,我們了解UTXO的原理即可。
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。