• STAKING ATLAS
  • 简体版 | 繁體版
  • 联系我们
  • 加入我们
  • 关于我们
  •  
  • 首页
  • 快讯
  • 专栏
  • 视频
  • 专题
  • DeFi优选
  • 滚动
  • 入驻碳链专栏
  • 碳链APP
    微信公众号

    扫码下载App

  • 登录
  • 微信公众号

    微信公众号

导航
  • 首页
  • 快讯
  • 区块链+
  • 专栏
  • 视频
  • 专题
  • DeFi优选
碳链价值APP
专注服务于金融科技和区块链
立即打开

“无奈”的中本聪与梅克尔树的“多余”

分布科技Onchain分布科技Onchain  •  2021-01-08
比特币网络是如何避免不诚实节点故意在同一区块内记录完全相同的二笔交易?

导读

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

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

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

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

知识点1:

哈希函数是由数学家或者密码学家精心设计的一种数学运算规则,它可以输入任意长度的数据,而输出结果(即哈希值)的长度保持不变,并且满足:

1)单向运算:只能计算输入得到输出,不能逆向计算输出得到输入;

2)冲突避免:无法找到两个不一样的输入,而它们的哈希值却相同。

哈希函数可以说是区块链最最核心的技术之一,另外一个是非对称加密。正是这二个性质确保了比特币像黄金一样难以获得,经过大量的运算才能得到某个正确的哈希值,使得该哈希值比其它字符串更加珍贵,从而获得价值属性。这是哈希函数在比特币挖矿中的应用,但这并不是本文的重点。

知识点2:

梅克尔树又被称作哈希树,因为在这种树状数据结构中,每个节点的标签(或称作值)都是一串哈希值。按照从左向右的顺序,将所有子节点的哈希串联成一个新的长字符串,结果作为哈希函数的输入,经计算得到父节点的标签。

哈希树的概念得名于 Ralph Merkle,他在1979年9月5号提交文件申请注册了该项专利。当然,等到中本聪使用梅克尔树作为比特币的底层数据结构时,此专利保护期已经结束了。不然的话,中本聪得向梅克尔先生支付专利授权费,这样做也许他的身份就被曝光,而整个区块链行业都需要缴纳一笔不菲的费用。

另外多说一句,比特币并没有凭空创造任何新型技术,而是巧妙地使用了若干个已有的密码学工具,组合之后便是区块链这种从未见过的系统。这种创新需要极强的系统性思维,往往独自一人很难拥有这般思考的深度和广度,也就有人推测中本聪其人背后其实并不是某一个人,有可能是一群密码学专家。

梅克尔树的基本结构

言归正传,梅克尔树是一棵满二叉树,其结构如图所示。

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

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

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

参考资料:

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

[2] 梅克尔树原始专利文件

本文由 Poly Enterprise 团队出品

展开全文
打开碳链价值APP  查看更多精彩资讯
声明:本文内容为作者独立观点,不代表碳链价值立场,且不构成任何投资理财建议。
0 0

扫一扫,分享到微信

相关推荐

Coinbase上市将对「数字货币」行业产生什么影响? 深度

Coinbase上市将对「数字货币」行业产生什么影响?

LONGHASH 2021-02-25 深度
Coinbase数字货币比特币比特币大涨科技革命
随着巨头的进场与比特币的价格大涨,行业外的主流媒体呼声也转从“空气泡沫”转为了“科技革命”。
Coinbase CEO展望下个10年:多数科技初创公司将拥有加密组件 深度

Coinbase CEO展望下个10年:多数科技初创公司将拥有加密组件

imToken 2021-02-25 深度
Coinbase加密资产比特币区块链可扩展性
“我认为在接下来的十年里,我们将看到一个更具可扩展性并且包括隐私功能的区块链,在这十年结束时将达到约 10 亿用户”
一文盘点10个NFT优质项目:哪些可以投资? 一线

一文盘点10个NFT优质项目:哪些可以投资?

NFT实验室 2021-02-25 一线
加密货币NFT
本文盘点了一些优质 NFT 项目,供对 NFT 赛道感兴趣的投资者作为参考。

碳链快讯更多 ›

2021-02-25

Cardano创始人:以太坊、Cardano及波卡等协议可共存创建万亿美元产业

2021-02-25

加拿大投资管理公司CI Global将推出首只以太坊ETF

2021-02-25

MicroStrategy声明:将继续投资比特币

2021-02-25

美国SEC批准Coinbase在纳斯达克上市

2021-02-25

资管巨头Stone Ridge计划将比特币作为第七种投资策略添加至多元化另类基金

2021-02-25

Coinbase申请在纳斯达克直接上市

2021-02-25

CNBC主持人:GameStop应购买比特币

2021-02-25

Coinbase首次披露已将BTC纳入公司资产负债表

2021-02-25

火币全球商务副总裁Ciara:2021年区块链技术应用场景将继续增加

2021-02-25

查理·芒格:比特币确实是一种人造黄金替代品

2021-02-25

两笔中本聪时代总计2289.53枚BTC发生转移,价值约1.1亿美元

2021-02-25

Mt.Gox清算赔偿方案拟于3月24日确定债权表决人

2021-02-25

泰国SEC将于3月24日举行加密散户入场规则听证会

2021-02-25

游戏驿站GME在德国法兰克福交易所涨近240%

2021-02-25

媒体:盖茨基金会正在开发数字货币

2021-02-25

金融科技公司Solarisbank正推出授权加密经纪API

2021-02-25

数字足球NFT公司Sorare完成5000万美元融资,Uber和Twitter投资方Benchmark领投

2021-02-25

库币回应MASK开盘溢价:将补贴「溢价买入用户」

2021-02-25

央视:韩国约两成网吧关门挖加密货币,远高于平时营业收益

2021-02-25

泰国新加密规则或将要求加密投资者在开通账户前提供收入证明

2021-02-25

韩国疾病预防控制中心将引入基于区块链的数字疫苗接种证书

2021-02-25

数据:以太坊上稳定币流通量突破360亿美元

2021-02-25

印度央行行长:不久将出台广义的数字货币规范

2021-02-25

媒体:未来Layer 2诞生千亿美元级别项目不用感到意外

2021-02-25

欧洲央行执委:数字欧元的引入仍是正在公开讨论的问题

2021-02-25

The Graph索引和查询已经在底层区块链Fantom上线

2021-02-25

硅谷王川:Uniswap等撮合交易的智能合约是以太网络拥堵最重要原因

2021-02-25

报告:绝大多数以太坊应用支持实施EIP-1559

2021-02-25

印度加密交易所Unocoin采用去中心化Unstoppable Domains以简化加密交易

2021-02-25

8000枚BTC转入Coinbase,价值约3.99亿美元

2021-02-25

彭博社:Galaxy Digital与CI推出比特币ETF基金后资产管理达12亿美元

2021-02-25

媒体:韩国加密交易所比特币交易量同比增长约10倍

2021-02-25

科技部:支持深圳强化关键核心技术攻关,集中突破5G区块链等技术

2021-02-25

纸贵科技获数千万元B轮融资,赛富亚洲创始人阎焱持续加码

2021-02-25

数据:以太坊2.0合约余额新增30016ETH

2021-02-25

Beeple的加密艺术NFT《CROSSROAD》以660万美元成交

2021-02-25

Mask在Balancer已发售超90万枚代币,剩余310万

2021-02-25

比特大陆今日15时将再发售一批S19j矿机,算力达90TH/s

2021-02-25

塞尔维亚男子被控通过欺诈性加密计划挪用700万美元

2021-02-25

Coinbase:旧金山不再是其总部,员工可选择远程工作

2021-02-25

高盛:黄金和比特币不会互相「蚕食」市场份额

2021-02-25

CME比特币期货平均每日交易量1月创新纪录

2021-02-25

a16z领投以太坊网络扩容公司Optimism 2500万美元融资

2021-02-25

鲍威尔:今年美联储将与公众就数字美元展开接触

2021-02-25

美联储服务中断延误银行电汇,已影响Gemini等部分加密交易所

2021-02-25

英伟达:加密货币挖矿为第四财销售额贡献1亿至3亿美元

2021-02-25

查理·芒格:比特币最终不会成为世界交易媒介

2021-02-25

加密资产管理公司CoinShares计划在瑞典IPO

2021-02-25

摩根大通:最近已测试地球轨道卫星之间区块链支付

2021-02-25

目前全球加密用户数超1.06亿

推荐文章

  • 周小川:数字人民币之父

    2020-12-16

  • 变革时刻:信用卡巨头Visa宣布将稳定币USDC接入其6000万商家全球支付网络

    2020-12-03

  • 专题报道:Facebook明年1月重新推出Libra

    2020-11-27

  • 华尔街正在垄断BTC

    2020-11-20

  • 比特币击穿18000美元背后:可能由华尔街、新冠疫情和QE共同促成

    2020-11-18

碳链专栏作者更多 ›

链集市ChainMarket
链集市ChainMarket
文章: 11
  • 新冠疫情后,有4项技术能够帮助企业快速复产并变得更强大
  • 区块链产业周刊丨《区块链白皮书(2020年)》正式发布;数字货币将挑战 SWIFT 网络?
  • 区块链发展的3个必经阶段是什么:创业者如何把握先机?
加密谷Live
加密谷Live
文章: 683
  • 一文读懂BTC挖矿难度调整
  • 一文读懂 BTC 挖矿难度调整
  • 模型预测:ETH未来将涨至8880美元?
蔡维德
蔡维德
文章: 69
  • 深度解读OCC解释函:​美国银行界全面进入基于区块链的数字货币
  • 蔡维德:IMF《跨境支付的数字货币:宏观金融的影响》报告解读(五)
  • 解读IMF「跨境支付的数字货币:宏观金融的影响」报告:从天方夜谈到公认常识
换一批

热门标签

新基建 比特币 以太坊 矿业 DeFi 共识对话 区块链+ 研报 美联储 央行数字货币 无限QE 加密衍生品 AI 云计算 大数据 5G 政策 交易所 稳定币 电子支付 Libra 算力产业 联盟链 公链 区块链 加密货币 Nervos Cosmos EOS STO

邮件订阅

及时、全面、专业、准确的资讯与数据,致力于为区块链爱好者以及数字货币投资者提供最好的服务。

App内打开

邮件订阅

及时、全面、专业、准确的资讯与数据,致力于为区块链爱好者以及数字货币投资者提供最好的服务。

Moshou

碳链价值是集资讯、行情、数据于一身的区块链信息服务平台,我们追求及时、全面、专业、精确的资讯与数据,致力于为区块链创新者和数字货币投资者提供优质的服务。

关于我们 加入我们 联系我们 隐私条款

行业伙伴

微信公众号

扫一扫关注微信公众号

Copyright © 2018-2020 碳链价值 京ICP备18046423号
下载碳链App

下载碳链App

微信公众号

微信公众号

微信公众号

微信公众号

打赏文章作者

支付宝打赏二维码 支付宝扫一扫打赏
微信打赏二维码 微信扫一扫打赏

# 热门搜索 #

央行数字货币 比特币 DeFi 以太坊 区块链