DxChain
DxChain
Jun 16, 2018 · 6 min read

编者按:双花问题不再仅仅是纸上谈兵。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次。所以通常收款的一方会等待一定时间来确定交易的有效性。

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

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

双花攻击可以理解为,在一个交易被写到区块链上,并且又经过z个区块以后,攻击者又开始重新产生了一条新区块链,并且比目前的区块链快,这样攻击者就可以把以前的交易中的花费的虚拟货币取回来。我们把这个问题使用数学概念来从新描述一下:一条诚实链比一条攻击链快了z个块,如果下一个时刻诚实链产生一个新块,2条链的距离+1,如果是攻击链产生一个新块,2条链的距离-1,我们的问题是攻击链能不能追上诚实链。文章中给出以下定义:

我们把这个系列所有项加起来,会得到以下结果:

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

比特币

以上的结论是基于2个假设,我们明确知道p和q,并且攻击者在等诚实链出了z个块以后才开始产生新块。现在我们把这些隐含的假设去掉。当攻击者在送出一个交易的同时,马上开始产生攻击链的区块,在诚实链产生z个块以后,攻击者的进度是k,实际上攻击链落后诚实链是z-k个区块。我们可以估计k的期望值是:

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


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


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

DxChain官方网站

关于DxChain:DxChain是一个去中心化的大数据存储和计算网络,是一个将区块链的去中心化特性运用到存储和计算领域的开放性公链。

Medium:https://medium.com/dxchainnetwork

官网:http://dxcoin.io/

Telegram:https://t.me/DxChainGroup

Twitter:https://twitter.com/DxChainNetwork

DxChain中文

Big Data Meets Blockchain

DxChain

Written by

DxChain

http://www.dxchain.com — decentralized big data and machine learning network powered by a computing-centric blockchain

DxChain中文

Big Data Meets Blockchain

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade