区块链(Blockchain)最早由中本聪(Satoshi Nakamoto)于2008年在其论文《比特币:一种点对点的电子现金系统》中提出,从广义上讲,区块链技术是利用将打包的数据区块串接成链进行验证与存储数据、利用点对点网络技术和共识算法来生成和更新数据、利用密码学方式保证数据传输的安全、利用自动化脚本代码(也就是智能合约)来操作数据的一种全新的分布式架构与计算范式。
从整体来看,区块链是融汇了密码学、数学、计算机科学、网络科学、社会学等多门学科的产物。从创新角度来看,区块链巧妙融合了多种现有技术,如非对称加密、点对点网络技术、哈希算法和共识算法。因此,区块链是一次工程学意义上而非科学理论上的创新技术。
✩去中心化信任
区块链可不依赖中央权威就能保证数据的完整性,即基于可靠数据实现去中心化信任。
✩区块链
区块链顾名思义就是把数据存储在区块中,并将每一个区块都与前一个区块相连接,组成链状结构。它仅支持添加(附加)新的区块,一旦添加就无法修改或删除。
✩共识算法
共识算法负责区块链系统内规则的执行。当各参与方为区块链设置规则后,共识算法将确保各方遵守这些规则。
✩区块链节点
区块链节点负责存储数据区块,是区块链中的存储单元,可保持数据同步和始终处于最新状态。任意节点都可以快速确定是否有区块发生了变更。当一个新节点加入区块链网络时,它会下载当前链上所有区块的副本。而当新节点与其他节点同步并更新至最新的区块链版本后,它可以像其他节点一样接收任意的新区块。
区块链是一项极具革命性、颠覆性的创新技术,可通过高效性、可靠性和安全性来革新现有的业务流程。
✩更高的信任度
区块链独特的运行机制省去了第三方认证机构的加入,使节点间可直接达成信任,其中涉及非对称加密、哈希算法、共识机制等技术。
✩更出色的安全性
区块链的所有网络节点都需要就数据准确性达成共识,并且所有经过验证的交易都将被永久记录,不可篡改。没有人可以删除交易,即使是系统管理员也不例外。
✩更高的效率
区块链通过在网络成员之间共享分布式账本,可以避免在记录对账上浪费时间。为了加快交易速度,区块链存储了一系列自动执行的规则,称为智能合约。
如果把比特币看作区块链1.0时代的开端,那么智能合约就是区块链2.0的代表性产物。
“智能合约”这个概念于1994年由一名身兼计算机科学家及密码学专家的学者尼克·萨博首次提出。智能合约(Smart contract)是一种特殊协议,在区块链内制定合约时使用,内含了代码函数(Function),具有与其他合约进行交互、做决策、存储资料及发送以太币等功能。
智能合约主要提供验证及执行合约内的条件。智能合约允许在没有第三方的情况下进行可信交易。这些交易可追踪且不可逆转。
智能合约与以太坊的关系
以太坊是第一个实现智能合约功能的区块链项目,但是以太坊并不是区块链的唯一平台。以太坊是一个分布式的计算平台,它生成名为ether的加密货币。程序开发人员可以在以太坊区块链上编写智能合约,这些以太坊智能合约会根据代码自动执行。
因此,智能合约只是运行在以太坊链上的一个程序。它是位于以太坊区块链上一个特定地址的一系列代码(函数)和数据(状态)。
以下内容摘自以太坊官方开发文档。
以太币
以太币(ETH)是以太坊的一种数字代币。从根本上讲,它是唯一可接受的交易费用支付方式。
以太坊虚拟机
以太坊虚拟机(EVM)是一个全局虚拟计算机,以太坊网络中每个参与者都会存储并同意其状态。任何参与者都可以请求执行EVM上的任意代码,但代码的执行会改变EVM的状态。
节点
以太坊是一个由计算机组成的分布式网络,其中运行可验证区块和交易数据的软件称为节点。需要一个客户端应用程序,在设备上“运行”一个节点。节点存储着EVM状态,节点间通过通信相互传播关于EVM状态变化和新状态更改的信息。
以太坊账户
一个以太坊账户是一个具有以太币余额的实体,可以在以太坊上发送交易。账户既可以由用户控制,也可以作为智能合约部署。账户和账户余额都存储在EVM中的一张大表格中,它们是EVM总体状态的一部分。
交易
“交易请求”是在EVM上执行代码请求的正式术语。“交易”是指已完成的交易请求和相关的EVM状态变化。账户将发起交易以更新以太坊网络的状态,最简单的交易是将ETH从一个账户转到另一个账户。
* 从我的账户发送 X 个ETH到Alice的账户。
* 将一些智能合约代码发布到EVM内存中。
* 使用 Y 参数执行EVM中 X 地址的智能合约代码。
区块
区块指一批交易的组合,并且包含链中上一个区块的哈希。这将使区块连接在一起(成为一个链),因为哈希是从区块数据中加密得出的。
Gas
Gas指在以太坊网络上执行特定操作所需计算的工作量。由于每笔以太坊交易都需要计算资源才能执行,并且每笔交易都需要付费。从这个方面来讲,Gas是指在以太坊中成功进行交易所需的费用。
智能合约
智能合约是程序开发人员发布在EVM内存中的可重用代码片段(程序)。任何人都可以通过提出“交易请求”来请求执行智能合约代码。
共识机制
共识机制(也称共识协议或共识算法)允许分布式系统(计算机网络)协同工作并确保安全。
✩工作量证明
以太坊使用的共识协议称为工作量证明(PoW)。工作量证明是一种允许去中心化的以太坊网络达成共识或一致认可账户余额和交易顺序的机制,这种机制允许以太坊网络的节点就以太坊区块链上记录的所有信息的状态达成共识,并防止某些节点受到攻击。
以太坊的工作量证明算法(Ethash)要求矿工经过激烈的试错竞赛,找到一个区块的随机数。只有具备有效随机数的区块才能加入区块链中。
✩挖矿
挖矿是一个通过创造区块添加转账到以太坊区块链上的过程。计算机利用时间和算力来处理交易和生产模块。以太坊使用工作量证明作为共识机制,而挖矿就是工作量证明的本质。
由于智能合约的技术堆栈不是本书的主要内容,读者若需要了解更多相关知识可访问其官网。