分享

更多

   

比特币中六个区块是如何确认一个交易的真实性的?

2017-07-31  易衡知行
logo icon arrow-down close comment conversations like prompt vote wechat verified best_answerer verified_and_best_answerer live_emoji star question article live ebook touch to download remove edit answer reward tagline show rewarders list arrow right

下一个区块是如何确认上一个区块内交易的?需要矿工主动去确认某个区块中交易的真实性吗?如何保证矿工主动善意确认而不在存在等长的区块分叉时随机选择衔接哪一区块呢?请专家具体阐述机理,谢谢!
乐享非凡 乐享知识
5 个回答
maxdeath
投笔多年的资深坑党

由于算哈希是随机的,加上网络有延迟,是有同时挖出两个区块的可能,然后不同的矿工根据他们收到的区块不同继续挖,然后还是有可能再出现分叉,但是几率会越来越小。

一般认为一个区块在最长链上后面跟了五个区块,就不可能被分叉了。

至于确认交易,这跟矿工的策略有关,但理论上,矿工会去主动验证每一笔交易的真实性,然后,他们只在确认正确的区块上挖矿,因为否则他们就面临辛辛苦苦挖了矿却做了无用功的情况。也正是因此,挖矿公司实际上还会积极检测网络中的分叉然后主动放弃算力少的那个,这也会减少分叉的可能。

巴比特
服务于区块链创新者

在手续费相同的情况下,矿工们在挖矿时候并不会主动地去确认某一个特定的交易。因为矿工们并不知道这笔交易是谁转给谁的,他们只负责优先确认奖励(手续费)高的区块交易。

你所说的等长的blockchain分叉情况,是因为有时候两个挖矿者几乎同时验证出来一个区块的交易。他们同时公布到网络里,有些人用一个方法更新他们的blockchain,另一些人用另外一个方法更新他们的blockchain。 如果出现这种情况,交易的顺序就会不清楚。在比特币POW算法网络中的共识规则是这样的:如果分支情况出现,那么网络上的人们继续保持两个分支,任何情况下,挖矿者只在最长的那个blockchain上工作。

举个例子,有一些挖矿者先收到block A,另一些挖矿者先收到的是block B。那些收到block A的挖矿者将要继续沿着他们的分支挖矿,而其他人沿着Block B的分支挖矿。我们假设在B分支上的挖矿者先成功挖到下一个block,当他们收到这个消息后,在A分支的人会注意到现在B分支是最长的,于是就会转换到B的分支。在A分支上的工作就会迅速的停止,这样每个人就会都在同一个顺序的blockchain上工作了。所有在block A里面的待定交易将会继续保持待定状态,随后会在B分支上被放到新的block里,这样,所有的交易最终还是会被验证的。

所以在比特币中,一个交易不能算作确认直到 (1)它存在于最长的分支中的block里,(2)至少有5个验证过的block在其后面得到验证。这种情况,我们说这个交易有了“6个确认”。

关于6个确认来验证比特币交易的真实性,6这个数字并不是硬性规定的,只是在比特币网络中,6个确认的时间充分的给了整个网络去统一block顺序的时间。 如果支出方想要进行双重支付,他必须控制了非常大的算力,不然其他的挖矿者不会帮助它,因为他们都需要在最长的分支上工作才能得到奖赏。

六个区块是根据该人拥有百分之一的算力刚好确认一个区块,但要进行6个区块确认的概率是100的六次平方分之一。这种情况可以说是相当于零。

App 内打开
其它回答
董国华
区块链与数字资产
比特币是点对点网络的电子现金系统。基于UTXO的账户设计,天生就有且只有一种内置代币,所以在比特币系统中所有的“交易”本质上都是转账行为。

UTXO最大的好处就是,基于UTXO的交易可以并行验证且任意排序,因为所有的UTXO之间都是没有关联的。6个确认是为了解决双花问题,防止攻击者通过广播两笔零确认交易进行重复支付。

比特币、以太坊、比特股等是单人记账模式,单个节点符合一定规则(如所持算力、权益、选票)即可完成单个区块的记账工作。其他节点通过在此区块后追加新的区块,表达对该区块的认可。追加区块就像在对历史进行投票,当发生分叉时,哪个历史的票数更多(链更长),这个历史就是大家的共识。

因此,单人记账下的交易确认是一种概率的表达。大家认为等待6个确认的情况下,比特币是几乎绝对不可能被双花,那么就变成惯例了。
王志刚
ezbuy架构师

由于比特币帐号是基于RSA体系的,它在现实上已经被证明是不可伪造和篡改的。所以比特币交易过程中最大的风险和可能被攻击的点就在于“双花”。

假设某人花一个比特币从你手里买一个手机,然后他还想耍滑头再用这个比特币向其他人买点什么东西(或者是把这个币转到自己的另一个地址)

而6个确认就是为了防止双花而得出的安全值。也就是说当你和那个滑头的家伙交易时,你要等到系统有6个确认后就可以放心地把手机给他了。

假如那个滑头的家伙在拿到的手机后,转头就想再用这个已经转给你的比特币发起一次交易,那么这个新交易必须要用更快的时间被确认,新交易所在的分叉必须要比之前给你转帐时所产生的分块增长得更快,成为最长链才能让那笔转帐给你的纪录作废。由于你们交易在前,他要耍滑头在后。所以他要控制强大的算力来追赶前一笔交易。

当他以落后6个块的起点开始来追赶之前的交易时,这个计算量将会是一个天文数字。从经济的角度考虑,拥有如此强大算力的人做这个事是不划算的,这个过程中浪费的资源用来正经挖矿得到的收益更高。这就是所谓比特币运用的经济学原理了。

6 这个数值其实有数学依据的,这点在中本聪的论文中有阐述。附上两张论文截图





    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。如发现有害或侵权内容,请点击这里 或 拨打24小时举报电话:4000070609 与我们联系。

    猜你喜欢
    发表评论评论公约
    喜欢该文的人也喜欢 更多