智能合约在区块链上运作目前面临的问题
不论区块链技术的最终结局会是如何,在区块链上所运行的智能合约都需要大量的技术支持。在区块链的技术浪潮中,一些辅助技术正处于悄无声息的研发当中,它们将对区块链技术的扩张产生至关重要的意义。
“一旦获得了智能合约,便会出现大量的问题。”康奈尔大学IC3主任阿里•朱尔斯(Ari Juels)如是说。这些问题可以归为几大类。
首先,区块链无法存储太多的数据。例如,通过区块链进行直播视频——不论是将视频内容发布在哪个网站——对很多项目来说都是一个大问题。
比特币区块链记录了互联网上的每一个比特币的输入与输出情况,以及附加字段的内容。在每笔交易中,此类附加字段仅可准许40字节的元数据。情况就是这样。
将智能合约迁移至区块链的另一个问题便是,区块链本身并不知道真实世界的情况。如果你的智能合约是一个飞行保险制度的话,那问题就来了。契约需要知道你的航班应在何时起飞、目的地是哪。但区块链的设计并不适用于查询网站。“外部世界的信息必须被注入到区块链内。”朱尔斯如是说。
最理想的情况是开发人员设计出相关方案来存储与处理数据,且不会重新引入区块链力图避免的弱点,比如易受审查机构的影响、需依靠或信赖狡猾的人类。为了达成这一目标,研发人员必须仔细考虑谁是值得他们信赖的“受委托方”。
静态数据的储存问题可以通过分布式文件共享服务来解决。例如,协议实验室的星际数据库(Interplanetary Database)或StorjLabs的分散式云存储系统。这些系统能使世界范围内的人们出租硬盘上的一些剩余空间。由于数据会冗余地存储在世界范围内的若干个计算机上,进而保持可获取性而又难以被审查,因此这种机制可以适用于基于区块链的智能合约。
有关如何将实时数据传输至区块链上的问题,可以采用被区块链开发人员所谓的oracle来解决。oracle作为一系列服务,通过有效查询实时数据获得支付,并将数据传输至区块链上的智能合约。
在IC3,朱尔斯使用了一种被称为“Town Crier”的自动化oracle,旨在确保传输到区块链上的数据均来自可信赖的来源,且不会被篡改。该服务采用英特尔处理器上的“可信软件”。虽然芯片在加密盾牌后方运行代码,但仍能提供让程序如约执行的证明。
智能合约在区块链上运作目前面临的问题