1、区块链的概念和特征
区块链Blockchain是对账本分布式有效记录,并提供完善的脚步以支持不同的业务逻辑。数据已区块为单位产生和存储,按时间顺序连成链式的数据结构。所有的节点共同参与整个系统的数据验证、存储和维护。新块的验证取决于全网多数节点的确认(数量取决于不同的共识机制),并向全网节点广播进而同步,之后不能修改和删除。
多方并不是区块链的客户端,而是区块链的记账参与方,多个利益不完全一致的实体组成。
为了验证区块链的有效性,区块链记录的账本应处于所有参与者都被允许访问的状态,公开账本可访问性的公开并不是信息本身的公开。
区块链本身能够创建参与者之间的信任,不依赖于单一信任中心系统,即区块链本身不创建信任,而是作为信任的载体。
不可篡改是区块链的必要不充分条件。一次写入多次读取,不可篡改,如cd光盘。但并不是严格意义上的不可篡改,用难以篡改更合适。
2、区块链的核心技术
分布式账本技术DLT(Distributed Ledger Technology)本质上是多个网络节点、多个网络地址或者多个组织构成的网络中进行的数据分享、同步和复制的去中心化的数据存储技术。
去中心化的分布式账本在数据维护策略上有效减少系统的负担。并利用了互联网中大量零散节点所沉淀的庞大资源池。
分布式账本中任一节点拥有独立的、完整的一份数据存储。节点间通过周期性或事件驱动的共识达成数据存储的最终一致。
区块链是一个历史可追溯、不可以篡改、解决多方互相问题的分布式系统;解决一致性问题的过程叫共识。 分布式系统的共识达成要依赖共识算法。共识算法解决的是,节点发起提按其他节点如何就这个提案达成一致的问题。共识算法分为可信节点间的共识算法和不可信节点间的共识算法。其中paxos和raft最为著名,而raft又分为pow和pos适用于公链的共识算法;pbft适用于联盟链和私有链的共识算法
智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,交易可以追踪但不可以逆转。目的是提供优于传统合同方法的安全,并减少与合同相关的其他交易成本。
由计算机学家、法学家及密码学家-尼克。萨博在20世纪90年代首次提出。并定义如下: 一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议;尼克-萨博希望借助密码学及其他的数字安全机制,将传统的合约条款的制定与履行方式,置于计算机之下,降低相关的成本。(遗憾的是尼克萨博的理论没有实现)。随着区块链的技术的出现于成熟,智能合约作为区块链及未来网络的合约的重要研究方向,得以快速发展。
在区块链的智能合约包括事件处理和保存机制,以及一个完备的状态机,用于接受和处理各种智能合约,数据的状态处理在合约中完成。不用引入第三方权威机构,强制履行合约,避免违约行为。
合约制定的高时效性:智能合约在制造中不依赖第三方权威机构参于,只需合约各方通过计算机技术手段,将共同约定的条款转化为自动化、数字化的约定协议,减少中间环节,提高协议制定的响应效率。
合约维护的低成本性:智能合约以计算机程序为载体,一旦成功部署,系统按约定监督、执行,一旦发送违约,程序按约定执行。
合约执行的高准确性:减少人为干预,计算机确保正确执行。
风险:不能忽略新兴技术的潜在风险。
已经在以太坊、Hyperledger Fabric 等影响力较强的区块链项目中,得到广泛应用。
以太坊的智能合约应用:以太坊的一个智能合约就是一段可以被以太坊虚拟机执行 的代码。智能合约一旦部署就无法被修改。用户通过合约完成账户的交易,实现对账户的货币及状态进行管理与操作。
Hyperledger Fabric 的智能合约应用:在 Hyperledger Fabric 项目中,智能合约的概念 及应用被更广泛的延伸。作为无状态的、事件驱动的、支持图灵完备的自动执行代 码,智能合约在 Fabric 中部署在区块链网络中,直接与账本进行交互,处于十分核 心的位置。