• 北方也有龙舟赛!秦皇岛45支龙舟队共角逐(图) 2019-07-13
  • 点亮文化自信之灯,塑造大国气质 2019-07-06
  • 台生为何青睐大陆高校(两岸聚焦) 2019-07-04
  • 交大昂立:2017年年度股东大会决议公告 2019-06-30
  • 毛泽东说帝国主义都是纸老虎。是有社会基础的 2019-06-29
  • 以产业金融促广州实体经济发展 2019-06-29
  • 警方揭秘世界杯赌球庄家:不怕你赢钱,就怕你不玩 2019-06-29
  • 一语惊坛(5月9日):推动中朝友谊,造福两国人民。 2019-06-19
  • 马克思报刊批判的理性光辉 2019-06-19
  • 工信部:我国4G用户达10.6亿户 宽带提速效果显著 2019-06-18
  • “一带一路”机遇下本土设计师“走出去”才是硬道理 2019-06-12
  • 把课堂上的重点难点录下来 教学类短视频平台前景几何 2019-06-06
  • 公有制结束、高效益之下、就会大量的国有企事业单位的冗员进入社会生产一线。社会运作进入正轨。 2019-06-06
  • 在媒体融合中彰显地市级报纸副刊的特色 2019-06-02
  • 既然主贴跟帖都不给发 那我就让管理彻底一边倒去吧,我也彻底休息了。 2019-05-25
  • 文章阅读页通栏

    安徽福彩15选5开奖号:智能合约和预言机初探

    来源: 360区块链实验室 作者:
    区块链技术发展到现在,一般认为经历了三个阶段,即以比特币为代表的第一阶段,以太坊为代表的第二阶段和以EOS为发展方向的第三阶段。 ......

    安徽25选5开奖视频 www.974av.com

    区块链技术发展到现在,一般认为经历了三个阶段,即以比特币为代表的第一阶段,以太坊为代表的第二阶段和以EOS为发展方向的第三阶段。


    一、 智能合约

    从以太坊开始,智能合约开始登上历史舞台,然后各种可执行智能合约的区块链纷纷出现,从最初的以太坊实现了智能合约的功能,到INT中的智能合约有扩展区块链智能合同TX的能力 (称作INT Contract)。进而小蚁的NeoContract从开发的方便易用下手,支持多种语言,如C#,C++等?;褂械谋热鏏sch,拆分开不同的合约叫做令牌系统或者仲裁合约。等等,不一而足。

    以太坊的智能合约在区块链中的位置如下图:

    其实也就是说,智能合约已经在区块链中占有了重要的一席之地。

    要很好的理解智能合约,其实是要了解虚拟机的,比如以太坊的EVM,EOS的WASM等。这些类似于JAVA虚拟机(这个不恰当,但容易理解,事实上前者要简单的多)把一些代码运行起来,不管是解释的还是编译的,亦或者二者兼而有之的。

    虚拟机从最初的只执行一些简单的指令到后来的执行二进制数据,逐渐走向成熟。相伴随的,智能合约也就越来越强大,易用。

    二、智能合约的例子

    1、比特币的脚本(类智能合约)

    为什么叫类智能合约呢,其实比特币是没有智能合约的,只有脚本,它只是使用一些简单的指令来完成特定的功能,下面是比特币一个脚本的说明:

    2、以太坊智能合约

    以太坊的智能合约就比较接近于流行的编程语言了,而且它也有自己的IDE,browser-solidity,可以轻松的编写和调试智能合约:

    contract TestStore {
    uint sData;
    function setData(uint d) {
    sData = d;
    }
    function getData() constant returns (uint) {
    return sData;
    }
    }
    这个合约只是存储并读取一个数据,但是却比比特币的脚本前进了一大步。

    3、EOS智能合约

    首先看一个入门的智能合约hello world.
    class hello :public eosio::contract
    {
    public:using contract::contract;
    /// @abi action
    void helloworld( account_name user )
    {
    print( "Hello world, ", name{user} );
    }
    };
    EOSIO_ABI( hello, (helloworld) )
    你会发现EOS的智能合约已经完全是和主流的开发语言保持一致了。

    三、智能合约的编译

    智能合约的编译在不同的时期有不同的处理方式,相信在以后也还会有更大的进步。

    早期的比特币中只是将脚本按字符串拆分即可,没有什么独特的地方,更谈不上编译步骤。而到了以太坊就出现了独立的编程语言Solidity和编译器,只有使用编译器编译好以后才可以运行在EVM虚拟机中。

    而到了EOS,就更是强大到了使用CLANG+LLVM生成Webassembly字节码格式。这就意味着可以使用非常强大的主流的编译器和通用的编译方法。使得EOS的编译器可以编译出更安全健壮的可执行的智能合约。

    四、智能合约的执行

    比特币的脚本执行非常之简单,只不过是调用函数来进行字符串的分析即可,依据不同的标记来解析出相应的指令,再依据相应的指令进行功能的验证和执行,这样最终达到脚本运行的目的。

    以太坊的智能合约的执行,则需要先利用SOLC智能合约编译器将代码编译成EVM字节码,然后将EVM字节码通过Geth的RPC接口发送到以太坊网络,验证执行。

    EOS的智能合约则需要通过JIT将.wast转成.wasm文件,并且辅助一个abi的文件。二者共同将智能合约布署到虚拟机上,由虚拟机执行。

    五、预言机(Oracle)

    预言机是区块链和自然世界的接口,目前是区块链技术发展的一个方向。对于智能合约来讲,预言机就是智能合约的输入参数。而大家都知道,智能合约是无法离开参数的输入的。而参数直接影响到了智能合约的最终的输出结果。

    举一个例子,预测世界杯的比赛结果,依赖于关键节点的数据输入,如果有人恶意的输入错误的结果,那么,智能合约依据这个错误的结果一定会输出错误的结论。

    因此,预言机对输入参数的依赖性是强相关的。预言机可以分为以下几种类型:

    1.软件提供数据的预言机
    这种预言机很好理解,类似上面的例子,输入的参数需要一些网站或者相关服务商来得到。

    2.硬件提供数据的预言机
    主要是物联网行业,大量的数据可以从硬件采集器或者说相关的传感器采集并发送上来。

    3.可信共识预言机
    主要是为了解决输入参数的可信性问题,可以不使用单一的数据来源,比如从多个数据点采集数据,并依据共识原则达到最终的参数采集输入。

    Oracle现在开始陆续在各个区块链上有所展现。在以太坊的内部有一些简单的预言机,后来又出现了第三方的以太坊的Oraclize,提供了与外界交互的强大能力。国内的ONT的混合预言机(HydraDAO),另外量子链(QTUM)的Oracle增强了DataFeeds机制,更灵活方便一些。

    现在还出现了智能预言机,可以在不同的条件下自动的灵活的实施智能合约。

    六、总结

    智能合约和预言机相辅助相成,一定会在区块链技术的发展中不断的壮大起来,最终实现自然世界和区块链世界的数据自然高效的流转。


    来源:公众号(360区块链实验室

    更多区块链信息:www.qukuaiwang.com.cn/news

    关键词: 智能合约  预言机  
    0/300
    ?
  • 北方也有龙舟赛!秦皇岛45支龙舟队共角逐(图) 2019-07-13
  • 点亮文化自信之灯,塑造大国气质 2019-07-06
  • 台生为何青睐大陆高校(两岸聚焦) 2019-07-04
  • 交大昂立:2017年年度股东大会决议公告 2019-06-30
  • 毛泽东说帝国主义都是纸老虎。是有社会基础的 2019-06-29
  • 以产业金融促广州实体经济发展 2019-06-29
  • 警方揭秘世界杯赌球庄家:不怕你赢钱,就怕你不玩 2019-06-29
  • 一语惊坛(5月9日):推动中朝友谊,造福两国人民。 2019-06-19
  • 马克思报刊批判的理性光辉 2019-06-19
  • 工信部:我国4G用户达10.6亿户 宽带提速效果显著 2019-06-18
  • “一带一路”机遇下本土设计师“走出去”才是硬道理 2019-06-12
  • 把课堂上的重点难点录下来 教学类短视频平台前景几何 2019-06-06
  • 公有制结束、高效益之下、就会大量的国有企事业单位的冗员进入社会生产一线。社会运作进入正轨。 2019-06-06
  • 在媒体融合中彰显地市级报纸副刊的特色 2019-06-02
  • 既然主贴跟帖都不给发 那我就让管理彻底一边倒去吧,我也彻底休息了。 2019-05-25
  • 足彩17037推荐分析 中国跟曰本排球比分 一波中特100图片 湖南幸运赛车的规律 大乐透17102区间选号 平码二中二赔多少 重庆幸运农场彩票开奖查询 安徽体彩 湖南彩票兑奖中心 上海时时乐开奖06 甘肃十一选五专家预测号码 彩票书籍 辽宁11选5官网 360彩票走势图 2019年237期福彩中奖号