我读书,讲(写)给你听,跟币圈正义从零开始共同学习,每次学透一点点,形成清晰的知识脉络了。让我们一起深耕币圈,玩转区块链!
壹
《从零开始学习区块链》系列,今天将学习“智能合约”。除了公链、DAPP、通证经济,智能合约也是当下的搜索热词。关于智能合约,我们可以不去学习具体代码编程,但是需要了解它的优点、运作方法等实用的知识。
贰
智能合约产生背景
传统合约
传统合约在我们生活中是很常见的,小到口头约定,大到公司、国家之间签订的协议。这些合约能否得到执行严重依赖于参与方的诚信和法律的约束,违约的事情时有发生,执行合约则需要消耗大量的财力和资源。
我们举例说明,如果A和B两个人签订了协议,但是A没有履行合约,给B造成了严重的损失,这时候B想要维权则需要向法院起诉,胜诉后还要申请强制执行,整个流程下来,劳神伤财。
智能合约
如果是智能合约的话,问题就简单多了。它是通过设计好的代码执行的,一旦某事件触发了合约条款,代码自动执行,无论当事人是否愿意。
比如,我们两个去看球赛,然后打赌哪队会赢,我觉得A队会赢,你觉得B队会赢,输的给赢的人100元,然后我们达成了一个智能合约,双方都在智能合约控制的账户存放100元,球赛结束,智能合约就会根据接收到的指令自动判断输赢,将钱打到获胜者的账户。
智能合约履行过程是高效透明、不以人的意志为转移的,不需要第三方介入。
智能合约定义解析
“智能合约”一词最早是在1995年尼克·萨博(Nick Szabo)的文章中出现的。尼克·萨博是一名多产的跨领域法律学者,在他发表的文章中这样定义了智能合约:
“一个智能合约是一套以数字形式定义的承诺(promises) ,包括合约参与方可以在上面执行这些承诺的协议。”
关键词一:数字形式——合约是以计算机中可读代码的形式存在的,即根据参与方达成的协定,智能合约通过编写代码建立权利和义务,交给计算机网络执行。
关键词二:承诺——承诺是合约参与方之间达成的共识,其中包括双方的权利和义务,这些承诺是制定合约的目的,就像上面打赌球赛的例子,输的给赢的100元就是一个承诺。
关键词三:协议——即技术实现,可以理解为记录和履行承诺的工具。协议的选择主要取决于合约履行中被交易资产的本质,比如,协议中射击比特币支付,就要采用比特币协议。
智能合约工作原理
智能合约组成:事物处理和保存机制+完备的状态机。
事物——主要是需要发送的数据;事件——对数据的描述信息;
主要过程:事物和事件传入智能合约,其中事件描述信息中包含了触发条件,智能合约会进行状态机判断。如果触发条件满足(可能是一个或者几个),智能合约就会自动发出设定好的数据以及包含触发条件的事件。简单的理解,就是事件和事物A进去,经过智能合约处理,产出事件和事物B,触发条件不同,B中包含的事物和事件也就不同,智能合约扮演的角色是裁判,负责判断并执行。通过智能合约,承诺可以以数字化形式按照参与者的意志被正确、高效的执行。
智能合约的实现步骤:构建→存储→执行