Ergo承袭了比特币最安全、最完善的功能,并在其坚实的基础上实现全新高级加密功能。本系列文章探讨了我们在创建Ergo时所做的选择。作为系列中的首篇文章,本文展示了UTXO模型的优势。
当您处理财务价值时不能冒险。加密货币平台中的每个架构决策都有影响。虽然不同的方法可以解决同一个问题,但和其他解决方案相比,有些解决方案经过更好测试且更可靠。
与比特币一样,Ergo坚守“UTXO”(未花费交易输出)模型,放弃了以太坊等平台采用的账户模型。我们做出这个选择的原因有很多,但首先有必要解释一下UTXO或“盒子”模型的工作原理。
大多数人认为账户余额是一个简单的数字,在您发送或接收资金时会更新。这是处理问题的直观方法;毕竟,这就是金钱在现实世界中的有效运作方式。当进行不同的资金转入和转出时,您的银行账户余额会增加或减少。这就是“账户”模型的运作方式:您在区块链上的余额会因进出账户的交易而改变。
可追溯至产币交易
比特币率先采用的UTXO模型完全不同。您可以把这想象成一个人拿着一系列面包面团块。它们的余额是这些面团块或UTXO的总和。在将面团块发送到新地址之前,它们可以被分割或组合,但您总是知道它们来自哪里。例如:
Alice有100g面团(100枚ERG)。她掰下75g递给Bob,并为自己保留了25g的“零钱”。Charlie有250g面团。他取下150g给了Bob,为自己保留了100g零钱。Bob从Charlie给他的150g面团中掰下20g,并将剩余的130g与Alice给他的75g面团合并。他将205g的总量给了Dave,自己保留了20g的零钱。Dave现在有205g面团,这以前属于Charlie。在Charlie拥有它之前,75g曾经属于Alice,而130g曾经属于Bob。
在UTXO模型中,可以组合和分割“币块”,但与面团不同的是,它们不会混合在一起。您可以将资金的历史记录直接追溯到首次挖掘这些币的 coinbase交易(译注:即产币交易)。这与账户模型截然不同,账户模型只是简单地更改了每个账户的余额。(当然,您可以检查区块链以核实账户内容,但在UTXO方法中这本质上并不必要。)
为什么选择UTXO?
UXTO模型有几个隐含条件。首先,每个对象都是不可变的——不能像在进行交易时编辑账户余额那样“编辑”币块。余额是根据交易历史记录计算得出的,可以回溯到这些币最初出现的时间点。
这使得维护安全性变得更加简单,因为UTXO要么以您期望的形式存在,要么根本不存在。使用账户模型,您需要仔细检查您正在处理的账户是否处于应有的状态(开发者通常不会正确执行此操作)。这也使UTXO对链下协议更加友好,例如侧链和闪电网络。
账户可以使得存储“状态”变得更简单,但简单并不总是意味着更好。借助Ergo的扩展UTXO模型,状态转换更加明确,因此更加清晰——不会出现意外情况。这处理起来可能有点麻烦,但在安全性方面要好得多,也更直接。
作者:Ergo团队
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。