区块链的技术定义区块链是一个提供了拜占庭容错、并保证了最终一致性的分布式数据库;从数据结构上看,它是基于时间序列的链式数据块结构;从节点拓扑上看,它所有的节点互为冗余备份;从操作上看,它提供了基于密码
区块链的技术定义
区块链是一个提供了拜占庭容错、并保证了最终一致性的分布式数据库;从数据结构上看,它是基于时间序列的链式数据块结构;从节点拓扑上看,它所有的节点互为冗余备份;从操作上看,它提供了基于密码学的公私钥管理体系来管理账户。
你可以这样理解有 100 台计算机分布在世界各地,这 100 台机器之间的网络是广域网,并且,这 100 台机器的拥有者相不信任,那么,我们采用什么样的算法(共识机制)才能够为它提供一个可信任的环境,并且使得:
- 节点之间的数据交换过程不可篡改,并且已生成的历史记录不可被篡改;
- 每个节点的数据会同步到最新数据,并且会验证最新数据的有效性;
- 基于少数服从多数的原则,整体节点维护的数据本身可以客观反映交换历史。
区块链的核心技术组成P2P 网络协议
P2P 网络协议是所有区块链的最底层模块,负责交易数据的网络传输和广播、节点发现和维护。
通常我们所用的都是比特币 P2P 网络协议模块,它遵循一定的交互原则。
这套 P2P 交互协议也具有自己的指令集合,指令体现在在消息头(Message Header) 的命令(command)域中,这些命令为上层提供了节点发现、节点获取、区块头获取、区块获取等功能。
分布式一致性算法
在经典分布式计算领域,我们有 Raft 和 Paxos 算法家族代表的非拜占庭容错算法,以及具有拜占庭容错特性的 PBFT 共识算法。
如果从技术演化的角度来看,我们可以得出一个图,其中,区块链技术把原来的分布式算法进行了经济学上的拓展。
计算机应用在最开始多为单点应用,高可用方便采用的是冷灾备,后来发展到异地多活,这些异地多活可能采用的是负载均衡和路由技术,随着分布式系统技术的发展,我们过渡到了 Paxos 和 Raft 为主的分布式系统。
而在区块链领域,多采用 PoW 工作量证明算法、PoS 权益证明算法,以及 DPoS 代理权益证明算法,以上三种是业界主流的共识算法,这些算法与经典分布式一致性算法不同的是融入了经济学博弈的概念,下面我分别简单介绍这三种共识算法。
- PoW:通常是指在给定的约束下,求解一个特定难度的数学问题,谁解的速度快,谁就能获得记账权(出块)权利。这个求解过程往往会转换成计算问题,所以在比拼速度的情况下,也就变成了谁的计算方法更优,以及谁的设备性能更好。
- PoS:这是一种股权证明机制,它的基本概念是产生区块的难度应该与你在网络里所占的股权(所有权占比)成比例。它实现的核心思路是:使用你所锁定代币的币龄(CoinAge)以及一个小的工作量证明,去计算一个目标值,当满足目标值时,你将可能获取记账权。
- DPoS:简单来理解就是将 PoS 共识算法中的记账者转换为指定节点数组成的小圈子,而不是所有人都可以参与记账,这个圈子可能是 21 个节点,也有可能是 101 个节点。这一点取决于设计,只有这个圈子中的节点才能获得记账权。这将极大地提高系统的吞吐量,因为更少的节点也就意味着网络和节点的可控。
加密签名算法
在区块链领域,哈希算法是应用得最多的算法。哈希算法具有抗碰撞性、原像不可逆、难题友好性等特征。
其中,难题友好性正是众多 PoW 币种赖以存在的基础,在比特币中,SHA256 算法被用作工作量证明的计算方法,也就是我们所说的挖矿算法。
从技术上看,我们先从生成私钥开始,其次从私钥生成公钥,最后从公钥生成地址,以上每一步都是不可逆过程,也就是说无法从地址推导出公钥,从公钥推导到私钥。
原创文章,作者:币圈吴彦祖,如若转载,请注明出处:https://www.kaixuan.pro/news/385355/