第二种粉碎信息输入机制机制的方法显得越发迂回。一个例子就是中心化信息输入机制丢失了私钥导致不能更新合约,那这时候你的衍生品智能合约会怎么样?别的一个影响信息输入机制活性的工作是,信息提供者不肯意从速提供信息。假设以太坊网络堵塞,每笔生意业务的矿工费是 20 美元,而你的信息输入机制只提供每笔 1 美元的生意业务手续费,那么智能合约大概要耗费几个小时才气更新,回到发起 2 的角度看,你大概需要对此做好筹备,但您也应该知道您的信息提供商是否有本领片面节制此延迟。在 Tellor 信息输入机制中,我们通过 POW 的竞争方法让数据上链,因此其活性是获得了鼓励机制的担保的。一些更为中心化的信息输入机制则没有这样的担保,信息输入机制提供者可以容忍延迟生意业务,甚至可以按照行贿或本身的态度对数据举办审查。
知道粉碎信息输入机制的本钱可以让协议开拓者大白要几多安详法子才可以担保系统的不变,利用一个信息输入机制也许无法担保智能合约资产的安详性,可是利用多个信息输入机制可能采纳一些后备方案,将会使得对合约的进攻本钱大大提高。今朝,已经有人开始提交一份以太坊进级提议(EIP2362),这份提案通过尺度化价值和数据流信息来让新的协议可以或许简朴快速地集成多个信息输入机制到他们的合约中。信息输入机制的最简朴形式就是中心化的输入机制,就是由你(项目成立者)来输入价值信息,你可以看到许多协议在启动时都是这样做的,而且仅仅利用一个简朴的多重签名来保障安详性。这些协议自称选择 “渐进式去中心化” 的蹊径(我们对这个说法很有意见),宣称他们将来会切换到一个去中心化的信息输入机制。假如只是想介入黑客松,那没啥问题,可是在项目开始的时候因为中心化的信息输入机制机能比任何去中心化的信息输入机制都要高就依赖它,那做一个新项目未免太容易了。假如你的假设是精确的数值总能即时提交到链上,你在系统的容量和用户体验上的设计决定会截然差异。
发起 4:知道粉碎信息输入机制的本钱
不要在你的信息输入机制中假设最终确定性。很多协议都犯了让信息输入机制更新来敦促某些操纵的错误(譬喻,一个衍生品合约仅当信息输入机制更新的时候才气完成结算)。这是一个错误。你应该有一个尺度的操纵措施,以防备信息输入机制呈现错误的环境,纵然我们但愿这种环境永远不会呈现。
你应该知道你的协议最终的安详性来自那边,假如你将价值信息安详性外包给一个信息提供者,那么请相识他们在什么环境下会出问题,并相应地采纳对策。假如你给本身的协议设计了终极管理机制,请确保这个机制能掩护整个系统的合理性和去中心化。以太坊是一个了不得的生态系统,在它上面成立了许多最顶级的项目,同时信息输入机制也获得了应有的存眷。我们可以在去中心化网路上成立一个有意义的系统,只需我们厚道地面临今朝的技能限制,机动地处理惩罚碰着的极度环境,并有刻意建设真正去中心化的应用措施。
发起 2:不要相信你的信息输入机制总能快速响应
作者: Tellor Core
去中心化金融应用是生态系统中新生且快速增长的一个门类,但个中的要害部门 —— 信息输入机制(Oracle,旧译 “信息输入机制”)—— 已经吸引了各人的留意力。假如缺乏信息输入机制,去中心化金融应用就只能得到链上数据、对现实应用场景的适应性也会大大受限。大概许多人也都知道,此刻很多项目都已经在利用链外信息输入机制了,但各人对信息输入机制的利用和相关安详法子却缺乏相识。新项目越来越多、现有项目也在从头构建以满意更高的安详性,但愿本文可以成为信息输入机制利用方法的最佳实践参考。我们不会过多地接头信息输入机制的最佳设计原则和安详模子,只接头假如你在以太坊上构建应用,该如何利用信息输入机制。假如你也但愿本身开拓的应用能实现安详性,抗审查性和去中心化,以下是为你在构建以太坊智能合约时候提供的一些发起:
· 转向利用 另一个/后备的 信息输入机制
· 你的信息输入机制提交了一个错误的值。
当一个信息输入机制涉嫌糜烂可能涉及中心化审查,我们有许多应对步伐(虽然我们但愿最好别用到),包罗:
发起 3:假设你的信息输入机制大概被粉碎
无论你承不认可,进攻者总有步伐粉碎信息输入机制,只是本钱差异而已。有些时候这个本钱是购置声誉可能买票的本钱,有些时候是项目所刊行的代币市值的一部门,或者更多的环境是腐蚀信息提供者的本钱或对相关参加方审查的本钱(譬喻传统的中心化模式)。无论粉碎信息输入机制的本钱实际是多高,,可能纵然粉碎信息输入机制的价钱不是一成稳定的,你都应该对你的协议的安详性有一个大抵的相识。对付但愿有朝一日会持有数百万甚至数十亿美元资金的项目来说,拿市值只有几百万美元的 token 来给信息输入机制的安详性背书,可能拿某些集体的声誉来背书,都是很大的风险。
第一种问题,举个例子,假如你利用的是中心化的价值信息输入机制,而价值提供方意外地将价值乘以10000,你必定不想以这个值结算,甚至信息输入机制自己也会删除这个值(在 Tellor 信息输入机制中这会激发争执并被打消),但问题仍然存在 —— 你要等多久才气对数据举办验证?
发起 1:信息输入机制设计和交互必需是你的协议中优先思量项
· 返还所有资金/用默认数值完成结算
除了网络堵塞问题,开拓人员还应该思量以太坊瓦解的极度环境。区块链网络不太大概恒久间断,可是短时间间断是有大概的,因此必需思量到在缺乏最终确定性的链上与链下(经常是)快速的信息输入机制交互会造成的影响。我们老是但愿协议可以或许保持正常和实时运行,但有时候这是做不到的,好比协议需要运行几分钟才气够确认最终性,那你的信息输入机制大概就无法输入信息了。这并不是说所有为信息输入机制设计时间框架的方案都不行取,针对信息输入机制设计一个务实的运行隔断是很好的,可是一个不变的去中心化金融协议应该为这些突发的极度环境做好预备。个中之一是:
原文链接:
这最终取决于你的协议的不变性,因为有些智能合约大概比其他合约需要一个 更慢/更结实 的查抄机制和确认机制。这种机制的一个很好的例子是 Maker 协议,信息输入机制传入的信息要延后一个小时才会生效。但我们需要仔细思考,也不要认为这必然是对的。
翻译&校对: 陈亮&阿剑
践行这种渐进式去中心化理念的项目此刻处于一种难过的田地,即用户但愿得到某种体验,但他们的产物在现有的去中心化技能栈上基础无法安详地事情。他们被迫通过在中心化的多重签名中插手多个参加方来冒充去中心化,可能他们抱着顺着路踢着易拉罐子的心态,祷告着公链可扩展性的不行能三角问题可以或许幸运地顺利办理。这里的重点是,除非从一开始设计协议时就思量插手去中心化的信息输入机制,不然去中心化的信息输入机制是很难更新到已存在的协议中的。
回首一下,信息输入机制大概呈现两种错误:
以太坊依然是一个新闹事物,尽量经常几秒钟就能出一个区块,但在转账较量频繁的时期,生意业务获得确承认能需要很长时间。假如你还记得游戏 “沉沦猫” 导致的区块链堵塞事件,以及最近的 “玄色礼拜四” 导致转账用度暴涨事件,这时候用户都不得不付出令人难以置信的高额转账矿工费才气让他们的生意业务顺利确认。纵然你认为协议的用户在经济上有动力付出这些用度,你真的但愿他们被迫付出这些用度吗?
我们指的信息输入机制的后备和安详性主要强调的是协议层面,后备选项在每种环境下应该怎么利用很难用一个统一的范式来表达,但要确保各方完全没有动力各自采纳这些后备选项,后备机制的目标是保障网络安详,而不是为恶意进攻提供另一条路径。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。