当前位置:首页 » 比特币问答 » 比特币双花问题

比特币双花问题

发布时间: 2022-07-25 08:36:17

比特币交易为什么确认6个区块以上就可以证明

为了避免双花造成的损失,一般认为,等 6 个区块确认后的比特币交易基本上就不可篡改了。举个例子来解释双花过程:假设小黑给大白发了 666BTC,并被打包到第 N 个区块。没过几分钟,小黑反悔了,通过自己控制的超过 50% 的算力,发起了 51% 算力攻击,通过剔除发给大白的 666BTC 那笔交易,重组第 N 个区块,并在重组的第 N 个区块后面继续延展区块,使之成为最长合法链。
 
一般来说,确认的区块数越多,越安全,被 51% 攻击后篡改、重组的可能性越低,所以6个区块并不是硬性的,只是说有了6个区块,被篡改的可能性较低。对于大额交易,当然是区块越多越好,但是对于小额效益,一个区块就够了

⑵ bitcoin造币系统怎样操作

转。。

比特币原理
下面开始用简练的话来介绍比特币原理:

1.首先你要知道公钥和私钥的概念(已经懂的不用看这部分了)
公钥私钥是现代密码学分支非对称性加密里面的名词,通常都是用公钥加密信息,用私钥解密信息,为什么要这样? 因为你看电视剧的时候,发电报那种都是对称性加密,这种加密方式缺点是显而易见的,如果被人知道了密钥和加密方法,于是按照加密方法反着来就能解密。 一直到非对称性加密这种情况才有所改观,公钥就是可以对全世界公开的密钥,比如你和google通讯,用google给的1024位的公钥加密,送到google那里只有他有对应的私钥,只有他能解密,于是就保证了通讯安全
2.比特币主要用了ECDSA,也就是椭圆曲线签名算法,这个算法有两个特性,注意这两点对下面至关重要
a.只要知道私钥,可以算出相应的公钥;
b.你用私钥签名过的东西,可以用公钥算一下是不是你签的;
3.知识准备完了,下面开始讲比特币的交易,比特币其实没有钱包,只有交易账单,整个比特币就是一大堆交易账单

比如:
账单1 从A转到B 转了XXX比特币
账单2 从B转到C和D 转了XXX比特币
账单3 从C转到E 转了XXX比特币
。。。。任何人只要下载了客户端都能接收到从比特币成立那一天起的所有账单,所以,只要把所有账单都下载全了自然知道每个账户上应该剩多少钱(这里仔细思考下)

4.比特币的账户,就是刚才讲的一段公钥

5.下面我开始贴一个比特币的账单,这里是核心部分了!!! 每个账单都是一段数据,你签完了以后会发送到全网,把数据结构逆向成易懂的中文解释如下:

FROM(谁发送的,包括两部分)
Previous tx: 你要花的这笔钱的那个账单的id, 也就是说,你花的任何一笔钱都应该有人转给你过,需要出示那个账单的id
scriptSig: 你对这笔交易的签名,就是把单子用你的私钥做hash,只有你能做这个hash

TO(谁接受,包括两部分)
Value: 要发多少
scriptPubKey: 对方的公钥,比特币账户就是一段公钥
6.等你签完单子以后,开始往全网发送,怎么发呢? 比特币通讯没那么复杂,你可以类比成IRC频道,但和普通的“IRC”不同的是,任何一个客户端都是一台“IRC”服务器,当你启动客户端的时候,会接收到周围的有公网IP的客户端地址,就是“服务器”列表,这个列表也不断的刷新,都是其他的比特币用户,于是你在这个“IRC”喊一句话的时候,周围的人会听到,进而扩散的全世界。

7.把签单发送到全世界以后,所有收到这个单子的客户端会效验你这个单子对不对,比如会效验你的签名,是不是你发的,会效验你是否有那么多钱(根据历史交易可以推算出你有多少钱可以花)
如果这个交易大家算过没问题了,基本上就算转账成功了。

8.实际上现在对方已经接受了比特币,但是要想花的话,他得有那个地址(公钥)对应的私钥。于是他就能填下一个单子的 FROM头部,Previous tx就是刚才这笔交易的序号,scriptSig填用他私钥签名过的hash

如此往复。。。

挖矿
然后再解释挖矿部分,我在极力的简化整个过程,以方便大家理解,所以上面特地去掉了挖矿、双花问题(伪造货币、同一笔钱花两次)这些

其实上面那个解释读完了就会有个疑问,既然都是交易记录,那最初的钱是哪里来的?交易得有原始的那部分钱,那笔钱就是挖矿进来的

挖到矿以后也会得到一个交易记录的东西,但是FROM那边很特殊,整个体系也认可这个FROM

另外实际上,账单是要附着到块(block)上的 ,账单发到全网以后,需要全网去计算正不正确
刚才不是说全网一块算么,比特币规定,第一个算出来的有奖励,就是挖矿所得,现在这个奖励数额是25比特币,那么。。。。。

我只用一台pc算是不是太弱了,于是就有了矿机,挖矿这东西的作用就是核算比特币的交易是不是正确,矿机就是为了比别人算的快

洗钱
很多谈论比特币的人如果不是真的资深,都无法解释洗钱的问题,而这个问题才是关系到比特币的本质。 比特币为什么能洗钱,这个也是比特币的特性决定的,在上面我解释过比特币的账单,那个只是1个进(FROM),一个出(TO),实际上比特币的协议允许无数个进,无数个出,只要FROM的总额等于TO的总额就可以,为了大家更加形象的了解我特地从实际的比特币交易记录里面找了一笔多个FROM多个TO的交易,截图如下,链接见这里https://blockchain.info/zh-cn/tx/

⑶ 比特币价格到底由什么决定

关于各种事件对比特币价格影响,此类事件大概分为四种类型。
政治事件:此类事件大多数涉及到政府对待比特币的态度,比如美联储承认比特币是金融工具,德国承认比特币是货币,中国禁止金融机构参与比特币交易,俄罗斯禁止使用比特币和参与比特币挖矿。尽管比特币本身是一种中立的技术不受政治的影响,但是比特币的价格会因为此类事件而发生剧烈波动,目前为止,这是对比特币价格影响最大的因素。
交易所事件:尽管比特币是一种去中心的货币,但比特币的交易主要还是发生在中心化的交易所中。自比特币诞生以来,有不少交易所发生了比特币被盗事件,比如最大的日本交易所MtGox,丢失了70万个比特币,最近香港的交易所Bitfinex,丢失了12万个比特币,斯洛文尼亚的比特币交易所Bitstamp被攻击损失了1万9千个比特币。每当此类事件发生时,比特币交易的风险陡增,往往比特币也会迎来较大的跌幅。
金融事件:此类事件往往来自于现实金融世界的不稳定性,比如塞浦路斯央行违约,导致该国储户超过10万欧元以上的储蓄全部归零,还有乌克兰面临战争压力,发生了严重的本币贬值,再例如英国脱欧,使得欧元区的稳定性发生削弱。比特币作为一种避险资产,正在得到越来越多的市场认可,目前全世界比特币的交易量已经超过了黄金ETF的交易量,而法定货币的不稳定造成了比特币持续上涨的动力。
技术性事件:作为一个去中心化的开源网络协议,比特币的代码远非完美,比特币的协议曾经发生数次危机,比如某次比特币协议的升级并没有得到全网一致的认可,最后发生了双花问题,而比特币的交易延展性上存在问题使得黑客容易攻击盗取,也一度迫使数个比特币交易所暂停交易,至于最近,比特币社区关于扩容的争论激烈,一直无法得到有效方案,也使得比特币的未来蒙上了一层阴影。比特币的协议是否能持续进化,这对比特币价格的影响是长期的。

区块链中的时间戳是什么

为了防止双花问题,系统会给每一个区块的交易信息都自动加上时间戳,给它打上时间烙印,这个时间你花了多少钱,花了就是花了,已经记录上了,不能再用它买别的东西了。
具体怎么记录的呢?其实还是通过计算,把时间戳和区块上的其他交易信息,通过复杂的计算,得出一个加密数值,这个加密数值叫作“哈希值”,每一个新区块都包含前一个区块的哈希值,由此形成一条区块链。
所以我们说:比特币系统,实际上是一个层层嵌套、永不停歇的、非常强大的时间戳
系统,它利用的是时间戳,保证每一个区块按照时间顺序链接成“链”(也就是区块链)。
从这里我们这样理解,时间戳,字面意思是给区块打上时间印记,它的实际作用在于:为之后计算哈希值提供一个重要参数,是计算和核对过程中一个必不可少、非常重要的信息。
最后,我们总结本节的内容。本节主要介绍了两个名词:UTXO和时间戳,这两个概念呢,是解决“双花问题”的重要手段,能够保证比特币可以在没有第三方机构的情况下,不被多次使用。

⑸ 2018年5月,比特币黄金(BTG)遭遇51%双花攻击,损失多少万美元

2018年5月,比特币黄金(BTG)遭遇51%双花攻击损失了9 万美元

⑹ 在区块链中,双花问题是什么问题呢

  • 什么是双花问题呢?

双花问题,简单讲就是一笔钱能被花两次三次很多次。为什么双花问题会成为比特币系统里面一个这么重要的问题呢?

原因就在于:比特币,是虚拟货币,它是虚拟的,通过代码形式呈现出来的,是可以被复制下来的。一旦被攻破了代码漏洞,那么就可以循环使用同一笔比特币,这样一来,比特币这种“钱”就会变得很鸡肋。

我们想一下,要是一笔钱可以花很多次,你有500块钱,你去买一件500块钱的衣服,还能循环使用,再去买一双500块钱的鞋,这样一来,钱还能叫钱吗?

所以,中本聪在设定比特币系统的时候,他所有的技术手段基本上都是围绕着解决

“双花问题”的,来保护比特币作为一种货币,它自身的一个支付手段职能。

其实,这个双花问题在我们现在的中心化世界里面根本不是问题,因为有银行,钱的交易结算都是通过银行,很安全,有问题直接找银行。

但是,在去中心化世界里面呢,没有银行这样一个中心机构,还必须保证一笔钱只能花一次,怎么样实现在去中心化的前提下,杜绝“双花问题”呢,这是一个难题。

这里插一句,中本聪为什么如此执着的追求“去中心化”呢,自找烦恼吗?不是,他希望能够通过去中心化,来解决一些社会问题,其中最主要的问题就是:因为权力机构过量发行货币造成的通货膨胀。

所以,我们总结一下他的逻辑:中心化的货币增发导致通货膨胀——所以我们要实现去中心化——去中心化要面临很多问题,最大的问题是双花问题——所以我们要解决双花问题——怎么解决双花问题?

这里,中本聪就引入了UTXO和“时间戳”概念,依靠这两种手段来解决双花问题。

⑺ 比特币出现双花,怎么解决

不太清楚,

⑻ 比特币钱包

比特币(bitcoin)诞生于2008年的一篇论文。
一个署名为中本聪的人,提出了革命性的构想:让我们创造一种不受政府或其他任何人控制的货币!这个想法堪称疯狂:一串数字,背后没有任何资产支持,也没有任何人负责,你把它当作钱付给对方,怎么会有人愿意接受?
Merkle tree
跟二叉树长得很像,只是这个是下面两个节点取哈希值得到上面节点。只需要记住根节点,就可以检测整棵树有没有被篡改。
根哈希值存在block header里,交易过程存在block body里。全节点包括block header和block body,但是轻节点(比如手机上比特币钱包)只包括block header。这棵树可以证明包含某个交易已经被写进了区块链。
3.共识协议
去中心化的货币要注意的两个问题:
1.谁能发行数字货币:挖矿。
2.怎么验证交易的合法性:区块链。
双花攻击(double spending attack)
双花攻击是数字货币的一个主要挑战。
比特币中的交易都要有输入和输出,币从哪来,花到哪去。
正常情况也可能有两个分叉,因为两个节点同时获得记账权,两个节点打包的区块,同时计算出了那个随机数。此时会暂时两个分叉共存,直到其中某一个区块抢先找到了下一个区块,这条就成了最长合法链,另一个分叉就被丢弃。

女巫攻击(sybil attack)
某恶意节点不停产生账户,账户总数超过总账户的一半,则取得了区块链的控制权。

比特币中的共识协议(Consensus)
一些节点是有恶意的,大部分节点是好的。

想法1:把一些交易打包到区块里作为候选区块,让每个区块投票,如果通过就写入区块链。

不行,因为有的恶意节点一直发布一些含有恶意交易的区块,则一直投票,占用资源。而且有的节点不投票。

想法2:不按账户个数投票,而是按照计算力投票。每个节点都可以产生合法交易放入区块,这些节点就开始试随机数,直到找到H(block header)≤ target,则这个节点有记账权。

唯一产生比特币的途径
coinbase transaction。这个不用指出币的来源,有了记账权的节点(找到了随机数)会有出块奖励。

50BTC->25BTC->12.5BTC,每21万个比特币,奖励就减半。

比特币争夺记账权的过程叫挖矿。争夺记账权的节点叫矿工。

⑼ 小白如何了解比特币

多去比特币新闻网看比特币新闻,以及行情,技术
比特币的诞生
比特币的诞生应该算在2008年的11月1号的那一天,一个化名为“中本聪”的人在网上发表了一篇论文。 在这篇论文里,他详细的描述了一种崭新的货币体系,他将之命名为“比特币”。

随后,次年的1月3日,首个比特币程序在中本聪的手里诞生,与之一起诞生的是最早挖矿所得的50个比特币。在那之后他开始逐渐淡出,直到彻底的消失。

人们至今也没找出这个叫中本聪的人的真实身份,即使如今的运营商、互联网巨头与政府已将人们在网络上的行迹牢牢掌握在了手里。

他在发言时会经常切换美式和英式英语,他随机在全天不同的时间上线,以隐瞒自己的国籍和时区;他隐藏自己的ip地址,加密自己的邮件,故意伪造一些写作和发言风格来混淆视听;此外他还是一名造诣颇深的密码学专家,对了,他发表论文的地方就叫做 "密码学邮件列表"。

所以比特币从诞生时起就带上了一种黑客精神:对抗任何势力所强加的审查。

当然我们也可以这么看: 如果一个发明了匿名货币系统的黑客,却连自我身份都不能匿名的话,那整件事会变成一个笑话。

但是所幸,中本聪没让我们失望。

1. 什么是货币
我发现要讲清楚什么是比特币,这一节是无论如何也跑不了的了。我不是什么经济领域的专家,我只能很粗浅且只能在很直观的意义上讲述这个问题。(不过就标题所表达出来的本文主旨而言,似乎也足够了)

高中的课本里有讲过(还记得吗?) , 货币是储存价值的媒介,一种东西要成为货币,最重要的,他必须满足:

1) 稀缺性。

这就是为什么黄金可以而沙子不能被当作货币的原因。稀缺性可以理解为获得它的难度,越是稀缺要获得它就越难。 一个直观的认识是这样的:假设你一个月的薪水是5000元,它意味着人民币的稀缺程度恰好到了这样一个度,即你要付出一个月的劳动才能获得5000个一元。 你不会同意以5000粒沙子来支付你的薪水,是因为与其通过劳动一个月来获得它,你大可以去沙滩走一圈就轻轻松松地得到了。

那么现在的金融系统是如何保证货币的稀缺性的呢?控制发行。货币的发行是被牢牢掌握在中央银行手中的,这样货币的发行量才能做到可控(所以你现在知道了,私自印钞是违法的)。回到刚刚那个例子, 你同意以5000元来支付你一个月的薪水,是因为人民币发行量刚好到了这个度。如果此时的人民币发行量翻倍了,稀缺度相应降低, 这时候你就应该要求以1万元来支付你的薪水了(但市场的响应往往不会这么快,在这期间你的财富其实是被剥夺了--你的劳动本该获得一万元却只得到5000元的回报)。

2)交易性

货币存在的目的当然是为了交易。就像很多人告诉你的那样,钱是用来花的,不是用来带进棺材的。所以除了满足稀缺性以外,一种东西它越是方便交易,那么他就越符合理想货币的标准。所以在货币史上,银元代替了贝壳,纸币代替了银元,数字货币正逐渐取代纸币。

这里所说的“交易”,是指财产从一方转移到另一方,即一方的财产减少相应的另一方增多。对实物货币来说,它发生得非常自然,甲要给100元乙,当100元钞票从甲的手里转移到乙的手里的那一瞬间,交易完成了,甲的财产减去了100元而乙的财产增加了100元,这个过程中没有第三方的参与,完全是甲和乙之间的私密行为;然而当交易发生在数字货币层面上时,就没这么简单了,甲要给100元给乙,如何确保交易完成了呢?假设甲和乙在各自的电脑上记录了自己的财富数额的话,那么如何确保乙在给自己增加了100元的时候甲如实地给自己减去了100元呢?这个时候我们不得不要引入第三方了--我们称之为“银行”的那个家伙。 当甲要转移100元给乙时,他不是直接给乙而是给银行, “请把我的100元转给乙” ,于是银行在甲的帐目上扣掉100元,再在乙的帐目上加上这100元。(我们假设它慷慨地不收取任何交易费)

以上所说的就是现代货币系统的一个粗廓模型,这个模型最大的弊端在于:人们不得不去信任一个中心系统。

数字货币的交易必须依赖银行,而一个人的银行账号可能会被审查、限制甚至是剥夺。当一方想要给另一方转移自己的财富时,银行可以收取高昂的费用或者直接拒绝(比如你试试汇一笔钱给美国的亲戚)。

货币的发行必须依赖中央银行。好吧,这已经是一个广为人知的秘密了:货币一直在贬值,或者说货币一直在超额发行(想想20年前的100块跟现在的100块)。 我引用两段话, 一段是凯恩斯说的, “通过连续的通货膨胀过程,政府可以秘密地、不为人知地没收公民财富的一部分。用这种办法可以任意剥夺人民的财富,在使多数人贫穷的过程中,却使少数人暴富。”, 另一段,出自哈耶克, “政府无法克制滥发货币的冲动”。

那么有没有可能设计出一套货币系统,在这个系统里我们不需要一个中心机构,不用被迫去信任任何的第三方, 使货币的发行透明可控,货币的交易私密而安全呢?

你猜?

2. 什么是比特币
所以我们现在可以回答到了,比特币是一个发行去中心化和交易去中心化的电子货币系统。在这个系统里,货币的发行量是透明且可预期的,货币的交易利用整个网络的协同合作来保证交易的安全。

下面我将逐步拆解比特币的原理。需要注意的是,比特币作为一个已经实际在使用的产品,它本身有着非常丰富的细节。本篇目的是向没有技术背景的读者讲述比特币的基本原理,因此并不会涉及到这些细节。比如说钱包的地址其实并不是公钥,而是公钥的二次哈希值; 区块链的难度要求并不是简单的把所有区块链的内容做一次哈希运算;等等。但是为了叙述的简洁性,在不影响对基本原理的讲解下这些都做了简化处理,希望大家能够理解。

2.0. 比特币网络 -- 由众多运行着比特币程序的节点组成
比特币是一个由众多平等的节点组成的网络。

一个节点就是一个比特币程序,任何能够连上网和具有一定计算能力的机器都能运行这个程序 -- 所以你家里的电脑也可以作为比特币网络里的节点:)

节点之间是可以互相通讯的,同时比特币有一套机制可以让一个节点向其他所有节点发出消息,这个行为被称为“广播”。

2.1. 区块链 -- 一个公共的账簿
我们先回到银行的例子。银行最基本的功能,无非是维护一个账簿,而这个账簿只需如实记录每一笔交易而已。比如X年X月X日,王小明转了30块钱给张大毛;Y年Y月Y日,张大毛转了12块钱给李小豆,诸如此类。 根据这个账簿我们可以查到一个人的所有交易记录,因而也就能推算出这个人此刻的账户余额为多少。比如李小豆从建银行帐号开始,转进的交易合计500元,转出的交易合计300元,那么可以算出此时李小豆账户余额一定是200元。

维护好这个账簿,并且作为唯一的维护者(只有银行才有权力查看和修改), 银行作为一个交易中心的职责就完成了。

比特币也有账簿,但是与银行不同的是,这个账簿是公开的,任何人可以去查看和审核它。

这个账簿被称为"区块链"。你可以把区块链想象成一个小册子,册子的每一页写满了交易信息,并且不断有新的页加入进来。

2.2 钱包 ---由一对公钥和私钥构成的的账户
上面一小节,解释了什么是比特币的账簿。这一小节将解释这个账簿里资金的归属权问题,亦即比特币的帐户系统。

比特币里的帐户跟银行的帐户有本质的区别。

在银行账户下,银行记录下了该账户所有者的身份信息(回想一下你去银行开户时提交的资料:照片、身份证、电话号码、家庭住址....),因而只要你能向银行证明你的身份,你也就获得了你名下财产的所有权。在这种模型下,银行扮演了一个全知全能的上帝角色:他知晓现实人们的财富信息。我们除了祈祷上帝不要把我们的信息泄露出去或者利用它干坏事以外,别无他法。

在比特币的世界里,并没有银行这样一个机构,它不会强制人们暴露自己的身份以换取资金的安全。比特币的帐户只是简单的由两串数字构成,分别被称为“公钥”和“私钥”,除此之外再无其他。

这个两个数字所具有的数学特性 -一个被私钥加密过的数据只能通过公钥来解开,所谓的非对称加密-使它们能够完美的实现一个帐户(比特币世界里被称为钱包)需要的功能。

我们把公钥作为帐户地址 --在比特币世界里也称钱包地址 --它类似于银行系统里的帐号,就是当你告诉别人“请给我的帐号打300块钱”时,需要告诉别人的那一串数字。对银行来说,它是“招商银行6214850200251100”,对比特币而言,它是“ ”。

私钥,是证明钱包所有权的*唯一*凭证,你通过证明你是该钱包的私钥持有者来获得该钱包的所有权。注意,和银行账号的密码不同的是,你丢失了密码还可以通过证实自己的身份来找回,但你一旦丢失了密钥那这个钱包里的资金就再也找不回了。

因为公钥和私钥所具备的非对称加密的美妙特性,钱包的所有者并不需要通过出示私钥来证明自己持有它。他只需要出示一段用私钥加密过的文字,验证者能用公钥(即钱包地址)解开这段文字即能证明。

那么怎么生成一对这样的数字呢?

相比于银行开户的繁琐手续,你唯一需要的只是一个实现了该功能的数学软件。

感谢数学。

2.3 区块 --- 有难度要求的账簿页
前面提到,区块链就是一个账簿,一个区块就是这个账簿里固定大小的一页。(比特币规定区块大小不超过1M,而一笔交易大约250字节大小,因此一个区块平均能写下4000笔左右交易。)

区块链是公共的,每个人都可以下载,验算和查看区块链里的交易信息。同时每个人也都可以向区块链增加区块,只是我们需要一种机制来防止坏人们通过提交大量的区块来拖垮整个网络。这个机制的核心在于我们要使区块的构造变得有代价,代价大到不可能在短时间内构造出大量的区块。

比特币要求,新的区块必须使区块链具有某种特征的哈希值才能被允许加入。 哈希值是一种数学运算(感谢数学!),你可以简单理解为对数据的摘要,不同的数据有不同的哈希值,即使两个数据只相差一个字节,他们对应的哈希值也会截然不同。

比特币通过“要求区块链的哈希值具有某种特征”来控制构造区块的难度,这个特征其实就是要求哈希值开头的几位数字为0. 比方说当前比特币要求哈希值前4位必须位0,我们用P表示当前的区块链,用B表示当前构造的区块,那么P+B的哈希值前4位必须为0该区块B才能被允许加入区块链中。 这里要注意三点, 1. 要构造出这样一个区块没有捷径,必须通过大量的计算,一遍一遍的往B里放随机数直到P+B的哈希值满足要求为止。2. 哈希值前面为0的位数越多,要构造出这个区块的难度就越大。

好了,我们现在有了控制区块构造难度的工具了,那么比特币通过什么样的规则来控制难度呢?

比特币规定区块链应保持在平均每两周时间增加2016个区块(也就是平均10分钟一个)的速度上。 也就是说,每增加2016个区块,系统就会算出产生这2016个区块的时间,如果它小于两周那么就提高接下来2016个区块的难度(比如从要求哈希值前3个必须为0提高到前4个为0), 如果它大于两周就降低难度(比如从要求4个0降低到3个0), 这样从长远来看,就使区块链平均以每10分钟一个的速度增加了。

也因此可以推论,区块链的难度要求与全网构造区块的算力成正相关关系。也就是说,参与构造区块的算力增加那么难度要求就会提高,相反则会降低,这样才能使区块链以固定的速度增加。

上面提到,让构造区块变得有难度,是为了防止被坏人攻击。同时,它还有一个作用是防止坏人们将一笔钱花两次(所谓双花问题)。 我们看如下一个比特币的应用场景:

小张要用比特币在小李那里网购一个商品,

1) 小李用数学软件生成好一个比特币钱包,并将该钱包地址(公钥)告诉小张。

2) 小张选取了自己一个有足够余额的钱包,并用这个钱包的私钥签发了一笔交易(该交易把一部分比特币发到小李的钱包地址上),然后把交易广播给全网络。

3)网络中的一些节点把该交易收纳到当前正在构造的区块中。 第一个成功构造出合法区块的节点把该区块广播给全网络,得到全网络的认可被加到区块链上。

4) 小李发现区块链上已经有一个区块包含了指向自己钱包地址的交易,并且交易金额正确。 小李随即给小张发货。

5)小张发现小李已经发货,这时他开始重新构造一笔交易,试图把刚刚发给小李的钱发到自己另外的一个钱包里。这个时候他不能再把这笔交易广播出去了,因为网络中的其它节点会发现该交易是不合法(花掉一笔已经花掉的钱)而直接拒绝掉, 小李只能自己构造一个包含了该交易的区块,并且试图说服网络中的其它节点他的这个节点才是合法而刚刚那个(包含发给小李交易的区块)是不合法的, 这样就能实现他一笔钱花两次的目的。

比特币规定当区块链发生分叉时(即出现了两个或以上互斥的合法区块)时,应该追随最长的那条。 那意味着小张要实现自己双花目的,他必须在产生了小李那个区块后,马上构造出两个区块来,才能说服其他节点跟随自己的这条链。 要达到这个目的,当前时间内他必须拥有(或者接近拥有了)全网51%的算力, 才能抢在其他所有节点之前构造出两个区块出来。

2.4 矿工 --- 通过挖矿来争夺记账权的区块链维护者们
前一节我们讲到,区块链的难度实际上是对区块链的保护,这个难度要求越高区块链就越免于被坏人攻击。换个方式表述就是,全网构造区块的算力保障了区块链的安全,全网的算力越高,那么坏人们获得全网51%算力的难度就越大,因此越不容易被攻击。

那么我们如何激励节点们贡献出自己的cpu跟电力来提高全网的算力呢? 答案是区块奖励。

比特币规定,成功构造出合法区块的节点会获得一部分比特币作为奖励,这部分比特币是系统生成的,他类似于淘金业里的挖矿,通过辛勤的劳动增加了黄金(比特币)的流通总量,因此构造区块的过程被称为“挖矿”,企图通过挖矿来获得区块奖励的节点被称为“矿工”。

挖矿的意义:

1) 它激励节点们贡献出算力来保护网络

2) 它实现了一种公平的方式发行比特币,因为不存在一个中央发行机构。

除了区块奖励外,交易者还可以通过额外支付一笔交易费给矿工们来鼓励他们将自己的交易收纳到它的区块里。这样当区块奖励趋于0时(比特币总量2100万枚,意味着越到后面区块奖励会越少), 因为有交易费的存在,矿工们也会继续维护整个网络。值得注意的是这里的交易费跟银行转账费有所不同,银行的转账费是由银行自上而下规定的,比特币的交易费是由使用者自由设置自下而上竞争的结果(如果当前交易数量很多而你给的交易费太低的话,可能不会被矿工们收取。)

亦即,矿工成功挖到区块时,他将获得 1)区块奖励 2)该区块内所有交易的交易费。

2.5 总结
比特币的核心是一个公共的账簿--区块链,每个人都可以核算查看这个账簿里的交易信息。这个账簿里不会记录任何真实世界里的个人信息,比特币保护了使用者的隐私。

通过非对称加密,用户可以不用出示密钥就可以证实自己是该密钥的持有者。因此提供了一个安全的不用信赖任何第三方(对比银行,你必须信赖它不把你的账号密码泄漏出去)的方式发起一笔交易。

因为比特币是开放的,意味着任何人都可以攻击比特币网络。通过控制区块的难度,使比特币网络免疫于大部分的攻击除非攻击者获取了接近全网51%的算力。而矿工们是比特币网络的保护者,比特币通过区块奖励和交易费的方式激励他们贡献出自己的cpu,组成巨大的算力屏障,使得任何组织或个人想要发起51%算力攻击都成为不可能。

⑽ 双花理论是什么概念

在学习区块链的过程中,大家一定对会听到“双花”这个词,意思就是双重支付,或者更直白点就是一笔资金被花费了两次。这篇文章我们来简单的分析一下为什么会有双花,比特币是如何避免双花的。

在传统的交易中,因为有银行这样的中心化机构,所以是不会存在双花问题的:每一笔支付都将从你的银行账户中扣除相应的资金,所有的明细在银行都有记录。但是在比特币中,因为没有账户的概念,而是引入了UTXO即未花费交易输出。因为没有银行这样的中心化机构的保证,当发生一笔交易时就可能存在着双花的危险:比方说A有一个比特币,然后他同时构造两笔交易T1和T2来花费这1个比特币,其中一个给了B,从B那里买件衣服,一个给了C,从C那里买双鞋。如果不引入某种机制来避免这种情况,那作为数字货币的比特币将没有任何存在的意义。接下来就来分析一下比特币是如何做到防止这种“双花”攻击的。

(1) 正常情况

首先我们来看看正常情况,说白了就是绝大多数时候,区块链的共识机制就能将双花消灭在萌芽状态。我们还是以上面提到的例子来做说明:

假设A构造了两笔交易T1和T2,将自己价值1btc的UTXO分别转给了B和C,妄图同时从B和C那里获得好处。然后A几乎在同一时间将构造好的这两笔交易广播至网络。

假设网络中的矿工节点先收到了交易T1,发现这笔交易的资金来源确实没有被花费过,于是将T1加入到自己的内存交易池中等待打包进区块。

大部分情况下,这个矿工节点会在不久后又收到交易T2,此时因为T2所指向的交易输入与已经加入交易池的T1相同,于是矿工节点会拒绝处理该交易。网络中其他的矿工节点都类似,因此A试图双花的尝试胎死腹中。

(2) 分叉情况

上面说的是正常的情况,但是也有非正常的情况要考虑:假设矿工节点M1和M2几乎在同一时间挖出了区块,并且很不幸M1挖到区块时只收到了交易T1,而M2挖到的区块时只收到了交易T2,这样交易T1和T2被分别打包进两个区块。因为这两个区块是差不多同一时间被挖出,于是造成了区块链的分叉:

网络中某些节点(可能是离M1近的)先收到了M1打包的区块BLK1,于是用该区块延长自己的区块链,而另外一些节点(邻近M2的)则先收到M2打包的区块BLK2,用该区块延长自己的区块链,于是整个区块链网络

热点内容
区块链数字旅游小镇 发布:2025-06-21 07:32:03 浏览:590
区块链生态环境执法 发布:2025-06-21 07:26:38 浏览:182
比特儿APP充币地址 发布:2025-06-21 07:26:33 浏览:25
矿池干什么的 发布:2025-06-21 07:09:23 浏览:969
中国发行数字货币的最终目的 发布:2025-06-21 06:53:06 浏览:267
中享数字货币 发布:2025-06-21 06:19:48 浏览:453
合约副卡怎么转网 发布:2025-06-21 06:14:09 浏览:121
2009年1000元的比特币 发布:2025-06-21 06:09:22 浏览:994
以一种全新的金融基础设施发展区块链中国 发布:2025-06-21 05:57:30 浏览:772
以太坊废了 发布:2025-06-21 05:49:52 浏览:283