木星链 木星链
Ctrl+D收藏木星链

比特币:“无奈”的中本聪与梅克尔树的“多余”

作者:

时间:1900/1/1 0:00:00

导读

数字货币本质上是一串特殊的字符串,可以无限复制。如果一名矿工短暂控制了超过50%的算力,向交易所发起转账,同时把同一笔数字货币转账给自己。因为手头有足够的算力,所以两笔交易都被写进区块,成为合法交易,这就是“双花攻击”。

比特币网络自诞生以来并稳健运行至今,已证明:在没有结算中心的对等网络,点对点交易也能拒绝双花攻击。所有的比特币交易记录都被保存在区块链上,2008年在中本聪描述比特币原型的论文里提到,他使用了一种名为梅克尔树(Merkle Tree,缩写MT)的数据结构对每一个区块里的所有交易做一次简略记录,梅克尔树能够用较少的字节去表达极大量的信息。

梅克尔树的结构是个满二叉树,因此要求交易数量必须是2n。中本聪通过引入“无效却必要的”多余信息来解决这个问题,所付出代价是此多余信息可能会被攻击者利用,实施双花攻击。

本文先介绍梅克尔树的基本结构,生成节点的规则,然后用一个例子来说明如何为比特币交易构造梅克尔树,最后解释了比特币如何通过UTXO的唯一编号来避免因梅克尔树可能引起的双花威胁。

“无聊猿”BAYC完成Dookey Dash游戏分数审查和验证:仅2%玩家分数被重置:金色财经报道,“无聊猿”BAYC在社交媒体宣布已完成Dookey Dash游戏分数审查和验证,/img/202281210112/0.jpg" />

每个叶子节点的标签都是其所记录内容的哈希值,而将两个兄弟节点的标签串联起来,作为哈希函数的输入,经过计算得到父节点的哈希,如此重复直到最后只剩下一个节点,即根节点,又称作梅克尔树根。

安大略省监管机构指责Poloniex“无视”证券法:金色财经报道,加拿大安大略省证券委员会(OSC)提交了针对Poloniex的指控声明,指控该加密货币交易所“无视安大略省证券法”。该监管机构在声明中指出:“安大略居民已在Poloniex平台上开设了账户,并已使用该平台进行加密资产产品的存入和交易。Poloniex受到安大略证券法的约束,因为Poloniex平台上提供的加密资产产品是证券和衍生品。尽管如此,Poloniex仍未遵守安大略证券法的注册和招股说明书要求。”此类平台需联系OSC工作人员以开始进行合规性讨论,截止日期定为2021年4月19日。OSC称Poloniex还没有与其联系。监管机构要求对每项“不遵守”行为处以100万加元(合83万美元)的罚款,但没有具体说明什么是一项不遵守。 有关此事的第一次听证会定于6月18日举行。[2021/5/26 22:43:53]

中本聪设计了一种区块结构,其区块头的某个字段就是梅克尔树根。梅克尔树根源自区块里记录的每一笔交易,交易可以理解成转账,例如类似「A转给B某某数额的比特币」的格式。将有着固定格式的一笔转账记录做序列化之后,就能作为输入tx,交由哈希函数运算,得到的结果就是叶子节点的标签 L。

声音 | INE熊羽睿:正确理解“无币区块链”:近日,INE熊羽睿表示,区块链的核心价值之一,是“可信账本”,这个账本上记录的东西一定不要是扰乱全球社会秩序的黑产,而是世界、区域、国家有共识的价值。目前数字货币、加密货币、数字证券等等模糊概念的东西,正在被真正的人类罪恶所利用,走向光明正大还有很长的征程,而区块链要能顺利落地运用,必须规避传统法币秩序、证劵流通、税收等红线,借助区块链的可信账本,打造“可信积分”体系,设置流通边界,用于“价值循环、使用权通证、税外价值激励、中间渠道摩擦成本、系统燃料、产能租用、税后资源流通”等等提高价值流通的经济作用。可以预见的未来,基于技术稳定的公链基础上的数字资产,将针对不同国家体系、不同运用领域特征的子母TOKEN体系同步运行。[2018/12/25]

L = Hash(tx)

而每二个叶子节点的哈希,便可以串联起来作为输入,得到父节点的哈希P。

P = Hash(L0+L1) ?// '+' means concatenation

区块可以记录的交易内容长度有限,在中本聪的设计里,严格限制了一个区块内所有交易的总长不超过1MB。而交易的长度又随交易的复杂度而变化,可以简单理解成越复杂的交易,其内容越长。为了有效利用区块,挣更多的手续费,矿工们总是希望尽可能往区块里面记录更多的交易。

观察梅克尔树的结构,可以发现其总是一棵满二叉树,这意味着叶子节点的数量总为2n 。当待记录的交易数量不足 2n,又或者等于2n?时所有交易的总长度超过1MB限制,此时区块能够记录的交易数量不能恰好等于一棵满二叉树的叶子数量。这种情况出现时,该怎么计算梅克尔树根呢?

中本聪如何为比特币交易构造梅克尔树?

以一个简单的例子来说明这个问题。

假设某区块里面记录了一共5笔交易,那么其初始叶子节点仅有5个。每2个叶子节点生成1个父节点,在产生父节点的过程中,却遇到了最后1个叶子节点没有兄弟节点的情况,这时候需要构造出来另外一个节点与其匹配。中本聪的做法是:直接重复该节点本身作为其兄弟节点,然后再按照前述方法得到父节点。这个重复的节点,就是原始交易记录里没有但是梅克尔树上却存在的多余信息。

此时,在梅克尔树结构里面出现了3个父节点,然后再依据这3个节点继续往上构造父节点。同样的问题又出现了,这一层仅有3个节点,最后1个节点必须重复自身以满足兄弟节点成对出现的要求,这样又出现了新的多余信息。最后,再高一层又出现了2个父节点,继续合并,得到最后唯一的节点,即根节点。

在交易数量为5的情况下,由此构造出来的梅克尔树的结构如下图所示。

比特币如何避免

因梅克尔树可能引起的双花威胁?

中本聪的这种做法也许会让读者产生疑惑:既然最后一个叶子节点会被重复,从其父节点的角度看,它有两个具有相同哈希的叶子节点。根据哈希函数的冲突避免性质可以判断,此二个叶子节点所代表的内容完全相同。也就意味着,假设区块里面还能再添加一笔完全相同的交易记录,计算得到的梅克尔树根的值保持不变。这种做法岂不是会导致双花攻击的问题?

比特币网络是如何避免不诚实节点故意在同一区块内记录完全相同的二笔交易?这个疑惑需要借助比特币交易的基本单位UTXO来解释。

在比特币网络里面,并没有「账户」这种东西,也就没有所谓「余额」等衍生概念,因此无法像传统银行系统一样,通过检查账户余额来判断用户有没有可继续花费的资产。所有的比特币都是以UTXO (Unspend Transaction Output)的形式存在,交易消耗已经存在的UTXO(称作输入,Input),产生新的UTXO (称作输出,Output),被消耗的UTXO便不再有效。

每一个UTXO都拥有一个锁定脚本 (ScriptPubKey),用来保护该UTXO不会被除了其拥有者以外的其它人使用,目前还没有人可以解锁不属于自己的UTXO。UTXO能被花费的前提条件是,其锁定脚本被正确地解锁。通常某UTXO的锁定脚本会指定其拥有者的公钥信息,当该UTXO被花费的时候,只有出示与该公钥匹配的私钥所生成的数字签名,即解锁脚本(ScriptSig),才能成功解锁UTXO。

在比特币的设计中,使用交易ID和UTXO在该交易的输出序号来作为UTXO的唯一标识,所有可用的UTXO都保存在一个名为UTXO set的数据集合里面。

这意味着,可以实现:将每一个还未被花费的UTXO都存储在数据库里并向全网公开,将已经被消耗的UTXO销毁并从数据库中删去。那么当攻击者故意构造第二笔交易并试图再一次花费相同的UTXO时,会发现无法在数据库中找到拥有相同ID的那个UTXO。这就相当于,某人花掉了手中真实存在的物理货币以后,便没法再使用一遍。

因为每个UTXO都拥有独一无二的标示,所以在一个区块内,节点很容易判断每笔交易所消耗的UTXO是否相同:如果存在两笔交易的输入为具有相同ID的UTXO,即能判断第二笔交易无效,此区块无法被诚实节点验证通过。

因此,虽然梅克尔树在交易数量不等于2n的情况下,理论上会出现重复哈希值的问题,但实际中在真实区块里面无法再伪造具有相同内容的交易,双花问题得到避免。

注:以上图片来自于Onchain

参考资料:

?比特币原始论文?Bitcoin: A Peer-to-Peer Electronic Cash System

?梅克尔树原始专利文件

本文由 Poly Enterprise 团队出品

标签:比特币区块链BAYPOL比特币以太区块链dapp开发语言DBAYPollchain

pepe最新价格热门资讯
稳定币:谷燕西:美国货币监理署的政策影响的不只是美元数字货币

最近美国货币监理署(OCC)发表了一份政策说明信。在这份政策说明信中,OCC明确表明美国的联邦银行和储蓄机构可以参与成为INVN的节点,并使用稳定币作为支付手段.

1900/1/1 0:00:00
比特币:比特币价格会一直上涨吗?

熊市的压力在于你眼睁睁地看着自己的净资产缩水——有时急剧下降,有时像一场慢动作的金融车祸,你完全不知道什么才是正确的选择,也不知道还要不要坚持相信自己的选择.

1900/1/1 0:00:00
DEF:DeFi火热带来巨大风险 去中心化保险探索者还在路上

随着 DeFi 的兴起和发展,安全问题一直是高悬在头顶上的达摩克里斯之剑。不少 DeFi 协议遭受的各种攻击,据 PeckShield 派盾发布的《2020 年年度数字货币反报告》显示,20.

1900/1/1 0:00:00
DOT:平行链插槽拍卖临近 波卡生态项目大盘点

随着Rococo测试网平行链开放注册资格,波卡和Kusama平行链拍卖逐渐拉开了帷幕。届时,用户可使用DOT、KSM为支持的项目投票助力其参与竞拍.

1900/1/1 0:00:00
比特币:Stone Ridge 创始人:理解比特币 我个人的四个顿悟时刻

比特币是一段旅程,并非目的地,每个人都走在自己的道路上。每天早上,当我研究比特币时,我发现自己更具敬畏心,因为比特币非结构化的简洁性所具备的力量和潜力让我懂得谦逊.

1900/1/1 0:00:00
BSP:IMF报告:法律上讲 仅有40家央行可合法发行数字货币

各国正朝着创建数字货币的方向快速发展。换句话说,我们获悉的各种调查显示,越来越多的央行在实现官方数字货币方面取得了实质性进展.

1900/1/1 0:00:00