美文网首页
以太坊和智能合约

以太坊和智能合约

作者: unclefynn | 来源:发表于2018-03-06 23:53 被阅读0次

    本文继续讲述智能合约,顺带介绍一下以太坊的工作原理

    智能合约是一段在区块链网络中执行的代码,所有的计算机(矿工)必须得出相同的结果,并就执行结果达成共识。正因此,我们可以确定这段代码被按照预想的方式执行。

    • gas和激励机制

    那么问题来了,是什么让计算机(矿工)乖乖的执行智能合约?
    以太坊中区块链中有个专业术语叫gas(与neo的gas类似,不过以太坊的gas是以太坊代币本身),代表了代码执行所支付的金额,这种激励方式促使矿工运行你的合约代码,不同的代码逻辑支付不同的费用。其实可以将整个以太坊网络视为一个整体,它对外提供执行部署和执行合约的服务,根据每次提供的服务进行收费。对比一下中心服务器的付费服务,便于理解。这种方式也促使研发人员编写高效的代码,经过反复测试后,再上传至以太坊网络中,减少不必要的开销。

    • 与外部世界的交互

    image.png

    我们每天使用的各种应用程序基本都集成了各种外部服务(API)。比如,根据外面的天气,可以作出不同的出行建议。

    这意味着该服务器必须通过连接天气API才能检索数据并相应地显示相应信息。那你可能会说了,这有什么难的?智能合约也应该能够很轻松做到这一点,对吧?

    答案是你想多了。

    主要原因是智能合约代码是在每个节点上执行的。这意味着对天气API的调用时间可能会有差异,这就造成了输入的不确定性,节点之间无法得到确定性的结果,也就没办法达成共识。

    在一秒钟内,我们可以返回晴朗的天气数据,而在另一天,我们可以有一场大雨。在这种情况下,节点永远无法就智能合约的结果达成共识。
    那你可能会说了,如果在需要集成各种必要功能的应用程序中使用API接口,那以太坊平台还有毛用?没错,如果无法接受外部数据,智能合约的功能如同鸡肋。

    • 解决方案 - Oracle(预言机)

    image.png

    值得高兴的是,有人提出了使用预言机(Oracle)的解决方案。不是智能合约调用外部API,而是通过预言机将API本身将数据推送到区块链。

    带来的是所有节点在网络中具有相同的数据。它以简单的方式实现,即合约触发事件,外部应用程序(如Oraclize)监听该事件,从API检索数据并将结果添加到合约中。

    解决方案似乎合法。但另一方面,你现在否认整个分权理念,不得不信任一些中央数据提供者。

    • 用例 - 众筹

    以太坊创造者提供了一些可以在其平台上构建的简单示例。我想介绍一个例子,以便更好地理解该技术带来的可能性。

    我想大家都知道Kickstarter。项目团队设定最低和最高资助目标。他们还必须相信Kickstarter,如果金额能够达到,Kickstarter将为球队付款。

    另一方面,支持者需要相信Kickstarter,如果达不到目标,他们会返还投入的资金,或者如果达到目标,则会向项目团队汇款。这种解决方案非常集中。

    这种筹款方式最近在区块链项目中非常流行。特别是在以太坊。智能合约具有相同的书写规则。

    人们向合约账户转账,可以确定的是,如果不能达到指定金额,合约会自动将资金返回至原账户。所有的智能合约代码都是公开的,任何人都可以对它进行检查(当然,您需要对编程有一些基本的了解)。

    这种方法不需要Kickstarter作为中介费用。

    在这些众包智能合约的帮助下,项目正在筹集价值数百万美元的Eth。

    最近Bancor Crowdsale筹集了超过1.4亿美元的资金,所有这笔钱被直接发送到一段代码(智能合约),该代码处理交易,分配代币并将钱汇给团队的钱包。这是智能合约的真正威力!

    我相信智能合约有着颠覆互联网的巨大的可能性,这只是一个开始!

    相关文章

      网友评论

          本文标题:以太坊和智能合约

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