在今天的區(qū)塊鏈網(wǎng)絡(luò)中追他,兩種記錄模式非常流行。 第一種方法稱為UTXO(未使用交易輸出)模型岛蚤,第二種方法是賬戶/余額模型邑狸。 UTXO模型由比特幣使用,而以太坊使用賬戶/余額模型涤妒。 在這篇文章中单雾,我們將對這兩種模型的工作原理,它們?nèi)绾尾煌约昂喴榻B兩者的優(yōu)點和缺點提出基本的了解她紫。
在比特幣中硅堆,每筆交易都會花費先前交易的產(chǎn)出,并產(chǎn)生新的產(chǎn)出贿讹,這些產(chǎn)出可能會在未來通過交易消耗渐逃。 所有未使用的事務(wù)都保存在每個完全同步的節(jié)點中,因此該模型被命名為“UTXO”民褂。 用戶的錢包跟蹤與用戶擁有的所有地址相關(guān)聯(lián)的未使用交易的列表茄菊,并且錢包的余額被計算為這些未使用的交易的總和。
圖片來源: https : //bitcoin.org
讓我們來看看UTXO模型如何在比特幣交易中工作的簡單示例:
1.通過采礦赊堪,Alice獲得了12.5個比特幣面殖。 Alice的錢包與一個12.5比特幣的UTXO記錄相關(guān)聯(lián)。
2.愛麗絲想給鮑勃1比特幣哭廉。 Alice的錢包首先解鎖了她12.5比特幣的UTXO畜普,并使用這12.5比特幣作為交易的輸入。 該交易將1比特幣發(fā)送到Bob的地址群叶,并且將11.5比特幣的提醒以新的UTXO的形式發(fā)回給Alice吃挑,以新創(chuàng)建的地址(由Alice擁有)。
3.假設(shè)在步驟2之前還有另一個與Bob相關(guān)的2個比特幣的UTXO街立,Bob的錢包現(xiàn)在顯示他的余額是3個比特幣舶衬。 Bob的錢包現(xiàn)在跟蹤兩個UTXO:一個來自前一個,另一個來自第二步的交易赎离。如果Bob希望花費他們逛犹,則需要解鎖每個UTXO。
另一方面,賬戶/余額模型會將每個賬戶的余額保持為全球狀態(tài)虽画。 檢查帳戶的余額以確保其大于或等于支出交易金額舞蔽。
以下是這個模型在以太坊中的工作原理簡圖:
艾麗斯通過采礦獲得5個醚。 在系統(tǒng)中記錄愛麗絲有5個醚码撰。
2.愛麗絲想給鮑勃1乙醚渗柿,所以系統(tǒng)將首先從愛麗絲的賬戶中扣除1乙醚,所以愛麗絲現(xiàn)在有9個乙醚脖岛。
3.系統(tǒng)然后將鮑勃的賬戶增加1乙醚朵栖。 系統(tǒng)知道鮑勃有2個醚,所以Bob的平衡增加到3個醚柴梆。
UTXO模型中的交易的一個比喻是紙幣賬單(紙幣)陨溅。 每個賬戶通過累積錢包中的賬單數(shù)量(與這個地址/錢包相關(guān)聯(lián))來記錄它有多少錢。 當我們想花錢的時候绍在,我們使用一個或多個賬單(現(xiàn)有的UTXO)门扇,足以支付成本,并可能收到一些改變(新的UTXO)偿渡。 每張賬單只能用一次悯嗓,因為一旦用完,UTXO就從池中移出卸察。
另一方面,以太坊的記錄保存就像銀行一樣铅祸。 類比是使用ATM /借記卡坑质。 銀行跟蹤每張借記卡有多少錢,當我們需要花錢時临梗,銀行會在批準交易前檢查記錄以確保我們有足夠的余額涡扼。
兩種模式都達到了在共識系統(tǒng)中跟蹤賬戶余額的同一目標。
UTXO模型的好處是:
- 可擴展性 - 由于可以同時處理多個UTXO盟庞,因此可以實現(xiàn)并行事務(wù)并鼓勵可伸縮性創(chuàng)新吃沪。
- 隱私 - 甚至比特幣也不是一個完全匿名的系統(tǒng),但只要用戶為每筆交易使用新地址什猖,UTXO就可以提供更高級別的隱私票彪。 如果需要增強隱私性,可以考慮更復(fù)雜的方案不狮,例如環(huán)簽名降铸。
賬戶/余額模型的好處是:
- 簡單性 - 以太坊選擇了一種更直觀的模式,以便為復(fù)雜智能合約的開發(fā)人員帶來益處摇零,尤其是那些需要國家信息或涉及多方的開發(fā)人員推掸。 一個例子是一個智能合約,跟蹤各國根據(jù)它們執(zhí)行不同的任務(wù)。 UTXO的無狀態(tài)模型會迫使交易包含狀態(tài)信息谅畅,這不必要地使合約的設(shè)計復(fù)雜化登渣。
- 效率 - 除了簡單之外,賬戶/余額模型更加高效毡泻,因為每筆交易只需要驗證發(fā)送賬戶是否有足夠的余額來支付交易胜茧。
賬戶/余額模型的一個缺點是暴露于雙重支出攻擊。 可以實施遞增的隨機數(shù)來抵消這種類型的攻擊牙捉。 在以太坊中竹揍,每個帳戶都有一個公共可見的隨機數(shù),每次進行交易時邪铲,隨機數(shù)都會增加一個芬位。 這可以防止相同的事務(wù)被多次提交。 (注意带到,這個隨機數(shù)不同于以太坊的以太坊證明昧碉,這是一個隨機值。)
與計算機體系結(jié)構(gòu)中的大多數(shù)情況一樣揽惹,兩種模型都有權(quán)衡被饿。 一些區(qū)塊鏈,特別是Hyperledger搪搏,采用了UTXO狭握,因為它們可以從比特幣區(qū)塊鏈創(chuàng)新中受益。 我們將研究構(gòu)建在這兩個記錄保持模型之上的更多技術(shù)疯溺。
本文翻譯自 https://medium.com/@sunflora98/utxo-vs-account-balance-model-5e6470f4e0cf