中国区块链网:区块链基本概念——区块链基本技术

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 是一个随机或伪随机数,以避

2 链式结构

中国区块链网:区块链基本概念——区块链基本技术

 

免重放攻击。

梅克尔树/ Merkle Tree

梅克尔树(又叫哈希树)是一种二叉树,是一种高效和安全的组织数据的方法,被用来 快速查询验证特定交易是否存在,由一个根节点、一组中间节点和一组叶节点组成。它 使用哈希算法将大量的书面信息转换成一串独立的字母或数字。最底层的叶节点包含存 储数据或其哈希值,每个中间节点是它的两个子节点内容的哈希值,根节点也是由它的 两个子节点内容的哈希值组成。

区块容量/ Block Size

区块链的每个区块,都是用来承载某个时间段内的数据的,每个区块通过时间的先后顺 序,使用密码学技术将其串联起来,形成一个完整的分布式数据库,区块容量代表了一 个区块能容纳多少数据的能力。

未花费的交易输出/ Unspent Transaction Output / UTXO

未花费的交易输出是一个包含交易数据和执行代码的数据结构,可以理解为收到的但尚 未花费的加密货币清单。比特币和其他加密货币在其区块链技术中使用 UTXO,以验证一个人是否拥有未使用的加密货币可用于支出。

链/ Chain

链是由区块按照发生的时间顺序,通过区块的哈希值串联而成,是区块交易记录及状态 变化的日志记录。

链下/ Off-chain

区块链系统从功能角度讲,是一个价值交换网络,链下是指不存储于区块链上的数据。 无代币区块链/ Token-Less Blockchain

即区块链并不通过代币进行价值交换,一般出现在不需要在节点之间转移价值并且仅在 不同的已被信任方之间共享数据的情况下,如私有链。

创世区块/ Genesis Block

区块链中的第一个区块被称为“创世”区块。创世区块一般用于初始化,不带有交易信 息。

区块高度/ Block Height

一个区块的高度是指在区块链中它和创世区块之间的块数。

分叉/ Fork

在区块链中,由矿工挖出区块并将其链接到主链上,一般来讲同一时间内只产生一个区

3 非对称加密

中国区块链网:区块链基本概念——区块链基本技术

 

块,如果发生同一时间内有两个区块同时被生成的情况,就会在全网中出现两个长度相

同、区块里的交易信息相同但矿工签名不同或者交易排序不同的区块链,这样的情况叫 做分叉。

软分叉/ Soft Fork

指在区块链或去中心化网络中向前兼容的分叉。向前兼容意味着,当新共识规则发布 后,在去中心化架构中节点不一定要升级到新的共识规则,因为软分叉的新规则仍旧符 合老的规则,所以未升级的节点仍旧能接受新的规则。

硬分叉/ Hard Fork

指在区块链或去中心化网络中不向前兼容的分叉,硬分叉对加密货币使用的技术进行永 久更改,这种变化使得所有的新数据块与原来的块不同,旧版本不会接受新版本创建的 区块,要实现硬分叉所有用户都需要切换到新版本协议上。如果新的硬分叉失败,所有 的用户将回到原始数据块。

幽灵协议/ GHOST Protocol

通过幽灵协议,区块可以包含不只是他们父块的哈希值,也包含其父块的父块的其他子 块(被称为叔块)的陈腐区块的哈希值,这确保了陈腐区块仍然有助于区块链的安全 性,并能够获得一定比例的区块奖励,减少了大型矿工在区块链上的中心化倾向问题。

孤块/ Orphan Block

孤块是一个被遗弃的数据块。因为很多节点都在维护区块链并同时创建多个区块,但是 一次只能有一个被继续继承,而其它被遗弃的数据块就是孤块。

陈腐区块/ Stale Block

是父块的父块的“其他”子块,或更一般的说是祖先的其他子块,但不是自己的祖先, 如果 A 是 B 的一个叔块,那 B 是 A 的侄块。

密码学/ 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

暴力破解法又名穷举法,是一种密码分析的方法,通过逐个推算猜测每一个可能解锁安 全系统的密钥来获取信息的方法。

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

全节点是是拥有完整区块链账本的节点,全节点需要占用内存同步所有的区块链数据, 能够独立校验区块链上的所有交易并实时更新数据,主要负责区块链的交易的广播和验 证。

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

联邦拜占庭协议的主要特性是去中心化和任意行为容错,通过分布式的方法,达到法定 人数或者节点足够的群体能达成共识,每一个节点不需要依赖相同的参与者就能决定信 任的对象来完成共识。