智能合约的定义
智能合约历史
1994年,计算机科学家和密码学家Nick Szabo首次提出“智能合约”概念。它早于区块链概念的诞生。Szabo描述了什么是“以数字形式指定的一系列承诺,包括各方履行这些承诺的协议”。虽然有它的好处,但智能合约的想法一直未取得进展——主要是缺乏可以让它发挥出作用的区块链。
直到2008年,第一个加密货币比特币才出现,同时引入了现代区块链技术。区块链最初是以比特币的底层技术出现的,各种区块链分叉导致发生很大的变化。智能合约在2008年依然无法融入比特币区块链网络,但在五年后,以太坊让它浮出水面。从此,涌现出了各种不同形式的智能合约,其中以太坊智能合约使用最广。
自以太坊开始,区块链是一个运行着智能合约的分布式平台:应用程序可以按照程序运行,不存在故障、审查、欺诈或第三方干预的可能性。智能合约给予了我们使用区块链技术来验证我们运行的代码的执行情况的能力。
智能合约定义
智能合约(英语:Smart contract )是一种旨在以信息化方式传播、验证或执行的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。
智能合约简单定义就是智能合约是可以处理 token 的脚本,围绕它可以发行,转移和销毁资产。这里说的资产是一个泛化的定义,不一定是币,可以是任何一种虚拟物品(比如应收,支付信息甚至加密猫)和现实世界的物品在区块链上的映射(比如舱单,抵押)。
CITA 智能合约
CITA 区块链框架使用的虚拟机 CITA-VM 和 EVM 采取同样的指令集,所以合约所使用的语言也是 solidity。由于 Ethereum 是目前全球最广泛的区块链网络,所以 solidity 也是使用最广泛的智能合约语言,围绕它的生态是非常丰富的,包括了合约调试,部署工具和保护合约安全的一些库。
这里再谈一下合约是由谁来执行的问题,在公链上,比如比特币或者以太坊,这些合约由我们称为“矿工”的参与方强制执行和证明。矿工其实是多台电脑(也可以称为矿机),它们把一项交易(执行智能合约,代币转账等) 以区块的形式添加到一个公开分账本上。使用者给这些矿工支付 “Gas”也就是手续费,它是运行一份合约的成本。
由于 CITA 是针对于企业的开放许可链框架,在 CITA 中矿工是出块节点,使用智能合约所需要的手续费是支付给出块节点的, gas 在这里叫做 quota。当然这里支付比例是可以自定义调整的,具体可以见文档。同时 CITA 可以调节为无币模式,在无币模式下,不存在手续费。