比特幣
在比特幣系統裡面,並沒有一個帳戶來儲存一個帳號的餘額,那要如何得知一個帳號有多少虛擬加密貨幣呢?比特幣使用了UTXO(Unspent transaction output)模型,來作為其虛擬加密貨幣交易系統,簡單來說就是你的帳戶有多少Bitcoin,是來自於上一個交易輸出的總合,下圖為UTXO的交易模型示意圖,可以看到交易1(TX 1)的input0,是來自於交易0(TX 0)的output0。
我們用一個簡單的例子來介紹它,Mark給Alice 3個BTC,而Jordan給Alice 7個BTC,所以我們可以說總合起來的這10BTC為UTXO,當Alice要把給Julia 10個BTC時,就會創建TX3,並把TX1的3塊BTC,與TX2的7個BTC當做TX3的input,而比特幣系統透過UTXO可以防止雙花(Double Spending),在交易的過程中認證節點(礦工),會檢查其他交易在先前的區塊當中,已經使用過這筆Unspent Output,如果已經使用過,就不會執行這筆交易。
另外在區塊鏈系統中,虛擬加密貨幣是可以分割的,所以如果 Alice只想轉9.5個BTC給Julia怎麼辦?答案是,比特幣系統再創建TX3時,會再多一個output並把剩下的0.5BTC交易給Alice自己。
以太幣
Ethereum系統在虛擬加密貨幣儲存的方式,是使用帳戶模型(Account model),也就是說每個使用者帳戶,都會有一個對應的balance儲存空間,這樣就比較像是現實世界的銀行戶頭一樣,所以在Ethereum裡面無論是進行交易、餘額查詢等,都是直接對帳戶進行操作,這樣的概念是比較直覺得,[圖1]為在Ethereum節點裡進行帳戶餘額查詢。
本文介紹了,兩種區塊鏈系統的交易模型,而每個方法都會有它的優劣處,比如UTXO方法在隱私層面就會比較高,而以太坊使用account model,有一個重要的優勢是,使智能合約開發人員更容易開發智能合約。
加入電腦王Facebook粉絲團本文授權轉載自Daniel Kuo
原文網址:比特幣、以太幣存放在區塊鏈的何處?