主页 > imtoken安卓官方版 > 在以太坊上使用预言机的最佳实践

在以太坊上使用预言机的最佳实践

imtoken安卓官方版 2023-03-31 06:24:23

DeFi(去中心化金融应用程序)是以太坊生态系统中新生且快速发展的部分,而其中的关键部分预言机开始引起大家的关注。

注:Oracle是链上链下数据交换的桥梁

如果没有 Oracle,去中心化金融应用只能获取链上数据,实际应用场景将受到很大限制。 很多人都知道很多项目已经在使用Oracle,但是大家对Oracle的使用以及相关的安全模型缺乏了解。 许多新项目正在获得奖励,现有项目也正在重构以满足更高的安全性。 希望本文能成为使用Oracle的最佳实践参考。

不针对 Oracle,只针对 Oracle 用户,我们不会过多讨论 Oracle 的最佳设计原则和安全模型,而只讨论在以太坊上构建应用程序时如何使用 Oracle。 如果你想开发自己的安全、抗审查、去中心化的合约或应用,可以参考以下建议:

建议 1:优先考虑 Oracle 设计和交互

以太坊发币怎么上交易所_以太坊还能涨上去吗_以太坊上有多少项目

oracle 最简单的形式是中心化数据输入,你(项目创建者)输入价格数据,你可以看到很多协议在启动时使用这种方法,并且为了安全只使用简单的多重签名。

走“渐进式去中心化”路线(这也值得唠叨),宣称他们将来会转向去中心化的预言机。 如果你只是想参加黑客马拉松,那没关系,因为中心化的 Oracle 的性能比任何去中心化的 Oracle 都要高得多。 如果在项目初期使用中心化的Oracle,很容易产生准确的数值。 立即提交到链上(去中心化的 Oracle 将无法做到),然后根据不同的系统容量和用户体验进行设计决策是完全不同的。

践行这种渐进式去中心化思想的项目,会陷入用户想要某种体验,但应用无法在现有去中心化技术栈上安全实现的尴尬境地。 他们被迫通过在集中式多重签名中包含多方来假装去中心化,或者祈祷公共区块链可扩展性的不可能三角会幸运。 关键是,除非该协议从一开始就考虑到去中心化预言机,否则很难将去中心化预言机添加到现有协议中。

以太坊发币怎么上交易所_以太坊还能涨上去吗_以太坊上有多少项目

建议 2:不要依赖 Oracle 总是快速响应

我们总是喜欢假设它会正常和及时地工作,但总是有一些不太可能的情况,区块链的最终性可能需要几分钟才能确定,而预言机将无法输入数据。

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

以太坊发币怎么上交易所_以太坊还能涨上去吗_以太坊上有多少项目

除了网络拥堵问题,开发者还应该考虑以太坊崩溃的极端情况。 区块链网络的长期中断是不可能的,但短期中断是可能的,因此必须考虑缺乏最终性的链上和链下(具有快速信息流)的预言机交互的影响。

我们一直希望协议能够保持正常及时地运行,但有时无法做到这一点。 例如,如果协议需要运行几分钟来确认最终性,Oracle 可能无法输入数据。 并不是说不能为预言机设计一个理想的时间框架,为预言机设计一个务实的运行间隔是好的,但应该为这些突发的极端情况准备一个稳定的去中心化金融协议。 其中之一是:

建议 3:假设 Oracle 可以被破解

以太坊还能涨上去吗_以太坊发币怎么上交易所_以太坊上有多少项目

不要在你的 oracle 中假设最终性。 许多协议错误地依赖 oracle 更新来触发某些操作(例如,衍生品合约只能在 oracle 更新时结算)。 这是个错误。 你应该有一套标准的操作规程来防止出现 Oracle 错误情况,即使我们希望这种情况永远不会出现。

回顾一下,Oracle 可能会在两个方面出错:

第一种情况的问题,比如你用的是中心化的价格预言机,价格提供者不小心把价格乘以10000,你肯定不想用这个值结算,连预言机本身都会删除这个值(在 Tellor Oracle 中这引发了争议并被删除),但问题仍然存在 - 验证数据需要多长时间?

以太坊上有多少项目_以太坊发币怎么上交易所_以太坊还能涨上去吗

最终取决于协议的设计,因为一些智能合约可能需要比其他智能合约更慢/更强大的检查和确认机制。 延迟确认的一个例子是 Maker 协议。 Maker 协议的 Oracle 更新周期为一小时。 放慢速度,不要假设数据是正确的。

第二种破解oracle机制的方式比较迂回。 一个例子是中心化的 Oracle 丢失了私钥,无法更新合约。 这个时候你的衍生品智能合约会怎么样呢? 影响 Oracle 活动的另一件事是数据提供者不愿意快速(足够)地提供数据。 假设以太坊网络拥堵,每笔交易的矿工费是20美元,而你的Oracle只提供每笔交易1美元的交易费,那么智能合约可能需要几个小时来更新数据,回到观点建议2 看,你可能对此有所准备,但你也应该知道数据提供者是否有能力单方面控制这种延迟。 在 Tellor 中,我们通过 POW 竞争将数据上链,因此通过激励机制来保证活跃度。 一些更中心化的预言机没有这样的保证,预言机提供者可以容忍延迟交易,甚至可以根据贿赂或自己的立场审查数据。

当一个Oracle崩溃或者疑似集中控制时,这里有几种可能的解决方案(当然最好不要用),包括:

补充

你应该知道你的协议的最终安全性从何而来,如果你将价格数据安全性外包给数据提供商,那么了解他们在什么情况下可能会崩溃并采取相应的对策。 如果你为你的协议设计一个最终的治理机制,确保它保护整个系统的公平性和去中心化。 以太坊是一个令人惊叹的生态系统,许多顶级项目都建立在它之上,而预言机正在获得应有的关注。 我们可以在去中心化网络之上构建一个有意义的系统,只要我们诚实面对我们当前的技术局限性,足够灵活以处理我们遇到的边缘情况,并决心创建真正去中心化的应用程序。 原文链接:作者:Tellor Core,Tellor是一个简单安全的去中心化预言机解决方案。