区块链核心技术解析:基础组件与工作原理

创始人
2025-01-09 15:35:33
0 次浏览
0 评论

区块链需要哪些技术

区块链技术主要基于分布式账本、密码算法、共识机制、智能合约等核心组件。
1.分布式账本:区块链的基础是分布式账本技术,它是一个记录所有交易历史并分布在多个网络节点上的去中心化数据库。
每个节点都拥有一份完整的账本副本,这保证了信息的透明和防篡改,因为要改变任何一个区块的信息,都需要在大多数节点上同时修改,这在现实世界中几乎是不可能实现的。
实际操作。
2、加密算法:区块链技术利用加密技术来保证数据的安全性和匿名性。
哈希函数用于将交易数据转换为固定长度的哈希值,以保证数据的完整性和不可逆性。
数字签名的公私钥采用非对称加密技术,保证交易发起者的身份有效且不可否认。
3.共识机制:在区块链网络中,所有交易在添加到新区块之前都必须经过一定的共识机制确认。
常见的共识机制包括工作量证明、权益证明等。
这些机制确保所有网络参与者都同意交易历史记录,防止欺诈和双重支出问题。
4.智能合约:智能合约是区块链上的自动执行协议,允许在没有第三方的情况下进行可信交易。
智能合约有预先定义的规则和条件,一旦满足这些条件,合约就会自动执行,提高交易效率并减少中间环节。
这些技术的结合使得区块链成为一个安全、透明、去中心化的信息存储和交换平台,广泛应用于数字货币、供应链金融、物联网、身份认证等领域。

区块链有哪些技术关键(区块链技术有三个关键点)

区块链的核心技术是什么?

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

也许上面的概念太抽象了。
让我给你举个例子,以便你更容易理解。

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

那么,我们应该用什么样的算法(共识机制)来为其提供一个值得信赖的环境,使得:

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

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

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

区块链就是为了解决上述问题而诞生的技术方案。

2.区块链的核心技术组件

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

1.P2P网络协议

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

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

这种P2P交互协议也有自己的一套指令,这些指令体现在消息头(MessageHeader)的命令字段中。
这些命令为上层提供节点发现、节点获取和块头等功能。
获取、块获取等功能是非常底层、非常基础的功能。
如果你想了解更多,可以参考《比特币开发者指南》中的PeerDiscovery章节。

2.分布式共识算法

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

如果我们从技术演进的角度来看,我们可以画出这样一幅图景:区块链技术在经济上扩展了原有的分布式算法。

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

在区块链领域,多采用PoW工作量证明算法、PoS权益证明算法、DPoS代理权益证明算法。
以上三种是业界主流的共识算法。
这些算法与经典的分布式算法类似。
之间的区别共识算法的特点是它们融入了经济博弈的概念。
下面我简单介绍一下这三种共识算法。

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

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

DPoS:简单的理解就是将PoS共识算法中的记账人转换成由指定数量的节点组成的小圈子,而不是每个人都可以参与记账。
这个圆圈可以指向一个脚本,而不是指向一个地址。
脚本就像一组规则,用于控制接收者如何使用锁定在该输出上的资产。

交易的合法性验证也依赖于脚本。
目前它依赖两种类型的脚本:锁定脚本和解锁脚本。
锁定脚本是添加到输出交易中的条件,通过脚本语言实现,位于交易的输出处。
解锁脚本与锁定脚本相对应。
只有满足锁定脚本所需的条件,才能花费该脚本上的相应资产,该资产位于交易的输入处。
许多灵活的条件可以通过脚本语言来表达。
解释脚本类似于我们编程领域中的“虚拟机”,分布式运行在区块链网络的各个节点上。

4.交易规则

区块链交易是构成区块的基本单位,也是区块链负责记录的实际有效内容。
区块链交易可以是转账或其他交易,例如智能合约的部署。

就比特币而言,交易是支付转账。
交易规则如下:

1)交易的输入和输出不能为空。

2)对于交易的每个输入,如果在当前交易池中可以找到其对应的UTXO输出,则该交易将被拒绝。
因为当前的交易池是尚未记录在区块链中的交易,而交易的每笔输入都应该来自于已确认的UTXO。
如果在当前交易池中找到,则为双花交易。

3)对于交易中的每个输入,其对应的输出必须是UTXO。

4)每个输入解锁脚本(unlocking)必须与对应的输出锁定脚本(locking)配合来验证交易的合规性。

5.交易优先级

区块链交易的优先级由区块链协议规则决定。
对于比特币来说,交易被包含在区块中的优先级取决于交易广播到网络所需的时间和交易的大小。
随着交易广播到网络所需的时间增加以及交易的链龄增加,交易的优先级提高,最终将被包含在区块中。
对于以太坊来说,交易的优先级还与交易的发布者愿意支付的交易费用有关。
发布者愿意支付的交易费用越高,交易的优先级越高

区块链如何加密数据(区块链如何加密数据)

是将任意长度的消息压缩为固定长度的消息摘要的函数。

哈希算法是一种单向密码系统,即从明文到密文的不可逆映射,只有加密过程,没有解密过程。
同时,哈希函数可以将任意长度的输入进行转换,得到固定长度的输出。
哈希函数的单向特性和输出数据的固定长度使其能够生成消息或数据。

以比特币区块链为代表,在工作量证明和密钥编码过程中多次使用二次哈希,例如SHA(SHA256(k))或RIPEMD160(SHA256(K))),这种方法的优点是增加了工作量,或者在协议不清楚的情况下增加了破解的难度。

以比特币区块链为代表,主要使用的两个哈希函数是:

1、主要用于完成PoW(工作量证明)计算;

2.RIPEMD160,主要用于生成比特币地址。
如下图1所示,由比特币的公钥生成一个地址,用B的私钥解密,然后用A的公钥解密摘要,只需比较两个摘要的内容是否相同即可。
这样既避免了抗干扰的问题,又避免了双方攻击的问题。
因为A签署了信息,所以不能否认。

为了解决非对称加密数据时的性能问题,通常会使用混合加密。
这里我们需要引入对称加密,如下图:

在加密数据时,我们使用双方共享的对称密钥进行加密。
对称密钥尽量不要通过网络发送,以免丢失。
这里共享的对称密钥是根据自己的私钥和对方的公钥计算出来的,然后用对称密钥来加密数据。
对方收到数据时,也计算对称密钥并解密密文。

上述对称密钥是不安全的,因为A的私钥和B的公钥通常是在短期内设定的,因此共享的对称密钥也被设定。
为了提高安全性,最好的方法是为每次交互生成临时共享对称密钥。
那么我们如何在每次交互过程中生成随机对称密钥而不发送它呢?

那么如何生成一个随机共享密钥进行加密呢?

对于发送节点A来说,每次发送都会生成一个临时的非对称秘钥对,然后根据节点B的公钥和临时的非对称私钥就可以计算出对称秘钥。
(KA-密钥协议算法)。
然后使用对称密钥对数据进行加密。
此处共享密钥的过程如下:

对于节点B,在收到传输的数据后,解密节点A的随机公钥。
然后使用节点A的随机公钥和节点B本身的私钥计算对称密钥(KA算法)。
然后使用对称密钥对数据进行加密。

对于上面的加密方法,还存在很多问题,比如如何避免重放攻击(在消息中添加Nonce),以及彩虹表等问题(参考KDF机制来解决)。
由于时间和能力有限,我暂时忽略它。

那么应该使用什么类型的加密呢?

主要是根据要发送的数据的安全级别。
不重要的数据其实可以被验证和签名,但非常重要的数据必须被验证和签名采用安全级别较高的加密方案。

密码套件是一个网络协议概念。
主要包括身份验证、加密、消息认证(MAC)和密钥交换等算法。

整个网络传输过程中,算法按照密码套件主要分为以下几类:

主要交换算法:如ECDHE、RSA等。
主要用于客户端和服务器握手时的认证。

消息认证算法:如SHA1、SHA2、SHA3。
主要用于消息摘要。

批量加密算法:如AES,主要用于对信息流进行加密。

伪随机数算法:例如TLS1.2伪随机函数使用MAC算法的哈希函数创建主密钥——双方共享的48字节私钥联系。
在创建会话密钥(如创建MAC)时,主密钥充当熵源。

在网络中,消息传输一般需要经过以下四个阶段的加密,以保证消息传输的安全可靠。

握手阶段/网络协商:

双方在握手阶段,需要进行链路协商。
主要的加密算法有RSA、DH、ECDH等。

身份验证阶段:

在身份验证阶段,需要确定发送消息的来源。
主要使用的加密方法有RSA、DSA、ECDSA(ECC加密、DSA签名)等。

消息加密级别:

消息加密是指对传输的信息流进行加密。
主要使用的加密方法有DES、RC4、AES等。

消息身份验证阶段/防篡改阶段:

主要是保证消息在传输过程中不被篡改。
主要的加密方法有MD5、SHA1、SHA2、SHA3等。

ECC:EllipticCurvesCryptography,椭圆曲线密码学。
它是一种根据椭圆上的点积生成公钥和私钥的算法。
用于生成公钥和私钥。

ECDSA:用于数字签名,是一种数字签名算法。
有效的数字签名使收件人有理由相信该消息来自已知的人。
由发件人创建,以便发件人无法否认该消息已发送(确认而不是反驳)并且该消息在任何情况下都不会更改过境。
ECDSA签名算法是ECC和DSA的结合,整个签名过程和DSA类似,不同的是签名时使用的算法是ECC,最终的签名值也分为r和s。
主要用于身份验证阶段。

ECDH:也是一种基于ECC算法的哈夫曼树密钥,通过ECDH,双方可以在不共享任何秘密的情况下协商出一个共享秘密,而这个共享秘密密钥是在通信时临时生成的。
随机性,一旦通信中断,密钥就会丢失。
主要用在握手协商阶段。

ECIES:是一种集成加密方案,也称为混合加密方案,它提供针对明文和选定密文攻击的语义安全性。
ECIES可以使用不同类型的函数:密钥协商函数(KA)、密钥导出函数(KDF)、对称加密方案(ENC)、散列函数(HASH)、H-MAC函数(MAC)。

ECC是一种椭圆加密算法,主要描述公钥和私钥如何在椭圆上生成且不可逆。
ECDSA主要使用ECC算法创建签名,而ECDH则使用ECC算法生成签名对称密钥。
以上三种都是ECC加密算法的应用。
在现实场景中,我们经常使用混合加密(对称加密、非对称加密、签名技术等的组合)。
ECIES是底层ECC算法提供的一套集成(混合)加密解决方案。
其中包括非对称加密、对称加密和签名函数。

metacharset="utf-8"

这个前置条件是为了保证曲线不包含单个点。

所以,当曲线参数a和b不断变化时,曲线也会呈现出不同的形状。
例如:

所有非对称加密的基本原理基本上都是基于公式K=kG。
其中,K代表公钥,k代表私钥,G代表选择的基点。
非对称加密算法是为了保证公式不可逆(即G/K无法计算)。
*

ECC如何计算公钥和私钥?这里我按照我自己的理解来解释一下。

我理解ECC的核心思想就是在曲线上选取一个基点G,然后在ECC曲线上随机选取一个点k(作为私钥),然后计算我们的公钥基于kG的密钥K。
并确保公钥K也在曲线上。
*

那么如何计算kG呢?如何计算kG才能保证最终结果不可逆转?这就是ECC算法要解决的问题。

首先,我们随机选择ECC曲线,a=-3,b=7,得到如下曲线:

在这条曲线上,我选择两个点随机乘以点?我们可以把问题简化乘法可以用加法来表示,比如22=2+2、35=5+5+5。
那么只要我们能够计算曲线上的加法,理论上我们就能够计算乘法。
因此,只要能对这条曲线进行加法计算,理论上就可以计算出乘法,理论上就可以计算出k*G等表达式的值。

如何计算曲线上两点的相加?在这里,为了确保不可逆性,ECC在曲线上安装了一个附加系统。

现实中,1+1=2、2+2=4,但在ECC算法中,我们理解的加法系统是不可能的。
因此,有必要针对这些曲线调整一套合适的添加系统。

ECC的定义,在图中找一条随机直线与ECC曲线相交于三个点(可能这两点分别是P、Q和R)。

那么P+Q+R=0。
其中,0并不是坐标轴上的0点,而是ECC中的无穷大点。
换句话说,无穷远点被定义为点0。

类似地,我们可以得到P+Q=-R。
由于R和-R关于X轴对称,我们可以在曲线上找到它们的坐标。

P+R+Q=0,所以P+R=-Q,如上图所示。

上面描述了ECC曲线世界中如何执行加法运算。

从上图可以看出,直线和曲线只有两个交点,也就是说直线与曲线相切。
此时,P和R重合。

即P=R根据上面提到的ECC加法系统,P+R+Q=0,可以得出P+R+Q=2P+Q=2R+Q。
=0

所以我们得到2P=-Q(它是否更接近我们非对称算法的K=kG公式?)。

热门文章
1
2024以太坊价格展望:牛市潜力与投资时... 年末以太坊会有所升温吗?什么时候买涨?以太坊年底的价格走势很难确定,但可能性有很...

2
小米手机加密解除攻略:轻松解锁红米K40... 小米区块链加密怎么解除(小米区块链加密怎么解除密码)如何取消红米K40手机上的加...

3
张雪峰解析:就业率最高的十大热门专业盘点 最好就业的专业张雪峰张雪峰就业率最高的专业如下:1.信息安全:信息安全是指保护信...

4
以太坊2024年价格展望:技术升级与市场... 以太坊2023年能涨1万美金吗以太坊到2023年可能会上涨10,000美元。在实...

5
Filecoin价格动态与未来展望:深度... Filecoin介绍,FIL价格预测Filecoin是一个致力于减少云存储对中心...

6
揭秘比特币:数字货币的崛起与未来应用 比特币是什么东西?有什么用?比特币是一种数字货币和去中心化电子支付系统。它不委托...

7
BCC区块查询教程及比特币安全探讨 bcc怎么样查询区块如何查询bcc区块BCC(BitcoinCash)是比特币的...

8
游戏区块链怎么赚钱 依靠区块链怎么赚钱(区块链靠什么盈利)区块链挖矿如何赚钱?1.通过促销赚取佣金。...

9
为什么用比特币交易 比特币有什么用比特币的用途比特币是一种数字货币,其主要用途包括:1.交易媒介比特...

10
以太坊价格分析:2024年牛市预测与多元... 以太坊现在卖多少钱?以太坊价格是动态的,取决于市场。作为区块链2.0的旗舰项目,...