穿越平凡·追求卓越
搜索

【行业】通信-数据更可信共享,区块链永向前(26页)

区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的链式数据结构,利用块链式数据结构来验证和存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全性,利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。其中区块是链式结构的基本数据单元,聚合了所有交易相关信息,主要包含区块头和区块主体两部分。区块头主要由父区块哈希值(Previous Hash)、时间戳(Timestamp)、默克尔树根(Merkle Tree Root)等信息构成;区块主体一般包含一串交易的列表。每个区块中的区块头所保存的父区块的哈希值,便唯一指定了该区块的上一个区块数据的哈希值,这种哈希层层嵌套,最终将所有区块串联起来,从而组成了区块链的基本数据结构。 根据网络范围及参与节点特性,区块链可被划分为公有链、联盟链、私有链三类。公有链是完全去中心化的,任何人既可以进行交易也可以读取信息,任何人都可以参与链上的交易确认和共识机制,各个节点可以随时加入节点也可以随时退出节点。联盟链由几个权威的机构共同分布式记账,这些节点再根据共识机制协调工作,即部分去中心化,民众可以进行查阅和交易,不过验证交易的话就需要联盟内部决定,联盟链的一个最显著的特点就是各个节点都对应一个实体机构,任何实体机构节点想要加入联盟链,需要得到联盟的许可,这些机构共同维护系统的稳定发展。私有链是对单独的个人或实体进行开放的区块链系统,系统内的每个节点的权限都需要组织来分配,对每个节点开放的数据量要视情况由组织来决定,虽然对各个节点都进行了限制,但私有链仍然是区块链的多节点的框架,私有链的交易速度会很快,主要是因为不需要每个节点来验证一个交易,少量的节点就可以完成验证。 以 RSA(较为流行的一种质因数分解加密方式)为例,我们先随机取 2 个质数257 和 337,按照 RSA 的方案(利用欧拉函数和高斯对欧拉函数的变种)我们会得到私匙为(e=17,n=86609),公匙为(d=65777,n=86609)此处的核心加密算法为C=M^e mod n。其中 C 为加密后的信息,M 为原始信息,假设 M=18537,n 从两把钥匙中得出是 86609。一旦我们用私匙去给信息 M 加密(签名),我们得到 C=18537^17mod 86609=12448。此处 12448 便是我们的签名后的信息(签名文件)。当我们把 12448发给对方时,对方可以用公匙去解密。相应的解密算法为 M=C^d mod n. 当我们把各数字带入解密算法里,我们得出 M=12448^65777 mod 86609=18537。此时我们发现公匙在解密算法中还原出了私匙加密前的文件,但是如果强行从公匙去推私匙,计算难度大,而且现实中大家往往采用大质数显著的扩大了欧拉总计函数的值导致算力要求指数上升。很多时候大家为了防止确认的时候泄露了文件内容,会先对文件进行哈希运算,从而对哈希值进行运算和验证,而不是文档本身。