浅析智能合约

链客,专为开发者而生,有问必答!

此文章来自区块链技术社区,未经允许拒绝转载。

随着比特市场的大火,让“区块链,智能合约”等新名词出现在我们的生活中, 这就让很多币圈的小白一脸懵逼。智能合约是什么?区块链又是什么?他们二者之间有什么联系吗?

首先,智能合约(Smart contract)这个术语是在1995年诞生的,是由多产的跨领域法律学者尼克·萨博(Nick Szabo)提出来的。他在发表于自己的网站的几篇文章中提到了智能合约的理念,定义是这样:“一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议”, 是一种旨在以信息化方式传播、验证或执行合同的计算机协议。简单的说它就是一段计算机执行的程序,满足可准确自动执行即可。

它具有很大的优势,一是允许在没有第三方的情况下进行可信交易。二是这些交易可追踪且不可逆转。它需要一套承诺,一套经由合约参与方同意相互履行的义务与责任。还要表明合约的本质于目的,就像你买东西一样,买卖双方同意一手交钱一手交货一样。第三是数字化,智能合约必须由计算机程序代码写入计算机,并且可读可自动执行,因为,一旦各个合约参与方达成协议,智能合约就必须建立各个参与方之间的权力与义务,而且合约必须由计算机或者计算机网络来自动执行。举个简单的例子,合约双方达成一笔销售协议,决定用以太坊(一种加密电子货币)来结算,那么他们必须选择以太坊协议,智能合约在以太坊协议上被实施。所以合约用到的数字化语言就是以太坊脚本语言。以太坊脚本语言一种编程语言,使开发人员能够建立和发布下一代分布式应用。以太坊可以用来编程,分散,担保和交易任何事物。

区块链技术是一种去中心化的电子记账方式,它具有安全和不可篡改的特性,安全性很高。所以区块链技术与智能合约的结合不仅可以发挥智能合约在成本效率方面的优势,而且还成功的避免了恶意行为对智能合约的正常执行的干扰。将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可跟踪、不可攥改。

同时,由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。

所有新兴技术都会存在一些问题,智能合约也不例外。由于智能合约是“执行合约条款的计算机交易协议”。区块链上的所有用户都可以看到基于区块链的智能合约。但是,这会导致包括安全漏洞在内的所有漏洞都可见,并且可能无法迅速修复。

最近发生了几起这样的事故,4月22日中午,有黑客利用以太坊 ERC-20智能合约中BatchOverFlow漏洞攻击BEC(美链的代币“美蜜”)智能合约,成功向两个地址转出了天量级别的 BEC代币,导致市场上海量BEC被抛售。此事使得当日BEC的价值几乎归零。64亿人民币瞬间蒸发。

4月25日另一个智能合约SmartMesh(SMT)曝出漏洞,交易所表示,因SMT出现异常交易,各交易平台暂停SMT的充提和交易。现实世界里,财物失窃尚能够通过立案侦查追回损失。但是在互联网的世界里,尽管数字货币“钱途”无量,一旦被黑却血本无归。

虽然智能合约存在这些问题,但是我们应该理性看待。用辩证法的观点对待。

你可能感兴趣的:(区块链)