LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > Oracle预言机可访问数据源

Oracle预言机可访问数据源

2020-08-30 NB区块链 来源:区块链网络

Oracle原则上可访问任何类型的外部数据,目前以以太坊智能合约Oraclize为例,其当前可访问的数据类型包括以下五种。

·URL:可访问互联网的任何网页链接,同时支持HTTP GET和HTTP POST请求,默认为HTTP GET。

·Random:可提供来自其他可信执行环境下的随机字节,并且保证该数据在传递过程中是不被修改的。

·WolframAlpha:可访问WolframAlpha数据搜索引擎网站API,该网站将返回搜索问题的答案,而不是像一般搜索引擎一样返回相关链接。

·IPFS:可获取IPFS网络上存储的内容和文件,使区块链网络也能支持拥有大规模数据存储的应用场景。

·Computation:支持应用进行链下计算,并且获取链下执行结果。执行环境必须是被DockerFile定义的,应用程序可通过二进制文件或脚本的形式发送给Oraclize,可以支持其在IPFS网络上创建一个应用程序的运行环境,其中可以上传该程序所需的依赖文件等。

程序运行完毕后返回的结果将不得超过2500个字节。这种方式可以将计算密集型的工作放到链下来完成,减少区块链网络的计算压力。

Oracle可信证明机制

以以太坊的预言机智能合约Oraclize为例,在单预言机模型中,为了保证Oracle获取的外部数据是未经修改的,原系统返回的数据真实有效,可以对Oracle获取的数据进行可信性证明,除Random数据源之外,对于其他的数据源而言,这个证明是可选项,非强制要求。该证明主要包括从可信数据源获取数据后,该数据在传播的过程中未经过任何人的篡改,数据发送方、接收方甚至第三方授信机构都要保障该数据的真实性和有效性。

Oraclize的可信证明机制主要有TLSNotary证明、Android证明和Ledger证明三种类型。

Oraclize的可信证明机制

TLSNotary证明机制主要是针对URL和Computation两类数据源的。TLS-Notary是一个开源协议,它从传输层上来保证数据在传输过程中未被任何人修改,并且可以向第三方提供未修改证明。

它利用TLS传输层安全协议将主密钥分配给三方:服务器(数据源服务方)、受审核方(Oracle)、审核方。在Oraclize智能合约的实例中,审核方是AWS(Amazon Web Service),它可以通过TLSNotary证明其在实例化之后未经过任何修改。

Android证明是Oraclize内部研发的成果,其利用Google开发的SaftyNet远程证明软件技术,来证明一个连接到Oraclize的远程Android应用是否运行在一个安全、受控的物理环境中。

同时它还能通过远程验证该应用程序的代码哈希,来授权该应用是否可在当前设备中运行。同时,最新的证明技术还能证明该远程设备已经升级至最新的Android版本,以保证系统漏洞被及时而完整地修复。

这些技术保证应用程序可以运行在一个非常安全、可靠的环境中,因此该应用通过HTTPS和Oraclize建立的连接就拥有了安全性和可靠性基础。

Ledger是一个法国加密货币钱包公司,其核心产品是Ledger Nano S和Ledger Blue,这两种产品都安装了STMicroelectronics安全设备,包括一个控制器和BOLOS安全操作系统,BOLOS SDK允许开发者基于其安全硬件环境开发相关的应用。

BOLOS的一些核心API可以提供加密和证明服务。当一个应用向其内核调用证明服务时,内核可依据该程序的二进制编码进行哈希签名,该签名基于内核的证明密钥产生,而该密钥又源于Ledger的根主密钥,被存放在一个HSM加密硬件设备中,因此,应用程序获得的这个签名是一个安全有效的证明。

Ledger证明不仅能提供应用程序代码的证明,还能证明其运行环境是安全的。

通常来说,Oracle的证明文件都相对较大(比如几KB字节),如果直接将其上传到区块链中,一方面会导致交易消耗较多的gas费用,另一方面目前的区块链平台不一定有能力存储这么大的文件到链上。

因此,为了永久地保存证明文件,让所有人都可以自由地查询和追溯,Oraclize支持将证明文件上传到IPFS网络中(一个去中心化的存储网络)。

—-

编译者/作者:NB区块链

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...