图19.5源块Step-2:甲向乙付款20元,这样区块链上的每个节点都会更新信息,如图19.6所示。要建立一个区块链系统,首先要建立一个纯P2P分布式系统,该系统的特点主要包括以下几点。区块链的工作过程如下。分布式P2P系统包含很多成员,成员在计算机上又各自维护着所添加属性的区块链数据结构。......
2023-10-28
区块链中使用的关键技术是哈希技术,本节讨论哈希数据。
1.哈希概述
哈希也称散列,就是将任意长度的输入(又叫前像,pre-image)通过散列算法转换成固定长度的输出,该输出就是哈希(散列)值。这种转换是一种压缩映射,也就是散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单来说,哈希就是一个将任意长度的消息压缩到某一固定长度的消息摘要的函数。
可以将加密哈希值看成是一种数字指纹。在分布式P2P系统里,需要处理大量交易数据,我们需要迅速识别它们的唯一性并与它们进行比较,这时就需要通过数字指纹实现。
哈希函数是很小的计算机程序,可将任意数据转换为定长的整数。任意给定时刻,哈希函数只接受一部分数据作为输入,经过哈希函数的转换,转换成一个哈希值。哈希函数很多,其中一类称为密码哈希函数(cryptographic hash functions),该函数可为任意数据创建数字指纹。密码哈希函数具有如下性质。
●快速为任何一种数据创建哈希值。实际上,这个性质是两个性质的组合:首先,哈希函数要能够为各种数据计算出哈希值,这是能力要求;其次,哈希函数要能够快速计算,这是速度要求。
●确定性(deterministic)。确定性意味着哈希函数为相同的输入数据产生相同的哈希值。
●伪随机性(pseudorandom)。伪随机性意味着输入数据变化时,哈希函数返回的哈希值是不可预见的。即使基本输入数据的变化只是一个比特,返回的哈希值也无法预测。
●单向性。单向性是指无法通过输出逆向追溯其输入值。不可能通过逆向转换,基于哈希值恢复输入值。
●抗冲突性(collision resistant)。哈希函数是抗冲突的,如果很难找到两个或多个数据片段,那么通过哈希后产生相同的哈希值。换言之,不同的数据片生成相同的哈希值的机会很小,这种哈希函数是抗冲突的。
2.数据哈希模式
数据哈希模式可以分为独立哈希(independent hashing)、重复哈希(repeated hashing)、组合哈希(combined hashing)、顺序哈希(sequential hashing)和层次哈希(hierarchical hashing)等几种。
1)独立哈希
独立哈希是指对每个数据片分别独立实施哈希运算,如对字符串“Hello World!”,可以对“Hello”和“World!”做独立哈希,如图19.8所示。
2)重复哈希
重复哈希是指重复使用哈希函数,如对“Hello World!”先做一次哈希得到哈希值7F83B65,接着再做一次哈希得到哈希值45A47BE7,如图19.9所示。
图19.8 独立哈希
图19.9 重复哈希
3)组合哈希(www.chuimin.cn)
组合哈希是在一次变换中让多个数据片变成一个哈希值。将数据组合起来需要耗费计算能力、时间和内存空间,只有独立数据片不是很多时才适合采用这种模式。组合哈希的缺点是,结果生成的是数据组合的一个哈希值,而无法生成独立数据片的哈希值,如图19.10所示。
4)顺序哈希
顺序哈希是一种随着新数据的到达逐步对哈希值更新的一种方式。首先对第一个输入的数据片实施哈希,获得哈希值,然后将该哈希值和新输入的数据片组合后重复实施哈希,获得新的哈希值。逐次递增,直至输入结束,如图19.11所示。
5)层次哈希
如图19.12所示,对独立数据片实施哈希,获得多个哈希值,然后再将它们组合后生成一个哈希值。
图19.10 组合数据后计算哈希值
图19.11 顺序计算哈希值
图19.12 分层计算哈希值
3.哈希指针
哈希指针(hash pointer)是指向数据块的哈希加密指针。就像大家熟悉的链接表,一个指针指向下一个数据块。与通常的链接表不同,哈希指针指向前一个数据块,用于验证数据没有被篡改。
图19.13 交易一个块的哈希指针
使用哈希指针的目的是构建区块链以防篡改机制,其实现过程如图19.13所示。
如图19.14所示,每个数据块指针指向前一个数据块,称为“父块”,依次指向下去,直到指向源块。可以发现,如果数据被篡改,则数据和哈希指针不匹配,问题就被发现。
图19.14 哈希指针连接区块链中的数据块
有关分布式数据库技术的文章
图19.5源块Step-2:甲向乙付款20元,这样区块链上的每个节点都会更新信息,如图19.6所示。要建立一个区块链系统,首先要建立一个纯P2P分布式系统,该系统的特点主要包括以下几点。区块链的工作过程如下。分布式P2P系统包含很多成员,成员在计算机上又各自维护着所添加属性的区块链数据结构。......
2023-10-28
进一步说,物联网需要各行各业的参与,是一项综合性的技术,是一项系统工程。物联网的规划、设计和研发,关键在于射频识别、传感器、嵌入式软件以及传输数据计算等领域技术的发展。一般来讲,物联网的主要工作包含以下几方面。互联网将人连接起来,物联网将设备(物)连接起来,物的数量远远大于人。随着越来越多的设施加入物联网,数据大小呈指数级增长。......
2023-10-28
以教育为例,可以将教育定义为如图5.12所示的本体模型。图5.12本体模型在图5.12所示的本体模型中,树状的根称为元本体,用于描述通用知识,它是一个〈C,R,A〉三元组。图5.12中,元本体的三个特指是EducationalOntology、Domain Ontology和UsageOntology,分别表示教育本体、领域本体和应用本体,它们的is-a相关于MetaOntology。图5.13将PDF格式的教材转换为本体为了实现将PDF格式的教材自动转换为本体,参考文献[12]提出了一个算法General。......
2023-10-28
政府的各个职能部门也管理着与其职能有关的部门业务数据,主要包含以下几种。工商企业数据库主要具有以下功能。因此,工商企业数据库围绕的是企业法人,以企业法人为核心及其相关实体构建而成。非政府机构组织数据库等可参照工商企业数据库。类似的部门业务数据库很多,在此不再赘述。......
2023-10-28
与数据库安全系统打交道的人员可以分为两类:数据库管理员和普通用户。DBA要对安全负责,所以他(们)要创建授权规则,定义谁可以使用哪部分数据,以及如何使用。图13.1数据库安全系统由图13.1可知,数据库安全系统里存放着授权规则,在每次数据库存取时强制满足其规则。从完整性方面考虑,数据库安全可以包含以下两方面。1)设计阶段的数据库安全在设计阶段必须关注数据库的安全性。DBA负责处理整个数据库系统里的用户账号和口令。......
2023-10-28
下面这两个查询是等价变换:那么它们为何等价?下面讨论关系代数的等价变换规律,基础是我们在代数中常用的交换律、结合律、分配律等。,An)注意,这是有条件的,具体条件在表7.1中说明。表7.1是一元运算交换律的情况。表7.1一元运算的交换律其中:√表示这个交换律是成立的,表示这个交换律是不成立的。表7.2二元运算的交换律和结合律注:PreCon1:∞F2 T→R∞F1:AttrAttr∪Attr。表7.3幂等律4.分配律分配律如表7.4所示。......
2023-10-28
Oracle公司的OPS环境比一般的(单实例)Oracle环境复杂得多。不同结构下的OPS的实施略有不同。图14.23OPS体系结构为了利用这些特性,需要专业人员合适的设计以及恰当的手工配置。下面对有些关键问题进行简单讨论,讨论中会涉及一些Oracle系统专用的术语,读者可参阅Oracle公司的相关文档。DLM与Oracle进程一起工作并相互通信。DLM相关的初始化参数在每个实例的SGA[12]中分配必要的结构以处理消息机制、封锁与实例相关的Cache管理,这样就为各种Oracle进程操纵提供了基础。......
2023-10-28
为了集成海量的、异构的、多形态的数据,首先要将它们的描述统一起来,这就引出了对集成数据的元数据描述和管理的要求。事实上,人们对元数据的理解和认识还存在不少争议,迄今尚未形成真正统一的元数据定义。与数据字典不同,数据仓库主要是将元数据进行分析处理。2)元数据分类元数据广泛存在的多形态导致到目前还没有形成一个统一的分类标准。......
2023-10-28
相关推荐