宇宙链 宇宙链
Ctrl+D收藏宇宙链

如何解决比特币和以太坊编程模型中存在的问题

作者:

时间:1900/1/1 0:00:00

三大编程模型

——UTXO模型

首先,从比特币开始。

比特币又被称为点对点电子支付系统,其使用名为UTXO的编程模型。

最简单的方法是将UTXO看作一个盒子。该盒子包含一个表示货币价值的数字和一个锁。只有拿着相应钥匙的人才能打开盒子。当进行转账时,持有钥匙的所有者或个人使用钥匙解锁,找到另一个空盒子,将新面值放入新盒子中,并附加一个新所有者的锁。

整个交易可以概括为打开盒子,拿出里面的钱,摧毁原来的盒子,然后把它放在另一个盒子里。

总而言之,盒子表示存储数据的UTXO模型,锁表示所有权。

——Account模型

除了UTXO模型,还有Account模型。这个模型最著名的例子是以太坊。

除了数据,以太坊Account模型中还有计算逻辑。你可以将ERC20合约想象成一个盒子,盒子里没有钱而是一组复杂的逻辑和数字。

与UTXO不同,Account模型的盒子始终可以重复使用,并且在其生命周期内无法打开。

当Account模型的盒子被制作出来时,一套规则会被写进盒子里,而一些按钮也会被放置在盒子中,这样人们就可以和盒子互动了。例如,规则可能这样表示:如果一方想转账,那么她或他或它需要出示身份证明的一种形式,并输入密码。一旦完成前面的步骤,就需要以下信息:转账金额、收件人和其他信息。一旦进入,她或他或者它需要按下转移按钮才能完成转移。在收到信息后,它会从您的金额中扣除并更改到另一方的帐户,然后更新所有内部数据。

直播|“后浪”仙女周|热币-Merry如何乘风破浪:金色财经 · 直播主办的《 币圈 “后浪” 仙女直播周》第7期16:00 Hotcoin Global|首席品牌官 Merry将在直播间聊聊“币圈‘后浪’仙女如何乘风破浪”,感兴趣的朋友扫码移步收听![2020/7/1]

熟悉编程的人会很快发现Account模型类似于现实世界中的OOP,按钮的概念类似于API。

如果我们扩展盒子隐喻,以太坊的功能更像ATM机。

在Account模型中,该盒子保存逻辑和数据。在将逻辑写入工厂设置的盒子后,永远不能更改它。您只能在需要修改数据时使用外部按钮。每个人的钱都记录在盒子里。要进行事务时,只需要输入事务信息,该盒子便会根据规则处理的请求进行数据更新。

——Cell模型

在Cell模型中,我们也可以将Cell看作一个盒子,因为它与UTXO模型非常相似,可以包含任意锁定的任意对象。

你可以对该框执行并编写一组规则来指定该盒子可以存储什么。通过这种方式,单元内的数据可以表示货或加密猫之类的资产。此外,UTXO中的锁也是相同的。但是在单元格模型中,用户可以自由地更改和使用定制的锁。(你可以将普通挂锁与指纹锁或数字锁做对比)

总的来说,Cell模型是一个广义的UTXO模型,具有以下两个意义:第一、锁是可定制的;第二、盒子可以存储用户定义的数据。

有些人可能会对Cell模型如何使用其编程模型感到好奇。

首先理解区块链系统的演变是很重要的。比特币是p2p支付系统的衍生,后来又诞生了更广义的分散式应用平台——以太坊。区块链的进一步发展带来了各种各样的新项目,而且越来越多样化。

动态 | 捷豹路虎DLT开发人员解释如何通过报告路况获得加密货币奖励:英国最大汽车制造商捷豹路虎分布式账本技术团队的软件开发人员Aaron Hetherington解释了驾驶员如何通过报告道路问题而获得加密货币奖励。Hetherington称,捷豹路虎的技术可以追踪车辆何时何地撞到路上的坑洞,这样就可以将维修细节发送给英国和爱尔兰的地方议会。他补充道:“当然,发现这些不好的路况是有奖励的。利用像IOTA这样的加密货币,我们可以将奖励直接发送给客户。”通过让汽车自动向导航提供商或地方当局报告道路状况数据,比如交通拥堵或坑洼,司机将获得加密货币积分,这些积分可用于自动支付通行费、停车费和充电费。2019年4月,捷豹路虎表示正在测试软件,旨在允许其汽车司机获得加密货币IOTA作为共享数据的奖励。据悉,该公司正在开发“智能钱包”技术,以安装在其汽车中。目前还未确定何时上市。(SiliconRepublic)[2020/2/6]

由于需要全网共识的交易和存储成本高昂,因此区块链不可避免地采用一种架构。该架构允许在一致同意的范围内实现灵活性,从而允许它们大规模地交付低成本交易。

两大主要障碍

——可扩展性问题

继续阻碍区块链发展的一个障碍是可扩展性问题。如果我们无法缓解这一问题,区块链能力将受到限制,我们将无法看到强大的高级应用程序的开发,继而释放分散经济的真正潜力将面临挑战。

可扩展性是“区块链三难”的一部分,其中还包括安全性和分散性。而一个区块链系统最多可以具有三难困境中的2个。

声音 | 海尔集团董事局主席:如何利用区块链改变企业未来:海尔集团董事局主席、首席执行官张瑞敏在近期参加的活动时提出:产品会被场景替代,行业将被生态覆盖。海尔以区块链为载体,以分布式账本彼此间分享基于物联网的数据资源,一方面不断优化用户体验,一方面所有生态攸关方均得到增值,多方共赢。海尔依据自身优势在区块链领域展开了3个方向的探索:第一,以先发优势,参与制定区块链标准;第二,以延伸效应,赋能产业生态;第三,以区块链思维,变革组织结构。(IT168)[2019/11/19]

——交易成本问题

第二个障碍是交易成本问题。一个社会整体交易成本的降低是衡量一项技术在规模上可行性的最有力指标之一。由于需要全网共识的交易和存储成本高昂,因此区块链不可避免地采用一种架构。该架构允许在一致同意的范围内实现灵活性,从而允许它们大规模地交付低成本交易。

解决方案:分层架构

计算机爱好者知道他们的设备包含一个复杂的分层架构。该分层架构中包括内存、硬盘、多级缓存和各种寄存器。这种架构允许普通大众低成本使用,同时利用其可伸缩的能力以满足不断增长的计算挑战。

我们可以将相同的设计原则应用于区块链。通过分层的架构,可以创建经济实惠且通用基础设施。在我看来,这是区块链驱动的世界唯一可行的未来。随着Lightning、、Plasma和支付通道的兴起,我们已经可以看到这种类型的架构正在兴起以及它所促进的用例。在接近这种分层的区块链架构时,重要的是要检查构成区块链系统的三种不同数据模型之间的关系:UTXO模型,Account模型和Cell模型。

新华网分析:区块链如何带来个人数据保护“革命”:新华网今晚发表文章《区块链如何带来个人数据保护“革命”》,文章表示大数据时代,个人的数据被认为是黄金般珍贵。个人数据泄漏令人担忧,但绝大部分人不可能因为害怕数据被收集而切断与互联网的联系,而现阶段有责任保管个人信息的企业、学校、酒店、社交网站等往往担责不力。专家们认为,区块链技术作为一种带有加密、信任、点对点、难篡改等特征的“中间件”,有望解决这个难题。

区块链技术的出现令个人数据掌控权从互联网公司转移到用户自己手中,使人人掌控自己的个人数据成为可能。通过它,用户个人数据可以与个人数字身份证相关联,用户可以选择数字身份证是匿名、化名或公开,还可以随时随地从任何设备访问区块链应用平台,控制他们的互联网个人数据。[2018/4/18]

——验证与计算模型

Cell模型源自UTXO模型,因此是验证模型。相反,Account模型是计算模型。

在资产从第2层返回到第1层时,第2层解决方案会利用证明提交和验证机制。而由于第1层扮演的是验证角色,而不是计算角色,因此我们可以看到UTXO或Cell模型是这种结构的合适方法。

——解决规模扩增性问题

目前,以太坊和“下一代”区块链面临着规模不断增长的严峻挑战。虽然大规模采用已实现突破,但全节点的数据存储成本日渐增高,包括各种僵尸帐户的扩增,也让情况变得更糟。

使用Account模型时,所有用户的资产都存储在一个合约中。如果没有直接的方法来为每个用户分割状态,则很难根据每个用户占用状态的容量和持续时间向他们收费。

环球银行金融电信协会与七家中央证券存管机构签署一项协议备忘录,以研究区块链如何用于交易后流程:环球银行金融电信协会(SWIFT)与七家中央证券存管机构签署了一项协议备忘录,以研究区块链如何用于交易后流程,如代理投票等。这七家机构分别是美国纳斯达克 Nasdaq Market Technology、俄罗斯国家结算存管公司(National Settlement Depository)、瑞士SIX Securities Services,南非Strate,阿布扎比证券交易所,阿根廷的Caja de Valores和智利的Depores de Central Valores。[2018/1/16]

同时,这对支付通道收费的实施也提出了挑战。目前在以太坊,交易费用是一次性支付,授予永久性存储。但鉴于区块链是公共基础设施,这种模式是不可持续的。我们可以看到,持续支付仓储空间租金是一种更加合理的方式。

在Cell模型中,每个用户的数字资产分别存储在各自的单元中。如果用户不想继续持有资产,则可以释放单元中的数据,并且可以将存储容量出售或借给其他用户。这种设计确保了第1层不会无限期地存储废弃的资产,并为状态存储开辟了新的可能性。

结论

总的来说,当考虑存储和验证要求时,Cell模型最适合分层区块链架构的需求。

附:UTXO与ACCOUNT优缺点对比

UTXO模型

UTXO模型中,交易只是代表了UTXO集合的变更。而账户和余额的概念是在UTXO集合上更高的抽象,账号和余额的概念只存在于钱包中。

优点:

计算是在链外的,交易本身既是结果也是证明。节点只做验证即可,不需要对交易进行额外的计算,也没有额外的状态存储。交易本身的输出UTXO的计算是在钱包完成的,这样交易的计算负担完全由钱包来承担,一定程度上减少了链的负担。

除Coinbase交易外,交易的Input始终是链接在某个UTXO后面。交易无法被重放,并且交易的先后顺序和依赖关系容易被验证,交易是否被消费也容易被举证。

UTXO模型是无状态的,更容易并发处理。

对于P2SH类型的交易,具有更好的隐私性。交易中的Input是互不相关联的,可以使用CoinJoin这样的技术,来增加一定的隐私性。

缺点:

无法实现一些比较复杂的逻辑,可编程性差。对于复杂逻辑,或者需要状态保存的合约,实现难度大,且状态空间利用率比较低。

当Input较多时,见证脚本也会增多。而签名本身是比较消耗CPU和存储空间的。

ACCOUNT模型

对于Account模型,Account模型保存了世界状态,链的状态一般在区块中以StateRoot和ReceiptRoot等形式进行共识。交易只是事件本身,不包含结果,交易的共识和状态的共识本质上可以隔离的。

优点:

合约以代码形式保存在Account中,并且Account拥有自身状态。这种模型具有更好的可编程性,容易开发人员理解,场景更广泛。

批量交易的成本较低。设想矿池向矿工支付手续费,UTXO中因为每个Input和Out都需要单独Witnessscript或者Lockingscript,交易本身会非常大,签名验证和交易存储都需要消耗链上宝贵的资源。而Account模型可以通过合约的方式极大的降低成本。

缺点:

Account模型交易之间没有依赖性,需要解决重放问题。

对于实现闪电网络/雷电网络,Plasma等,用户举证需要更复杂的Proof证明机制,子链向主链进行状态迁移需要更复杂的协议。

UTXOVSACCOUNT

对于以上几个优点和缺点,我们再做一些分析和对比。

第一,关于计算的问题。

UTXO交易本身对于区块链并没有复杂的计算,这样简单的讲其实并不完全准确。主要原因是Bitcoin本身的交易多为P2SH,且Witnessscript是非图灵完备的,不存在循环语句。而对于Account模型,例如Ethereum,由于计算多在链上,且为图灵完备,一般计算较为复杂,同时合约安全性就容易成为一个比较大的问题。当然是否图灵完备对于是否是账户模型并没有直接关联。但是账户模型引入之后,合约可以作为一个不受任何人控制的独立实体存在,这一点意义重大。

第二,关于UTXO更易并发的问题。

在UTXO模型中,世界状态即为UTXO的集合,节点为了更快的验证交易,需要在内存中存储所有的UTXO的索引,因此UTXO是非常昂贵的。对于长期不消费的UTXO,会一直占用节点的内存。所以对于此种模型,理论上应该鼓励用户减少生产UTXO,多消耗UTXO。但是如果要使用UTXO进行并行交易则需要更多的UTXO作为输入,同时要产生更多的UTXO来保证并发性,这本质上是对网络进行了粉尘攻击。并且由于交易是在钱包内构造,所以需要钱包更复杂的设计。反观Account模型,每个账户可以看成是单独的互不影响的状态机,账户之间通过消息进行通信。所以理论上用户发起多笔交易时,当这些交易之间不会互相调用同一Account时,交易是完全可以并发执行的。

第三,关于Account模型的交易重放问题。

Ethereum使用了在Account中增加nonce的方式,每笔交易对应一个nonce,nonce每次递增。这种方式虽然意在解决重放的问题,但是同时引入了顺序性问题,同时使得交易无法并行。例如在Ethereum中,用户发送多笔交易,如果第一笔交易打包失败,将引起后续多笔交易都打包不成功。在CITA中我们使用了随机nonce的方案,这样用户的交易之间没有顺序性依赖,不会引起串联性失败,同时使得交易有并行处理的可能。

第四,存储问题。

因为UTXO模型中,只能在交易中保存状态。而Account模型的状态是在节点保存,在Ethereum中使用MPT的方式存储,Block中只需要共识StateRoot等即可。这样对于链上数据,Account模型实际更小,网络传输的量更小,同时状态在节点本地使用MPT方式保存,在空间使用上也更有效率。例如A向B转账,如果在UTXO中假设存在2个Input和2个Output,则需要2个Witnessscript和2个Lockingscript;在Account模型中则只需要一个签名,交易内容只包含金额即可。在最新的隔离见证实现后,Bitcoin的交易数据量也大大减少,但是实际上对于验证节点和全节点仍然需要针对Witnessscript进行传输和验证。

第五,对于轻节点获取某一地址状态,UTXO更复杂。

例如钱包中,需要向全节点请求所有关于某个地址的所有UTXO,全节点可以发送部分UTXO,钱包要验证该笔UTXO是否已经被消费,有一定的难度,而且钱包很难去证明UTXO是全集而不是部分集合。而对于Account模型则简单很多,根据地址找到State中对应状态,当前状态的StateProof则可以证明合约数据的真伪。当然对于UTXO也可以在每个区块中对UTXO的root进行验证,这一点与当前Bitcoin的实现有关,并非UTXO的特点。

来源:hackernoon.com

编译:共享财经马明

标签:UNTCOUCCOACCSUNT币CouchainCCOMI Am Vaccinated

POL币最新价格热门资讯
工信部委托火币中国等三家单位编写《2019年中国区块链产业人才白皮书》

6月15日,“亚洲区块链技术与应用论坛”在京召开,大会通过了一项重要议程——为贯彻落实国家重点技术领域人才发展规划,响应人才强国战略号召,由工信部人才交流中心牵头指导,由火币中国、链塔智库、链人国际为主编单位.

1900/1/1 0:00:00
多家电商和金融巨头组建财团支持Facebook加密货币

金色财经比特币6月14日讯包括维萨卡、万事达卡、PayPal和优步、金融科技公司StripeInc.

1900/1/1 0:00:00
TokenStore跑路事件让所有投资者损失惨重,如何看待币圈投资风险?

今日热门问答国际货币基金组织主席:加密货币显然正在动摇整个银行业。你怎么看?同意这个看法。但是在措辞上,个人认为,在目前这个阶段尚未达到动摇的阶段,而是处于晃动试探的阶段.

1900/1/1 0:00:00
BM:最新测试结果显示EOS主网可维持在3800TPS

据MEET.ONE消息,BM刚刚现身电报群回应并分享了Block.one开发团队的动态:1.B1有太多工作要做,但我们的开发者还不够多,我们在负起责任的同时也在以最快的速度进行招聘、培训和成长;2.我们的最新测试显示.

1900/1/1 0:00:00
KuCoin上线Sparkster (SPRK)!

亲爱的KuCoin用户:KuCoin现已上线项目Sparkster(SPRK)并支持交易对:SPRK/BTC和SPRK/ETH.

1900/1/1 0:00:00
6.13午间行情:LTC迎来震荡调整

文章系金色财经专栏作者供稿,发表言论仅代表其个人观点,仅供学习交流!金色盘面不会主动提供任何交易指导,亦不会收取任何费用指导交易,请读者仔细甄别,谨防上当.

1900/1/1 0:00:00