用智能合约对数据上锁

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

智能合约概念于1994年由Nick Szabo首次提出。智能合约的目的是提供优于传统合约的安全方法,并减少与合约相关的其他交易成本。 

区块链上的智能合约则是一段写在区块链上的代码,并可以被所有区块链客户端传播、验证和执行的。它一般有以下特点:

举个例子,销售手机充值卡(其实核心是交易充值密码),传统模式就是如下图,用户将钱给商铺,商铺把充值卡(充值密码)交给用户。

如果同样的交易,我们把它放在区块链上,变成把手机充值密码以50区块链货币的价格销售给他人,那么这份智能合约就需要规定在你收到50区块链货币的同时,自动告知对方手机充值密码。

如下图,开发人员通过编程的方式,将上述触发条件及自动执行内容写成代码并上传至区块链网络。当对应事件触发,满足预设条件,如此处,当你收到对方发过来的50区块链货币时,程序自动检查条件满足,便执行告知对方手机充值密码这一动作。一切都是智能合约这个程序自动执行的,无人干预,也不能抵赖。

需要说明的是,虽然比特币中已经有了智能合约这个概念(比特币中其实只称之为合约,或者分布式合约),但鉴于比特币是完全的电子货币设计,故其可编程的灵活性有限,且为了防止服务器被攻击,特意将可执行程序设计为图灵非完全(不支持循环等可能产生无法预估时间的操作),后期为了进一步预防服务器被攻击的风险,更多的早期版本所支持的命令都被取消了。

在以太坊的设计中,智能合约被作为重点考虑,通过执行代码需要收费这样的设计,使得程序设计为图灵完全,即可以用所有现代编程语言可以用的代码。

值得特别提出的是,智能合约因为固化在区块链,因此具有不可篡改性,也因此使得若其有缺陷的存在,也一样不可修复。一旦被发现缺陷的存在,常见处理方式有三种:


区块链系统概述章节目录:

1、用密码学保护区块(包括:哈希计算、数字签名、对交易签名。)

2、把区块连成链状(用哈希标记区块、单向链表的区块链)

3、用分布式网络把区块共享出去  

4、保存少量数据的轻量客户端

5、用智能合约对数据上锁

6、重要基础概念(软分叉、硬分叉、拜占庭将军问题、授权区块链)【请见下期~】