大家好,今天来为大家分享比特币验证双花的一些知识点,和比特币 验证的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
本文目录
如果比特币暴跌到连抄底的人都没有了,会怎么样呢?如何向十岁的孩子解释比特币关于比特币的谜题(完结)区块链鼻祖比特币之8:分叉带来的双花支付、51%攻击与解决办法入门科普:什么是双花如果比特币暴跌到连抄底的人都没有了,会怎么样呢?挺无聊的问题。好在我不是自媒体,不怕阅读量下降。就跟着无聊一次吧。
抄底的人没了,就是归零了,那很好,有我在那就不会发生,全部拿下。其实也轮不到我,比特币本来就是从零开始的,大不了重新来过。如果不会重新起来,只会因为有了新的替代品,或者它的使用场景不存在了。
假如有了替代品,也许另一种更完善的币,那么题主的问题也不存在了。比特币等于还活着,换了个名字而已。
假如使用场景不存在了,那才会真死。会吗?似乎很难。远的不说,假如我们现在生活在委内瑞拉,每天货币贬值3%以上,请问普通人有什么办法规避这种问题?买美金还是黄金?对不起,这些东西早被政府和富豪截流了,就是能买到也会付出很大代价。带在身上也有风险,可能还不如没有能活得长些。实际可用的方案还是用收入换比特币,然后要用的时候换出够短期几天用的官方货币,这也是目前每天正在发生的事。
委内瑞拉不是个例,现在美国需要把美元弄回国内去保证它自己的发展动力,美债和美股都到了高点,还有一系列全球经济和地缘摩擦上的因素没法在这里细说……未来一段时间,绝大多数国家的货币将开启宽松政策,货币对内和对外双贬值的情况将普遍存在。不要看国内,99%的国家没办法做到像中国这样硬挺的。比特币的此次牛市,自然有减半周期和机构入场等有利因素,但是最根本的还是它的作用在动荡的世界中开始凸显,而且没有其他的替代方案。
问抄底这类问题,就好像在搞击鼓传花的资金盘,对比特币精神是种侮辱。不如好好去研究一下比特币背后的哲学,一定有益于思维境界的提升。
如何向十岁的孩子解释比特币真是个好天气,坐在花园凳子上的我们,是一对好朋友,你是韩梅梅,我是李磊。
我有一个苹果,但你没有。
我把我的苹果给了你。
现在,你拥有了一个苹果,而我则失去了它。
这事儿看起来很简单,对不对?
让我们仔细分析下这个过程
我手里的苹果发生了物理转移,最终转移到了你的手上。
在这个转移过程中,你我均在场,这个过程不光“看得见”,在苹果转移完成之后,你甚至“摸得着”这枚苹果。
整个转移过程我们都不需要第三方的协助,我们不需要叫上李校长跟我们坐在一起见证这个过程。
转移的结果就是,这枚苹果是你的了。我也无法再将它转移给其他人,原因很简单,因为苹果已经不在我手上了。也就是说,至此,我已经完全不再拥有这枚苹果,而你则是这枚苹果新的所有者。如果你愿意,你可以把这枚苹果送给朋友,你的朋友也可以继续转送给他的朋友,诸如此类。这就是“面对面交易”的一个很好的例子。不管我给你的是一根香蕉,一本书,还是一张一美金的纸币,本质上,这些都属于“面对面交易”的一种。
等等,为什么要扯到美金,我可能说得有点儿太快了。
继续回到关于苹果的话题
现在,假设我有一枚“电子苹果”,就是下面的这幅图片文件。然后,我决定把这枚“电子苹果”(图片文件)转移给你。
嗯,事情开始变得不一样了。
你如何确定我曾经拥有的这枚“电子苹果”,现在的所有权在你手上,并且只在你手上呢?
这个问题值得好好思考一下。
事情开始变得复杂了,不是吗?你如何知道我是不是已经把这枚“电子苹果”作为邮件附件先发给了Tommy叔叔呢?或者我的另一个朋友Joe?甚至也给了Lisa一份?
或许我已经把这枚“电子苹果”复制了好几份存在了我的电脑上,又或许我已经把它放在了网上,成千上万的人已经下载了它。
正如上面讲的,电子交易是存在很多问题的。“电子苹果”的交易不同于实体苹果的交易。
对与上面讲到的问题,聪明的计算机科学家们给它取了个名字:二次花费,简称“双花”。不要害怕,这只是个名字而已。你只需要知道的是,二次花费的问题困扰了这帮科学家很久,一直都没有办法解决。
直到现在。
不过,在了解科学家们的解决方案之前,我们不妨自己先考虑一下怎么解决这个问题。
账簿
也许我们可以建立一个账簿,用于追踪和记录这些“电子苹果”的转移。你可以把它想像成一个记录了全部交易记录的笔记本。就像下面这幅图里展示的那样。
由于这个账簿是电子的,因此需要有一个地方存放这个账簿,并且要有专人管理它。
比如,在线电子游戏《魔兽世界》的开发者暴雪公司,可以创建一个电子账簿,这个账簿上记录了整个游戏系统中存在的冒着火光的稀有的宝剑的信息。类似的,应该也会有关心“数字苹果”转移记录的人帮忙管理这份记录的。不错嘛,问题解决!
依然存在的问题
上述的解决方案依然存在一些问题:
1)如果暴雪公司随意更改它维护的这份账簿中的数据怎么办?
2)事情依然不像那天我跟你在公园长椅上进行的实体苹果转移那么简单。引入暴雪公司,就像引入了Tommy叔叔一样,我们引入了一个第三方来协助我们完成“电子苹果”的转移。有什么方法让“电子苹果”的转移跟实体苹果的转移一样,不需要第三方的介入也能安全有效地完成呢?看起来很困难的样子……
真正的解决方案
我们把这份账簿分发给每一人怎么样?每个人的电脑上都有这个账簿的一份拷贝,而不是只将账簿存在暴雪公司的电脑上。关于“电子苹果”发生的所有的交易,都会被记录在这份分布式的账簿里。
这样一来,就不会有人作弊了。一个人不能转移不属于他的“电子苹果”,因为他的这种非法转移请求不会被系统中的其他人认可。这个系统会非常健壮和稳定,随着系统变得越大越是如此。而且,这个系统并不被某一方所控制,因此我可以确定,这个系统中不会发生随意给自己的账户增加“电子苹果”这样的事情。整个系统的规则在系统开始运行的那一刻就已经决定了。而且这些规则和代码都是开源的,人们可以为这个开源项目贡献自己的聪明才智,进而维护和改进它。
你也可以加入到这个网络中来,作为成千上万的节点中的一员,帮忙更新账簿以确保账簿的有效性。你所做的每次更新,都可以得到25个“电子苹果”作为奖励。事实上,这个奖励机制也是整个系统中“电子苹果”的唯一来源。
让我稍微简化一下
上述的这个系统其实是真实存在的,它就是比特币协议。而上述的“电子苹果”对应的就是比特币系统中的“比特币”。不错吧!
所以,你看明白是怎么回事了吗?公开账簿的威力是不是很大?
1)比特币项目是开源的,还记得吧?在比特币系统运行之初,整个系统的货币总量就已经确定了(2100万枚比特币),而且,我随时可以知道截至目前系统中已经产生的比特币数量。
2)当我发起一笔交易的时候,我能够确定的是,这笔交易对应的比特币确实摆脱了我的控制,并且完全变成了接收方的资产。这笔交易最终由分布式的公开账簿进行更新和验证。
3)由于这份账簿是公开的并且是分布式的,因此我不需要引入第三方就可以确保不存在二次花费也就是双花的问题。
在比特币系统内,比特币交易变得跟实体苹果的交易一样,“看得见,摸得着”。而且,整个交易过程只需要交易双方参与。
换句话说,作为一种电子交易,比特币交易跟实体交易并没有什么不同。
更酷的是,比特币是电子货币,这也就意味着,我们可以交易1000个或者100万个,甚至0.000001个比特币!通过简单的点击,我就可以安全地发起一笔交易,并且即使我在尼加拉瓜而你远在纽约,我依然可以确信这笔转账可以成功到达你的账户。
我甚至可以创造出一些以比特币为载体的其他的电子化的东西。比如,也许我可以在比特币的一笔转账上附着一些额外的文本信息——你可以把它理解为电子笔记。又或许,我可以把一些更重要的东西附上去,比如一份电子合同,一份股权证明,或者一段身份信息等等。
怎么样,很牛吧?比特币非常有用不是么?我们该如何看待比特币呢?
比特币的诞生引发了很多争论。经济院校之间,政客之间,甚至程序员之间,为此争得不可开交。有些人觉得它是电子黄金,有些则认为其是一种货币,而另一些则认为这只不过是一场庞氏骗局。有些人认为比特币底层系统区块链的价值巨大,纷纷布局区块链产业链。有些人认为比特币可以改变世界格局,有些人则认为比特币只会是昙花一现。关于这个问题,时间会证明一切。
看完这篇知道日报,你应该比大部分人更加理解比特币的运行原理了吧。
关于比特币的谜题(完结)你可曾想过:为什么矿机算力越大越好?(既然是解数学题那为什么不是拼谁的算法厉害啊喂!)比特币的数量总和为什么是2100万?比特币盗窃是怎么回事?我不玩比特币,就真的与比特币无关了吗……🤔️
关于大众不再感到陌生的比特币,背后还有许多巧妙之处。本文介绍了比特币的基本原理和主要原则,并结合对部分技术细节的剖析,来对上述的一些疑问作出解答。全文较长,约7000字,阅读时间约为22分钟,建议收藏后阅读😁
文章可以分成以下几个部分:
*比特币先验知识
--密码学相关
--比特币重要概念
*交易的生命周期
*区块链的构成
*区块链的生长
--“挖矿”的数学本质
--“矿工”的收益
*比特币的共识机制
--比特币的去中心化共识
--“最长链优先”原则
*比特币安全性
比特币作为第一个去中心化的数字货币,其设计中运用了不少的密码学相关知识,主要包括非对称加密技术、哈希函数等等。理解这些密码学知识,能帮助我们更好地理解比特币中的一些概念及规则。
以下是比特币的一些定义及概念解说,了解过的小伙伴们可以直接跳过~
在比特币这个创新的支付网络中,一个交易的生命周期大概可以分为几个阶段:创建、传播和被验证交织、被打包进区块记录到区块链中、获得更多的确认。图1对这几个阶段做出了示意。
注:
1⃣️一个支付方A在发起一个比特币交易时,会使用自己的私钥对交易信息的哈希值进行签名。因此A向全网广播的内容除了交易信息之外,还有自己的公钥信息、对消息的签名。其他矿工只要利用A的公钥即可对这个交易进行验证,判断是否真的由A创建。
2⃣️”交易传播和交易验证“交替意味着各个节点基于一定的规则独立验证每个交易(共识基础1),一个节点只有认为这个交易有效才会把它继续传播出去。
比特币的底层技术是区块链。区块链系统是一种分布式共识系统,区块链网络中所有的参与节点将就交易的状态达成一致。
区块链到底是什么呢?你可以把它理解成一种分布式的交易的共享账本,以区块为基本单位链接在一起。交易信息将被整理并打包记录在区块中。每一个区块,包含区块头,以及紧跟其后的交易列表。区块头包含3个区块元数据集合:前序区块哈希(严格来说是前序区块头哈希,因为只有区块头被用于哈希运算)、元数据集(包括难度、时间戳、随机数等)、一个基于加密哈希来高效概括区块中所有交易的默克尔树(merkletree)。了解这个结构,将帮助我们更好地理解挖矿的数学本质。
你可能听说过“挖矿”这个词,或者听说众人争相购买挖矿机器来发家致富。但让人疑惑的是:都说打包区块的本质是解数学难题,但单凭那些看似简陋的机器嗡嗡嗡疯狂耗费电力,就能确保自己解出比特币难题的胜率高了吗?比特币技术原理中,矿工们解决的数学题,难道是一个暴力破解题?
看了一圈,发现矿工们解决的题,还真有点暴力破解的意思,每次尝试解题的过程几乎都是茫茫然、去碰运气的。拼的是谁足够幸运,也拼谁算的足够快;算的快了么,试错次数多,自然胜算也就大了。
解题的背景是这样的——挖矿节点通过基于工作量证明算法(Proof-of-Work,POW)的证明运算,独立将交易汇聚到新区块中(共识基础2)。当矿工从网络中接收到一个新的区块的时候,他发现自己已经在上一轮竞争中失败了,所以立即开始新区块的挖矿过程。为了创建一个新的区块,他从内存池中选择交易来填充区块(加入区块的第一笔交易是一个“铸币交易”,3.2节会给出详相关细节)。接下来是填充字段来创建区块头(包括前序区块的区块头哈希、交易的默克尔树(Merkel树)、时间戳、难度目标值、随机数),然后开始计算这个新区块的工作量证明。
这个计算的过程简单来说是对区块头部进行两次sha256运算,得到一个RESULT,如果这个RESULT满足特定要求,这个人才能算是算对了、才有权利去记账。满足要求的RESULT被称为“工作量证明”(中本聪论文中称为“proofofwork”)。
关于这个计算过程,强调以下几点:
第一,区块头部,包含了前序区块头部的哈希、本区块交易信息的默克尔树、时间戳、难度目标值、随机数等信息(见图2)。
第二,哈希运算具有“知道y,无法推出使得h(x)=y成立的x”、“即使输入只改变一点点,输出也会差很多”、“利用任意长度的数据作为输入,生成一个固定长度的确定结果”的特性。所以大家也不知道什么样子的输入才能产生自己想要的结果,矿工只能不断尝试。
第三,前面说到,区块头哈希值需要满足一个特定要求才能成为工作量证明——小于某一阈值,或者说哈希值含有给定前缀。阈值的大小求和挖矿难度有关:挖矿难度是一个动态参数,其值越大,则阈值越小,说明哈希值符合要求的概率更小,矿工每次计算能成为工作量证明的概率越小。比特币有一个自我调节过程——通过对现有的挖矿算力情况进行估算,来对应调整挖矿难度,可以保证区块链每十分钟出一个块,达到控制发行速度的目的。(这个过程的基本思想类似产品笔试的数据估算题,根据“一个提供、一个需要“的思路去构造一个等式,然后求解等式一边的一个因子;想了解挖矿难度系统和调整方式的同学可以进一步查阅~)
综合以上三点来看,为了产生工作量证明,用户基本上会通过调整随机数来碰运气(因为其他字段基本不变)、进行多次运算直至符合要求,别无他法。如此一看,随机数就具有“幸运数字”的意味了。因此,平均来讲,谁计算的能力越强(尝试的次数越多),就更有希望打包块。
你可能会想,矿工这么心甘情愿地消耗算力去维护区块链,是受到怎样的利益驱使呢?简单来说,矿工的收益来源有二:1、计算出工作量证明,创造一个新区块所获得的新币奖励;2、记账矿工费。
当矿工找到工作量证明、打包一个新区块,并把区块传送给他的所有对等节点。每一个挖矿节点都独立验证新区块、把合格的新区块整合进区块链(共识基础3),并把这个区块继续传给自己的对等节点。结果是,只有经过验证的区块才会在网络当中广泛传播,保证了诚实矿工挖出的新区块能被区块链所接纳。挖矿成功的个体节点或集体节点,可以同时获得新币奖励和记账矿工费。
新币奖励类似于货币的发行,其遵循规则是,第一个四年每一个新区块产生50btc,第二个四年每一个新区块产生25btc,第三个四年每个新区块产生12.5btc,如此周期指数递减。按照等比数列求和可知,到2140年,比特币产生的总和约为21000000(所以说比特币数量有限,天生紧缩)。届时,不再随区块的产生增加新的比特币,矿工不再拥有第一项收益。但现实中,由于挖矿成本高昂,挖矿成功的往往是是一个矿池的所有参与者。收益被分给矿池地址,矿池按照组内算力贡献比例来分摊收益的。
记账矿工费又称交易费用,以交易输入和交易输出之间的差值的形式存在;一个区块的总交易费用是对加入区块的所有交易的(交易输入-交易输出)求和。一般来说,矿工费越高的交易,会越快被处理。而矿工费在这里起到两个作用,一个是奖励矿工,另一个是防止主链滥用(防止大家发送交易垃圾信息,因为提出交易是有一定代价的)。
矿工的收益以什么样的形式被验证呢?这里不得不提到“铸币交易”。每个计算机节点在进行工作量证明计算之前加入区块的第一笔交易,正是“铸币交易”。这个交易从无到有生成比特币,其金额是新币奖励与记账矿工费的总和,被支付到挖矿矿工自己的比特币地址。如果矿工找到了一个工作量证明使区块有效,他就赢得了这个奖励,因为他构造的“铸币交易”生效了。
关于铸币交易和“新币奖励”,之前有一个读者问我:一个矿工把自己挖到新区块的消息公布出去,他的工作量证明不会被别人剽窃吗?
个人认为,至少“铸币交易”能防止这件事情发生。让我们来重申一下计算工作量证明的过程——一个矿工E在新区块里加入了奖赏自己的“铸币交易”,并利用时间戳、前序区块头哈希、随机数、本区块交易的merkle树等信息计算出一个符合要求的工作量证明。
在这个过程中,merkle树啥样子,取决于包括“铸币交易”在内的本区块所有交易信息。因此可以把铸币交易视为工作量证明的间接变量之一。那么,即使其他人拿到了E的工作量证明,这个工作量证明也是带有E的印记的、与奖赏E的铸币交易相关的,别人根本无法纳为己用。
你还可以通过设想以下的场景来加深对共识基础2“挖矿节点通过基于工作量证明算法的证明运算,独立将交易汇聚到新区块中”的理解。
为什么一个挖出新区块的矿工不悄悄使个心眼,在创建区块之初就把铸币交易的金额设成1000BTC呢?原因在于每个节点都是基于相同的规则来独立验证区块的。矿工必须创建完美的、符合公共规则的、正确依据工作量证明方法的区块;而一个无效的铸币交易会导致整个区块无效,并被其他节点拒绝,永远无法成为账本的一部分。可以预想,为了生成这个工作量证明,矿工们已经投入了巨大的算力和电量去挖矿,如果涉嫌欺诈而被否决,其为挖矿付出成本都付诸东流。
综上所述,矿工不能冒领他人的奖励,而拿到奖励的矿工也必须只能拿取符合规定的数额。
比特币的卓越之处,在于建立了一种去中心化的自发共识。这种共识是自发产生的,是成千上万在网络中遵循着共同规则的节点,在异步交互中形成的,不依赖于任何中央机构的调解和干涉。
关于比特币的4项主要共识基础,本文在讲解对应细节时有提及,下面做一个整合:
这四个过程相辅相成、互相作用,形成了自发的全网共识,促使全网节点组合出可信、公开、权威的总账。
你可能会想,比特币是一个去中心化的、基于大众信任的、依靠众人力量运转的一个东西。万一有一部分矿工被坏人收买了咋办呢?“51%攻击”指的又是什么?比特币交易所要求的“6个确认”又是怎么回事?
这里首先要提到比特币的一个规则“最长链优先”。意思是,比特币的账单链在出现分叉的时候,每个矿工会独立选择长(累积了最多工作量证明)的链条,在上面继续挖矿工作(共识基础4)。
这个原则主要涉及到两个问题:
当有两个矿工A和B同时挖矿成功(算出符合要求的数学答案)时,他们分别把自己计算出来的工作量证明作为下一个块的前序区块哈希,生成一个块衔接到原有的链后面,由此出现了两个分支。
这个时候,这两个成功的矿工广播了自己打包成功的消息。由于区块链是一个去中心化的数据结构,区块消息到达不同节点的时间点不一致,故不同的节点可能拥有不完全一样的区块链视图——有的矿工会先收到A的消息,有的则先收到B的消息。为了解决这个问题,收到消息的矿工们遵循一个原则:选择并尝试延长最长的链。
因此,这两条分支会各自成长一小段时间,直到他们的长度出现差异(不可能长度一直相同),比如说其中一条链的矿工们,更快地打包在支链后面又加上一块。按照“最长链优先“的规则,较短的链会被抛弃,原本工作在短链上的矿工们都回到长链上工作。
换言之,分叉只是不同节点暂时的不一致现象,当新区块被加入到其中某一分支时,最终收敛将解决这一个问题。[读者可以思考一下,为什么区块链被设置成每十分钟挖出来一个块:如果时间短了,是不是就增加了分支产生的次数?如果时间长了,是不是交易结算的效率就太低了?]
双重支付的本质其实也是区块链的分叉,但这种分叉却是“非自然恶意蓄谋”的产物。
我们假设小敏是密谋双重支付的一方,她把自己仅有的10BTC先给小强、交换一块黄金,待这条交易信息P被打包进区块Q后,她从小强手中拿到了黄金。这时,小敏使了个心眼,她想偷偷抹去、篡改区块Q上的交易信息P,“白嫖”这块黄金。为了实现这样的目的,根据“最长链优先”法则,小敏必须剔除该笔交易P后、重新进行结算工作,集中算力来形成分叉,并让分叉以更快的增速超过并取代Q所在的主链。如果小敏确实能让分叉更长,分叉就成为了主链,其他节点也会转向新主链上继续工作。这样,小强付出了黄金,却没有收到这10个比特币,“赔了夫人又折兵”。
在这个过程中,小敏需要和原链进行“抗争”,使新分叉成为最长的主链,这被称为“共识攻击”。“共识攻击”本质上是对下一区块的争夺,攻击方越“强壮”、哈希算力越大,就越容易成功。
“共识攻击“成功的可能性有多大呢?
大多数比特币交易所规定,一个交易传送到区块链上后需要6个「确认」来完成验证该笔交易。这一规定的根据是,假设意图造假的矿工拥有10%的算力(挖矿成功概率0.1),那么造假矿工要构造另一条伪链实施长度超越,必须至少成功挖矿6次。那么原链被取代、被抛弃的概率约为0.1的6次方,趋近于0。你可以把比特币理解为地质构造层,表层可能因为季节变换而有所改变,甚至可能被风刮走,但一旦深入到地下,地质层就能更加稳定、不受干扰。
而假设有一群拥有了51%算力的矿工,他们控制了一半以上的全网哈希算力,可以故意在区块链中制造分叉、进行双重支付交易。但事实是,全网哈希算力的大量增加,个体矿工几乎不可能控制哪怕1%的哈希算力了(但矿池带来的算力集中化控制,存在一定的风险)。更何况,如果真有拥有如此强大算力的组织,他完全可以凭借自己强大的算力投入到挖矿中去获取开发新区块所获的的比特币奖励,诚实挖矿比双花更有利可图。
尽管实际上并未出现51%攻击的问题,但不可否认的是,算力的集中违背了比特币去中心化这一初衷,并成为其继续发展的一大隐患。
一个系统的安全性,往往取决于系统安全的最薄弱环节,这也就是所谓的“木桶原理“。与区块链系统相关的安全性问题包括但不限于以下几项:
(1)在区块链上被广泛使用的公钥系统基本上是安全的,但量子算法在理论上能够破解公钥系统;因此,区块链的算法安全性是相对的。
(2)区块链协议本身存在逻辑缺陷,例如受到黑客攻击的区块链系统共识机制。
(3)所有数字货币系统高度依赖私钥,私钥在存储、使用方面的安全性成为区块链系统安全性中至关紧要的一环。
尽管区块链是去中心化系统,但目前绝大多数数字交易所却是中心化的,存在着人为安全漏洞及技术安全漏洞。这些数字交易所拥有存放大量加密货币的私钥,这对于黑客来说无疑是最瞩目的目标;只要黑客偷走了这些私钥,就可以获取到这些加密货币。
作者会继续阅读相关资料、不断完善本文,目标是完成一篇通俗易懂的比特币科普文章。:)
**本文系网上信息与个人理解的结合,如有偏差及误读,欢迎读者指出。也欢迎给出关于文章结构上的指导~
区块链鼻祖比特币之8:分叉带来的双花支付、51%攻击与解决办法分叉
前面讲到了比特币通过区块链+工作量证明的独特设计来解决了时间顺序,但是不能保证在同一时刻有两个节点算出了正确的解,虽然这种可能性很低很低。这就带来了区块的分叉。
虽然说几乎同时有两个节点计算出这一数学问题的可能性微乎其微,但是仍然存在这样的可能性,所以分叉就以为着同一个区块的后面可能会跟上两个不同的区块。
规则的打破一直要到下一个区块被人解开。则会立即转向最长的区块,而那些短的区块则会被抛弃。数学问题使得区块很难被同时拆解。要连续发生多次更是困难。最终区块链会稳定下来。也就是说所有人对最后几个区块顺序达成共识。分叉意味着,譬如,若你的交易出现在较短的支链,它就会失去进入区块链的位置。一般而言,只代表他会回到未确认交易池。然后被纳入到下一个区块。
比特币网络如何解决分叉带来的双花支付
可惜,交易失去区块位置的潜在可能,给了本来定序系统防范的重复支付攻击机会。考虑下面的一个攻击者A,其首先用自己的比特币交换B节点的货物,其立即又支付给自己。然后其通过努力的制造更长的链条来让自己的支付替代掉B节点的支付,从而实现了双重支付,B节点既得不到钱,还失去了货物。
这时交易会退回到未确认池中,因为A节点已经利用参照同样的input交易取而代之。节点就会认为Bob的交易无效。因为已使用掉。
你可能会猜测A节点会预先的计算出一支区块链,然后抓住时机发布到网络。但是每个区块的数学谜题阻挡了这个可能性。如前面所诉,解开区块是猜测出一个随机数的过程。一旦得出答案,解出的哈希值就会成为指纹一样的区块识别。只要区块内容有一丁点变化,下一个区块的参考值就会完全不同。此机制的结果就是无法在区块链中置换区块。在得到前一个区块之前,下位区块无法被解开。前一个区块的指纹也是杂凑函数的引数之一。
同时,该工作量证明机制还解决了在集体投票表决时,谁是大多数的问题。如果决定大多数的方式是基于IP地址的,一IP地址一票,那么如果有人拥有分配大量IP地址的权力,则该机制就被破坏了。而工作量证明机制的本质则是一CPU一票。“大多数”的决定表达为最长的链,因为最长的链包含了最大的工作量。如果大多数的CPU为诚实的节点控制,那么诚实的链条将以最快的速度延长,并超越其他的竞争链条。如果想要对业已出现的区块进行修改,攻击者必须重新完成该区块的工作量外加该区块之后所有区块的工作量,并最终赶上和超越诚实节点的工作量。我们将证明,设想一个较慢的攻击者试图赶上随后的区块,那么其成功概率将呈指数化递减。另一个问题是,硬件的运算速度在高速增长,而节点参与网络的程度则会有所起伏。为了解决这个问题,工作量证明的难度(theproof-of-workdifficulty)将采用移动平均目标的方法来确定,即令难度指向令每小时生成区块的速度为某一个预定的平均数。如果区块生成的速度过快,那么难度就会提高。
如果有一台超级电脑,能够在区块解题中获胜?
即便是一台超级电脑,或者时几百上千台电脑也很难赢得解一个区块的胜利,因为竞争对手不是任一台电脑,而是整个比特币网络。你可以用买彩票来比拟。操作千百台电脑,如同买了千百张彩票一样。
51%攻击是指的什么
根据前面的例子,我们知道,要想有50%的概率领先其他人解题得到胜利,就需要掌握全网50%以上的算力。要连续领先他人解出区块,掌握的运算能力还需要高得多。所以区块链中的交易是受到数学竞赛所保护。恶意用户必须和整个网络较量。区块连接建立的结果,使得在支链越前方的交易越安全。恶意的用户必须在更长的时间赢过全网络,来达成重复支付,替换前面的区块链。所以,系统只有支端末尾易受到重复支付攻击。这也是为什么系统建议多等几个区块,才能确认收款成功。
个人博客:https://dreamerjonson.com/
入门科普:什么是双花想要了解区块链,首先要熟悉区块链相关的各种名词。就比如我们今天讲到的“双花”,可能有人就要问,双花是什么花?哈哈哈,开玩笑,让我们来学习一下什么是“双花”吧。
01
“双花”是什么?
双重支付又名“双花”,也就是双重花费的意思。举个例子:如果我钱包里面有100元,我可以去购买等值的物品。当我去商店后,发现台灯和桌子都是100元,那我只能买其中一样东西。而我们所说的双花问题,正好与之相反,同样的100元,我可以购买两样东西。
在加密货币系统中,由于数据的可复制性,使得系统可能存在同一笔数字资产被重复使用的情况,这也称之为双花,又叫双重消费攻击。
02
双花问题是如何发生的?
在区块链系统中,双花问题会在以下情况下出现:
1、由于共识机制导致区块确认时间长,用一个数字货币去进行一次交易,可以在这笔交易还未被确认完成前,进行第二笔交易。
2、控制算力来实现双花,第一次交易被验证通过并被记录入区块后,在该网络中有更高的算力验证出新的更长链条,在该链条中这笔钱被第二次花费,由于第二次花费的区块链条更长使第一次交易区块所在链条为无效链条,这样一来,第一次交易所在的区块链被区块链网络放弃,第一次花费的钱就又回到自己账户了,就导致了双花问题。
03
比特币如何避免双花问题?
为了解决双花问题,我们日常的数字资产使用依赖于第三方信任机构进行。这类机构对数据进行中心化管理,并通过实时修改账户余额的方法来防止双重支付的出现。而作为去中心化的点对点价值传输系统,比特币通过UTXO、时间戳等技术的整合来解决双花问题。
1、首先每笔交易都要先确认对应比特币之前的情况,要检查它是否存在于用户的UTXO中。如果不在,那么该交易会被系统拒绝。
2、如果用户用同一笔UTXO付给两个人,系统中的节点只确认先接收到的那一笔。
3、当两笔时间上很接近的交易被不同节点确认,区块链将发生分叉。剩余节点选择在他们认为的最长链上构建新的区块。
4、当其中一笔交易被6个节点确认后,它将成为系统最长链,可以认为这笔交易获得了最终的确认。
好了,文章到这里就结束啦,如果本次分享的比特币验证双花和比特币 验证问题对您有所帮助,还望关注下本站哦!