去中心化金融应用是以太坊生态系统中新生且快速增长的一个门类,但其中的关键部分——信息输入机制——已经吸引了大家的注意力。如果缺乏信息输入机制,去中心化金融应用就只能获得链上数据、对现实应用场景的适应性也会大大受限。可能很多人也都知道,现在许多项目都已经在使用链外信息输入机制了,但大家对信息输入机制的使用和相关安全措施却缺乏了解。新项目越来越多、现有项目也在重新构建以满足更高的安全性,希望本文可以成为信息输入机制使用方式的最佳实践参考。我们不会过多地讨论信息输入机制的最佳设计原则和安全模型,只讨论如果你在以太坊上构建应用,该如何使用信息输入机制。如果你也希望自己开发的应用能实现安全性,抗审查性和去中心化,以下是为你在构建以太坊智能合约时候提供的一些建议:
建议1:信息输入机制设计和交互必须是你的协议中优先考虑项
信息输入机制的最简单形式就是中心化的输入机制,就是由你来输入价格信息,你可以看到很多协议在启动时都是这样做的,并且仅仅使用一个简单的多重签名来保障安全性。这些协议自称选择“渐进式去中心化”的路线,宣称他们未来会切换到一个去中心化的信息输入机制。如果只是想参加黑客松,那没啥问题,但是在项目开始的时候因为中心化的信息输入机制性能比任何去中心化的信息输入机制都要高就依赖它,那做一个新项目未免太容易了。如果你的假设是准确的数值总能即时提交到链上,你在系统的容量和用户体验上的设计决策会截然不同。
观点:绝大多数被迫抛售已经发生,市场似乎相对稳定:金色财经消息,图表中的相对稳定助长了人们的希望,即在Terra事件后,危机可能已经结束,这场崩盘还导致对冲基金三箭资本和经纪公司Voyager Digital相继宣布破产。Glassnode首席分析师James Check表示,尽管加密世界的很多杠杆都没有记录在区块链上,因此不受审查,但可见的情况令人鼓舞。“我认为绝大多数被迫抛售已经发生,”Check在接受采访时表示,“从本质上讲,市场似乎相对稳定。”
Check同时警告称,现在市场还剩下两个重要的潜在卖方,其中一方是比特币矿工,他们的矿机价值随着代币的价格暴跌——如果Celsius的挖矿子公司开始卸载其80850台钻机中的一部分来筹集资金,这种压力可能会加剧。另一方是交易员,如果股市再次崩盘,他们会不加区分地抛售各种风险资产。(彭博社)[2022/7/17 2:18:15]
践行这种渐进式去中心化理念的项目现在处于一种尴尬的境地,即用户希望获得某种体验,但他们的产品在现有的去中心化技术栈上根本无法安全地工作。他们被迫通过在中心化的多重签名中加入多个参与方来假装去中心化,或者他们抱着顺着路踢着易拉罐子的心态,祈祷着公链可扩展性的不可能三角问题能够幸运地顺利解决。这里的重点是,除非从一开始设计协议时就考虑加入去中心化的信息输入机制,否则去中心化的信息输入机制是很难更新到已存在的协议中的。
观点:三个月的挖矿风潮最核心的是完成了币圈财产再分配:比特币女博士在微博表示,通过这一次币圈风口,新韭菜应该明白了仓位控制和风险管理的重要性,很多概念看起来很有前景、创新性十足,未来也会有更牛的新项目受到启迪。但这一切有可能和散户并无关系,从币圈的金融本质来看,本次三个月的挖矿风潮最核心的是完成了币圈财产再分配。通过这次,我想新韭菜也应该明白了,在这个市场,若想取得超额收益,需要有过人之处(资源上的、技术上的、财富上的),最好不要人云亦云的被拉进什么家人群,然后祈求社区出台什么提案来力挽狂澜。亏钱是最有效的投资课。[2020/10/7]
建议2:不要相信你的信息输入机制总能快速响应
以太坊依然是一个新生事物,尽管常常几秒钟就能出一个区块,但在转账比较频繁的时期,交易得到确认可能需要很长时间。如果你还记得区块链游戏“迷恋猫”导致的区块链堵塞事件,以及最近的“黑色星期四”导致转账费用暴涨事件,这时候用户都不得不支付令人难以置信的高额转账矿工费才能让他们的交易顺利确认。即使你认为协议的用户在经济上有动力支付这些费用,你真的希望他们被迫支付这些费用吗?
观点:2020年亚马逊股价表现胜过过比特币但不如以太坊:据crowdfundinsider分析,2020年迄今为止,亚马逊股票表现优于比特币但不如以太坊。根据价格数据显示,如果投资者在2020年1月1日对亚马逊股票和比特币分别进行1000美元的投资,那么现在从亚马逊股票中获得的收益将高于比特币。不过,如果投资者在2020年1月1日将1000美元投资以太坊,现在获得的收益将比亚马逊股票高出57%。就市场价格而言,今年比特币与传统股票的走势似乎“更紧密”。具体而言,1000美元投资比特币的话将会获得约660美元收益、投资亚马逊股票将获得约667美元收益,而投资以太坊则会为投资者带来约1041美元收益。[2020/8/17]
除了网络堵塞问题,开发人员还应该考虑以太坊崩溃的极端情况。区块链网络不太可能长期中断,但是短时间中断是有可能的,因此必须考虑到在缺乏最终确定性的链上与链下快速的信息输入机制交互会造成的影响。我们总是希望协议能够保持正常和及时运行,但有时候这是做不到的,比如协议需要运行几分钟才能够确认最终性,那你的信息输入机制可能就无法输入信息了。这并不是说所有为信息输入机制设计时间框架的方案都不可取,针对信息输入机制设计一个务实的运行间隔是很好的,但是一个稳定的去中心化金融协议应该为这些突发的极端情况做好预备。其中之一是:
观点:以太坊2.0延迟系多方因素造成,包括技术和社会可扩展性需求:交易平台Koinfox创始人兼首席执行官Ankitt Gaur正在PoS区块链上部署其代理协议,根据他的说法,处理PoS共识算法的网络在管理流程方面比PoW区块链更复杂。他表示:”以太坊的延迟是多方面的结果。它从一开始就有多个客户端,这些客户端必须相互通信。当所有验证器都需要相互通信时,staking过程会变得更加复杂。”
随着越来越多的人、组织和软件参与到平台的开发中,管理过程变得越来越困难。以太坊核心技术成员Lane Rettig指出了技术和社会可扩展性的需求,并补充称“协调问题变得越来越难”。与技术可扩展性一样,在适当管理下的社会可扩展性也必须来确保平稳和精简的操作。
此外,整个结构中可能存在的部门也会导致人员的高流动率,长时间的入职流程进一步减慢了开发过程。以太坊基金会的Jameson Hudson表示:“我们没有足够的人来帮助解决这些问题。”
The Daily Hodl此前发文称,以太坊2.0发布可能会再次推迟。不断寻找代码错误是推迟最初2020年1月启动计划0的主要原因。“多客户端模式”造成了延迟,因为人力资源不足以确保最佳开发。(Cointelegraph)[2020/5/24]
建议3:假设你的信息输入机制可能被破坏
声音 | 观点:比特币核心开发者对效率提高的关注是新版本更新的一大亮点:来自Bottlepay的Matt Odell和Marty Bent近期在播客节目中对讨论了Bitcoin Core 0.19.0.1版本以及该版本所引入的功能。两人针对Erebus攻击讨论了新特性,Erebus攻击是指黑客在恶意ISP的帮助下隔离一个或多个公共节点,并通过这种隐秘的分区过程进行51%攻击或双花攻击等。Bent称,“该版本在默认情况下增加了两个出站连接……对精简客户端、区块过滤、支付协议、GUI禁用等提供了更多支持。”
根据Odell的说法,最近的更新是为了解决这个关键的问题,并且已经弃用了bloom过滤器。根据BitMEX关于IBD(initial block download)的最新研究,随着时间的推移,整个过程加快了。最新的版本在MacBook Pro上下载仅需不到一天的时间。Odell补充说,比特币核心开发者对提高效率的关注是一个重要的亮点,这可以帮助BTC保持活跃。[2019/12/1]
不要在你的信息输入机制中假设最终确定性。许多协议都犯了让信息输入机制更新来推动某些操作的错误。这是一个错误。你应该有一个标准的操作程序,以防止信息输入机制出现错误的情况,即使我们希望这种情况永远不会出现。
回顾一下,信息输入机制可能出现两种错误:
你的信息输入机制提交了一个错误的值。
你的信息输入机制宕机了并且不往链上推送信息
第一种问题,举个例子,如果你使用的是中心化的价格信息输入机制,而价格提供方意外地将价格乘以10000,你肯定不想以这个值结算,甚至信息输入机制本身也会删除这个值,但问题仍然存在——你要等多久才能对数据进行验证?
这最终取决于你的协议的稳定性,因为有些智能合约可能比其他合约需要一个更慢/更健壮的检查机制和确认机制。这种机制的一个很好的例子是Maker协议,信息输入机制传入的信息要延后一个小时才会生效。但我们需要仔细思考,也不要认为这一定是对的。
第二种破坏信息输入机制机制的方式显得更加迂回。一个例子就是中心化信息输入机制丢失了私钥导致不能更新合约,那这时候你的衍生品智能合约会怎么样?另外一个影响信息输入机制活性的事情是,信息提供者不愿意从速提供信息。假设以太坊网络堵塞,每笔交易的矿工费是20美元,而你的信息输入机制只提供每笔1美元的交易手续费,那么智能合约可能要花费几个小时才能更新,回到建议2的角度看,你可能需要对此做好准备,但您也应该知道您的信息提供商是否有能力单方面控制此延迟。在Tellor信息输入机制中,我们通过POW的竞争方式让数据上链,因此其活性是得到了激励机制的保证的。一些更为中心化的信息输入机制则没有这样的保证,信息输入机制提供者可以容忍延迟交易,甚至可以根据贿赂或自己的立场对数据进行审查。
当一个信息输入机制涉嫌腐败或者涉及中心化审查,我们有很多应对办法,包括:
停止合约执行并等待信息输入机制反馈正确的数值
转向使用另一个/后备的信息输入机制
利用多个信息输入机制
返还所有资金/用默认数值完成结算
我们指的信息输入机制的后备和安全性主要强调的是协议层面,后备选项在每种情况下应该怎么使用很难用一个统一的范式来表达,但要确保各方完全没有动力各自采取这些后备选项,后备机制的目的是保障网络安全,而不是为恶意攻击提供另一条路径。
建议4:知道破坏信息输入机制的成本
无论你承不承认,攻击者总有办法破坏信息输入机制,只是成本不同罢了。有些时候这个成本是购买声誉或者买票的成本,有些时候是项目所发行的代币市值的一部分,或许更多的情况是腐化信息提供者的成本或对相关参与方审查的成本。无论破坏信息输入机制的成本实际是多高,或者即使破坏信息输入机制的代价不是一成不变的,你都应该对你的协议的安全性有一个大致的了解。对于希望有朝一日会持有数百万甚至数十亿美元资金的项目来说,拿市值只有几百万美元的token来给信息输入机制的安全性背书,或者拿某些团体的声誉来背书,都是很大的风险。
知道破坏信息输入机制的成本可以让协议开发者明白要多少安全措施才可以保证系统的稳定,使用一个信息输入机制也许无法保证智能合约资产的安全性,但是使用多个信息输入机制或者采取一些后备方案,将会使得对合约的攻击成本大大提高。目前,已经有人开始提交一份以太坊升级提议,这份提案通过标准化价格和数据流信息来让新的协议能够简单快速地集成多个信息输入机制到他们的合约中。
新的认识
你应该知道你的协议最终的安全性来自哪里,如果你将价格信息安全性外包给一个信息提供者,那么请了解他们在什么情况下会出问题,并相应地采取对策。如果你给自己的协议设计了终极治理机制,请确保这个机制能保护整个系统的公正性和去中心化。以太坊是一个了不起的生态系统,在它上面建立了很多最顶级的项目,同时信息输入机制也得到了应有的关注。我们可以在去中心化网路上建立一个有意义的系统,只需我们诚实地面对目前的技术限制,灵活地处理遇到的极端情况,并有决心创建真正去中心化的应用程序。
原文链接:?https://medium.com/tellor/best-practices-for-oracle-users-on-ethereum-1ad9e2a43c3b作者:?TellorCore翻译&校对:?PeterChen&阿剑
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。