智能合约简单介绍

1

智能合约的概念

智能合约程序不只是一个可以自动执行的计算机程序:它自己就是一个系统参与者。它对接收到的信息进行回应,它可以接收(通过Transactions或者Events)和储存价值(State),也可以向外发送信息和价值。这个程序就像一个可以被信任的人,可以临时或者长期保管资产,并且按照事先的规则自动执行操作。

不同的区块链项目使用不同的程序语言作为智能合约的编程语言。例如,HyperLedger Fabric使用Java、Go开发ChainCode(中文是链码,Fabric的智能合约),R3的Corda使用Java。以太坊使用以下语言。其中Solidity被用的非常普遍。我们在本书主要用Solidity作为例子。

Solidity:类JavaScript,这是以太坊推荐的旗舰语言,也是最流行的智能合约语言。具体用法可以参考Solidity文档。

Serpent:类Python

LLL:类Lisp

2

智能合约与DApp的关系与区别

以太坊社区把基于智能合约的应用称为去中心化的应用程序(Decentralized App)。DApp的目标是(或者应该是)让你的智能合约有一个友好的界面,外加一些额外的东西,例如IPFS(可以存储和读取数据的去中心化网络,不是出自以太坊团队但有类似的精神)。DApp可以跑在一台能与以太坊节点交互的中心化服务器上,也可以跑在任意一个以太坊平等节点上。(花一分钟思考一下:与一般的网站不同,DApp不能跑在普通的服务器上。他们需要提交交易到区块链并且从区块链而不是中心化数据库读取重要数据。相对于典型的用户登录系统,用户有可能被表示成一个钱包地址而其它用户数据保存在本地。许多事情都会与目前的web应用有不同架构。)

DApp流程:

①用Solidity(或其他语言)编写智能合约(后缀为.sol)

②用solc编译器将.sol合约编译成EVM字节码

③编译好的字节码回送给dapp前端

④前端将编译好的智能合约部署到区块链中

⑤区块链返回智能合约地址+ABI(合约接口的二进制表示。合约接口用JSON表示,包括变量,事件和可以调用的方法

⑥前端通过Address+ABI+nonce,调用智能合约。

⑦智能合约开始处理。

智能合约技术的产生对互联网变革非常重要,但是不能直接用于支撑DApp应用生态环境。侧链、VM也撑不起应用生态,因为我们知道应用运行于OS之上,而不是直接运行在裸机之上。一定程度上讲,VM、侧链可以类比图灵等价的裸机。Elastos OS直接安装在裸机上,Elastos Runtime安装在其他OS上,两者的应用编程模型一致。不论Ethereum与Elastos Chain相似与否、起步早晚,都要完成应用生态支撑那剩下95%的长途跋涉。Elastos开源社区要努力,这也就是徐继哲(GNU中国社区积极分子)参与Elastos联合创世始人的重要性。

Elastos Carrier作为去中心化的互联网支撑平台,需要Elastos Chain区块链的可信服务以及Elastos Runtime虚拟运行环境来承载DApp应用。Elaste Chain并不直接暴露给DApp开发SDK。Serverless App或说Decentrallized App,用户ID、微网站(没有互联网固定ID地址的网站)ID、数字资产(游戏、应用、多媒体内容等)ID不能作假,点对点可以交易之外,DApp根本看不到什么是智能合约技术。

3

智能合约的局限性

对于没有编程知识的人来说,他们无法访问智能合约。对于这些人来说,智能合约只是一个概念。并且,由于大部分人都不是程序员,所以这使得其在大众看来可行性不高。由于需要将条款直接编入代码,所以想要使用智能合约就必须具备编程知识。这就需要具有专业知识的人员对合同进行修改和更新。智能合约也许能减轻对律师的依赖,但是相对的却需要程序员的参与。而包括程序员在内的第三方人员的参与,却是智能合约想要减少的。虽然智能合约具有十足的潜力,但是不幸的是,由于这个障碍的存在使得其还无法成为主流的解决方案。

4

智能合约与Oracle的关系

一些开发者已经着手于解决智能合约技术的大众化。其中一个平台就是Oracle,它是一个可视智能合约编辑器,专门为不具备编码能力的日常用户开发。其目的是为了消除专业程序员和日益增加的潜在用户之间的区块链专业知识差距。这个平台的界面简化了流程,消除了用户所需的大部分使用智能合约的费用以及相关第三方的参与。

下一章我们将介绍智能合约与传统编程的区别及外部调用

感谢机械工业出版社华章分社的投稿,本文来自于华章出版的著作《区块链安全技术指南》。

作者简介:

黄连金

硅谷Dynamic Fintech Group管理合伙人

吴思进

33复杂美创始人及CEO

曹锋

PCHAIN发起人,中物联区块链协会首席科学家

季宙栋

Onchain分布科技首席战略官,本体联合创始人,

马臣云

北京信任度科技CEO、信息安全专家、产品管理专家

李恩典

美国分布式商业应用公司董事与中国区总裁

徐浩铭

CyberVein数脉链项目技术负责人

翁俊杰

IBM 10余年开发及解决方案经验,批Fabric应用开发者,NEO核心开发者之一

矩阵数字经济智库由矩阵财经依托“MATRIX贝叶斯研究基金”(MATRIX与清华大学教育基金会联合成立)和MATRIX与“一带一路研究中心”的战略合作协议发起。智库将联合区块链、人工智能、金融、数字资产管理与投资领域的专家,聚焦传统产业转型和技术/商业创新,以新技术赋能实体经济,推动技术进步,引领数字经济的变革。

矩阵财经出品

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180802G06VQN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券