麻省理工研究人员在比特币闪电网络上测试 Oracle 和智能合约

阅读数:473 2018 年 6 月 13 日

话题:Oracle语言 & 开发架构区块链

麻省理工学院(MIT)透露了他们在比特币闪电网络上运行智能合约的测试结果。研究人员 Tadge Dryja 和 Alin S. Dragos 最近在Coindesk分享了这些结果。在比特币网络上运行智能合约并不是新鲜事,不过,信任实体 Oracle 与智能合约相结合的方法在比特币区块链中显得非常独特。这项研究隶属 MIT 数字货币计划,该计划于 2015 年启动,作为进一步研究加密货币的一种方式。

区块链 Oracle 通常通过提供可信的外部数据源来辅助实现区块链。这些数据来源不参与区块链共识机制,因此需要被信任,因为它们会影响智能合约的执行。例如,如果智能合约在特定日期或时间被设置用于支付商品,则智能合约需要在被执行时接收到商品的最新价格。

去年夏天,Dryja 率先将 Oracle 作为其 Discreet Log Contracts(DLC)的一部分,这也是第一次通过可运行的代码实现 Oracle。Oracle 运行在闪电网络之上,麻省理工学院研究人员创建了一个名为 lit 的网络,并提供了以 satoshis(比特币计量单位)为单位广播美元价格的能力。

智能合约在以太坊区块链协议中更为流行,不过 Dragos 也看到了将 Oracle 和智能合约引入到比特币的机遇:

当提到智能合约时,人们通常会想到以太坊。以太坊的脚本语言更加丰富,而比特币对开发者不够友好,因为比特币没有朝着这个方向发展。我们可以使用比特币,只是需要一点创意。

不过,Dryja 看到了 DLC 在可伸缩方面的优势,因为大部分数据不需要处于区块链中。从隐私的角度来看也有一些好处,可以防止利用 Oracle 作弊。Dryja 解释说:

我们正在引入一个模型,在这种模型下,Oracle 不知道谁在使用数据。Oracle 是孤立存在的。即使发生了合约,也无法分辨它是否存在。这看起来很有趣。

为了实现匿名性,他们将 Oracle 提交的数据与其他 Oracle 不知道的数据混合在一起。Dryja 解释说:

我们把 Oracle 数据与我们自己的秘密数据结合起来,这样就可以做到我们知道这些数据,但 Oracle 不知道。

组织为了保护自己的财务记录不受区块链影响是这种方法背后的驱动力。

虽然实验取得成功,但仍有一些悬而未决的问题。例如,组织如何通过 Oracle 实现变现?另一个不确定的领域是,如果在这个模型中可以信任单个 Oracle 实例,那么当同时使用多个 Oracle 时会怎样?这样会减少信任吗?

用户体验是另一个需要额外投资的领域。正如 Dragos 所述,“UX 不是我们的核心专长”,所以其他组织需要打包这项技术,并用在他们的分布式应用程序中。

查看英文原文MIT Researchers Test Oracles and Smart Contracts on Bitcoin Lightning Network