北大肖臻区块链公开课02-BTC-数据结构
创始人
2024-12-29 02:09:34
0

一、区块链

1.哈希指针

        普通的指针p指向一个结构体,p中保存的就是该结构体的内存位置。

        哈希指针H()指向一个结构体,H()中不仅保存了内存位置,还保存了对应数据的哈希值,以便验证数据内容是否遭受篡改。

2.tamper-evident log

        该特性使得区块链易检出所在链是否遭受了任何的篡改。

        区块链中的第一个区块被称为genesis block(创世纪块),后续链接的每个块都会记录前面一整个区块的哈希值H(x),直至most recent block(最新区块),再对其计算一次哈希值并使用哈希指针指向它。这样便使得倘若整个区块链中存在任何被篡改的痕迹,被篡改的区块的哈希值便会发生变化,这种变化像多米诺骨牌一样一层一层向后传递,直至最后的哈希指针中的哈希值。因此只需要判断最后的哈希值是否发送了变化便可以确定整个区块链是否被篡改过。当然这种检测只能判断出是否被篡改,如果想要判断出何处被篡改,则需要遍历整个区块链分别计算哈希值进行比对。

二、Merkle Tree

       除了链表的形式,区块链中常用的数据结构还有二叉树,称为Merkle Tree。最下层的叶子结点存放着Transaction(交易),倒数第二层存放着交易叶子结点的哈希值,两个交易的哈希值合并后再取一个哈希值,存放于更上层的父结点中,层层递进,直至根节点,再对根结点取一个根哈希值root hash。这样的Merkle Tree的形式也具有tamper-evident的特性。

1.Merkle proof & proof of membership(inclusion)

           区块链中的结点分为全结点轻结点,全结点存放着两部分内容:block header和block body,其中header中保存着哈希值,而body中则保存着交易列表。轻结点只保存header部分,即哈希值。

        假设用户A持有一个比特币钱包,这是一个轻结点,只保存了根哈希值,现在A与用户B之间发生了一笔交易x,那么A要如何知道这笔交易x是否真正地被包括在了这棵Merkle Tree中呢?

        首先A从这个轻结点向一个全结点发起请求,请求获取到关于这笔交易x的Merkle proof,全结点收到请求后将图中红色的哈希值发送给该轻结点,此时该轻结点便可以在本地结合交易x的信息和红色的哈希值逐层计算出绿色的哈希值,最终计算出一个根哈希值,将该根哈希值与自己本身存储的根哈希值进行对比,若一致便可以确认该交易x存在于该Merkle Tree中。

        由于采取了二叉树的数据结构,这种验证的时间复杂度仅为O(log n)。

2.proof of non-membership

        那么又该如何证明一个交易不存在于一棵Merkle Tree呢?遍历一整棵Merkle Tree当然是可行的,但是时间复杂度就达到了O(n),有没有什么方法做一些优化呢?

        如果先对全部交易的哈希值做一个排序,得到一棵Sorted Merkle Tree,事情就简单了许多。假设目标交易x的哈希值为H(x),根据各个交易的哈希值的大小,可以得到两个交易y和z,使得H(y)且y与z在该Sorted Merkle Tree中是邻居关系,请求获取到y与z的Merkle proof后逐层验证直至根哈希值,确认y与z都是原Merkle Tree中的合法交易,则交易x就不可能存在于该Merkle Tree中。

        

相关内容

热门资讯

实测分享!微信小程序免费黑科技... 实测分享!微信小程序免费黑科技,蜜瓜大厅辅助免费下载窍门教程(有挂猫腻)1、玩家可以在微信小程序免费...
截至发稿!微乐小程序黑科技,蛮... 截至发稿!微乐小程序黑科技,蛮籽酉阳大贰辅助手册教程(有挂方法)1、进入到微乐小程序黑科技是否有挂之...
一分钟教会你!微信小程序免费黑... 一分钟教会你!微信小程序免费黑科技开挂,欢乐茶馆脚本方案教程(有挂细节)1、微信小程序免费黑科技透视...
热门推荐!微信小程序免费黑科技... 热门推荐!微信小程序免费黑科技辅助,朋友局辅助器绝活教程(发现有挂)热门推荐!微信小程序免费黑科技辅...
2024教程!微信小程序免费黑... 2024教程!微信小程序免费黑科技透视,卡五星辅助器逍遥模块教程(确实有挂)1、玩家可以在微信小程序...
现有关情况通报如下!微信小程序... 现有关情况通报如下!微信小程序免费黑科技开挂,潮汕木虱有辅助挂吗积累教程(有挂详细)1)微信小程序免...
据相关数据显示!微乐小程序黑科... 据相关数据显示!微乐小程序黑科技,途游手游辅助脚本平台教材教程(有挂方略)1、超多福利:超高返利,海...
今日焦点!微信小程序免费黑科技... 今日焦点!微信小程序免费黑科技,途游手游辅助秘籍教程(有挂技巧)1、下载好微信小程序免费黑科技正确养...
最新研发!微乐小程序黑科技,吉... 最新研发!微乐小程序黑科技,吉祥填大坑攻略窍门教程(新版有挂)1、每一步都需要思考,不同水平的挑战微...
三分钟了解!微乐小程序免费黑科... 三分钟了解!微乐小程序免费黑科技,闲逸碰胡辅助积累教程(有挂方法)1、许多玩家不知道微乐小程序免费黑...