为何Ergo坚守UTXO模型而弃用账户模型?_COI:Jin Coin

作者:Ergo团队

Ergo承袭了比特币最安全、最完善的功能,并在其坚实的基础上实现全新高级加密功能。本系列文章探讨了我们在创建Ergo时所做的选择。作为系列中的首篇文章,本文展示了UTXO模型的优势。

当您处理财务价值时不能冒险。加密货币平台中的每个架构决策都有影响。虽然不同的方法可以解决同一个问题,但和其他解决方案相比,有些解决方案经过更好测试且更可靠。

直播|李宝宝 > 靠首发DeFi币崛起,为何BitMax抓住了风口:金色财经 · 直播主办的《 币圈 “后浪” 仙女直播周》第12期15:00准时开始,本期“后浪”仙女Bitmax 的李宝宝将在直播间聊聊“靠首发DeFi币崛起,为何BitMax抓住了风口”,请扫码移步收听![2020/8/11]

与比特币一样,Ergo坚守“UTXO”模型,放弃了以太坊等平台采用的账户模型。我们做出这个选择的原因有很多,但首先有必要解释一下UTXO或“盒子”模型的工作原理。

动态 | 李启威连发数十条推文释疑:为何看起来Litecoin Core在GitHub没有更新:刚刚莱特币创始李启威连发数十条推文,介绍了莱特币的代码更新情况和开发进展。他表示在8年来,只有少于开发人员致力于Litecoin Core。Adrian Gallagher目前正在领导Litecoin Core的开发,并且已经进行了几年,大家可能不太了解Adrian,因为他不在推特上,但他很棒,他正在悄悄地做Litecoin Core开发的幕后工作。

最近有很多人质疑莱特币在2019年没有更新任何代码,从GitHub上看似乎这样,但这里有两个原因:第一个是莱特币的更新要比比特币滞后几个月,我们发布了几个月前在比特币中发布的代码,这些代码是在2018年编写的。GitHub的有趣之处在于,它使提交的时间保持不变,不管是谁写的,还是什么时候提交到代码库的。因此,比特币开发者因在莱特币代码库中的工作而受到好评。这就会让人看起来,尽管在2019年5月开发并发布了最新的Litecoin Core,但在GitHub你会发现大多数提交都是在2018年完成的。第二个原因是我们没有在主要项目的主分支上工作,将非发布代码签入主分支通常不是好的开发实践。事实上,Adrian一直在他的个人分支上积极地开发Litecoin核心版本0.18.1。

以上是Litecoin Core开发多年来的运作方式,我们去年甚至遇到了用户相同的担忧,有人去年看了我们的主分支工作并声称Litecoin在2018年停止了开发。我打即使在这个解释之后,我们也会在2020年让人感到困惑。

另外,李启威还表示Litecoin Foundation的目的有两个方面:致力于LTC的推广和开发。“在过去的几个月里,我认为一直认为推广比开发更重要,但从长远来看,这两者同样重要。我会努力与社区进行更好的沟通,并提供更频繁的消息同步。”[2019/8/11]

大多数人认为账户余额是一个简单的数字,在您发送或接收资金时会更新。这是处理问题的直观方法;毕竟,这就是金钱在现实世界中的有效运作方式。当进行不同的资金转入和转出时,您的银行账户余额会增加或减少。这就是“账户”模型的运作方式:您在区块链上的余额会因进出账户的交易而改变。

为何非洲比特币交易Golix溢价高达40%:全球比特币价格飙升,已经超出人们的预期,可是早在全球比特币价格创新高之前,非洲交易所Golix的交易价已经高出40%。如此高的溢价是因为非洲市场缺乏流动性,卖家很少,而且电力基础设施落后挖矿几乎不可能进行,使得比特币供应量更少。而且非洲国家面临严重的恶性通货膨胀,这里的人们不得不转向目前火热的比特币。[2017/12/18]

可追溯至产币交易

比特币率先采用的UTXO模型完全不同。您可以把这想象成一个人拿着一系列面包面团块。它们的余额是这些面团块或UTXO的总和。在将面团块发送到新地址之前,它们可以被分割或组合,但您总是知道它们来自哪里。例如:

Alice有100g面团。她掰下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?

UXTO模型有几个隐含条件。首先,每个对象都是不可变的——不能像在进行交易时编辑账户余额那样“编辑”币块。余额是根据交易历史记录计算得出的,可以回溯到这些币最初出现的时间点。

这使得维护安全性变得更加简单,因为UTXO要么以您期望的形式存在,要么根本不存在。使用账户模型,您需要仔细检查您正在处理的账户是否处于应有的状态。这也使UTXO对链下协议更加友好,例如侧链和闪电网络。

账户可以使得存储“状态”变得更简单,但简单并不总是意味着更好。借助Ergo的扩展UTXO模型,状态转换更加明确,因此更加清晰——不会出现意外情况。这处理起来可能有点麻烦,但在安全性方面要好得多,也更直接。

声明:本文著作权归原作者所有,所写内容仅代表原作者观点,不做投资理财建议。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金智博客

[0:15ms0-5:865ms