admin 管理员组文章数量: 1087135
2024年12月27日发(作者:html是什么意思英语)
区块链基础知识
区块链〔BlockChain〕,是区块〔Block〕和链〔Chain〕的直译,其数据结构如图1所示,即每个
区块保存规定时间段内的数据记录,并通过密码学的方式,构建一条安全可信的链条,形成一
个不可篡改、全员共有的分布式账本.
比特币的区块分为区块头和区块体两部分.区块头的大小为80字节,包括4字节的版本号、32
字节〔256位〕的上一区块哈希值、32字节的Merkle根节点、4字节的时间戳、4字节的难
度值和4字节的随机数.区块体包含10分钟内选定的交易记录,第一笔交易〔coinbase交易〕
是用于奖励矿工比特币的特殊交易,由矿工自己添加进区块.
图1 区块链的数据结构示意图
基本概念
区块链是很多现有技术交叉融合在一起的集成创新.因此,要了解区块链,首先要了解区块链
到底集成了哪些技术.
P2P网络
如图2所示,P2P〔Peer-to-Peer〕网络是一种端到端的网络.P2P网络分为结构化〔例如基于
Chord的P2P网络〕和非结构化的P2P网络〔例如Gnutella〕.比特币的区块链采用的是非结
构化P2P网络,整个网络没有中心化的硬件或管理机构,任一节点既是服务端,也是客户端.任
何节点只要安装相应的客户端软件,就能接入P2P网络〔例如BT软件〕,参与区块链的记录和
验证,不超过1/3节点的损坏、退出甚至被植入恶意代码,都不会影响整个系统的运作.
图2 传统中心化系统和P2P网络的拓扑对比图
加密算法和数字签名
加密技术分为对称、非对称和哈希〔Hash〕加密.对称加密是指用同样的密钥来进行加密和
解密,非对称加密是指用一个密钥对来进行加密和解密,哈希加密主要是通过对数据进行哈希
运算,用固定的哈希结果值验证信息是否被篡改.
非对称加密
在非对称加密技术中,对外公开、分发出去的密钥叫做公钥,不能公开、自己留存的密钥叫做
私钥.公钥加密的,对应的私钥才能解密.反之亦然.如图3所示.
图3 非对称加密RSA算法的简化示例图
非对称加密算法有RSA、DSA和ECC等种类,区块链使用的是基于椭圆曲线加密技术的数字签
名〔ECDSA〕,具体实现是相当于是DSA和非对称加密ECC的结合.相比RSA
算法,ECDSA具有计算量小、存储空间小、带宽要求低等特点.
数字签名
基于数字签名的通信机制工作原理,如图4所示,发送报文时,发送方用一个哈希函数从报文文
1 / 4
本中生成文件摘要,然后用自己的私钥对摘要进行加密,加密后的摘要将作为报文的数字签名
和报文一起发送给接收方.接收方首先用与发送方一样的哈希函数从接收到的原始报文中计
算出报文摘要,接着再用发送方的公钥来对报文附加的数字签名进行解密,如果得到的明文相
同,那么接收方就能确认传输的文件并未受到篡改,是安全可信
的.
图4 数字签名的流程示意图
哈希加密
安全哈希算法〔Secure Hash Algorithm,SHA〕是由美国国家安全局研发,由美国国家标准与技
术研究院〔NIST〕发布的一系列密码哈希函数,包括SHA-0、SHA-1、SHA-2和SHA-3等系列.
比特币的区块链使用的是SHA-256哈希加密算法,于20##发布,属于SHA-2分支.由于SHA256
伪随机性的特点,只要是相同的数据输入,一定会得到相同的结果,如果输入数据稍有变化,将
得到一个千差万别的结果,如图5所示.SHA256还是一个单向不可逆的算法,即根据一个输入
数算SHA256的结果很容易,但根据SHA256的结果反算输入数几乎是不可能.除此之外,比特
币还使用ripemd160算法来生成比特币钱包的地
址.
图5 哈希加密的示意图
2 / 4
梅克尔树
梅克尔〔Merkle〕树是区块链的基本组成部分.如果没有梅克尔树,区块链也是可以运转,但是
要在区块头里包含所有交易记录,扩展性方面存在很大挑战.如图6所示,区块链中的每个区块,
由区块头和区块体构成,区块头中含有一个Merkle根节点的字段,通过对区块体中所有交易
记录,以二叉树的形式迭代地两两拼接 、进行哈希操作,可以得到一个最终的哈希值,我们称
之为Merkle根哈希.Merkle根哈希相当于是对区块中所有交易记录进行了一个快照,区块中
交易记录的任意改动都可以通过比较Merkle根哈希而很容易地察觉.Merkle根哈希主要用于
简单支付验证〔SPV〕,在验证某个交易是否在区块中时,也能极大地减少网络传输成本.
图6 Merkle树示意图
工作量证明机制
工作量证明机制,简单地说,就是一种共识机制,用来确认你是否做过一定量工作的证明.比特
币的区块链主要是依托计算数学难题来衡量工作量.每个区块,当选定一定数量的交易记录之
后,填充版本号、时间戳、难度值,生成相应的Merkle根哈希.很容易看到,这些数值在选定交
易记录以后,都是确定的,唯一能够改变的就只有随机数〔Nonce〕这个值.如图7所示,系统根
据难度值,要求计算整个区块头的两次SHA256算法,得到的哈希结果要小于一个阈值.根据前
面描述的SHA256算法的伪随机性,只有通过不断地尝试和枚举,才能找到相应的随机数,证明
自己的工作量.
图7 工作量证明机制示意图
除了工作量证明机制〔PoW〕这类共识机制之外,还有股权证明机制〔PoS〕、授权股权证明
机制〔DPoS〕、拜占庭容错机制〔BFT〕、实用拜占庭容错机制〔PBFT〕这些在不可信环境
下的共识机制以与要求在可信环境下的共识机制,例如PaxOS和Raft.表1是做了简单的对比.
表1 共识机制的简单对比表
运行机制
接入网络和验证
节点通过安装相应的软件〔例如比特币核心〕,接入区块链.节点启动以后,主要是在P2P网络
上发现邻居节点、邻居节点、传递P2P消息和下载区块链验证.节点可以选择下载全量的区
块链进行验证,或者是只下载区块头,通过Merkle树节点来进行简单支付验证〔SPV〕.
钱包软件可以分为移动钱包、桌面钱包、互联网钱包和纸钱包,都支持保存用户的私钥,钱包
也可以根据私钥是否是种子产生的,而分为决定性钱包和非决定性钱包,关键区别在于私钥的
备份和易恢复性.
区块链的存储和接受
比特币的区块链使用Berkeley DB〔文件数据库〕作为钱包数据库,使用LevelDB〔键值数据库〕
存储区块的索引和UTXO〔Unspent Transaction Output,未开销的比特币交易输出〕.节点在启
动的时候,将整个区块链的索引从LevelDB加载入内存.当收到一个新区块时,节点对新区块中
的所有交易进行检测,验证交易格式、交易大小、交易签名、UTXO是否匹配、交易签名、脚
本合规等方面.
如果验证成功,检查上一区块头与链头区块哈希值是否一致,如果是一致,则更新UTXO数据库
和回滚交易数据库,如果不是,则将该区块放在孤儿区块池中 .当节点发现网络中存在另一条
更长的区块链时,就需要断开现有的区块并对区块链进行重组.如果验证不成功,会抛弃该区
块,继续等待新区块的到来〔矿工会继续计算新区块的数学难题〕.
区块链的工作量证明计算机制
"矿工"角色的节点一直收集网络中广播的交易记录,并致力于计算新区块的数学难题,即工作
量证明.如果其他节点发来的新区块验证成功,节点除了更新UTXO数据库和回滚交易数据库,
节点会立即开始下一个新区块的计算.新区块的构建优先选取交易内存池中优先级高的交易
3 / 4
记录.优先级的计算方式为:
如果自己的工作量证明计算成功,节点会第一时间将这个区块广播至整个网络中,其他节点收
到该新区块,如上所述,会进行相应的验证和存储.
整个区块链的运转机制如图8所示.
图8 区块链运转机制示意图
其他相关
脚本语言
区块链采用的脚本语言并不是图灵完备的语言,不支持循环,只能进行堆栈式操作.这种脚本
语言的好处是,不允许矿工提交一个死循环的脚本,更注重的是安全方面的考量,但其扩展能
力有限.从以太坊为首的区块链编程平台支持图灵完备的编程语言,引领区块链跨入2.0时代.
由于支持循环等复杂操作,以太坊用Gas〔燃料〕机制来防止死循环的出现,确保系统的安全.
消息队列
比特币区块链采用Zero MQ〔ZMQ〕作为消息分发和消息队列管理工具.与很多人熟悉的
RabbitMQ相比,ZMQ不像传统意义的消息服务器,更像一个底层的网络通信库,在多个线程、
内核和主机盒之间弹性伸缩,在Socket API之上将网络通信、进程通信和线程通信抽象为统一
的API接口.
挖矿设备和算法演进
挖矿设备从支持复杂指令〔CISC〕、适合串行计算的CPU矿机时代,经由基于众核体系、适
合并行简单计算的GPU挖矿和低功耗却价格昂贵的FPGA挖矿,逐渐向集约高速的ASIC矿机
和规模效应的矿池演进.
基于工作量证明机制的算法,容易导致矿工算力集中的问题.有人将这种"中心化"的责任归咎
于SHA256算法.此时,基于SCRYPT算法的莱特币〔Litecoin〕进入了人们视线,其占用内存多、
计算时间长、并行计算困难的特点,限制了矿工的"军备竞赛".莱特币的成功催生了更多算法
的交叉融合,衍生出串联算法〔夸克币〕、并联算法〔HeavyCoin〕和多用途算法〔在工作量
证明的同时,寻找大素数的素数币,PrimeCoin〕.
OGC全力打造全球首款以技术驱动的区块链游戏产业生态平台,游戏始于社区,OGC制造了一
个共建共享、高活跃度的去中心化社区.在这样一个社区里,所有的参与者将发挥协同效能、
价值互通.并且OGC能够提供信任和安全的环境,可以解决玩家、游戏制作和发行商的信任问
题.
4 / 4
版权声明:本文标题:区块链基本知识 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1735351177a1651987.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论