HALO小课堂|No.14区块链2.0--智能合约(下)

学院 Halo研究所 10552 浏览

 

智能合约如何运作

构建 → 存储 → 执行

1、智能合约由区块链内的多个用户共同参与制定,可用于用户之间的任何交易行为。协议中明确了双方的权利和义务,开发人员将这些权利和义务以电子化的方式进行编程,代码中包含会触发合约自动执行的条件。比方说,你把一套闲置的房子租给A,那么,这份智能租约中就规定了A必须在每月5号之前给你打房租、你必须在收到房租时马上给对方钥匙等条款。

2、一旦编码完成,这份智能合约就被上传到区块链网络上,即全网验证节点都会接收到你和A的租房合约。

 

3、智能合约会定期检查是否存在相关事件和触发条件;满足条件的事件将会推送到待验证的队列中。假设A在4号提前打房租给你,这个事件就成了该合约的触发条件(每月5号以前)。

4、区块链上的验证节点先对该事件进行签名验证,以确保其有效性;等大多数验证节点对该事件达成共识后,智能合约将成功执行,并通知用户。

5、成功执行的合约将移出区块。而未执行的合约则继续等待下一轮处理,直至成功执行。

如何编写智能合约

为了编写智能合约,你必须使用智能合约语言(SCL)。这些是直接编写智能合约或编译成智能合约的编程语言。Solidity是一种编写智能合约的编程语言(这里就不得不提到以太坊ETH了,正是ETH提供一个智能合约开发平台,让其应用走向了大众,我们会另起一篇做重点科普,记得时时关注哦),它在以太坊虚拟机上运行。它是一种面向合约的高级语言,其语法类似于JavaScript,主要针对以太坊EVM。

 

以太坊虚拟机(EVM)是以太坊上智能合约的运行环境。它实际上是完全隔离的,这意味着在EVM上运行的代码无法访问网络、文件系统和其他进程。智能合约对其他的智能合约的访问权也有限,在区块链网络上单独运作。

在以太坊网络上编写智能合约有三个主要步骤:

1.  用以太坊高级语言编写

2.  用EVM编译器编译成字节码

3.  用以太坊客户端上传到区块链网络

 

对于智能合约和开源编码感兴趣的人,广为人知的资源之一是GitHub。这是开发人员托管软件代码的在线平台。你的每段代码会存在存储库中,存储库基本上是一个存储所有代码组件的文件夹。

很多人把其他人的存储库复制和粘贴到自己的账户中,然后进行微调整,变成自己的。通过搜索项目和存储库来浏览页面,可以帮你构建自己的项目。一旦找到你所需要的存储库,打开它并搜索内容,会包含大量有用代码的复杂内容。使用上述程序和资源,你也可以创建自己的智能合约。

智能合约的缺点

智能合约仍是一项未成熟的技术,仍然容易出现问题:人为错误、完全实施有困难、不确定的法律状态。例如,构成合约的代码必须是完美无漏洞的。它也会出现错误,有时候,这些错误会被欺诈者所利用。就像DAO被黑事件一样,把资金存放在代码有漏洞的智能合约中资金就可能被盗走。

 

此外,这项新奇的技术也带来了很多问题。政府将如何决定监管此类合约?他们将如何进行征税?如果合约无法访问其主题,或者发生了任何意外情况,将会是什么情况?这是在传统合约签订时可能发生的,传统合同可以在法庭上被撤销,但区块链要求智能合约无论如何都要按照“代码即法律”的规则去执行。

智能合约的应用

在区块链社会里,大家共同维护一个区块链账本,所有交易数据无法篡改、不可伪造,还能减少人工对账的出错概率和人力成本;随着智能合约普及,我们也会变得更加佛系。面对潜在的纠纷,无需自己出马,一切代码说了算。

 

由于智能合约是与加密货币相关联的,因此它们仍主要被应用到金融领域和银行业。尽管如此,世界各国政府都可以使用这项技术,使得投票系统更加便利而透明。供应链可以使用它来监控货物并自动执行所涉及的所有任务和支付。房地产、医疗保健、税收、保险及其他众多行业都可以受益于智能合约的使用。

例如,美国信托与清算公司(DTCC)和四大银行(美银美林、花旗、瑞士信贷和摩根大通)成功地使用Axoni开发的智能合约交易区块链信用违约掉期。

第二代区块链技术涌现出了众多优秀的应用不仅颠覆我们对货币体系的理解,也对传统行业产生重大影响。

而以太坊无疑是其中最闪耀的最具代表性的,作为一个具有里程碑意义的技术,无论将来前景如何,以太坊注定会和比特币一样,成为区块链知识体系中重要的一环。


声明:本文为文章作者或转发者向区势传媒的投稿,观点绝不代表区势传媒立场,亦不构成任何投资意见或建议。

评论(0)

最新评论