作者:扎克-赫斯, Zack Hess https://github.com/zack-bitcoin/amoveo-docs/blob/master/other_blockchains/parasite_contracts.md
寄生虫合同 #
许多预言机(oracle)设计要求使用预言机(oracle)的交易者必须向预言机(oracle)报告者支付费用。一个 “寄生合同 “是一个允许你进行打赌的工具,而打赌的结果是由预言机(oracle)决定的,打赌者不需要向预言机(oracle)报告者支付任何交易费用。如果一个预言机(oracle)的安全性取决于为预言机(oracle)报告者获得这些交易费,那么这个预言机(oracle)就容易受到寄生虫合同的影响。 Amoveo对寄生合同是安全的,因为Amoveo的交易者不需要向预言机(oracle)报告者支付任何费用。对Amoveo的寄生合同攻击与标准的合同交易方式是相同的。
有多难预防? #
如果你的区块链支持轻量级节点,那么寄生虫合约可以在其他区块链上生存,并攻击你区块链上的预言机(oracle)。因此,即使你在你的区块链上防止寄生虫,你也没有完全阻止这种攻击。 在以太坊上进行软更新,防止任何智能合约访问Augur的数据,这样的更新几乎肯定会导致DOS漏洞。因为在你运行合约之前,你无法知道合约是否会访问Augur的数据。 寄生虫合同是不可能预防的,它们是我们需要学会忍受的东西。如果一个预言机(oracle)因为寄生虫被 破坏,那么它就是一个设计不良的预言机(oracle)。
Augur 与埃德蒙-埃德加 #
“我们正在开发插件,以连接到现有的无信任协调系统。这个正在进行中的合同使用Augur作为其最终的仲裁者,提供与Augur本身相同的安全保证,但在典型的情况下,其成本只有一小部分”。
我问他这个问题,他分享了更多关于他写了一个寄生虫合同来攻击Augur的经验:https://medium.com/@edmundedgar/the-parasite-and-the-whal-7cb3c87e9902
看来他暂时停止了对寄生虫合同的追求,而是使用了除奥古尔之外的其他一些预言机(oracle)。
Augur与veil #
编辑:自从我写了这篇文章后,Augur的一个第三方投资者告诉我一个传言,Veil告诉Augur的开发者,Veil并不打算做寄生虫合同。显然,Veil已经同意按照他们使用Augur的预言机(oracle)的多少,自愿向Augur支付金钱。
编辑2:Veil公开发布消息说,他们在战略上避免签订任何寄生虫合同,因为他们不想伤害Augur。
在Augur的stack exchange论坛上,他们一直无法找到这个问题的解决方案:https://augur.stackexchange.com/questions/29/how-does-augur-deal-with-the-problem-of-parasitic-oracles 在Augur的维基https://en.bitcoinwiki.org/wiki/Augur _(软件)上,提到了寄生虫合同。“一位批评家表示,以太坊平台用于计算结果是不切实际的,因为它允许 “寄生虫合约”,这些合约窃取了贡献者所做的工作,却没有给他们适当的补偿。Augur团队指出,这个漏洞并不是以太坊独有的:任何基于区块链的系统都可以在另一个区块链上执行这样的 “寄生虫 “攻击,只需将宿主区块链的Merkle证明纳入自己的链中。基于以太坊的预言机(oracle)预计对寄生虫攻击有弹性,因为它们不能被基于以太坊的寄生虫合约所攻击;以太坊合约不能访问原始区块链数据”。
Augur团队的期望并没有得到实现。Veil已经成为一个存在于以太坊的寄生合约。
在Veil的github上,他们发布了一个寄生工具https://github.com/veilco/augur-lite ,正如他们所描述的那样,“协议中没有内置预言机(oracle)。相反,市场有一个解析器,可以引用任何预言机(oracle)–Augur市场、Chainlink feed或任何任意的智能合约状态。““Veil使用一个名为OracleBridge的智能合约来观察Augur市场的结果,并相应地解决AugurLite市场。”
Joey Krug在这里评论这个寄生虫工具:https://twitter.com/joeykrug/status/1128732458193752065 你可以看到他对这种情况的关注,即使他没有直接解释为什么这样做很糟糕。
Veil是Augur项目的死亡。augur在2019年5月死亡,但投资者需要一段时间才能意识到发生了什么。
这很讽刺,因为Veil本应是将Augur带入主流的用户体验,但他们却变成了摧毁Augur的攻击者。
Augur的失败给Bitcoin Hivemind是否能成功带来了严重的疑问。Bitcoin Hivemind目前的设计与Augur一样有寄生合约的漏洞。Bitcoin Hivemind的优势在于,他们不允许你编程新的智能合约。所以你不能把寄生合约建立在同一个区块链上。