区块链智能合约

2017 年底,比特币涨到了最高达十二万元人民币,区块链技术也慢慢走进了技术圈的视野。

 

随着以太坊 Ethereum 的兴起,这个开源的拥有智能合约功能的区块链平台,也引起了大家的注意。

 

同时,能在以太坊平台上部署、运行的智能合约,也逐渐被大家所了解。谜恋猫 CryptoKitties 的大热,又一次燃起了大众对智能合约的应用场景之一的 Dapp 的关注。

 

 

 

2. 什么是智能合约?

 

智能合约(Smart Contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。

 

我们这里讲的智能合约指的是区块链领域的智能合约。

 

区块链领域的智能合约有以下特点:

 

规则公开透明,合约内的规则以及数据对外部来讲是可见的。

 

所有交易公开可见,任何地址与智能合约进行交易,都会公开的展示起来,不会存在任何虚假或者隐藏的交易。

 

之前社会中的合同或者约定的行为,都是由人来制定规则,然后由人去执行,遇到边界问题或者异常,再由人去做界定。

 

但是智能合约不同,开发者通过智能合约去制定一套规则,然后发布到线上,当人们去做事情与智能合约交互的,由机器去完成业务的部分,这样就避免了由人来执行时造成的作弊行为。

 

这样就引入了去中心化自治组织(DAO,Decentralized Autonomous Organization)的概念,从理论上对智能合约的意义进行了升华。

 

3. 智能合约的分类

 

3.1 以太坊 Solidity

 

Solidity 是以太坊的智能合约实现的编程语言,运行在以太坊的虚拟机 Ethereum Virtual Machine(EVM)上。

 

Solidity 是静态类型的,支持继承、库和其他功能中复杂的用户定义类型。

 

Solidity 是本系列课程的主要内容,将在接下来的课程中详细介绍。

 

Hyperledger Fabric

 

Hyperledger Fabric 是 The Linux Foundation 主办的 Hyperledger 项目之一。

 

Hyperledger Fabric 旨在作为开发模块化体系结构的区块链应用程序的基础,以便诸如共识和会员服务等组件可以即插即用。

 

它使用容器技术来托管构成系统应用逻辑的智能合约(也称为链代码),简而言之,Hyperledger Fabric 是为企业构建的领先的开源、通用区块链结构。

 

和以太坊不同的是 Hyperledger 主要面对的是企业级的项目开发,Hyperledger 项目的主要推动者是 IBM。

 

 

 

3.2 以太坊 Ethereum 的 Solidity

 

Solidity 是太坊 Ethereum 的智能合约使用的的编程语言。

 

Solidity 是一种静态类型的编程语言,用于开发在 EVM 上执行的智能合约,被编译为可在 EVM 上执行的字节码。

 

借由 Solidity,开发人员能够编写出可自我执行其欲实现之商业逻辑的应用程序,该程式可被视为一份具权威性且永不可悔改的交易合约,对已具备程式编辑能力的人而言,编写 Solidity 的难易度就如同编写一般的编程语言。

 

下面是一个简单的智能合约示例,这里先做简单的认识,在接下来的课程中,我们会逐一分析。

 

 

 

 

4. 智能合约和代币的关系

 

提起智能合约,很多人可能不是很清楚,但是一说 ICO,大部分人都是很感兴趣的。

 

ICO 的本质就是,用智能合约建立规则,并存储数据。用户给智能合约发送一定数量的 Eth,智能合约就在自己的账户内建立对应地址的代币数据。

 

4.1 ERC20

 

以太坊一直在维护一个项目,被成为EIP(Ethereum Improvement Proposals)。

 

Ethereum Improvement Proposals (EIPs) describe standards for the Ethereum platform, including core protocol specifications, client APIs, and contract standards.

 

 

ERC20 定义了 ERC-20 Token 的通用标准,所有符合 ERC20 的智能合约创建出来的代币,都被称为 ERC20 代币,都能够被以太坊钱包(几乎所有支持以太币的钱包,包括 imToken、币兜钱包等,也支持 ERC-20 的代币)识别使用。

 

4.2 ERC223

 

由于之前出现过智能合约的问题,导致至少有价值四十万美元的以太币的损失,所以后来出现了 ERC20 的改良版本——ERC223。ERC223 标准是向下兼容 ERC20 的。

 

目前市面上绝大部分代币都是基于 ERC20 标准的,基于 ERC223 的并不多,比如 ATN。

 

4.3 他们的关系

 

举个简单的例子,智能合约就像是一张白纸,代币就像是用白纸叠成的纸飞机,我们还可以用这张白纸来做纸青蛙。

 

 

 

 

5. 智能合约能给我们带来什么?

 

从现在这个时间点来看,智能合约首先的应用是创造代币,也就是大家提到的 ICO。

 

ICO 创造一种新的商业模式,它将社区的力量发挥出来。在技术圈内,社区一直是很重要的力量,很多知名的开源项目比如 Linux,都是集合了社区开发者的智慧变得越来越完善。

 

而 ICO 的意义在于,真正有价值的项目可以不用通过传统的风投而是通过社区人员众筹来获得项目的启动资金,并且随着项目的发展,社区人员也能通过它来收到回报。这从一定程度上解决了技术人员有能力做项目,却没能力筹钱的问题。

 

但是 ICO 也暴露了人性的恶,2017 年开始,大量没有技术背景的 ICO 出现在全球市场上,各种负面新闻也出现,到 2018 年年初,已经有大部分 ICO 以失败告终。

 

智能合约的中心思想是用机器去实现既定的规则,让规则内的人们不会去作弊,并提高了业务的效率。

 

除了发代币之外,智能合约的应用场景非常多,比如投票、结合物联网做智能家居等等。

 

在不久的将来,智能合约的应用注定会爆发。

猜你喜欢

转载自www.cnblogs.com/mg66/p/9316346.html