美文网首页
智能合约如何可信的与外部世界交互

智能合约如何可信的与外部世界交互

作者: 宋song一 | 来源:发表于2018-12-21 19:40 被阅读13次

一、共识问题

智能合约不需要获取外部API,而是第三方实时监控区块链状态,然后做出相应的反馈。例如,合作的期货交易所实时监控区块链,然后根据链上的交易情况做对应的资金转移,这样就不会对区块链共识产生威胁。

二、受信任方问题

Oracle预言机是一种可信任的实体,它通过签名引入关于外部世界状态的信息,从而允许确定的智能合约对不确定的外部世界作出反应。预言机具有不可篡改、服务稳定、可审计等特点,并具有经济激励机制以保证运行的动力。目前来说,预言机有两种模型,一个是单一模型,另一个是多重模型,有时候多重模型又称为Oracle网络

单一模型只包含一个预言机,这一预言机是可信任的,它会正确地执行代码,合约的参与者能确信它不会与合约的某一参与方相勾结,单一模型类似于软件即服务提供者。对于大部分应用,单一模型已经就足够安全,并且经济实惠。目前一个单一模型的实例是Oraclize。

多重模型包含多个预言机,甚至是预言机网络。虽然单一可信任的预言机对大多数用户来说已经足够了,但是高价值的资产处理需要更高的可信任度,这就需要用到多重模型。在这一模型中,代码的执行分布在若干独立的预言机中,例如10个,将这10个预言机的数据设置一个可信临界,临界值数量的智能预言机必须就结果达成一致。例如,用户使用7/10模型,只有当等于大于7个智能预言机一致时,合同才能够执行。这一模型留出了3个缓冲,也许有的智能预言机离线,有问题或者被黑客攻击,只要不多于3个不影响合同代码的执行。多重模型比单一模型更加复杂,成本更加高,但是它提供了更好的安全保障

三、单一模型预言机运作方式

1、Oraclize简介

Oraclize是一个独立的服务提供商,目前提供免费的数据输送服务,其目的是在区块链和互联网之间建立一道可信的数据网关,其目标是打破智能合约获取数据的束缚,在保证可信的情况下,使其具有访问互联网数据的能力。Oraclize不是想让智能合约的开发者信任这个组织,因为不论任何信任,都可以从技术上篡改数据,无法真正从技术保证安全,而是通过提供多种加密证明方法,构建可信的预言机
Oraclize提供了多种数据源服务器,包括Url访问、数据搜索引擎、区块链内容数据、IPFS文件访问等等,其中Url访问和区块链内容数据提供了基于TLSNotary的可信证明技术,也是常见的数据访问需求。对于基于TLSNotary的可信证明可以根据用户的需求开启和关闭,因为虽然目前该服务是免费的,但是随着以后Oraclize的正式版发布以及推广期的结束,可信证明技术是需要更多的收费,用户可以基于成本考虑选择是否使用

四、 Oraclize可信证明机制原理

Oraclize之所以可以提供一个可证明的诚实从外部世界安全获取信息的能力,是依赖于TLS证明技术(TLSnotary),除此以外,Oraclize还提供了其他两种证明机制:Android SafetyNet证明、IPFS大文件传送和存储证明,由于使用较少,本文不做详细展开。。

TLSnotary证明主要基于安全传输层协议TLS 1.1,TLS用于在两个通信应用程序之间提供保密性和数据完整性,最大优势就在于独立于应用协议,更高层协议可以透明地分布在 TLS 协议上面。

TLS包含三个基本阶段:1.对等协商支援的密钥算法,2.基于私钥加密交换公钥、基于PKI证书的身份认证,3.基于公钥加密的保密数据传输。在整个传输中,TLS的master key可以分成三个部分:服务器方、受审核方和审核方。在整个流程中,互联网数据源作为服务器方,Oraclize作为受审核方,一个专门设计的,部署在亚马逊云上的开源实例作为审核方,每个人都可以通过这个审计方服务对Oraclize过去提供的数据进行审查和检验,以保证数据的完整性和安全性。

五、多重模型预言机运作方式

与单一模型不同,多重模型需要面对女巫攻击(Sybil attack)和共谋攻击(collusion attack)
http://docs.oraclize.it/#home
更详细内容可查看https://blog.csdn.net/sportshark/article/details/77477842

相关文章

  • 智能合约如何可信的与外部世界交互

    原文:https://blog.csdn.net/sportshark/article/details/77477...

  • 智能合约如何可信的与外部世界交互

    区块链应用中,外部世界如何与智能合约交互往往是一个容易被忽视的问题,很多的智能合约应用场景是根据一些外部事件,输出...

  • 智能合约如何可信的与外部世界交互

    一、共识问题 智能合约不需要获取外部API,而是第三方实时监控区块链状态,然后做出相应的反馈。例如,合作的期货交易...

  • 智能合约如何可信地与外部世界交互

    论文地址:https://0x9.me/20KbZ区块链应用中,外部世界如何与智能合约交互往往是一个容易被忽视的问...

  • 智能合约与外部世界交互

    用以太坊为例子,以太坊智能合约目前只能存取访问链上的信息,它们自身无法取得外部信息和数据,而Oraclize作为一...

  • 什么是预言机

    预言机是一种可信任的实体,它通过签名引入关于外部世界状态的信息,从而允许确定的智能合约对不确定的外部世界作出反应。...

  • 干货|捕捉智能合约中的event实战

    1 写在前面 在上一篇文章 Web与智能合约交互实战 中我们已经掌握如何使用 Web3 控制智能合约,并且实现了一...

  • 用Go来做以太坊开发④智能合约

    智能合约 在这个章节中我们会介绍如何用Go来编译,部署,写入和读取智能合约。 智能合约的编译与ABI 与智能合约交...

  • 与智能合约交互

    与智能合约交互 概述 为了与合约交互而向Ethereum网络编写原始请求,那么您很快就会意识到,编写这些请求是笨重...

  • 智能合约

    一、什么是智能合约 智能合约是 1990s 年代由尼克萨博提出的理念,几乎与互联网同龄。由于缺少可信的执行环...

网友评论

      本文标题:智能合约如何可信的与外部世界交互

      本文链接:https://www.haomeiwen.com/subject/zbpvkqtx.html