区块链基本技术

2021-06-17  本文已影响0人  aeborah

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.链式结构

链/ 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 的侄块。

3.分布式存储

分布式/ Distributed
分布式是通过区块链的 P2P 技术实现,分布式是描述一个计算机系统具有在多台计算机上同时运行和维护的完整副本,没有任何人或组织来控制这个系统。
账本/ Ledger
账本是指包括区块链的数据结构、所有的交易信息和当前状态的数字记录。
分布式账本/ Distributed ledger Technology / DLT
分布式账本是指一种在网络成员之间共享、复制和同步的数据库,分布式账本在区块链中是一个通过共识机制建立的数字记录,区块链网络中的参与者可以获得一个唯一、真实账本的副本,因此难以对分布式账本进行篡改。更改记录的方式非常困难,技术非常安全。
节点/ Node
节点是区块链分布式系统中的网络节点,是通过网络连接的服务器、计算机、电话等,针对不同性质的区块链,成为节点的方式也会有所不同。以比特币为例,参与交易或挖矿即构成一个节点。
全节点/ 完整节点/ Full Node
全节点是是拥有完整区块链账本的节点,全节点需要占用内存同步所有的区块链数据,能够独立校验区块链上的所有交易并实时更新数据,主要负责区块链的交易的广播和验证。

4.智能合约

基于区块链的智能合约本质上来说,智能合约是一段程序,它以计算机指令的方式实现了传统合约的自动化处理。简单讲,智能合约就是双方在区块链资产上交易时,触发执行的一段代码,这段代码就是智能合约。
简单的来说就是,你可以提前规定好合约的内容,当在满足触发合约条件的时候,程序就会自动执行合约内容。

“智能合约的工作理论迟迟没有实现,一个重要原因是因为缺乏能够支持可编程合约的数字系统和技术。区块链技术的出现解决了该问题,不仅可以支持可编程合约,而且具有去中心化、不可篡改、过程透明可追踪等优点,天然适合于智能合约。因此,也可以说,智能合约是区块链技术的特性之一”

智能合约的优点
1.将合约以数字化的形式写入区块链中,因区块链的特性,数据将无法删除、修改,只能新增,整个过程透明可跟踪,保证了历史的可追溯性;
2.因行为将被永久记录,可极大程度避免恶意行为对合约正常执行的干扰;
3.去中心化,避免了中心化因素的影响,提高智能合约在成本效率方面的优势;
4.当满足合约内容时,将自动启动智能合约的代码,既避免了手动过程,同时又保障了发行者无法违约;
5.由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。

上一篇下一篇

猜你喜欢

热点阅读