Transactions

交易輸入規範 - 比特幣與瑞波幣

  • June 16, 2016

在比特幣中,交易輸入(UTXO)被指定為一個元組(交易索引,vout),因為在比特幣系統中沒有賬戶的概念,並且單獨的地址(由 vout 指向)是不夠的。相反,交易是主要實體。

另一方面,瑞波幣使賬戶成為交易改變賬戶餘額的主要實體。這使得可以單獨指定(帳戶)地址作為交易的輸入。

這些是設計決策。兩種模式的優缺點是什麼?他們背後的動機是什麼?

謝謝你。

UTXO/區塊鏈方法的優點:

  1. 您不必向引用帳戶的地址付款。交易可以支付唯一的規則或條件,這些規則或條件只能作為聲明特定交易輸出的規則而存在。
  2. 交易在執行中更加獨立,不會爭奪對相同賬戶結構的訪問權。
  3. 您只需要知道交易是否成功即可。沒有以前餘額和新余額等“附加資訊”。

帳戶/分類帳方法的優點:

  1. 帳戶作為主要結構存在,因此可以具有持久/配置和動態/報告的屬性。
  2. 交易在資訊上更加獨立,不會爭奪對相同交易輸出的訪問權。
  3. 沒有 UTXO 數據庫需要維護和同步,對 UTXO 集的攻擊不起作用。(儘管還有其他方法可以防禦這種類型的攻擊。)可以支持更複雜的交易,而不會產生對 UTXO 集產生分歧的風險。

比特幣的設計自然適合 UTXO 方法。交易結果簡單,無需賬戶參數。

由於多種原因,這種方法在 Ripple 中行不通:

  1. 由於 Ripple 支持任意資產,其中許多資產可能毫無價值,因此必須有一種方法讓接收者表明他們將接受哪些資產作為付款。這意味著某些東西必須將其作為財產,這需要一個帳戶。
  2. 必鬚髮行這些資產,這需要賬戶充當發行人。
  3. 跨幣種支付會產生復雜的結果,試圖將這些確定性地映射到 UTXO 操作上並不是很自然的選擇。調整賬戶餘額比在交易處理時選擇使用和創建 UTXO 更簡單。例如,Ripple 的交易無法指定他們將使用哪些 UTXO,因為在交易形成時這是未知的。(你怎麼知道當你的交易執行時誰會提供最優惠的價格?如果每個人都與硬編碼的交易競爭以獲得最多的流動性,那麼大多數交易都會失敗。)
  4. 更複雜的網路狀態需要更複雜的結構來確保網路同意該狀態。比特幣的結構沒有辦法防止 UTXO 分歧,這將是災難性的,除了保持交易足夠簡單,這種類型的錯誤不太可能發生。Ripple 更複雜的交易需要強大的防禦能力,以防止程式碼中的分歧或小錯誤可能導致災難性的結果。
  5. 由於 Ripple 交易具有更複雜的輸出,因此它們往往更大。Ripple 的方法可以更輕鬆地丟棄交易歷史記錄,因為您真正需要的只是所有帳戶和其他持久結構的目前狀態。

使用這兩種方法,您幾乎可以滿足任何要求。有一些方法可以在不改變方法的情況下解決這些問題。但是從最自然地符合您的要求的設計開始通常更容易,而不是剃須和卡住以將圓釘插入方孔。

引用自:https://bitcoin.stackexchange.com/questions/45951