Bitget交易所官方网站,带你了解默克尔树

Bitget下载

注册下载Bitget下载,邀请好友,即有机会赢取 3,000 USDT

APP下载   官网注册

Bitget交易所官方网站

www.bitget.com

了解Bitget交易所的投资者都清楚,Bitget拥有默克尔树功能,但是很多新手投资者并不了解它到底是什么,今天就为大家答疑解惑。

默克尔树

定义

默克尔树是一种数据结构,又称哈希树。将数据储存在树形结构的叶节点中,借由哈希值数据逐层记录到最顶层的根节点,叶节点数据的任何变化都会传递给更上层的节点,最后会显示更改后的数据在树形的根部。

1. 默克尔树的作用

- 零知识证明

- 确保数据不变性

- 确保数据隐私

2. Bitget Limited 的默克尔树定义

2.1 节点讯息

每个树节点中存储的讯息包含:

1. 哈希值(Hash value)

2. 用户资产快照中所包含的币数(以BTC、ETH、USDT 为例)

2.2 哈希规则

叶节点(填充节点除外)

- 加密Uid:用户的加密UID

- nonce:分配给每位用户唯一的值

- balances:用户资产快照币种数量组成json 字串(注意:去除末尾无效0,并保留8 位精度)

父节点

- h1:当前节点的左子节点的hash

- h2:当前节点的右子节点的hash

- 阶层:父节点所在的位置

树节点的高度定义:一个完整的默克尔树(满二元树)需要2^n个叶节点数据,叶节点阶层= n + 1,父节点阶层= 子节点阶层- 1,根节点阶层= 1,叶节点阶层为最高

填充节点规则

一个完整的默克尔树(满二元树)需要2^n 个叶节点数据,但实际情况数据的数量未必满足且还可能是奇数。在此种情况下,如果一个节点k 没有兄弟节点,则自动填充生成一个兄弟节点k',该兄弟节点hash(k') = hash(k),节点k' 的币种数量设定为零。

验证原理

1. 验证原理:根据Bitget Limited 默克尔树定义,从用户本身叶节点开始往上计算父节点的哈希值,一直到根节点得出哈希值,对比步骤1 中获取到的默克尔树路径中根节点的哈希值,如果二者相等则通过验证,不相同则验证失败。

2. 范例:结合图一和下面的json 文本,依据用户本身叶节点h3 和提供的相邻节点h4 讯息可以计算出父节点h6 的哈希值,再和提供的相邻节点h5 讯息可以计算出父节点h7 的哈希值,然后和默克尔树路径数据中提供的根节点h7 讯息对比哈希值是否相等即可完成验证。

关于默克尔树的一些知识已经分享完了,大家如果想学习更多交易知识,直接登录Bitget交易所官方网站即可。