什么是默克尔树

最近FTX交易所的暴雷事件引发了币圈的大震动,各大交易所纷纷开始宣布自己拥有100%保证金。不同的交易所选用的方案不同,有的交易所选择使用默克尔树——Merkle Tree来证明,有的交易所选择公开自己的钱包地址,有的交易所选择使用第三方审计报告。那么Picol选择的默克尔树是一个什么样的机制呢?

Picol 100%准备金计划

Picol作为一家运营的交易所,始终承诺不挪用用户资金,维持100%准备金,用户随时都可以提取自己的资金。本次Picol选择使用默克尔树来证明自己的100%准备金。

默克尔树原理

默克尔树是由Ralph Merkle在1979年发布的一种算法,至今已有40多年的历史,是一种通过零知识证明的方法让任意一个节点都可以验证一个数据库的所有数据是否正确的方法。

1. 哈希算法

在了解默克尔树之前,我们首先要知道哈希算法(Hash)的概念。哈希算法是一种可以将任意长度的数据输出为固定长度的算法,它的优势是单向加密,也就是说没有办法把计算出来的值反推出原始的数据,起到了保护的作用。像比特币等加密货币中,也广泛地使用到了哈希算法,比如知道比特币的地址,没有办法反推出私钥,但有私钥就可以生成地址。

2.生成默克尔树

当理解了哈希算法之后,我们就可以开始生成一棵默克尔树了。首先,我们先为每一个用户都创建一个「叶子」,这个叶子里是用户在某一个时间点的唯一ID识别码以及资产数据,Picol是采用了用户的userid以及用户在某个时间点拥有的资产种类和数量作为基础数据。然后我们将这个叶子里的数据,使用哈希算法计算出一个哈希值,那么每一个用户都拥有了一个哈希值(如Hash1、Hash2、Hash3…),这样我们就有了第一层的树枝。

接着,我们两两组合,把1号和2号用户的哈希值计算为一个新的哈希值Hash12,3号和4号用户的哈希值计算为一个新的哈希值Hash34,依次类推。这样我们就有了第二层的树枝。

接着,我们再把第二层树枝里的哈希值再两两组合,就生成了一批新的哈希值,比如Hash1234等。

最后,我们一层一层地往上组合,最终我们就会得出一个最终的哈希值,称为根哈希,Hash Root。

到这里,我们就生成了一颗从叶子到根的完整的默克尔树了。

如果你还有任何其他疑问,可以联络线上客服或在我们的各大用户社群中提问。