智能更新与智能合约

什么是智能合约,为什么需要它?


很久以前,在第一个复制状态机比特币出现之后,人们开始注意到共识所包含的功能太有限了。 我不是在谈论在交易中添加密码,而是在谈论非常真实的用法-每个域都属于一个公钥而不是一个中央注册商的DNS,各种代币和金融衍生产品(因为您想拥有自己的比特币来拥有股份),链上交易(以大量交易而不信任交易所),支付渠道(迅速重新分配两个帐户之间的一般托管,而没有一般的交易消息开销)...

有三种添加功能的方法:

1)最明显的是将它们本身输入到区块链本身的代码中。

区块链本质上是一个复制的网站 ,当您在网站上没有足够的功能时,您在做什么? 只需将其作为新模型或控制器直接添加到代码中即可 。 但是在分散网络的情况下,模型/控制器没有进行此类更改的过程-毕竟,可以利用它来发挥其优势。 只有硬分叉选项,每个人都可以同时在聊天/论坛上达成一致。

2)使用此功能创建另一个区块链。

因此,它发生在几个“一个想法的区块链” ala名称币上。 很快发现,人们不想将新网络用于一项功能,他们还需要互操作性,并且很多事情都相互依赖(贷款,身份和资产本身想住在同一地址空间)

3)使用内部虚拟机和操作码实现功能。

甚至Satoshi也正是因为更新问题而在比特币中放置了脚本,这可以做很多事情,但还不够。 因此,以太提出了一个扩展脚本(现在已经完成),据称您可以用它做任何事情(理论上)。
图片

因此,是区块链内部由虚拟机执行的代码称为智能合约,并且需要实现新功能。 您可以将其称为“操作码补丁”,但销量不高:)

什么是智能更新?


谈到最近几年的智能合约,我们可以明确地说它们没有达到预期。 是的,比特币不可能实现ICO繁荣,但是仅为erc20令牌引入高级EVM太多了。

扎实地编写甚至很小的“补丁”都是极其困难的。 在较低的级别上,您会发现一个原始VM,该VM具有很少的操作码(根据设计)和简单的键值数据库。 所有操作都非常昂贵(汽油费用),您根本无法调头。

复杂的用户案例几乎是不可能的。 查看Ryden github.com/raiden-network/raiden-contracts/tree/master/raiden_contracts/contracts-用原始外语(实体)来管理复杂的金融系统的数千行代码。 我们看到了几种带有简单攻击的奇偶校验和DAO骇客,在如此庞大的代码库上等待着什么样的攻击呢?

没有SQL数据库,NoSQL不存在,图形数据库也未计划。 密钥迭代,多对多? ORM? 合同中没有这些。 相对于众所周知的编程语言,工具也非常薄弱。

现代Solidity项目的95%的工作正是与Solid的斗争,而不是代码的体系结构。 相同的想法可以用javascript更快,更可靠地实现十倍,这仅仅是因为我们知道并可以编写javascript,而Solidity生态系统的发展还不及Brainfuck生态系统。

为了捍卫EVM,我仍然要说-比特币的世界更加悲惨,因为它们的调整甚至更弱,操作码甚至更小 。 闪电开发人员在咬人,但仍然有仙人掌-比特币上双向双向比特币通道的复杂性太疯狂了,以至于很难维护代码库,而状态通道内部的Sprites和复杂逻辑之类的便利事情根本就不可能。

链上治理=智能更新


厌倦了固执的悲伤之后,让我们回到2012年,回顾一下被遗弃的第一选择,在区块链中添加了用户案例。

图片
正如许多人所注意到的那样,在实施EVM之后,EVM本身并没有像预期的那样停止更新(基本级别从未改变,整个新代码仅在EVM内部)-相反, 它经常与以太坊的独裁性分叉。

即 相同的卵只在轮廓上。 一群人决定如何用自己的双手更改链上层,将代码放在github上,所有用户别无选择,只能下载新代码。 他们告诉我们:“硬叉预定在星期五,立即升级。”

在这种形式下,智能合约的想法绝对是失败的-我们已经拥有授权共识层如何工作的权限(以太坊的github帐户),如果我们不能摆脱对主层的更新,那又是什么额外的,无效的抽象呢?

由于我们无法摆脱更新,因此至少要弄清楚如何尽可能分散地向我们更新此主层?

我们可以在区块链内部提供软件补丁,验证者可以投票给他们,胜出的补丁会在一段时间后简单地为每个人同步实施。 关于“链上治理”的想法已经流行了很长时间,但是,如果我没有记错的话,Tezos是第一个描述它的人。 tezos忽略的是,链上治理是智能合约的直接竞争对手(这就是为什么我将其称为智能更新)。

如果您有智能更新,则根本不需要智能合约。 使用您选择的任何数据库(SQL / NoSQL /任何数据库),可以以任何编程语言(您已经在计算机级别运行代码,而不仅限于此),可以更快,更好地实现任何用例。 完全的自由度,减去您花费在坚固性上的非常高的95%的开销,并且我们不需要雕刻新的区块链作为解决方案#2。

智能更新恰好有两个缺点


1.现在,并不是每个用例都会得到验证者的批准,因为验证者会思考并投票决定哪种补丁对网络有用(并切断了坦率的恶意后门)。 诸如加密货币之类的事情不太可能得到大多数人的认可(67%或95%的thrashold在网络内部配置)

2.验证者可以利用这种力量来推动对他们直接有益的补丁(删除令人反感的用户,让他们自己从三个盒子中获取资产)。 为了解决这个问题,有一个延迟期。 补丁获得批准后,整个网络需要2-6周的时间进行研究。 如果普通用户不喜欢它,人们应该聚在一起,用力地叉,用更合适的验证器代替验证器集(或者扔掉最糟糕的字符)。

听起来很吓人,但它已经像那样工作了 -github上可以提供任何硬分叉,这是用户的任务,如果他们不喜欢某事,就可以重置专政。 它不会变得更糟。 我们只是简单地将此过程正式化,并为每个开发者/验证者提供透明的牛排,而不是以github存储库的形式通过第一个渠道提供现有的“影子”政府。

总结


因此,我们发现EVM智能合约是一个有趣的概念,事实证明它是失败的,过于错误的转向错误的方向,而此时所需要的只是实现透明的智能更新机制来解决新用户案例的问题。

未来是智能更新,几乎所有正在开发的区块链从一开始就将它们包括在内(tezos,dfinity,polkadot,decred,mintmint,fairlayer等)。 即使是在智能合约本身中,他们现在仍在尝试打开自身内部的更新机制,从而意识到结石的概念不起作用,并且某种程度上迟早需要更新

这是有关此主题的更详细的Wiki (英语。我很惊讶Vitalik和Vlad Zamfir如何贬低智能更新 ,它们的直接竞争对手使EVM完全被淘汰。

Source: https://habr.com/ru/post/zh-CN430734/


All Articles