主页 > imtoken中国版下载 > 意见 | 在以太坊上使用消息输入机制的最佳实践

意见 | 在以太坊上使用消息输入机制的最佳实践

imtoken中国版下载 2023-01-29 05:50:18

去中心化金融应用在以太坊生态中是一个新兴且快速发展的类别,但其中的一个关键部分——信息输入机制(Oracle,旧译“信息输入机制”)却引起了大家的关注。 没有信息输入机制,去中心化金融应用只能获取链上数据,对真实应用场景的适应性将受到很大限制。 很多人可能也知道很多项目已经在使用链下信息输入机制,但是大家对信息输入机制的使用和相关的安全措施缺乏了解。 随着越来越多的新项目和现有项目被重新架构以获得更高的安全性,希望本文能作为如何使用信息输入机制的最佳实践参考。 关于消息输入机制的最佳设计原则和安全模型,我们不会过多讨论,只讨论如果在以太坊上构建应用程序,如何使用消息输入机制。 如果你也希望自己开发的应用能够做到安全、抗审查和去中心化,以下是在构建以太坊智能合约时给你的一些建议:

建议 1:信息输入机制设计和交互必须是协议中的优先事项

最简单的信息输入机制是中心化输入机制在以太坊上的应用,你(项目创建者)输入价格信息,你可以看到很多协议在启动时都是这样做的,并且只使用简单的多重签名来保证安全。 这些协议声称选择了“渐进式去中心化”的路线(我们对这种说法有很多问题),并声明未来将转向去中心化的信息输入机制。 如果你只是想参加黑客马拉松,没有问题,但在项目初期,因为中心化信息输入机制的性能高于任何去中心化信息输入机制在以太坊上的应用,所以太容易开始一个新项目。 向上。 如果你的假设是精确值总是即时提交到链上,那么你对系统容量和用户体验的设计决策将大不相同。

sitehtzkw.com 以太坊应用_在以太坊上的应用_以太坊开发应用

实践这种渐进式去中心化思想的项目现在处于用户期望某种体验的尴尬境地,但他们的产品根本无法在现有的去中心化技术堆栈之上安全地运行。 他们被迫通过在一个集中的多重签名中包含多方来假装去中心化,或者他们将罐头心态推到一边,并希望公共链可扩展性的不可能三角能够幸运地成功解决。 这里的重点是,除非从协议设计之初就考虑去中心化的信息输入机制,否则很难将去中心化的信息输入机制更新到现有的协议中。

建议 2:不要相信您的信息输入机制总是能快速响应

以太坊仍然是一个新事物。 虽然一个区块往往可以在几秒钟内生成,但在频繁转账期间,交易可能需要很长时间才能得到确认。 如果你还记得区块链游戏《猫痴》引发的区块链阻塞事件,以及最近导致转账手续费暴涨的“黑色星期四”事件,用户此时不得不支付高得离谱的转账矿工费,才能让他们的交易得以顺利确认。 即使你认为协议的用户有支付这些费用的经济动机,你真的希望他们被迫支付吗?

sitehtzkw.com 以太坊应用_在以太坊上的应用_以太坊开发应用

除了网络拥堵问题,开发者还应该考虑以太坊崩溃的极端情况。 区块链网络的长期中断是不可能的,但短期中断是可能的,因此必须考虑缺乏最终性的链上和链下(通常)快速信息输入机制的影响。 我们一直希望协议能够保持正常、及时的运行,但有时无法做到这一点。 例如,协议需要运行几分钟来确认最终性,那么你的信息输入机制可能无法输入信息。 这并不是说所有为信息输入机制设计时限的方案都是不可取的。 为信息输入机制设计一个务实的操作区间是好的,但是一个稳定的去中心化金融协议应该为这些突发的极端情况提供保障。 做好准备。 其中之一是:

建议 3:假设您的信息输入机制可能被破坏

不要假设您的信息输入机制具有最终性。 许多协议错误地更新了信息提要以驱动某些操作(例如,衍生品合约仅在信息提要更新时才结算)。 这是个错误。 你应该有一个标准的操作程序来防止信息被错误输入机制的情况,即使我们希望这种情况永远不会发生。

在以太坊上的应用_sitehtzkw.com 以太坊应用_以太坊开发应用

概括地说,信息输入机制可能会出现两种类型的错误:

第一类问题,比如你用的是中心化喂价机制,价格提供者不小心把价格乘以10000,你肯定不想用这个值结算,甚至喂价机制本身也会删除了这个值(在 Tellor 消息输入机制中这会引起争议并被取消),但问题仍然存在——你要等待多长时间才能验证数据? 这最终取决于您的协议的稳定性,因为一些智能合约可能需要比其他智能合约更慢/更强大的检查和确认机制。 这种机制的一个很好的例子是 Maker 协议,其中信息输入机制传递的信息延迟一小时生效。 但我们需要仔细思考,不要假设这一定是真的。 第二种破坏信息输入机制的方式比较迂回。 一个例子是中心化信息输入机制丢失私钥,合约无法更新。 这个时候你的衍生品智能合约会怎么样呢? 影响信息输入机制活跃度的另一个因素是信息提供者不愿意快速提供信息。 假设以太坊网络拥堵,每笔交易的矿工费是20美元,而你的信息输入机制只提供每笔交易1美元的交易费,那么智能合约可能需要几个小时才能更新,回到建议2。从一个角度,你可能需要为此做好准备,但你也应该知道你的信息提供者是否有能力单方面控制这种延迟。 在 Tellor 信息输入机制中,我们通过 POW 的竞争将数据上链,因此其活跃度由激励机制保证。 一些更中心化的信息输入机制没有这样的保障,信息输入机制提供者可以容忍延迟交易,甚至可以根据贿赂或自己的立场来审查数据。 当信息输入机制涉嫌腐败或涉及集中审查时,我们有很多应对措施(当然我们希望最好不要使用),包括:我们所指的信息输入机制的备份和安全主要集中在协议级别,备份选项在每种情况下应该如何使用很难用统一的范式表达,但重要的是要确保每一方都没有动机独立采用这些回退选项。 小路。

建议 4:了解破坏信息输入机制的成本

在以太坊上的应用_sitehtzkw.com 以太坊应用_以太坊开发应用

不管你承认与否,攻击者总有办法破坏信息输入机制,但代价是不同的。 这个成本有时是买声誉或买门票的成本,有时是项目发行的代币市值的一部分,更多时候可能是腐蚀信息提供者的成本或审查相关参与者的成本(如与传统的中心化模式一样)。 不管破坏信息输入机制的成本实际上有多高,或者即使破坏信息输入机制的成本不是恒定的,你也应该对你的协议的安全性有一个大概的了解。 对于希望有一天能持有数百万甚至数十亿美元资金的项目,用一个市值只有几百万美元的代币来为信息输入机制的安全性背书,或者为某些群体的声誉背书是一种大风险。 知道破坏信息输入机制的代价可以让协议开发者明白需要多少安全措施来保证系统的稳定性。 使用一种信息输入机制可能无法保证智能合约资产的安全,但使用多种信息输入机制或采取一些备份方案将大大增加攻击合约的成本。 目前,已经有人开始提交以太坊升级提案(EIP2362),将价格和数据流信息标准化,使新协议能够方便快捷地将多种信息输入机制集成到其合约中。

在以太坊上的应用_sitehtzkw.com 以太坊应用_以太坊开发应用

综上所述

sitehtzkw.com 以太坊应用_以太坊开发应用_在以太坊上的应用

你应该知道你的协议的最终安全性来自哪里,如果你将喂价安全外包给供应商,那么了解他们在什么情况下会出错并采取相应的对策。 如果你为你的协议设计一个最终的治理机制,确保它保护整个系统的公平性和去中心化。 以太坊是一个了不起的生态系统,许多顶级项目都建立在它之上,信息输入机制也得到了应有的重视。 如果我们坦诚面对当前的技术局限,足够灵活地处理我们遇到的边缘情况,并决心创建真正去中心化的应用程序,我们就可以在去中心化网络之上构建一个有意义的系统。

(结束)

(本文链接较多,可点击左下方“阅读原文”从EthFans网站获取)

原文链接: