Day23 - 什麽是智能合约?

今天这篇呢,就来跟大家科普甚麽是智能合约(smart contract)。
其实「智能合约」,这个取名连当初的命名者V神都在推特上发文表示:我很後悔采用了这样的命名,应该把它取得无聊但准确一些,叫做「永久保存在链上的纪录」(persistent scripts)。

智能合约非常讽刺,既不够智能,也不是日常生活我们理解的合约。

它是一种可以用程序实作区块链上的每一笔交易纪录,能和交易对象设定交易条件,执行不需信任第三方。智能合约是全天候进行的,并不像银行三点半关门。因为运作在区块链上,所以每个节点都有维护数位帐本的义务,并且追踪最新状态,所以「部署合约」(把合约上链)需要「手续费」(即:燃料)。当前很流行的去中心化应用(DApp),就能够用多个智能合约组合在一起,彼此互相操作、互动,因为是用程序码写的,所以有保证交易过程透明(公开)和不可窜改的特性(可审计)。

智能合约是怎麽运作的呢?

一旦满足某项条件,智能合约就会执行,有点像是if怎麽样,then执行甚麽的概念。举例来说,A想发给B货币基金2400美元,在接下来的24个月内,每个月的10号都会发给B100美金,那麽A就必须在智能合约上提及(等於说是code要写到这些「变数」):

  1. 现在的日期
  2. 条件:每月10号自动给 B 发100美元,重复合约24次,直到钱耗尽为止
  3. 计算累加发出基金期数的函数

「合约」有点像是建立一套「游戏规则」,时间一到且触发条件,程序就会执行。很特别的是运作在链上,就有了区块链的价值,包括签合约、将其部署上链,都是用区块链的加密方法。虽然说很透明公开,但它若有一方违约,是不是在现实生活中有法律保障,这就有待立法商榷了。


<<:  [Day 27] 从零开始学Python - 科学绘图Matplotlib:画着你,画不出你的骨骼

>>:  [DAY 29] Q&A 谘询系统 - 程序开发(Forms)

[DAY 21] _SPI协议(1)

SPI协议类似於I2C差别在於是全双工的,正常有四条线:CLK、MISO、MOSI、SS 先来看这四...

Day5:深入认识 Coroutine

这几天我们把 Coroutine 神秘的面纱好像掀开了一点,知道他是用来解决非同步程序的问题,也我们...

Day10 HTML表单元素

表单是什麽? 表单是用来收集使用者输入的资料,而这些输入的资料通常会被送到网页服务器来处理或储存,...

第一位华人Tableau Zen Master 经验分享:成功管控Tableau的三部曲

在11/19 Tableau有一场线上的大中华区直播分享会,不知道大家有没有追里面的内容? 以下分享...

Day03 - 【入门篇】浅谈身份验证与授权(1)

本系列文之後也会置於个人网站 在「快速开始」的单元中,实际上已经完成了所有身份识别、身份验证、授权...