主页 > imtoken官网地址在哪里 > 区块链背后的4大核心技术是什么?

区块链背后的4大核心技术是什么?

imtoken官网地址在哪里 2023-01-27 07:32:55

区块链的技术定义

简单来说,区块链是一个提供拜占庭容错并保证最终一致性的分布式数据库; 从数据结构上看,是一种基于时间序列的链式数据块结构; 从节点拓扑结构来看,所有节点都是互为冗余备份; 从操作的角度来看,它提供了一个基于密码学的公私钥管理系统来管理账户。

微信图片_20201223142517.jpg

可能上面的概念太抽象了,我举个例子,大家就容易理解了。

你可以想象有 100 台计算机分布在世界各地,这 100 台机器之间的网络是广域网,这 100 台机器的拥有者之间互不信任。

那么,我们可以用什么样的算法(共识机制)来为它提供一个可信的环境,使得:

节点间的数据交换过程不可篡改,产生的历史记录不可篡改;

各节点的数据会同步到最新数据,并验证最新数据的有效性;

q币和比特币是货币吗_比特币的核心技术是什么_比特币与数字货币技术

基于少数服从多数的原则,全节点维护的数据能够客观反映交易历史。

区块链就是解决上述问题的技术方案。

结合前面讲过的和接下来要讲的,我们先提炼一下区块链的7大技术特性。 大家先记住了,后续我们慢慢讲:

区块链存储基于分布式数据库;

数据库是区块链的数据载体,区块链是交易的业务逻辑载体;

区块链对区块数据进行时间序列化,整个网络有一个确定的状态;

区块链只对加法有效,对其他操作无效;

交易基于公钥和私钥的非对称加密进行验证;

比特币与数字货币技术_比特币的核心技术是什么_q币和比特币是货币吗

区块链网络需要拜占庭一般容错;

共识算法能够“解决”双花问题。

区块链核心技术构成

无论是公链还是联盟链,至少需要四个模块:P2P网络协议、分布式共识算法(共识机制)、加密签名算法、账户和存储模型。

1. P2P网络协议

P2P网络协议是所有区块链的最底层模块,负责交易数据的网络传输和广播、节点发现和维护。

通常我们使用的是比特币P2P网络协议模块,它遵循一定的交互原则。 例如:第一次连接其他节点时,会要求你根据握手协议确认状态,握手后开始请求Peer节点的地址数据和区块数据。

这套P2P交互协议也有自己的一套指令,体现在Message Header的指令域中。 这些命令为上层提供了节点发现、节点获取、区块头获取、区块获取等功能,这些功能都是很底层,很基础的功能。 如果您想了解更多信息,可以参考比特币开发者指南中的 Peer Discovery 章节。

q币和比特币是货币吗_比特币与数字货币技术_比特币的核心技术是什么

2. 分布式共识算法

在经典分布式计算领域,我们有以Raft和Paxos算法族为代表的非拜占​​庭容错算法,以及具有拜占庭容错特性的PBFT共识算法。

如果从技术演进的角度来看,我们可以画出一张图,其中区块链技术对原有的分布式算法进行了经济的扩展。

微信图片_20201223142416.png

图中我们可以看到,计算机应用一开始多为单点应用,为了高可用和方便,采用冷灾备。 后来发展到异地多动。 这些在不同地方多活动的可能会用到负载均衡和路由技术。 随着分布式系统技术的发展,我们已经过渡到基于Paxos和Raft的分布式系统。

在区块链领域,多采用PoW工作量证明算法、PoS权益证明算法、DPoS代理权益证明算法。 以上三种是业界主流的共识算法。 这些算法不同于经典的分布式共识算法。 它们融合了经济博弈的概念,下面我将简要介绍这三种共识算法。

PoW:通常是指在给定的约束下,解决一个特定难度的数学问题,谁解决得快,谁就可以获得记账权(出块)。 这个求解过程往往转化为一个计算问题,所以在速度比拼的情况下,就变成了谁的计算方法更好,谁的设备性能更好。

PoS:这是一种权益证明机制。 它的基本理念是,出块的难度应该与你在网络中的权益(持股比例)成正比。 其实现的核心思想是:使用你锁定的代币的币龄(CoinAge)和一个小的工作量证明来计算一个目标值。 当达到目标值时,您将能够获得记账权。

比特币与数字货币技术_q币和比特币是货币吗_比特币的核心技术是什么

DPoS:简单理解就是将PoS共识算法中的记账人转化为一个由指定数量的节点组成的小圆圈,并不是所有人都可以参与记账。 这个圈子可能有21个节点,也可能有101个节点,这要看设计,只有这个圈子里的节点才能记账。 这将大大提高系统的吞吐量,因为更少的节点意味着可控的网络和节点。

3.加密签名算法

由于我不是密码学专业的,所以这部分我会重点介绍。

在区块链领域,哈希算法应用最为广泛。 哈希算法具有防碰撞、不可逆原像、问题友好等特点。

其中,问题的友好性是很多PoW币种存在的基础。 在比特币中,采用SHA256算法作为工作量证明的计算方式,也就是我们所说的挖矿算法。

在莱特币中,我们还会看到Scrypt算法,它与SHA256的不同之处在于它需要大内存的支持。 在其他一些币种中,我们也可以看到基于SHA3算法的挖矿算法。 以太坊使用改进版的Dagger-Hashimoto算法并将其命名为Ethash,这是一种IO难处理的算法。

当然,除了挖矿算法,我们还会用到RIPEMD160算法,主要用于生成地址。 大多数比特币衍生代码都采用比特币地址设计。

除了地址,我们还会用到区块链Token系统的核心和基石:公私钥密码算法。

比特币与数字货币技术_q币和比特币是货币吗_比特币的核心技术是什么

在比特币类的代码中,基本都使用ECDSA。 ECDSA 是 ECC 和 DSA 的组合。 整个签名过程和DSA类似比特币的核心技术是什么,只是签名中使用的算法是ECC(椭圆曲线函数)。

从技术上讲,我们从生成私钥开始,然后从私钥生成公钥,最后从公钥生成地址。 以上每一步都是一个不可逆的过程,也就是说不能从地址推导出公钥,而推导出私钥。

微信图片_20201223142421.jpg

4.账户及交易模型

从一开始的定义我们知道,区块链只能从技术上看是一个分布式数据库。 那么,大多数区块链使用什么类型的数据库?

我在设计元界区块链时参考了多种数据库,包括NoSQL的BerkelyDB和LevelDB,部分币种使用基于SQL的SQLite。 作为底层存储设施,它们大多是轻量级的嵌入式数据库。 由于不涉及区块链的账本特性比特币的核心技术是什么,这些存储技术与其他场合使用的技术没有区别。

区块链的账本特征通常分为UTXO结构和基于Accout-Balance结构的账本结构,我们也称之为账本模型。 UTXO是“unspent transaction input/output”的缩写,翻译过来就是“未花费的交易输入输出”。

本区块链中Token转账的一种记账方式,每次转账都以输入输出的形式出现; 但在 Balance 结构中,没有这种模式。