上一篇分析了Plasma MVP的原理和实现,这一篇介绍一下Plasma的另外一个实现版本:Plasma Cash。
1.和MVP的区别
Plasma Cash和MVP最大的不同在于使用稀疏Merkle树代替了标准Merkle树。我们都知道,Merkle树的好处在于可以利用很少的数据来证明某笔交易“存在”于某个区块中,那么稀疏Merkle树有什么好处呢?除了可以证明某笔交易“存在”于某个区块中以外,它还可以证明某笔交易“不存在”于某个区块中!
怎么做到的呢?其实也很简单:计算区块Merkle根时使用一个固定高度(257层)的Merkle树,每个uid对应一个叶子节点(忽略哈希碰撞概率)。如果该区块中包含某个uid的交易,则在对应的叶子节点处放置该交易,其他叶子节点都为0。这样一来,如果我们需要证明区块中不存在针对某个uid的交易,只需要提供0的哈希值和对应的merkle proof就可以了!
2.充值
Plasma Cash是用来存储和转移非同质(non-fungible)代币的。所谓非同质代币,是指这些代币不可分割、不可互相替代。这一点在游戏领域比较容易理解:某个代币可能代表一把剑,另一个代币可能代表一个盾牌,这两个装备的价值是不同的,另外你也不