什么是智能合约(Smart Contract)?

文|李伟志

智能合约是什么?

在区块链上运行的程序,通常称为智能合约(Smart Contract)��。所以通常会把写区块链程序改称写智能合约。虽然比特币(Bitcoin)上也能写智能合约,但是比特币所支持的语法仅与交易有关,能做的事情比较有限。因此目前提到写智能合约,通常指的是支持执行图灵完备程序的以太坊(Ethereum)区块链⛓ 。

智能合約可以做什麼?

目前最常见的智能合约是各种加密货币合约��,开发者可以很容易地透过部署一个智能合约,来提供运行于以太坊上的新加密代币。如果这份智能合约相容于ERC20标准1,开发者不需要重新开发从挖矿到交易的整个代币生态系,你的新加密代币就可以直接使用支持支持以太坊的电子钱包��来收送,大大降低了建立新加密代币的门槛。

智能合约也可以用来运作各种公开公正的自动服务机构(DAO,权力下放自治组织)��。透过分散在全球各节点上运作的智能合约,所有运作与决策都是公开透明的,降低了交易的不确定性(不确定性)。

智能合约和一般程序程序的差异

以太坊智能合约确实有些和一般程序不同的特性,以下整理了四个不同点。

一、整合金流容易

一般的应用程序要整合金流是件非常不容易的事情而智能合约极容易整合金流系统(使用以太币或自行建立的新代币合约)。

二、部署时与后续写入时需费用

一般的应用程序需要提供网址让使用者下载,一般的网页应用程序也需要运行在伺服器上,开发者需要维持伺服器的运作以提供服务,这需要持续地花费(就算是免费的伺服器或网页空间,也是厂商自行吸收了费用),程序开始运作后,除了维持费用外不需额外的花费。

智能合约在部署时需要一笔费用,这笔费用将分给参与交易验证(挖矿)的人。而在合约部署成功后,合约会作为不可更改的区块链的一部分,分散地储存在全球各地以太坊的节点上。也因此,智能合约在部署后,并不需定期提供维持费用,同时查询已写入区块链的静态资料时也不需费用。只有在每次透过智能合约写入或读取计算结果时,需要提供一小笔交易费用。

三,储存资料的成本更高

一般的应用程序将资料储存在本机或伺服器上,需要资料时再从本机或伺服器上读取,而智能合约将资料储存在区块链上,储存资料所需的时间与成本相对昂贵。

四,部署后无法更改

一般的应用程序改版时可透过安装新版程序,网页应用程序也可透过部署新版程序达成,而智能合约一旦部署到区块链上后,就无法更改这个智能合约。当然聪明的开发者透过加入额外的智能合约,也已有办法绕过智能合约部署后无法再更改的限制。

如何编写智能合约?

Ethereum上的智能合约需要使用solidity语言来编写。之前还有其他能用来编写智能合约的语言如Serpent(类的Python),LLL(类的Fortran),但目前看到所有公开的智能合约都是使用solidity编写。官方宣传上说solidity是一种类似的JavaScript的语言,而且围绕着JavaScript的各种开发工具链都是使用属于使用Javascript生态系的NPM来提供的。

将智能合约部署到区块链的流程

写好solidity代码(.sol)后,需要先将程序代码编译(编译)成EVM(Ethereum Virtual Machine)能读懂的二进制度Contract ByteCode,才能部署到Ethereum的区块链上执行。部署到区块链上的合约会有一个和钱包地址(地址)一样格式的合约地址(Contract Address)。

部署后智能合约可自动执行。后续呼叫智能合约的时候,使用者可以使用部署合约的钱包地址(所有者帐户),或依据编写的智能合约条件,让其他钱包地址也能呼叫这个智能合约。呼叫智能合约,其实就是向这个合约地址发起交易,只是交易的不只是代币,而可以是智能合约提供的呼叫方法。

智能合约范例

打赏地址

**比特币:**1FcbBw62FHBJKTiLGNoguSwkBdVnJQ9NUn

**以太坊:**0xF055775eBD516e7419ae486C1d50C682d4170645

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容

  • 青冢 黄昏 倦鸟归林 斜阳是倦怠的眼 耷拉着眼皮 祭奠 青烟缕缕 这里面埋藏的 是干净的灵魂 ――《书生》
    1清明1阅读 115评论 0 0
  • 由于我实在受不了上个公司领导的各种拍脑袋的需求,因此提出了离职申请,很快领导给我了批复,这周五就可以办理离职手续,...
    慕容紫漾阅读 186评论 0 0