在21世纪的技术革命中,鲜有词汇能像“区块链”一样激发公众的想象力。
区块链作为比特币独特发明的一个核心组成部分,源于被称为中本聪的个人或团体的智慧结晶。得益于比特币的成功,区块链这一底层技术被誉为具有广泛应用价值,从金融交易到供应链管理,从投票系统到医疗记录。
在区块链从理论领域向实际应用发展的过程中,已涌现出数千种扩展区块链的尝试。然而,越来越明显的是,区块链技术面临诸多挑战。尽管区块链有许多被热烈讨论的优势,但目前的实现方式可能导致速度缓慢、笨拙,并且存在严重的可扩展性问题。
区块链的挑战:速度与效率的限制
区块链存在局限性,可能导致其处理速度较慢且效率较低,尤其与传统的集中式数据库相比。
- 可扩展性问题
区块链面临的主要挑战之一是可扩展性。像比特币和以太坊这样的区块链处理交易的能力有限。这是因为每个区块的大小受限制,且仅在特定时间间隔内添加到链中。例如,比特币每秒仅能处理约7笔交易。这相比Visa等传统支付系统慢得多,后者每秒可处理数万笔交易。
- 共识机制瓶颈
区块链上达成共识的过程可能耗时较长。尤其是对于使用工作量证明(PoW)的区块链,如比特币。PoW要求矿工解决复杂的数学问题才能将区块添加到区块链,这个过程在比特币网络上大约需10分钟。这会降低交易处理速度,同时,如果有成千上万的交易竞争区块空间,可能导致延迟。
- 数据存储问题
区块链网络中的每个节点都存储整个区块链的副本。随着区块链的增长,每个节点必须存储的数据量也在增加,这可能导致存储需求迅速增长。对于存储容量有限的设备来说,这可能是个问题。
- 网络传播延迟
当新区块被挖掘出来时,需要将其传播到网络中的所有全节点。这可能会受到网络规模和节点地理分布的影响,从而需要一定时间。
- 不变性是双刃剑
虽然区块链不变性是其主要优势之一,但也可能成为缺点。一旦交易添加到区块链,就无法修改或删除。这使纠正错误或欺诈交易变得困难。
- 能源消耗问题
最后,许多区块链采用的PoW共识机制耗能巨大,这引发了人们对区块链技术对环境影响的担忧。
- 减少链上负担
为应对区块链的局限性,可以尝试增加区块大小和提高区块生成速度,但这只是问题的权宜之计,并未从根本上解决问题。如果比特币需要更多资源运行,它将导致中心化的趋势,最终变成一场竞争底线的角逐。
相较于试图强行优化比特币,另一选择是寻求更高效地利用区块空间的方法。链上交易次数越少,交易体积越小,链处理的吞吐量就越大。
一种将大量交易数据打包成小型链上证明的方法是使用默克尔树(Merkle Tree)。
什么是默克尔树(Merkle tree)
默克尔树(Merkle Tree)是由现代密码学的先驱之一Ralph Merkle发明的。虽然他在1982年为Merkle Tree申请了专利,但专利已过期,如今我们已经看到它在许多应用中得到应用。Merkle Tree 广泛应用于Git、BitTorrent、ZFS、证书透明框架,以及几乎所有的加密货币。
默克尔树是一种加密数据累加器,它能让你通过较小的哈希证明来验证某事物的真实性,而不需要在链上存储全部数据。可以将Merkle树看作是一个独立的分支,在这个分支上可以进行大量交易,但并不是通过添加所有交易历史来表示,而是通过一个统一的证明来表示。
在比特币生态系统中,Merkle树的一个应用是通过提议的UtreeXO节点,这是一种用于验证区块链的替代比特币节点。简单支付验证(SPV)交易也采用Merkle树进行验证。
最初在比特币中采用Merkle树的目的是为了提高交易数据的存储效率,如今我们看到Merkle树已被用于在比特币区块链中存储任意数据,同时保持更小的数据占用。
什么是稀疏默克尔树(Sparse Merkle Tree)
Sparse Merkle Tree,简称SMT,与标准默克尔树类似,可以证明数据存在于其索引中。然而,它还具备证明某些数据不是或不再是默克尔树一部分的能力,这正是SMT的特殊之处。SMT 是一种允许非包含证明的数据结构。
在SMT中,数据被索引并放置在与数据点索引对应的叶子上。SMT的一个特点是数据的位置(即树的某个叶子)与数据本身是紧密关联的。这意味着对于给定的数据片段,树中只有一个位置可以放置该数据。如果该位置为空,则说明数据不存在于整棵树中。
SMT能够实现这种功能,是因为它对叶子的内容进行哈希处理,并创建一个位置与哈希值对应的默克尔树。为实现这一点,需要构建一个具有256层和2^256个叶子的默克尔树。尽管这个数目庞大,但生成这样的树仍具有高效性,因为绝大多数叶子都是空的。
稀疏默克尔树(Sparse Merkle Tree)的优缺点
优点
- 效率:SMT 在处理大型或动态数据集时表现出高效性。它们仅存储实际的数据点,并将所有其他数据点视为默认值,从而节省大量存储空间。
- 非包含证明:SMT可以高效地提供非包含证明,确认某个数据点不在树中。这在需要确认数据不存在和确认数据存在同等重要的系统中具有重要意义。
- 恒定高度:无论实际条目数量如何,SMT的高度保持不变,因为它们涵盖了可能条目的整个空间。这使得添加和删除条目等操作变得更加可预测。
缺点
- 复杂性:由于SMT的稀疏性以及处理默认值的需求,使得它在实现上比标准默克尔树更为复杂。
- 默认值冲突:如果默认值选择不当,可能会与实际数据发生冲突。如果实际数据点的哈希值与默认值相匹配,可能导致证明出现错误。
- 大型证明:尽管SMT能够高效处理大型数据集,但数据点的证明可能比标准默克尔树更大,尤其在处理非包含证明时。
稀疏默克尔树在比特币中的应用
稀疏默克尔树(Sparse Merkle Tree,简称SMT)是一种数据结构,能够证明某个特定数据不存在于默克尔树中。SMT作为经过认证的键值存储,其叶子的键或位置与叶子的内容紧密关联。这为在比特币区块中发布、跟踪、关联和验证散列内的任意数据奠定了基础。
接着,这些默克尔树可以用于在链上存储二级信息,如创建智能合约,或使用比特币作为锚点发行二级资产。
Taproot资产协议将SMT与Taproot、taptweak和Sum Merkle树结合使用,实现在无需额外区块链的情况下发行比特币原生资产。
稀疏默克尔树与默克尔和树相结合,形成稀疏默克尔和树。该树的根被添加到一个Taproot tapscript中,并共同创建一个Taproot地址。
Taproot资产发行者将稀疏默克尔和树存储在链下,而非在自己的区块链上,并在链下向资产持有者发放证明。这类资产的所有者可以独立验证他们的账户是否包含在树中,是否已分配适当的金额,以及相应的主根交易是否存在并在比特币区块链上得到确认。
如果您希望了解更多关于默克尔树的信息,可参考下面的官方资源:
所有评论