DxChain中文博客

DxChain研究:深刻理解比特币中双花问题


编者按:双花问题不再仅仅是纸上谈兵。5月24日,媒体称,第26大加密货币BTG遭51%攻击 — — 一名恶意矿工获得了比特币黄金网络至少51%算力,临时控制了BTG区块链,在向交易所充值后迅速提币,再逆转区块,成功实施双花。据悉,攻击者可能从交易所窃取超过388200个BTG,价值高达1860万美元。在这样的情况下,业界更需要深刻理解比特币中的双花问题,DxChain对于这个问题有自己的深刻理解,以下是他的解析:

中本聪的文章“Bitcoin: A Peer-to-Peer Electronic Cash System”开启了加密货币的行程。这篇文章从技术的角度详尽的介绍了比特币网络的体系构架,一些重要的概念比如电子交易,激励机制,Merkle树等被以后的加密货币体系反复使用。

实际上,整个比特币体系基本上是围绕着在去中心化环境中,没有一个可以信任的中间人的情况下,如何防止双花问题而设计的。

什么是双花问题?双花问题就是一个数字货币被使用2次或者多次。在现实世界中,我们可以使用法币,比如使用美元,人民币进行交易。买方把100美元付给卖方,由于100美元是实物,买方无法再使用这100美元进行新的交易。当我们使用信用卡的时候,当我们支付了100美元以后,也无法再使用这100美元进行新的交易,因为信用卡用户的所有交易记录被信用卡公司的中心数据库记录着。由于比特币不是实物,也没有中心数据库,避免双花问题就成了比特币体系要解决的重要问题。

比特币

而在比特币体系中有2个重要概念账本和账户,账本里面记录着每个账户有多少余额。账户进行一次交易,就会把这次交易发送到整个网络并写进账本里面。由于这个过程需要时间,账户可以在发送一次交易以后马上发送另外一次交易,这样会导致一个虚拟货币被花了2次。所以通常收款的一方会等待一定时间来确定交易的有效性。

虽然中本聪的文章里面给出了部分的数学证明,但是由于篇幅有限,只是给出了结果,并没有详细说明。本文会给出一个更加详细的解释。

比特币账本在技术实现上就是区块链,所以区块链也被称为分布式账本。由于比特币网络的节点分布在世界各地,不同节点接收到交易的时间会不同,所以会产生多条区块链,比特币协议中采用最长的区块链。双花问题中,通常收款的一方会等待一定时间(等待自己的交易在一条很长的区块链里面)来确定交易的有效性,但是等待多久(区块链长到多长)会比较安全,我们马上来给出数学证明。

根据这个公式,我们可以看出如果诚实链出块的概率不大于攻击链出块概率,攻击链是可以追上诚实链的。反之,攻击链追上诚实链的概率按指数递减。

比特币

我们把k用泊松分布来表示,在这种更实际的情况下,攻击链仍然追上诚实链得概率是:


当q=0.1,p=0.9,z=6的情况下,攻击者双花的概率是0.0002。在现实环境中,p远远大于q,所以在实际操作中,当收款者等待z=6个块以后,攻击者是很难追上诚实链的。


本文从数学理论中解释了比特币体系如何防止双花问题。这个结论奠定了PoW的理论基础,从而为以后的PoS理论打下很好的基础。DxChain就是站在这样巨人的肩膀上来设计了更加有用并且高效的系统结构。

Author image

About DxChain

DxChain is the world’s first decentralized big data and machine learning network powered by a computing-centric blockchain.