目录:
六大算法
区块链的主要技术
六大算法
区块链技术核心要素
区块链主流算法是什么
区块链主流算法是什么
区块采用的密码算法
六大算法
1、拜占庭的故事大概是这么说的:拜占庭帝国拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那么入侵者可能都会被歼灭。于是每一方都小心行事,不敢轻易相信邻国。这就是拜占庭将军问题。
2、在这个分布式网络里:每个将军都有一份实时与其他将军同步的消息账本。账本里有每个将军的签名都是可以验证身份的。如果有哪些消息不一致,可以知道消息不一致的是哪些将军。尽管有消息不一致的,只要超过半数同意进攻,少数服从多数,共识达成。
3、由此,在一个分布式的系统中,尽管有坏人,坏人可以做任意事情(不受protocol限制),比如不响应、发送错误信息、对不同节点发送不同决定、不同错误节点联合起来干坏事等等。但是,只要大多数人是好人,就完全有可能去中心化地实现共识。
4、在上述拜占庭协定中,如果10个将军中的几个同时发起消息,势必会造成系统的混乱,造成各说各的攻击时间方案,行动难以一致。谁都可以发起进攻的信息,但由谁来发出呢?其实这只要加入一个成本就可以了,即:一段时间内只有一个节点可以传播信息。当某个节点发出统一进攻的消息后,各个节点收到发起者的消息必须签名盖章,确认各自的身份。
区块链的主要技术"/>
区块链的主要技术
1、不谦虚地说,我有可能是国内第一批读到中本聪白皮书的人。作为密码学博士,又以信息安全领域的教学和研究为本职工作,因此,在2008年,我就读到了中本聪的白皮书。但当时只是以单一的技术视角来看待这份白皮书,因此也就不可能从这份划时代的白皮书中读到技术创造或技术创新以外的内容,因此当时也就没有觉得区块链是一个多么伟大的东西。
2、我们现在常说,区块链是一种去中心化的技术架构,这个系统具有数据不可篡改性、数据可溯源可追踪、系统具有去第三方信任等一系列特点特征。那么区块链的这些特点特征又是通过哪些技术手段实现的?
3、也许不同的人从不同的角度会归纳总结出区块链不同的技术组合。比如,有些人就把脚本语言也作为区块链的底层技术,但我认为,脚本语言最多只是一种工具,而不能算是一种技术。
4、在秘密通讯系统中,明文经过密码加密生成密文,密文再通过密码的逆运算还原为明文。传统上在这个系统当中,所有的密码都是相同的,也就是加密密码和解密密码是完全相同的,不能泄露,一旦泄露秘密将得不到保护。这种系统在应用时具有很高的效率,但他最大的麻烦在于,在进行保密通信之前,需要双方事先约定好密钥。这个事情在有些情况下是很困难的,甚至是不可能的。我们以前看过的一个电影叫《鸡毛信》,那么鸡毛信实际上是什么呢?鸡毛信实际上就是进行秘密通信之前约定的密钥。
六大算法
1、拜占庭的故事大概是这么说的:拜占庭帝国拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那么入侵者可能都会被歼灭。于是每一方都小心行事,不敢轻易相信邻国。这就是拜占庭将军问题。
2、在这个分布式网络里:每个将军都有一份实时与其他将军同步的消息账本。账本里有每个将军的签名都是可以验证身份的。如果有哪些消息不一致,可以知道消息不一致的是哪些将军。尽管有消息不一致的,只要超过半数同意进攻,少数服从多数,共识达成。
3、由此,在一个分布式的系统中,尽管有坏人,坏人可以做任意事情(不受protocol限制),比如不响应、发送错误信息、对不同节点发送不同决定、不同错误节点联合起来干坏事等等。但是,只要大多数人是好人,就完全有可能去中心化地实现共识
4、在上述拜占庭协定中,如果10个将军中的几个同时发起消息,势必会造成系统的混乱,造成各说各的攻击时间方案,行动难以一致。谁都可以发起进攻的信息,但由谁来发出呢?其实这只要加入一个成本就可以了,即:
区块链技术核心要素
1、简单来说,区块链是一个提供了拜占庭容错、并保证了最终一致性的分布式数据库;从数据结构上看,它是基于时间序列的链式数据块结构;从节点拓扑上看,它所有的节点互为冗余备份;从操作上看,它提供了基于密码学的公私钥管理体系来管理账户。
2、通常我们所用的都是比特币 P2P 网络协议模块,它遵循一定的交互原则。比如:初次连接到其他节点会被要求按照握手协议来确认状态,在握手之后开始请求 Peer 节点的地址数据以及区块数据。
3、这套 P2P 交互协议也具有自己的指令集合,指令体现在在消息头(Message Header) 的 命令(command)域中,这些命令为上层提供了节点发现、节点获取、区块头获取、区块获取等功能,这些功能都是非常底层、非常基础的功能。如果你想要深入了解,可以参考比特币开发者指南中的 Peer Discovery 的章节。
4、在图中我们可以看到,计算机应用在最开始多为单点应用,高可用方便采用的是冷灾备,后来发展到异地多活,这些异地多活可能采用的是负载均衡和路由技术,随着分布式系统技术的发展,我们过渡到了 Paxos 和 Raft 为主的分布式系统。
区块链主流算法是什么
1、在深入学习区块链时,不可避免的需要了解密码学。密码学流传已久,有几千年历史,在军事、外交、情报等领域有广泛的的应用。在区块链领域,也大量应用了密码学算法,比如哈希算法和椭圆曲线算法,这些数据加密算法是该技术重要组成部分。下面详细介绍下区块链最常用的三个数据算法。 哈希算法 哈希算法又叫散列算法或者摘要算法,是将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。它的原理其实很简单,就是把一段交易信息转换成一个固定长度的字符串,但是只要原始数据稍微改动得到的散列值机会完全不同,因为这个特性,哈希算法通常应用于对数据的完整性校验以及密码验证。故哈希算法是单向加密算法,有3个重要的性质,即抗碰撞性、原像不可逆、难题友好性。区块链中使用该算法生成区块hash、交易hash和完成工作量证明。
2、非对称加密算法 有非对称加密必然有对称加密算法,这里顺便简单介绍下对称加密算法。对称加密算法是指在加密和解密时使用的是同一个秘钥。与对称加密算法不同,非对称加密算法需要两个密钥:公钥(publickey)和私钥(privatekey)。公钥与私钥是一对,私钥可以推导出公钥而公钥不可以推导出私钥,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。简单的说是“公钥加密,私钥解密;私钥加密,公钥解密”。
3、在区块链中,数字签名就是基于上述非对称加密技术,不同点在于数字签名使用私钥生成一个签名,接收方使用公钥进行校验。比如上面用私钥解密得到明文后,用私钥进行签名进行回复,收到回复后用公钥解密得到的内容与数据相同即可证明签名正确。
4、在区块链技术中常见的签名算法是椭圆曲线加密技术。其算法用对椭圆曲线上的点进行加法或乘法运算来表达。区块链中私钥是一个随机数,通过椭圆曲线签名算法生成公钥。但反向从公钥计算出私钥几乎是不可能的。椭圆曲线签名算法还具有安全性高和存储空间占用小的特点。
区块链主流算法是什么
1、最近,经过一段混乱的加密货币时期,区块链再次流行起来,引起了各方的极大关注,成为资本市场和各个领域的焦点,甚至朋友圈的讨论和分享也令人眼花缭乱。那么,区块链到底是什么呢?区块链的核心算法是什么?
2、拜占庭的故事可能是这样说的:拜占庭帝国拥有巨大的财富,周围的10个邻国诞生了很长一段时间,但拜占庭的高墙矗立着,就像金汤一样,没有一个单独的邻国能够成功入侵。任何单一的邻国入侵都将失败,也可能被其他9个邻国入侵。拜占庭帝国的防御能力如此强大,至少十个邻国中有一半同时进攻以取得突破。然而,如果一个或几个邻国同意一起进攻,但背叛了实际过程,入侵者可能会被歼灭。所以每个人都非常小心,不敢轻易相信邻国。这就是拜占庭将军的问题。
3、在这个分布式网络中:每个将军的新手都有一个与其他将军同步的实时新闻书。每个将军的签名都可以验证身份。如果有不一致的消息,你可以知道哪些将军不一致。虽然有消息不一致,但只要超过一半同意进攻,少数服从多数,达成共识。
4、因此,在分布式系统中,虽然有坏人,但坏人可以做任何事情(不受影响)protocol限制),如不响应、发送错误信息、向不同节点发送不同决策、联合不同节点做坏事等。然而,只要大多数人都是好人,就完全有可能分散共识。
区块采用的密码算法
1、数字签名算法是数字签名标准的一个子集,表示了只用作数字签名的一个特定的公钥算法。密钥运行在由SHA-1产生的消息哈希:为了验证一个签名,要重新计算消息的哈希,使用公钥解密签名比较结果。缩写为DSA。
2、数字签名是电子签名的特殊形式。到目前为止,至少已经有 20 多个国家通过法律 认可电子签名,其中包括欧盟和美国,我国的电子签名法于 2004 年 8 月 28 日第十届全 国人民代表大会常务委员会第十一次会议通过。数字签名在 ISO 7498-2 标准中定义为: “附加在数据单元上的一些数据,或是对数据单元所作的密码变换,这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(例如接收者)进行伪造”。数字签名机制提供了一种鉴别方法,以解决伪造、抵赖、冒充和篡改等问题,利用数据加密技术、数据变换技术,使收发数据双方能够满足两个条件:接收方能够鉴别发送方所宣称的身份;发送方以后不能否认其发送过该数据这一 事实。
3、Hash,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,其中散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,但是不可逆向推导出输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
4、哈希(Hash)算法,它是一种单向密码体制,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输入经过变化以后得到固定长度的输出。哈希函数的这种单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。