区块链有什么算法?

如题所述

第1个回答  2024-09-05
区块链技术的六大核心算法

区块链技术的六大核心算法

区块链核心算法一:拜占庭协定

拜占庭的故事大概是这么说的:拜占庭帝国拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那么入侵者可能都会被歼灭。于是每一方都小心行事,不敢轻易相信邻国。这就是拜占庭将军问题。

在这个分布式网络里:每个将军都有一份实时与其他将军同步的消息账本。账本里有每个将军的签名都是可以验证身份的。如果有哪些消息不一致,可以知道消息不一致的是哪些将军。尽管有消息不一致的,只要超过半数同意进攻,少数服从多数,共识达成。

由此,在一个分布式的系统中,尽管有坏人,坏人可以做任意事情(不受protocol限制),比如不响应、发送错误信息、对不同节点发送不同决定、不同错误节点联合起来干坏事等等。但是,只要大多数人是好人,就完全有可能去中心化地实现共识

区块链核心算法二:非对称加密技术

在上述拜占庭协定中,如果10个将军中的几个同时发起消息,势必会造成系统的混乱,造成各说各的攻击时间方案,行动难以一致。谁都可以发起进攻的信息,但由谁来发出呢?其实这只要加入一个成本就可以了,即:一段时间内只有一个节点可以传播信息。当某个节点发出统一进攻的消息后,各个节点收到发起者的消息必须签名盖章,确认各自的身份。

在如今看来,非对称加密技术完全可以解决这个签名问题。非对称加密算法的加密和解密使用不同的两个密钥.这两个密钥就是我们经常听到的”公钥”和”私钥”。公钥和私钥一般成对出现,如果消息使用公钥加密,那么需要该公钥对应的私钥才能解密;同样,如果消息使用私钥加密,那么需要该私钥对应的公钥才能解密。

区块链核心算法三:容错问题

我们假设在此网络中,消息可能会丢失、损坏、延迟、重复发送,并且接受的顺序与发送的顺序不一致。此外,节点的行为可以是任意的:可以随时加入、退出网络,可以丢弃消息、伪造消息、停止工作等,还可能发生各种人为或非人为的故障。我们的算法对由共识节点组成的共识系统,提供的容错能力,这种容错能力同时包含安全性和可用性,并适用于任何网络环境。

区块链核心算法四:Paxos算法(一致性算法)

Paxos算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。一个通用的一致性算法可以应用在许多场景中,是分布式计算中的重要问题。节点通信存在两种模型:共享内存和消息传递。Paxos算法就是一种基于消息传递模型的一致性算法。

区块链核心算法五:共识机制

区块链共识算法主要是工作量证明和权益证明。拿比特币来说,其实从技术角度来看可以把PoW看做重复使用的Hashcash,生成工作量证明在概率上来说是一个随机的过程。开采新的机密货币,生成区块时,必须得到所有参与者的同意,那矿工必须得到区块中所有数据的PoW工作证明。与此同时矿工还要时时观察调整这项工作的难度,因为对网络要求是平均每10分钟生成一个区块。

区块链核心算法六:分布式存储

分布式存储是一种数据存储技术,通过网络使用每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在网络中的各个角落。所以,分布式存储技术并不是每台电脑都存放完整的数据,而是把数据切割后存放在不同的电脑里。就像存放100个鸡蛋,不是放在同一个篮子里,而是分开放在不同的地方,加起来的总和是100个。

区块链的密码技术有

密码学技术是区块链技术的核心。区块链的密码技术有数字签名算法和哈希算法。

数字签名算法

数字签名算法是数字签名标准的一个子集,表示了只用作数字签名的一个特定的公钥算法。密钥运行在由SHA-1产生的消息哈希:为了验证一个签名,要重新计算消息的哈希,使用公钥解密签名然后比较结果。缩写为DSA。

?

数字签名是电子签名的特殊形式。到目前为止,至少已经有20多个国家通过法律认可电子签名,其中包括欧盟和美国,我国的电子签名法于2004年8月28日第十届全国人民代表大会常务委员会第十一次会议通过。数字签名在ISO7498-2标准中定义为:“附加在数据单元上的一些数据,或是对数据单元所作的密码变换,这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(例如接收者)进行伪造”。数字签名机制提供了一种鉴别方法,以解决伪造、抵赖、冒充和篡改等问题,利用数据加密技术、数据变换技术,使收发数据双方能够满足两个条件:接收方能够鉴别发送方所宣称的身份;发送方以后不能否认其发送过该数据这一事实。

数字签名是密码学理论中的一个重要分支。它的提出是为了对电子文档进行签名,以替代传统纸质文档上的手写签名,因此它必须具备5个特性。

(1)签名是可信的。

(2)签名是不可伪造的。

(3)签名是不可重用的。

(4)签名的文件是不可改变的。

(5)签名是不可抵赖的。

哈希(hash)算法

Hash,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,其中散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,但是不可逆向推导出输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。

哈希(Hash)算法,它是一种单向密码体制,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输入经过变化以后得到固定长度的输出。哈希函数的这种单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。

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

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

1.SHA-256,主要用于完成PoW(工作量证明)计算;

2.RIPEMD160,主要用于生成比特币地址。如下图1所示,为比特币从公钥生成地址的流程。

区块链技术中的哈希算法是什么?

1.1.简介

计算机行业从业者对哈希这个词应该非常熟悉,哈希能够实现数据从一个维度向另一个维度的映射,通常使用哈希函数实现这种映射。通常业界使用y=hash(x)的方式进行表示,该哈希函数实现对x进行运算计算出一个哈希值y。

区块链中哈希函数特性:

函数参数为string类型;

固定大小输出;

计算高效;

collision-free即冲突概率小:x!=y=hash(x)!=hash(y)

隐藏原始信息:例如区块链中各个节点之间对交易的验证只需要验证交易的信息熵,而不需要对原始信息进行比对,节点间不需要传输交易的原始数据只传输交易的哈希即可,常见算法有SHA系列和MD5等算法

1.2.哈希的用法

哈希在区块链中用处广泛,其一我们称之为哈希指针(HashPointer)

哈希指针是指该变量的值是通过实际数据计算出来的且指向实际的数据所在位置,即其既可以表示实际数据内容又可以表示实际数据的存储位置。下图为HashPointer的示意图

HashPointer在区块链中主要有两处使用,第一个就是构建区块链数据结构。了解区块链的读者应该知道区块链数据结构由创世区块向后通过区块之间的指针进行连接,这个指针使用的就是图示的HashPointer.每个区块中都存储了前一个区块的HashPointer。这样的数据结构的好处在于后面区块可以查找前面所有区块中的信息且区块的HashPointer的计算包含了前面区块的信息从而一定程度上保证了区块链的不易篡改的特性。第二个用处在于构建MerkleTree.MerkleTree的各个节点使用HashPointer进行构建,关于区块链数据结构以及MerkleTree的内容我们在后续文章中进行进一步介绍。

哈希还在其他技术中有所应用例如:交易验证以及数字签名等等。

2.加密算法

2.1简述

加密简单而言就是通过一种算法手段将对原始信息进行转换,信息的接收者能够通过秘钥对密文进行解密从而得到原文的过程。按照加密方和解密方秘钥相同与否可以将加密算法大致分为三种子类型:

对称加密

对称加密的加密解密方使用相同的秘钥,这种方式的好处在于加解密的速度快但是秘钥的安全分发比较困难,常见对称加密算法有DES,AES,...

非对称加密

非对称加密体系也称为公钥体系,加解密时加密方拥有公钥和私钥,加密方可以将公钥发送给其他相关方,私钥严格自己保留。例如银行的颁发给个人用户的私钥就存储在个人的U盾里;非对称加密中可以通过私钥加密,他人能够使用公钥进行解密,反之亦然;非对称加密算法一般比较复杂执行时间相对对称加密较长;好处在于无秘钥分发问题。常见的其他非对称加密算法有RSA,ECC,区块链中主要使用ECC椭圆曲线算法。

对称加密与非对称加密的结合

这种方式将加密过程分为两个阶段,阶段一使用非对称加密进行秘钥的分发使得对方安全地得到对称加密的秘钥,阶段二使用对称加密对原文进行加解密。

2.2数字签名

数字签名又称之为公钥数字签名,是一种类似于写在纸上的物理签名。数字签名主要用于数据更改的签名者身份识别以及抗抵赖。数字签名包含三个重要特性:

只有自己可以签署自己的数字签名,但是他人可以验证签名是否是你签发;

数字签名需要和具体的数字文档绑定,就好比现实中你的签名应该和纸质媒介绑定;

数字签名不可伪造;

依赖非对称加密机制可以较容易实现上述三种特性。

首先,需要生成个人的公私钥对:

(sk,pk):=generateKeys(keysize),sk私钥用户自己保留,pk公钥可以分发给其他人

其次,可以通过sk对一个具体的message进行签名:

sig:=sign(sk,message)这样就得到了具体的签名sig

最后,拥有该签名公钥的一方能够进行签名的验证:

isValid:=verify(pk,message,sig)

在区块链体系中每一条数据交易都需要签名,在比特币的设计过程中直接将用户的公钥来表征用户的比特币地址。这样在用户发起转账等比特币交易时可以方便的进行用户交易的合法性验证。

2.3数字证书和认证中心

2.3.1数字证书(DigitalCertificate)

数字证书又称“数字身份证”、“网络身份证”是经认证中心授权颁发并经认证中心数字签名的包含公开秘钥拥有者及公开秘钥相关信息的电子文件,可以用来判别数字证书拥有者身份。

数字证书包含:公钥、证书名称信息、签发机构对证书的数字签名以及匹配的私钥

证书可以存储在网络中的数据库中。用户可以利用网络彼此交换证书。当证书撤销后,签发此证书的CA仍保留此证书的副本,以备日后解决可能引起的纠纷。

2.3.2认证中心(CertificateAuthority)

认证中心一般简称CA,CA一般是一个公认可信的第三方机构,其作用主要是为每个用户颁发一个独一无二的包含名称和公钥的数字证书。

2.4常见加密算法的对比

区块链哈希算法是什么?

哈希算法也被称为“散列”,是区块链的四大核心技术之一。是能计算出一个数字消息所对应的、长度固定的字符串(又称消息摘要)的算法。由于一段数据只有一个哈希值,所以哈希算法可以用于检验数据的完整性。在快速查找和加密算法的应用方面,哈希算法的使用非常普遍。

在互联网时代,尽管人与人之间的距离更近了,但是信任问题却更严重了。现存的第三方中介组织的技术架构都是私密而且中心化的,这种模式永远都无法从根本上解决互信以及价值转移的问题。因此,区块链技术将会利用去中心化的数据库架构完成数据交互信任背书,实现全球互信的一大跨步。在这一过程中,哈希算法发挥了重要作用。

散列算法是区块链中保证交易信息不被篡改的单向密码机制。区块链通过散列算法对一个交易区块中的交易进行加密,并把信息压缩成由一串数字和字母组成的散列字符串。区块链的散列值能够唯一而准确地标识一个区块。在验证区块的真实性时,只需要简单计算出这个区块的散列值,如果没有变化就意味着这个区块上的信息是没有被篡改过的。

链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。

区块链有几种共识算法?

RippleConsensus(瑞波共识算法)

使一组节点能够基于特殊节点列表达成共识。初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由51%的该俱乐部会员投票通过。共识遵循这核心成员的51%权力,外部人员则没有影响力。由于该俱乐部由“中心化”开始,它将一直是“中心化的”,而如果它开始腐化,股东们什么也做不了。

5、PBFT:PracticalByzantineFaultTolerance(实用拜占庭容错算法)

PBFT是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。

PBFT算法主要特点如下:客户端向主节点发送请求调用服务操作;主节点通过广播将请求发送给其他副本;所有副本都执行请求并将结果发回客户端;客户端需要等待f+1个不同副本节点发回相同的结果,作为整个操作的最终结果。

logo设计

创造品牌价值

¥500元起

APP开发

量身定制,源码交付

¥2000元起

商标注册

一个好品牌从商标开始

¥1480元起

公司注册

注册公司全程代办

¥0元起

    官方电话官方服务
      官方网站八戒财税知识产权八戒服务商企业需求数字市场
相似回答
大家正在搜