2021-06-26 17:49 | 出处: 集百家之言
1 基本概念
1.1 区块链定义
区块链/ Blockchain
区块链技术是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案。
块链式数据结构/ Chained-Block Data Structure
一段时间内发生的事务处理以区块为单位进行存储,并以密码学算法将区块按时间先后 顺序连接成链条的一种数据结构。
去信任/ Trustless
去信任表示用户不需要相信任何第三方。用户使用去信任的系统或技术处理交易时非常 安全和顺畅,交易双方都可以安全地交易,而不需要依赖信任的第三方。
点对点/ Peer-to-Peer / P2P
通过允许单个节点与其他节点直接交互,无需通过中介机构,从而实现整个系统像有组 织的集体一样运作的系统。
去中心化/ Decentralized
去中心化是区块链最基本的特征,指区块链不依赖于中心的管理节点,能够实现数据的 分布式记录、存储和更新。
中本聪/ Satoshis Nakamoto
中本聪是比特币的发明人或发明组织,目前身份存疑。“中本聪”也可能仅仅是个化名。 中本聪于 2008 年发表了一篇名为《比特币:一种点对点式的电子现金系统》(Bitcoin: A Peer-to-Peer Electronic Cash System)的论文,描述了一种被称为“比特币”的电子 货币及其算法,被视为是区块链的第一个成功实践。
1.2 区块链特性
匿名性/ Anonymous
由于区块链各节点之间的数据交换遵循固定且预知的算法,因此区块链网络是无须信任 的,可以基于地址而非个人身份进行数据交换。
自治性/ Autonomous
区块链采用基于协商一致的机制,使整个系统中的所有节点能在去信任的环境自由安全 地交换数据、记录数据、更新数据,任何人为的干预都不起作用。
开放性/ Openness
区块链系统是开放的,任何节点都能够拥有全网的总账本,除了数据直接相关各方的私 有信息通过非对称加密技术被加密外,区块链的数据对所有节点公开,因此整个系统信 息高度透明。
可编程/ Programmable
分布式账本的数字性质意味着区块链交易可以关联到计算逻辑,并且本质上是可编程 的。因此,用户可以设置自动触发节点之间交易的算法和规则。
可追溯/ Traceability
区块链通过区块数据结构存储了创世区块后的所有历史数据,区块链上的任一一条数据 皆可通过链式结构追溯其本源。
不可篡改/ Tamper Proof
区块链的信息通过共识并添加至区块链后,就被所有节点共同记录,并通过密码学保证 前后互相关联,篡改的难度与成本非常高。
集体维护/ Collectively Maintain
区块链系统是由其中所有具有维护功能的节点共同维护,所有节点都可以通过公开的接 口查询区块链数据和开发相关应用。
无需许可/ Permissionless
无需许可表示所有节点都可以请求将任何交易添加到区块链中,但只有在所有用户都认 为合法的情况下才可进行交易。
1.3 区块链类型
根据应用范围
公有链/ Public Blockchain
公有链的任何节点都是向任何人开放的,每个人都可以参与到这个区块链中的计算,而 且任何人都可以下载获得完整区块链数据,即全部账本。
联盟链/ Consortium Blockchain
联盟链是指参与每个节点的权限都完全对等,各节点在不需要完全互信的情况下就可以 实现数据的可信交换,联盟链的各个节点通常有与之对应的实体机构组织,通过授权后 才能加入或退出网络。联盟链是一种公司与公司、组织与组织之间达成联盟的模式。
私有链/ Private Blockchain
在某些区块链的应用场景下,开发者并不希望任何人都可以参与这个系统,因此建立一 种不对外公开、只有被许可的节点才可以参与并且查看所有数据的私有区块链,私有链 一般适用于特定机构的内部数据管理与审计。
根据部署机制
主链/ 主网/ Main net
通常区块链,尤其是公有链都有主网和测试网。主网是区块链社区公认的可信区块链网 络,其交易信息被全体成员所认可。有效的区块在经过区块链网络的共识后会被追加到 主网的区块账本中。
测试链/ 测试网/ Testnet
测试链是对应主网具有相同功能,但主要目的用于测试的区块链。由于测试链是为了在 不破坏主链的情况下尝试新想法而建立的,只作为测试用途,因此测试链上的测试币不 具备交易价值。比特币的测试链已经历多次重置,以阻止将其测试币用作交易、投机用 途的行为。
根据对接类型
侧链/ Side Chain
侧链是主链外的另一个区块链,锚定主链中的某一个节点,通过主链上的计算力来维护 侧链的真实性,实现公共区块链上价值与其他账簿上价值在多个区块链间的转移。最具 代表性的实现有 Blockstream。这种主链和侧链协同的区块链架构中的主链有时也被称 为母链(Parent chain)。
互联链/ InterChains
针对特定领域的应用可能会形成各自垂直领域的区块链,互联链就是一种通过跨链技术 连接不同区块链的基础设施:包括数据结构和通信协议,其本身通常也是区块链。各种 不同的区块链通过互联链互联互通并形成更大的区块链生态。与互联网一样,互联链的 建立将形成区块链的全球网络。
1.4 区块链层级结构
数据层/ Data Layer
数据层主要描述区块链的物理形式,是区块链上从创世区块起始的链式结构,包含了区 块链的区块数据、链式结构以及区块上的随机数、时间戳、公私钥数据等,是整个区块 链技术中最底层的数据结构。
网络层/ Network Layer
网络层主要通过 P2P 技术实现分布式网络的机制,网络层包括
P2P 组网机制、数据传 播机制和数据验证机制,因此区块链本质上是一个 P2P 的网络,具备自动组网的机制,
节点之间通过维护一个共同的区块链结构来保持通信。
共识层/ Consensus Layer
共识层主要包含共识算法以及共识机制,能让高度分散的节点在去中心化的区块链网络 中高效地针对区块数据的有效性达成共识,是区块链的核心技术之一,也是区块链社群 的治理机制。目前至少有数十种共识机制算法,包含工作量证明、权益证明、权益授权 证明、燃烧证明、重要性证明等。
数据层、网络层、共识层是构建区块链技术的必要元素,缺少任何一层都不能称之为真 正意义上的区块链技术。
激励层/ Actuator Layer
激励层主要包括经济激励的发行制度和分配制度,其功能是提供一定的激励措施,鼓励 节点参与区块链中安全验证工作,并将经济因素纳入到区块链技术体系中,激励遵守规 则参与记账的节点,并惩罚不遵守规则的节点。
合约层/ Contract Layer
合约层主要包括各种脚本、代码、算法机制及智能合约,是区块链可编程的基础。将代 码嵌入区块链或是令牌中,实现可以自定义的智能合约,并在达到某个确定的约束条件 的情况下,无需经由第三方就能够自动执行,是区块链去信任的基础。
应用层/ Application Layer
区块链的应用层封装了各种应用场景和案例,类似于电脑操作系统上的应用程序、互联 网浏览器上的门户网站、搜寻引擎、电子商城或是手机端上的 APP,将区块链技术应 用部署在如以太坊、EOS、QTUM 上并在现实生活场景中落地。未来的可编程金融和 可编程社会也将会是搭建在应用层上。
激励层、合约层和应用层不是每个区块链应用的必要因素,一些区块链应用并不完整包 含此三层结构。
2 区块链基本技术
2.1 区块数据
区块/ Block
区块是在区块链网络上承载交易数据的数据包,是一种被标记上时间戳和之前一个区块 的哈希值的数据结构,区块经过网络的共识机制验证并确认区块中的交易。
父块/ Parent Block
父块是指区块的前一个区块,区块链通过在区块头记录区块以及父块的哈希值来在时间 上排序。
区块头/ Block Header
记录当前区块的元信息,包含当前版本号、上一区块的哈希值、时间戳、随机数、 Merkle Root 的哈希值等数据。此外,区块体的数据记录通过 Merkle Tree 的哈希过程 生成唯一的 Merkle Root 记录于区块头。
区块体/ Block Body
记录一定时间内所生成的详细数据,包括当前区块经过验证的、区块创建过程中生成的 所有交易记录或是其他信息,可以理解为账本的一种表现形式。
哈希值/ 散列值/ Hash Values / Hash Codes / Hash Sums / Hashes
哈希值通常用一个短的随机字母和数字组成的字符串来代表,是一组任意长度的输入信 息通过哈希算法得到的“数据指纹”。因为计算机在底层机器码是采用二进制的模式, 因此通过哈希算法得到的任意长度的二进制值映射为较短的固定长度的二进制值,即哈 希值。此外,哈希值是一段数据唯一且极其紧凑的数值表示形式,如果通过哈希一段明 文得到哈希值,哪怕只更改该段明文中的任意一个字母,随后得到的哈希值都将不同。
时间戳/ Timestamp
时间戳从区块生成的那一刻起就存在于区块之中,是用于标识交易时间的字符序列,具 备唯一性,时间戳用以记录并表明存在的、完整的、可验证的数据,是每一次交易记录 的认证。
随机数/ 一次性的随机数/
Nonce
Nonce 是指“只使用一次的随机数”,在挖矿中是一种用于挖掘加密货币的自动生成的、
毫无意义的随机数,在解决数学难题的问题中被使用一次之后,如果不能解决该难题则 该随机数就会被拒绝,而一个新的 Nonce 也会被测试出来并且直到问题解决,当问题
解决时矿工就会得到加密货币作为奖励。在区块结构中,Nonce 是基于工作量证明所设 计的随机数字,通过难度调整来增加或减少其计算时间;在信息安全中,Nonce 是一个 在加密通信只能使用一次的数字;在认证协议中,Nonce 是一个随机或伪随机数,以避免重放攻击。
梅克尔树/ Merkle Tree
梅克尔树(又叫哈希树)是一种二叉树,是一种高效和安全的组织数据的方法,被用来 快速查询验证特定交易是否存在,由一个根节点、一组中间节点和一组叶节点组成。它 使用哈希算法将大量的书面信息转换成一串独立的字母或数字。最底层的叶节点包含存 储数据或其哈希值,每个中间节点是它的两个子节点内容的哈希值,根节点也是由它的 两个子节点内容的哈希值组成。
区块容量/ Block Size
区块链的每个区块,都是用来承载某个时间段内的数据的,每个区块通过时间的先后顺 序,使用密码学技术将其串联起来,形成一个完整的分布式数据库,区块容量代表了一 个区块能容纳多少数据的能力。
未花费的交易输出/ Unspent Transaction Output / UTXO
未花费的交易输出是一个包含交易数据和执行代码的数据结构,可以理解为收到的但尚 未花费的加密货币清单。比特币和其他加密货币在其区块链技术中使用 UTXO,以验 证一个人是否拥有未使用的加密货币可用于支出。
2.2 链式结构
链/ Chain
链是由区块按照发生的时间顺序,通过区块的哈希值串联而成,是区块交易记录及状态 变化的日志记录。
链下/ Off-chain
区块链系统从功能角度讲,是一个价值交换网络,链下是指不存储于区块链上的数据。
无代币区块链/ Token-Less Blockchain
即区块链并不通过代币进行价值交换,一般出现在不需要在节点之间转移价值并且仅在 不同的已被信任方之间共享数据的情况下,如私有链。
创世区块/ Genesis Block
区块链中的第一个区块被称为“创世”区块。创世区块一般用于初始化,不带有交易信 息。
区块高度/ Block Height
一个区块的高度是指在区块链中它和创世区块之间的块数。
分叉/ Fork
在区块链中,由矿工挖出区块并将其链接到主链上,一般来讲同一时间内只产生一个区块,如果发生同一时间内有两个区块同时被生成的情况,就会在全网中出现两个长度相 同、区块里的交易信息相同但矿工签名不同或者交易排序不同的区块链,这样的情况叫 做分叉。
软分叉/ Soft Fork
指在区块链或去中心化网络中向前兼容的分叉。向前兼容意味着,当新共识规则发布 后,在去中心化架构中节点不一定要升级到新的共识规则,因为软分叉的新规则仍旧符 合老的规则,所以未升级的节点仍旧能接受新的规则。
硬分叉/ Hard Fork
指在区块链或去中心化网络中不向前兼容的分叉,硬分叉对加密货币使用的技术进行永 久更改,这种变化使得所有的新数据块与原来的块不同,旧版本不会接受新版本创建的 区块,要实现硬分叉所有用户都需要切换到新版本协议上。如果新的硬分叉失败,所有 的用户将回到原始数据块。
幽灵协议/ GHOST Protocol
通过幽灵协议,区块可以包含不只是他们父块的哈希值,也包含其父块的父块的其他子 块(被称为叔块)的陈腐区块的哈希值,这确保了陈腐区块仍然有助于区块链的安全 性,并能够获得一定比例的区块奖励,减少了大型矿工在区块链上的中心化倾向问题。
孤块/ Orphan Block
孤块是一个被遗弃的数据块。因为很多节点都在维护区块链并同时创建多个区块,但是 一次只能有一个被继续继承,而其它被遗弃的数据块就是孤块。
陈腐区块/ Stale Block
是父块的父块的“其他”子块,或更一般的说是祖先的其他子块,但不是自己的祖先, 如果 A 是 B 的一个叔块,那 B 是 A 的侄块。
2.3 非对称加密
密码学/ Cryptography
密码学是数学和计算机科学的分支,同时其原理大量涉及信息论。密码学不只关注信息 保密问题,还同时涉及信息完整性验证(消息验证码)、信息发布的不可抵赖性(数字 签名)、以及在分布式计算中产生的来源于内部和外部的攻击的所有信息安全问题。
加密/ Cipher
加密是一系列使信息不可读的过程,它能使信息加密也能使信息加密后能够再次可读, 在加密货币中使用的密码也使用由字母和数字组成的密钥,该密钥必须用于解密密码。
加密算法/ Encryption Algorithm
加密算法是一个函数,也可以视为是一把钥匙,通过使用一个加密钥匙,将原来的明文 文件或数据转化成一串不可读的密文代码。加密流程是不可逆的,只有持有对应的解密 钥匙才能将该加密信息解密成可阅读的明文。加密使得私密数据可以在低风险的情况 下,通过公共网络进行传输,并保护数据不被第三方窃取、阅读。
非对称加密/ Asymmetric Cryptography
非对称加密是一种保证区块链安全的基础技术。该技术含有两个密钥:公钥和私钥,首 先,系统按照某种密钥生成算法,将输入经过计算得出私钥,然后,采用另一个算法根 据私钥生成公钥,公钥的生成过程不可逆。由于在现有的计算能力条件下难以通过公钥 来穷举出私钥(即计算上不可行),因此可以认为是数据是安全的,从而能够保证区块 链的数据安全。
同态加密/ Homomorphic Encryption
同态加密是一种特殊的加密方法,允许对密文根据特定的代数运算方式进行处理后得到 的仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果是一样的。 即“对密文直接进行处理”与“对明文进行处理后并加密”其结果是一样的,这项技术 可以在加密的数据中进行诸如检索、比较等操作而无需对数据先进行解密,从根本上解 决将数据委托给第三方时的保密问题。
公钥加密/ Asymmetric Cryptography / Public Key Cryptography
公钥加密是一种特殊的加密手段,具有在同一时间生成两个密钥的处理(私钥和公钥), 每一个私钥都有一个相对应的公钥,从公钥不能推算出私钥,并且被用其中一个密钥加 密了的数据,可以被另外一个相对应的密钥解密。这套系统使得节点可以先在网络中广 播一个公钥给所有节点,然后所有节点就可以发送加密后的信息给该节点,而不需要预 先交换密钥。
RSA 加密算法/ RSA
Algorithm
RSA 公开密钥密码体制是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥 推导出解密密钥在计算上是不可行的”密码体制。它通常是先生成一对 RSA 密钥,其 中之一是保密密钥,由用户保存; 另一个为公开密钥,可对外公开,甚至可在网络服务 器中注册。
椭圆加密算法/ Elliptic Curve Cryptography / ECC
椭圆加密算法是一种公钥加密体制,最初由 Koblitz 和 Miller 两人于 1985 年提出,其 数学基础是利用椭圆曲线上的有理点构成 Abel 加法群上椭圆离散对数的计算困难性。
明文/ Plaintext
在密码学中,明文是指传送方想要接收方获得的可读信息。明文经过加密所产生的信息 被称为密文,而密文经过解密而还原得来的信息被称为明文。
密文/ Ciphertext
在密码学中,密文是明文经过加密算法所产生的。因为密文是一种除非使用恰当的算法 进行解密,否则人类或计算机是不可以直接阅读理解的加密形态,可以理解为被加密的 信息。
环签名/ Ring Signatures
因签名中参数 Ci(i=1,2,…,n)根据一定的规则首尾相接组成环状而得名。其实就是实 际的签名者用其他可能签字者的公钥产生一个带有断口的环,然后用私钥将断口连成一
个完整的环。任何验证人利用环成员的公钥都可以验证一个环签名是否由某个可能的签 名人生成。
数字签名/ Digital Signatures
数字签名(又称公钥数字签名、电子签名)是一种类似写在纸上的签名,但是使用了公 钥加密领域的技术实现,用于鉴别数字信息的方法,在网络上可以使用数字签名来进行 身份确认。数字签名是一个独一无二的数值,若公钥能通过验证,那我们就能确定对应 的公钥的正确性,数字签名兼具可确认性和不可否认性。
多重签名/ Multi-Signatures
多重签名意味着在交易发生之前需要多个签名或批准。多重签名会增加加密货币的安全 性,这样一个人就不能在未经他人同意的情况下把所有的数字货币都拿走。
数字证书/ Digital Certificate
数字证书是区块链中标识各个节点的身份信息的一串数字,用以证明公钥的归属以及内 容信息的合法性,在区块链的非对称加密中,一旦通过中间人攻击将公钥替换后将会破 坏区块链的安全体系,因此通过共识机制建立互相承认的数字证书机制,在不需要第三 方的情况下识别数据的合法性。
哈希/ 散列/ Hash
哈希又称作“散列”,是一种数学计算机程序,它接收任何一组任意长度的输入信息, 通过哈希算法变换成固定长度的数据指纹输出形式,如字母和数字的组合,该输出就是“哈希值”。哈希使存储和查找信息速度更快,因为哈希值通常更短所以更容易被找到。 同时哈希能够对信息进行加密,一个好的哈希函数在输入域中很少出现哈希冲突,哈希 一个特定文档的结果总是一样的,但找到具有相同哈希值的两个文件在计算上是计算上 不可行的。
安全哈希算法/ Secure Hash Algorithm 256 / SHA
256
SHA 256 是 SHA 系列算法之一,由美国国安局设计、美国国家标准与技术研究院发布 的一套哈希算法,由于其摘要长度为 256bits,故称 SHA 256。SHA
256 是保护数字信 息的最安全的方法之一。
钥匙/ Key
钥匙是使隐藏的、不可读的信息可读的一串秘密字母和数字。
密钥/ Secret Key
密钥是用于加密或解密信息的一段参数,在非对称加密系统中,是通过利用公钥(账 户)与私钥(密码)的配合而实现的。
公钥/ Public Key
公钥与私钥是通过一种算法得到的一个密钥对,公钥是密钥对中公开的部分,私钥则是 非公开的部分,公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥 解密的数据。
私钥/ Private Key
公钥与私钥是通过一种算法得到的一个密钥对,公钥是密钥对中公开的部分,私钥则是 非公开的部分,私钥是指与一个地址(地址是与私钥相对应的公钥的哈希值)相关联的 一把密钥,是只有你自己才知道的一串字符,可用来操作账户里的加密货币。
零知识证明/ Zero-Knowledge Proof
证明者和验证者之间进行交互,证明者能够在不向验证者提供任何有用的信息的情况 下,使验证者相信某个论断是正确的。
计算上不可行/ Computationally Feasible
密码算法依赖的原理是当前计算不可行的数学问题,而“计算不可行”是一个在时间及 空间上相对而言的概念,计算上不可行即表示一个程序是可处理的但是需要一个长得不 切实际的时间(如几十亿年)来处理的步骤。通常认为 2 的 80 次方个计算步骤是计算 上不可行的下限。
暴力破解法/ Brute Force Attack / BFA
暴力破解法又名穷举法,是一种密码分析的方法,通过逐个推算猜测每一个可能解锁安 全系统的密钥来获取信息的方法。
2.4 分布式存储
分布式存储/ Distributed Data Store / DDS
传统上的分布式存储本质上是一个中心化的系统,是将数据分散存储在多台独立的设备 上,采用可扩展的系统结构、利用多台存储服务器分担存储负荷、利用位置服务器定位 存储信息。而基于 P2P 网络的分布式存储是区块链的核心技术,是将数据存储于区块 上并通过开放节点的存储空间建立的一种分布式数据库,解决传统分布式存储的问题。
P2P 存储/
Peer-to-Peer Storage / P2P Storage
P2P 存储是一种不存在中心化控制机制的存储技术。P2P 存储通过开放节点的存储空 间,以提高网络的运作效率,解决传统分布式存储的服务器瓶颈、带宽而带来的访问不
便等问题。
分布式/ Distributed
分布式是通过区块链的 P2P 技术实现,分布式是描述一个计算机系统具有在多台计算 机上同时运行和维护的完整副本,没有任何人或组织来控制这个系统。
账本/ Ledger
账本是指包括区块链的数据结构、所有的交易信息和当前状态的数字记录。
分布式账本/ Distributed ledger Technology / DLT
分布式账本是指一种在网络成员之间共享、复制和同步的数据库,分布式账本在区块链 中是一个通过共识机制建立的数字记录,区块链网络中的参与者可以获得一个唯一、真 实账本的副本,因此难以对分布式账本进行篡改。更改记录的方式非常困难,技术非常 安全。
节点/ Node
节点是区块链分布式系统中的网络节点,是通过网络连接的服务器、计算机、电话等, 针对不同性质的区块链,成为节点的方式也会有所不同。以比特币为例,参与交易或挖 矿即构成一个节点。
全节点/ 完整节点/ Full Node
全节点是是拥有完整区块链账本的节点,全节点需要占用内存同步所有的区块链数据, 能够独立校验区块链上的所有交易并实时更新数据,主要负责区块链的交易的广播和验 证。
2.5 共识机制
共识机制/ Consensus
由于点对点网络下存在较高的网络延迟,各个节点所观察到的事务先后顺序不可能完全 一致。因此区块链系统需要设计一种机制对在差不多时间内发生的事务的先后顺序进行 共识,这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为“共识机制”。
工作量证明/ Proof of Work / PoW
工作量证明简单理解就是一份证明,用来确认节点做过一定量的工作。监测工作的整个 过程通常是极为低效的,而通过对工作的结果进行认证来证明完成了相应的工作量,则 是一种非常高效的方式。比特币在区块的生成过程中使用了 PoW 机制,要得到合理的 随机数求解数学难题需要经过大量尝试计算,通过查看记录和验证区块链信息的证明, 就能知道是否完成了指定难度系数的工作量。
权益证明/ Proof of Stake / PoS
PoS 也称权益证明机制,类似于把资产存在银行里,银行会通过你持有数字资产的数量 和时间给你分配相应的收益。采用 PoS 机制的加密货币资产,系统会根据节点的持币数量和时间的乘积(币天数)给节点分配相应的权益。
权益授权证明/ Delegated Proof of Stake / DPoS
DPoS 是一种类似董事会的授权共识机制,该机制让每一个持币人对整个系统的节点进 行投票,决定哪些节点可以被信任并代理他们进行验证和记账,同时生成少量的对应奖
励。DPoS 大幅提高区块链的处理能力,并降低区块链的维护成本,从而使交易速度接 近于中心化的结算系统。
燃烧证明/ Proof of Burn / PoB
燃烧证明是一种投资于全新的加密货币的方法:为了获得一种新的货币,你必须“烧 掉”(摧毁)另一种货币,比如比特币。从理论上讲,这将使每一种新的加密货币价值 相当于被摧毁的币的价值,但实际上你不能真的摧毁加密货币,系统需要你把它送到一 个会减少它的总供应量的地方。
开发者证明/ Proof of Developer / PoD
开发者证明是一个真实的、活的软件开发人员创建了一种加密货币的证据。它用于启动 新的加密货币,以防止匿名开发人员在不提供可行的加密货币的情况下收集和窃取资 金。
重要性证明/ Proof of Important / PoI
重要性证明是根据交易量、活跃度等维度而不仅仅是根据工作量和币的数量来决定区块 链的记账权力。
基于交易的权益证明机制/ Transaction as Proof of
Stake / TaPOS
TaPOS 为股东们提供了一个长效机制来直接批准他们的代表的行为,平均而言,51% 的股东在 6 个月内会直接确认每个区块,取决于活跃流通的股份所占的比例,差不多 10% 的股东可以在几天内确认区块链。这种方式直接确认保障了网络的长期安全,并使
所有的攻击尝试变得极度清晰易见。
瑞波共识机制/ Ripple Consensus
瑞波共识算法使一组节点能够基于特殊节点列表达成共识,初始特殊节点列表就像一个 俱乐部,要接纳一个新成员,必须由 51% 的该俱乐部会员投票通过。共识遵循核心成 员 51% 权力规则,外部人员则没有影响力。
分布式共识/ Distributed Consensus
所有的节点必须定期更新彼此之间的不断复制的状况,通过专门的槽位来识别每一个更 新。当所有节点更新了他们的分类账并放映的值相同时,就可达成共识,会将协商一致 的声明具体化并发布至它们的分类账副本去。
验证池机制/ POOL
验证池机制是基于传统的分布式一致性技术和数据验证机制的结合,它使得在成熟的分布式一致性算法(Pasox、Raft)基础上,不需要代币也能实现秒级共识验证。
51% 攻击/ 51%
attack
51% 攻击,是指利用比特币以算力作为竞争条件的特点,凭借算力优势篡改或者撤销自 己的付款交易。如果有人掌握了
50% 以上的算力,他能够比其他人更快地找到开采区 块需要的那个随机数,因此他能够比其他人更快地创建区块。
双重支付/ 双重花费/ 双花/ Double Spending
双重支付是一个故意的分叉,是指具有大量计算能力的节点发送一个交易请求并购买资 产,在收到资产后又做出另外一个交易将相同量的币发给自己。攻击者通过创造一个分 叉区块,将原始交易及伪造交易放在该区块上并基于该分叉上开始挖矿。如果攻击者 有超过 50%的计算能力,双重花费最终可以在保证在任何区块深度上成功;如果低于 50%则有部分可能性成功。
拜占庭将军问题/ Byzantine Generals Problem / BGP
拜占庭将军问题是指“在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一 致性是不可能的”。因此在系统中存在除了消息延迟或不可送达的故障以外的错误,包 括消息被篡改、节点不按照协议进行处理等,将会潜在地会对系统造成针对性的破坏。
改进型实用拜占庭容错/ Practical Byzantine Fault
Tolerance / PBFT
PBET 共识机制是少数服从多数,根据信息在分布式网络中节点间互相交换后各节点列 出所有得到的信息,一个节点代表一票,选择大多数的结果作为解决办法。PBET 将容 错量控制在全部节点数的 1/3,即如只要有超过 2/3 的正常节点,整个系统便可正常运 作。
授权拜占庭容错算法/ Delegated Byzantine Fault Tolerance / dBFT
dBFT,是基于持有权益比例来选出专门的记账人(记账节点),然后记账人之间通过拜 占庭容错算法(即少数服从多数的投票机制)来达成共识,决定动态参与节点。dBFT 可以容忍任何类型的错误,且专门的多个记账人使得每一个区块都有最终性、不会分 叉。
联邦拜占庭协议/ Federated Byzantine Agreement / FBA
联邦拜占庭协议的主要特性是去中心化和任意行为容错,通过分布式的方法,达到法定 人数或者节点足够的群体能达成共识,每一个节点不需要依赖相同的参与者就能决定信 任的对象来完成共识。
3 区块链的衍生技术
3.1 主链扩容
分片/ Sharding
分片是区块容量的一种解决方案。通常情况下,每个节点和区块链网络都包含区块链的 完整副本,分片是一种允许节点具有完整的区块链的部分副本的技术,以提高整体性能 和稳定速度。
闪电网络/ Lightning Network
闪电网络是一种允许加密货币的交易即时发生和成本降低的技术,它使一般在比特币网 络中需要等待区块确认的交易瞬间完成。闪电网络基于一个可扩展的微支付通道网络, 通过序列到期可撤销合约 RSMC,使交易双方在区块链上的预先设置的支付通道进行 的多次高频的双向交易瞬间完成。同时,它通过哈希时间锁定合约 HTLC 在没有直接 点对点支付信道的交易双方之间连接一条由多个支付通道构成的支付路径,实现资金的 转移。
雷电网络/ Raiden Network
雷电网络是一种以太坊链下扩容解决方案,它使得使用以太坊技术的加密货币能够即时 和低成本交易。交易双方只要在链上存在交易信道,就能在链下根据被锁定的余额进行 高频、双向的即时确认交易,将这样多个通道形成的支付路径构成“雷电网络”。
隔离见证/ Segregated Witness / SW
隔离见证是一种技术,通过把占用大量存储空间的区块的数字签名重新放置到不同的记 录(也称为隔离),使每个区块能进行更多的交易,以达到扩容的目的。区块链上不仅 记载了每笔转账的具体信息,还包括了每笔交易的数字签名以核实交易的合法性。矿工 在打包区块的时候需要用数字签名来验证每笔交易,确认无误之后才会将该笔交易记 录在区块里。但对于用户不需要验证信息,且每个比特币记录大小被限制在 1 兆字节(MB),每 10 分钟记录一次新的记录,所以通过隔离见证转移签名以扩大区块空间。
3.2 跨链协议
跨链技术/ Cross-Chain
跨链技术是实现区块链之间互联互通的技术,若对标互联网则可理解为“去中心化网络 的结合”,区块链技术的特性使得跨链技术的落地,以及对于链外信息的获取都非常困 难,早期跨链技术包括以 Interledger Protocal 和 BTC Relay 为代表,更多是关注资产 的转移;现有跨链技术以 Aion、Kyber Network、Bletchley、Polkadot、Cosmos 主要 着重的是跨链基础设施。“如果说共识机制是区块链的灵魂核心,那么对于区块链特别是联盟链及私链来看,跨链技术就是实现价值网络的关键,它是把联盟链从分散单独的 孤岛中拯救出来的良药,是区块链向外拓展和连接的桥梁。”——《连接不同区块链的跨 链技术介绍》。
原子互换/ Atomic Swap
原子互换是一种正在开发中的去中心化、无需第三方的新技术,允许在不同类型的数字 资产之间实现无需信任的点对点交易,任何一方在瞬间完成的点对点交易中都遵守协 议,且之后若有一方退出,资金会在规定的时间返回各方账户。
见证人机制/ Notary Schemes
见证人模式是一种中心化的结构,通过选定一批见证人并在见证人之间采用拜占庭容 错结构,监听目标链上的事件和状态并签名进行资产的转移,如 Ripple 的 Interledger Protocal 的早期版本。
侧链技术/ Sidechains
(参见前文)。
侧链协议/ Sidechain Protocol
侧链协议是一种实现双向锚定(Two-way Peg)的协议,通过侧链协议实现资产在主链 和其它链之间互相转换,或是以独立的、隔离系统的形式,降低核心区块链上发生交易
的次数。
楔入式侧链技术/ Pegged Sidechain
它将实现比特币和其他数字资产在多个区块链间的转移,这就意味着用户们在使用他们 已有资产的情况下,可以访问新的加密货币系统。
中继技术/ Relays
中继技术是通过在两个链中加入一个数据结构,使得两个链可以通过该数据结构进行数 据交互,并通过在一个链上调用数据结构的 API,实现监听并验证另一个链上的交易, 而若该数据结构是一个链式结构,则具备侧链的形式并称作中继链。
哈希时间锁定合约/ Hashed TimeLock Contract / HTLC
哈希时间锁定合约包含哈希锁定(Hashlock)以及时间锁定(Timelock)两个部分,哈 希时间锁定合约最典型的代表就是比特币的闪电网络,闪电网络提供一个可扩展的微支 付通,用以提升链外的交易处理能力,使用哈希锁定将发起方的交易代币进行锁定,并 通过时间锁定让接收方在某个约定的时刻前生成支付的密码学证明,并与先前约定的哈 希值一致,则可完成交易。
3.3 其他技术
图灵完备/ Turing Complete
在可计算理论中,当一组数据操作的规则(一组指令集、编程语言或元胞自动机)满足 任意数据按照一定的顺序可以计算出结果,则称为图灵完备。
混币服务/ Mixing Service
混币服务,就是用一种加密货币从其他人那里得到同样金额的加密货币。原理是分离交 易中的输入和输出地址,目的是提高加密货币的隐私性和匿名性,使其更难追踪加密货 币的用途以及它属于谁。
零币协议/ Zerocash Protocol
零币协议是一个发布于 2013 年的独立协议,原先目的是为了在混币技术、环签技术外 增强加密货币的匿名性,零币协议使用零知识证明实现完全匿名,通过一个集合的托管
池(Escrow Pool)删除交易的历史记录。零币协议有两个主要部分:“铸币”使有交 易记录的币匿名化并置于托管池;通过零知识证明创建一个没有交易记录的新币,并销
毁托管池中的币。
CryptoNote 协议/
CryptoNote
CryptoNote 是一种应用协议,旨在实现加密货币的匿名性,于 2013 年 10 月发布,并 可被用于多种加密货币中,如门罗币、百特币、Aeon、Fantomcoin 等。CryptoNote 通 过使用分布式公共分类账,记录区块链上加密货币的交易和余额,但将发送方、接收方
匿名化,并将交易金额模糊化。
缠结/ Tangle
Tangle 是 IOTA 项目创造的一种改革性的去区块化分布式账本,它是可扩展的、轻量 级的,还能在无需任何费用的前提下进行价值转移。Tangle (缠结)是基于有向无环图(DAG)的机构,而不是像区块链的连链式架构,它能定期添加区块,从而实现更高的
交替吞吐量和零交易手续费。
有向无环图/ Database Availability Group / DAG
DAG 指有向无环图,是常用于计算机领域的数据结构。DAG 具备独特的拓扑结构,经 常被用于处理动态规划,导航中获得最短路径等场景中。在区块链领域,DAG 用来解 决扩容性的问题,通过增加区块大小或者区块频率在网络中产生大量分叉,但是攻击者 还是需要 51% 的算力才能进行攻击。
去中心化应用/ Decentralized Application / DApp
DApp 是一种在网络上公开运行的软件应用程序,这项技术是由许多人维护的,而不是 由一个组织维护的,黑客不能改变应用程序的数据,除非他们能够访问几乎所有的网络
计算机并在那里调整它。
去中心组织/ Decentralized Organization
去中心组织是一个没有中央领导,而是使用正式民主投票进程和共识主动性自我组织的 结合来作为其基本操作原则的组织。
去中心化自治组织/ Decentralized Autonomous Organization / DAO
去中心化自治组织是一个通过编码为称为智能合约的计算机程序的规则运行的组织,由 计算机网络支持的无中心组织并且没有单一的领导者,是一种自主的或者是自治的组织 结构。
4 区块链的技术应用
区块链 1.0 / Blockchain 1.0
区块链 1.0 是以比特币、莱特币为代表的加密货币,具有支付、流通等货币职能。
区块链 2.0 / Blockchain 2.0
区块链 2.0 是以以太坊、瑞波币为代表的智能合约或理解为“可编程金融”,是对金融 领域的使用场景和流程进行梳理、优化的应用。
区块链 3.0 / Blockchain 3.0
区块链 3.0 是区块链技术在社会领域下的应用场景实现,将区块链技术拓展到金融领域 之外,为各种行业提供去中心化解决方案的“可编程社会”。
4.1 加密货币
数字货币/ Digital Currency
数字货币是一种不具备实体形式的、仅以数字形式存在的货币,在英语语境中与电子货 币同义,而在中文语境下一般将电子货币解释为“电子化的法定货币”,即“电子化的 人民币”并与数字货币区别开来。数字货币具备与实体货币相似的性质,但允许在互 联网上即时地、无地理限制地转让。数字货币包含虚拟货币、加密货币、电子货币等概 念。
加密货币/ Cryptocurrency
加密货币是基于密码学的、不具备物理形式的货币,是数字货币的表现形式之一,在区 块链中是指“一种基于 P2P 网络、没有发行机构、总量基本确定、依据确定的发行制 度和分配制度创建及交易、基于密码学及共识机制保证流通环节安全性的、具备一定编 程性的数字货币。”,而各国对于加密货币的定义不一而足,我国央行将加密货币定义 为一种“虚拟商品”不具备货币属性;而在美国则根据不同部门有不同的定义,如:财 产、大宗商品、货币、虚拟货币等。
代币/ Token / Token Coin
代币与令牌的对应英文单字皆为 Token,在区块链领域中一般不加以区分,但两者在意 思上具有些许区别;英文 Token 实际上既包含代币、令牌也包含代金券、证券、通证、 纪念物等概念,准确来说代币的对应英文为 Token Coin,在区块链领域中与“支付令 牌”具备相同的意义。代币可以定义为某种账户的余额,并且不仅仅局限于加密货币的 范畴,广义而言包含 Q 币在内的虚拟货币皆属于代币的范畴。
非货币/ Noncurrency
非货币是指不具有货币的流通性质、价格衡量功能,因此并不能作为市场的支付工具,并且需要依据其法律定义征收相应的税款,如增值税、资本利得税。
竞争币/ AltCoin
Altcoin 是 Bitcoin alternative 的缩写,竞争币一般指除了比特币外的所有加密货币的
总称。
山寨币/ AltCoin
山寨币是竞争币、替代币的一种业内戏称,是指在比特币源码基础上进行修改创造出的 加密货币。
4.2 智能合约
智能合约/ Smart Contract
智能合约最早在上世纪末就被提出,但直到近年随着区块链技术的发展逐步被社会大所 熟悉,智能合约的概念具备承诺、协议、数字形式三大要素,因此能够将区块链的应用 范围扩展至金融行业交易、支付、结算和清算的各个环节。智能合约是指当一个预先编 好的条件被触发时,智能合约会立即执行相应的合同条款,其工作原理类似于计算机程 序的 if-then 语句。
以太坊/ Ethereum Ethereum
(以太坊)是一个平台和一种编程语言,使开发人员能够建立和发布下一代 分布式应用。Ethereum 可以用来编程,分散、担保和交易任何事物,投票,域名,金 融交易所,众筹,公司管理,合同和大部分的协议、知识产权,还有得益于硬件集成的 智能资产。
EVM 代码
以太坊虚拟机代码,以太坊的区块链可以包含的编程语言的代码。与帐户相关联的 EVM 代码在每次消息被发到这个账户的时候被执行,并且具有读/写存储和自身发送消 息的能力。
合约/ Contract
一个包含并且受 EVM 的代码控制的账户。合约不能通过私钥直接进行控制,除非被编 译成 EVM 代码,一旦合约被发行就没有所有者。
令牌/ 通证/ Token
计算机术语中“令牌”一词有两个意思: 对用户进行授权的小工具,或是认证用户身份 的固定字符串;在加密货币中令牌是数字价值的一个单位,是内置可编程潜力的代币,
除了具备经济属性外,同时在也可用以构建软件,并可能通过技术实现集代币、身份 识别、荣誉标识、确权工具、资产量化指标、系统通行证和系统保护于一身的工具。如 OMG 和 EOS 是建立在
Ethereum 令牌上的加密货币。根据瑞士金融市场监督管理局(FINMA)在 2018 年 2 月提出的定义,令牌主要分为支付令牌、功能令牌、资产令牌三种,并且可能存在混合形式:
“支付令牌与加密货币是同义词,并没有其他功能或链接其他开发项目的功能,令牌在某些情况下可能只会开发必要的功能,并在一段时间内成为支付手段。”如比 特币、狗狗币、莱特币等第一代加密货币以及达世币、门罗币等以支付、结算为 主要功能的令牌。
“功能令牌是旨在为应用程序或服务提供数字访问的令牌。”如瑞波币、艾达币、恒星币、小蚁股等内嵌代码,并具备使用场景或潜在使用场景的令牌。
“资产令牌代表资产,例如参与真实实体收益,公司股份或收益权益,或者获得股息或利息支付的权利。就其经济功能而言,令牌类似于股票,债券或衍生品。”如 BitShares 上的 PDA 令牌或是 DigixDAO 上的 DGX 令牌,在现实世界中具备对 应的资产。
令牌化/ Tokenize
令牌化是将现实世界中的有价物转化为数字价值的过程。在未来有可能通过区块链技术 实现将线下资产标记出来,并将单一资产进行分割、令牌化(如将一间房子分成 1000 份在市场上流通)。没有区块链技术的协助就无法建立标记,对于单一资产的部分进行 交易时不可能的是不可能的。由于这些代币是在区块链上交换的,所以数据是公开的、 几乎不可能作弊。
4.3 主要代币
比特币/ Bitcoin / BTC
Bitcoin (比特币)的概念是由中本聪(化名)于 2009 年 1 月 3 日提出,是一种点对点 的、去中心化、全球通用、无排他性、不需第三方机构或个人,基于区块链作为支付技 术的加密货币,比特币不依赖中央机构发行,而是通过工作量证明共识机制在区块链中
完成,也就是俗称“挖矿”。比特币使用整个 P2P 网络节点的分布式数据库来确认、验 证及记录货币的交易; 比特币发行总量 2100 万枚,预计于 2140 年(编者注:2040 年的 说法有误)发行完毕,目前市面上流通量超过 80%。
Megabitcoin 缩写为 MBTC,是 100 万个比特币。
比特分又被称作 cBTC,一枚比特币的价值是 102 比特分。
毫比特又被称作 mBTC,一枚比特币的价值是 103 毫比特。
微比特又被称作 uBTC,一枚比特币的价值是 106 微比特。
Satoshi 是比特币中最小的数量单位,表示十亿分之一比特币或 0.000000001 比特币,这个单位是由比特币的创造者 Satoshi Nakamoto 所命名的,Satoshi Nakamoto 是 2009 年创造比特币的一个不知名的人或者一群人。
Virgin Bitcoin 是由一台正在挖掘的计算机建立的全新的比特币。挖矿是记录和验 证被称为区块链的数字记录上的信息的计算机过程。在比特币和其他加密货币中, 挖矿需要通过计算机相互竞争来解决复杂的数学问题。
由于比特币是一个去中心化的公有链,因此全世界的开发者都有权对网络的开发 做出贡献,比特币改进协议是一种向比特币社区提供信息的设计文档,是开发者 用于描述为比特币网络带来的新功能、信息、流程或环境。根据 BIP 目的和指南(BIP Purpose and Guidelines)分为三种比特币改进协议形式:标准类 BIP、信 息类 BIP、过程类 BIP。
以太币/ Ether / ETH
Ethereum (以太坊)是一种开源的、图灵完备的、智能合约公有区块链,基于区块链 账本用于合约的处理和执行,使得任何人都能够创建合约和去中心化应用,并在其中
自有定义所有权规则、交易方式和状态转换函数。Ethereum 由
Vitalik Buterin (绰号“V 神”)所创立并于 2014 年 7 月进行 ICO,以太坊内置名为 Ether (以太币)的加 密货币。
瓦斯是用于支付给在电脑上记录交易和其他行为的以太币,可以理解成比特币中 的交易费用。瓦斯的计算方法是用瓦斯价格(一小部分的以太币)乘以瓦斯限值, 如果瓦斯的量不够,任务就会失败,这也意味着更多瓦斯也就意味着电脑完成得 速度越快。
以太坊用瓦斯限值取代区块容量限制,瓦斯限值是用来衡量以太坊的瓦斯总量,以此可以用来决定单个区块中能打包多少笔交易。在进行操作时必须确保足够的瓦斯限值,否则交易将不能顺利完成。
瓦斯价格是非常少量的以太币,它乘以瓦斯限值的就是瓦斯,用来人们记录交易 和做其他软件操作的费用。
Ether 即一单位以太币。
Milliether又被称作Finney,一枚以太币的价值是103 Milliether。
Microether又被称作Szabo,一枚以太币的价值是106 Microether。
GWei又被称作Shannon,一枚以太币的价值是109 GWei。
MWei又被称作Lovelace,一枚以太币的价值是1012 MWei。
KWei又被称作Babbage,一枚以太币的价值是1015 KWei。
Wei是以太币的最小单位,一枚以太币的价值是1018 Wei。
瑞波币/ Ripple / XRP
Ripple 是一个去中心化的资产传输网络,用于解决金融机构以及用户间的资产转换和 信任问题。XRP (瑞波币)是 Ripple 网络流通的基础货币,任何人均可以创建 Ripple 账户并通过 Ripple 支付网络可以转账任意一种货币,包括美元、欧元、人民币、日元
或者比特币,交易确认在几秒以内完成且交易费用几乎为零,瑞波币的最大发行量为 1000 亿枚并随着交易的增多而逐渐减少,瑞波币的运营公司为 Ripple Labs,其前身为 OpenCoin。
比特现金/ Bitcoin Cash / BCH
Bitcoin Cash(比特现金)是比特币硬分叉产生的分叉币,比特现金修改比特币的代码, 通过将区块大小调整到 8M 以解决扩容问题并且移除 Segwit (隔离见证)。比特现金于 2017 年 8 月 1 日 UTC 时间 12:37 从比特币区块高度 478558 开始分叉。