区块链的基本组成部分,是其功能的基础.它们允许对大数据结构进行有效和安全的验证,对于区块链,可以实现无限的数据集.
区块链中Merkle树的实现具有多种效果.它允许它们进行扩展,同时还为它们提供基于哈希的体系结构,以维护数据完整性,以及验证数据完整性的简单方法.加密哈希函数是允许Merkle树工作的基础技术,因此首先,了解加密哈希函数是什么很重要.
简单地说,哈希函数是用于将任意大小(输入)的数据映射到固定大小输出的任何函数.散列算法应用于数据输入,并且得到的固定长度输出称为散列.许多散列算法广泛公开,可根据您的需要进行选择.
来自任意输入的结果散列不仅固定长度,它对输入也是完全唯一的,并且函数本身是确定性的.也就是说,无论您在同一输入上运行多少次函数,输出总是相同的.例如,如果您将以下数据集作为输入,则结果输出对于每个输入都是唯一的.请注意,在第二个和第三个示例中,即使输入的差异只有一个字,结果输出也完全不同.这非常重要,因为它允许对数据进行"指纹识别".
由于输出(示例中的散列和)长度始终与使用的散列算法确定的相同,因此可以仅通过其生成的散列来识别大量数据.对于包含大量数据的系统,能够以固定长度输出存储和识别数据的好处可以节省大量存储并有助于提高效率.
在区块链中,散列算法用于确定区块链的状态.区块链是包含数据的链表,以及指向前一个区块的哈希指针,创建一个连接块链,因此名称为"区块链".每个块通过散列指针彼此连接,散列指针是前一个块内的数据的散列以及前一个块的地址.通过以这种格式链接数据块,前一个块的每个结果散列表示区块链的整个状态,因为先前块的所有散列数据被散列为一个散列.这通过诸如此类的输出(散列)表示(在SHA-256算法的情况下).
树的结构允许有效地映射任意大量的数据,并且能够容易地识别该数据发生变化的位置.这个概念使Merkle证明成为可能,有人可以验证数据的散列是否在树的一直向上和正确的位置是一致的,而不必实际查看整个散列集.相反,他们可以通过仅检查散列的一小部分而不是整个数据集来验证数据块是否与根散列一致.
只要根哈希是公知的和可信的,任何想要对数据库进行键值查找的人都可以使用Merkle证明来验证数据库中数据的位置和完整性.一个特定的根.当根哈希可用时,可以从任何不可信任的源接收哈希树,并且可以一次下载树的一个分支,立即验证数据完整性,即使整个树尚不可用.
最后,Merkle树是分布式版本控制系统(如Git和IPFS)的重要组成部分.它们能够轻松确保和验证P2P格式的计算机之间共享数据的完整性,这使得它们对这些系统非常有用.
Merkle树是区块链不可或缺的组成部分,有效地使它们具有可证明的不变性和交易完整性.了解它们在分布式网络中所扮演的角色及其加密散列函数的基础技术对于掌握加密货币中的基本概念至关重要,因为它们将继续发展为更大,更复杂的系统。
文章来源于;西安区块链技术有限公司https://www.wanlianzhijia.com/
网友评论