详解去中心化预言机的设计
摘要
区块链本身是无法接触到链下信息的,无法直接验证触发智能合约的条件,因此就需要预言机为区块链提供必要的信息来触发智能合约。简单来说,预言机可以看成是链下信息的传输器,也是智能合约与区块链下信息交互的唯一窗口。
本文是万向区块链首席经济学家办公室出品的研究文章,进一步研究去中心化预言机的核心设计思路,以及各种去中心化预言机的经济设计及应用探索。结论是,随着技术的提升,去中心化预言机将会跃升主流,经济模型与激励机制将是各个去中心化预言机竞争的重点。随着DeFi及其他公链应用用户基数的扩大,去中心化预言机将成为必要基础设施,而跨预言机的应用,是提升数据源安全性的一大趋势。
加密世界与现实世界的运行逻辑存在相当大的差异。加密世界通过共识机制、密码学、分布式节点及智能合约在链上运行。而在智能合约中,输入X变量,智能合约执行Y结果是可以预期的,此结果不可逆且具备确定性及可信赖性。为了达成Y结果的准确无误,X变量的来源非常重要。X变量的数据来源有两种,链上数据及链外数据。链上可信数据可以直接通过区块链获取,而链外可信数据则需要通过预言机提供。本文主要介绍各种预言机提供可信数据的方式,以及其中的经济激励设计。
预言机种类与机制
预言机的功能是将外界信息转化写入区块链,完成区块链与现实世界的数据互通,是智能合约与外部进行数据交互的途径。预言机需要从一个不确定性非常高且未经验证过的数据库,将数据筛选后输入至一个可靠且安全的封闭系统,因此数据的质量会大程度地影响到整个系统的运作。目前预言机数据库的来源主要有以下四种: 一是互联网连结及搜寻引擎,二是其他区块链的链上数据,三是IPFS存储数据,四是物联网传感器数据。目前加密市场存在三种预言机: 一是中心化预言机,二是去中心化预言机,三是联盟预言机。以下分别介绍三种预言机的机制与差异性。
中心化预言机
中心化预言机由可信中心的中心化机构提供数据至智能合约运行。中心化预言机有两种机制: 第一种是中心化机构让预言机在可信执行环境运行,数据需求者无须信任中心化机构。此种机制通过可信加密证明技术,能够向数据需求者证明数据源全程未被修改。Provable为该机制的典型,采用TLSnotary证明技术,让整个数据源接入区块链的流程都是可被第三方审核的。只要数据需求者信任数据源,整个数据从数据源接入区块链的过程都是可信任的。第二种是数据源本身开发的预言机,数据需求者需要信任中心化机构。此种机制数据源通常为链外可信机构,将链外信用延伸至链上,并由数据源全权负责数据质量。
中心化预言机的机制较为直观,符合传统社会的数据来源,主要存在三个优势:第一,中心化预言机中,数据的完整性与安全性直接影响了预言机的可信度,且中心化预言机提供数据属于商业行为,作恶的动机较小;第二,由于所有数据由中心化预言机提供,不存在参与方博弈行为,数据调用效率较高;第三,中心化预言机数据的可信程度与用户规模无关,即使生态规模小,预言机也能正常运作。但是中心化预言机在两个方面有其局限性。一是可扩展性,无法兼容其它预言机提供的数据。二是安全性,中心化预言机内生价值不足以支撑高价值合约需要的安全性。中心化预言机具有内生价值,该内生价值是可以被一个价格所买断。当中心化预言机作为价值更为庞大的DeFi生态数据提供者时,数据需求者可以通过贿赂甚至买断中心化预言机并操纵数据源,为自身在DeFi中的合约牟利。
去中心化预言机
去中心化预言机机制的设计和区块链分布式思想式一致的,主要通过可信的众多节点去共同提供数据服务,增强整个预言机系统的容错能力。去中心化预言机并不是通过技术提升预言机的信任度,而是藉由经济激励及多方签名达到数据的可信任性。去中心化预言机涉及多方节点参与,设计需要考虑以下问题:第一,节点共谋问题;第二,数据内容的保密性;第三,数据获取的即时性;第四,节点恶意复制其他节点数据问题。第五,女巫攻击造成数据腐败问题。
去中心化预言机执行过程通常有五个步骤:(1)智能合约保存交易状态;(2)停止当前交易,等待去中心化预言机调用数据;(3)预言机通过多重签名机制让数据提供者同时为相应节点签名;(4)预言机采用加密算法机制将各节点的数据整理汇总,并调整交易状态;(5)智能合约验证结果,交易完成。无论何种去中心化预言机,它们调用数据的核心方法都有共同之处,只是实现方法有所不同。去中心化预言机相较中心化预言机有两个局限:第一,收费相对昂贵,需要多节点参与;第二,生态须有一定规模,数据可信度与生态规模相关性高。
联盟预言机
联盟预言机是由可信联盟提供数据至智能合约,是去中心化预言机的一种型态。如同联盟链,联盟预言机网络中的节点是由指定可信个体或机构担任。此种预言机的信任组成有多个层次,包含对各个节点的信任、预言机本身机制的信任以及预言机治理机构的信任。MakerDao的预言机属于此类,由14个可信节点所组成,提供内部用户资产的实时价格,其节点除了匿名的个人数据源,还包括 0x、dYdX、Set Protocol、Gnosis 等指定的数据源机构。联盟预言机需要注意的问题有两个:第一,可信节点身分的保密程度关系到节点被操纵或勒索的可能性;第二,需考虑可信节点及治理机构是否有涉及过大自身利益相关。
以MakerDao联盟预言机来说,MKR的持有者可以决定预言机运行的两个关键点:一是联盟预言机的参与节点列表;二是MKR持有者可以通过让价格延迟反应来防范恶意节点操纵预言机。但是当MKR持有者(治理机构)合谋或腐败时,MakerDao生态将难以制衡。不诚实的MKR持有人则可以通过持有大量CDP或DAI,合谋操纵价格,触发全局结算来获利。由此可知,联盟预言机在特定信任度较高的环境,能够产生高效且去中心化的效果,在行业初期不失为一个解决方案。
去中心化预言机的发展方向
相较中心化预言机,去中心化预言机费用较高且在规模有限的情况下效率较低。因此,去中心化预言机需从解决区块链的数据问题,提升至解决信任问题,才能真正扩大其应用。我认为去中心化预言机未来实际应用的场景有三个因素:第一是随机性需求高的场景,第二是涉及多机构参与的场景,第三是合成资产交易的场景。
(一)随机性高
区块链内涉及到随机性高的应用包含预测类平台。这类平台的核心为随机性、不可预测性及可验证性,对去中心化预言机的需求为刚需。目前许多此类DApp是在链上生成随机数,并无预言机的参与。但2018年EOS上的一个DApp因为随机数问题被黑客攻击导致项目损失资产,而区块链公开随机数算法将导致随机变得可以预测。DApp可以通过两个方式获得更为安全的随机数,一是利用预言机API调用,从外界获取随机数;二是利用VRF可验证随机方程,在链下产生一个安全不可被预测的随机数,并把这个随机数直接返回给用户。
(二)多方参与
涉及多方参与的场景适合通过去中心化预言机获取数据,如去中心化保险。首先,去中心化保险数据源涉及范围很广,如航班晚点保险和医疗保险等,单一案件需要从物联网、GPS系统、法律判例或医院数据等多个数据源获取数据。以车险赔付来说,保险公司常常与客户在是否赔付的问题上产生分歧。而保险公司具有最终裁决权力,因此就不可避免地导致某些客户瞒报信息。车险赔付涉及多个数据源,调查过程往往旷日废时,容易提高运营成本并延长处理周期。去中心化预言机能够快速地从不同数据源获取保险相关数据,并通过链下聚合的方式将是否赔付的结果及相关数据上传至链上。其次,保险机构最大的成本是信任成本,当担保价值超过中心化预言机内生价值时,中心化预言机会难以被信任。
(三)合成资产
合成资产有各种不同的设计机制,只要市场存在交易对手,合成资产合约便能成立。合成资产具有灵活性,它们使市场参与者能够对冲本来无法交易的风险。区块链上的合成资产成交结果完全依赖去中心化预言机,且区块链上智能合约并不能辨别数据来源是否正确。因此,去中心化预言机为合成资产交易的必要角色。
去中心化预言机可以利用多节点的优势,弹性地为各种不同的合成资产合约提供数据来源。去中心化预言机有四个方法可以提升高价值合约数据源的安全性:第一,经济激励与惩罚机制;第二,多节点审核;第三,去中心化预言机内生价值会随着生态规模成长而循环增加,安全性会越来越高;第四,互操作性较高,可以实现跨预言机服务。
虽然相比中心化预言机,去中心化预言机能够承载的合约价值上限较高,但是去中心化预言机还须解决数据源的合规问题。传统法定合成资产交易提供数据的中心化预言机,包含政府机构、证券交易所、银行等机构,都是受到政府严密监管。去中心化预言机的抗审查性意味着数据需求者必须完全信任预言机的技术及机制。如果政府介入监管预言机,区块链去中心化的初衷也就不在。
因此,无论未来是DeFi合约增加上限条款或是预言机发展自监管,去中心化预言机如何满足监管需求将是DeFi发展的一大关键。而从数据源安全的宏观角度来看,同时采用多个去中心化预言机,可以进一步实现去中心化。未来去中心化预言机市场将会是多角并行,分散风险,实现更安全的数据供给环境。
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
Justin Sun suspected to have purchased $160m in Ethereum
Justin Sun suspected to have purchased $160m in Ethereum