比特币如何防范“双花”问题
举个例子来说。在矿工矿池的节点进行打包时,不会将两个交易都打包。万一不小心都打包了。即使找到随机数。那其他节点也会验证时,拒绝承认这个区块打包成功。只有一个交易会从0确认到1确认。而有一个到1确认之后,另外一个就因不符合规则而失效了。 而假设我有1个比特币,在两台机器上同时转给a和b两个人,这种情况是0确认双花。0确认双花一直都存在是系统原理,不是漏洞,不能也不需修复,因此呼吁比特应用,都要等待1确认,重要的交易甚至要等6确认,以避免孤立区块的情况。判断交易是否合理,不仅仅是矿池节点,任何一个核心节点都会进行。即查询历史区块链,判断交易的输出是否不大于输入。
什么是双花
双花就是同一枚比特币被使用两次,但是无论在比特币网络中还是现实世界都不可能发生,就像在现实中你不能用1块钱买个苹果,又用同一张1块钱买橙子。如果这都可以的话,钱就变得毫无价值了,因为这样每个人都会拥有无数多的钱,用也用不完,货币价值也就没有了。比特币核心网络在比特币区块链中验证每笔交易来防止双花。
那比特币网络如何防止双花呢?
假如你有1个比特币,你想要花两次。于是你向商家买了价值1个比特币的商品。然后,你再在另一个比特币地址上签名,并发送相同的1个比特币。
两笔交易都进入了还未进行验证的交易池。你的第一笔交易得到了确认,并在下一个区块中得到了矿工的工作量验证。但是矿工会认为第二笔交易是无效的,这样就没办法获得足够的确认,就会被撤出网络。
但是如果这两笔交易是由矿工同时操作呢?
当矿工同时从池中提取交易时,获得网络中确认数量最大的交易将会保留在区块链中,而另一个将被撤出。也有可能真实的那笔交易无法获得确认。这就需要6次确认机制。“6次确认”就是在这笔交易被添加到区块链之后,另外6个包含多个其他交易的区块就会被添加到这个区块之后。每一个都需要“6次确认”,且都和前一个区块有关联。所有这些确认和交易都在加上了时间戳,这就使得区块不可逆转,而且无法篡改。
而当你掌握的算力超过50%时,就可以无限逆转区块。但是有些区块链网络已经非常之大,想要和它对半抗衡是不可能的,但有一些区块链网络比较小,节点比较少,也有可能遭遇51%算力攻击,今天的BTG就是一个例子。
那名矿工为了实施双花攻击,获得了至少51%的BTG网络算力,就能够临时控制BTG区块链。像BTG这样的小型网络上,获得这么大的哈希算力也是非常费钱费力的,但是无利不讨好嘛,实施双花之后就有钱可赚了。
控制了网络之后,攻击者开始往加密货币交易所充值比如1000个BTG,让其进入市场,或者提现出来。再运用手中的算力,从自己对外付款交易之前的区块开始,忽略自己所有对外的付款交易,重新构造后面的区块,利用算力优势与全网赛跑,当最终创建的区块长度超过原主分支区块,成为新的主分支,至此,攻击完成;结果就是,由于撤销了所有对外付款交易,等于收回来所以已卖掉的BTG。就这样,他们能够向交易所充值后再迅速收回资金。
比特币黄金开发人员建议交易所在用户交易时通过确认交易数量来应对攻击。区块链数据表明,攻击者成功逆转了22个区块,这导致开发者建议将需要确认的区块提高到50个。
每笔交易都需要先确认对应比特币之前的状态,如果它之前已经被标记为花掉,那么新的交易会被拒绝。
-如果先发起一笔交易,在它被确认前,也就是这个时间段的交易还未被记账成区块block时,进行矛盾的第二笔交易,那么在记账时,这些交易会被拒绝。
现在tricky的部分开始了。如果**者刻意把第一笔交易向一半网络进行广播,把第二笔交易向另一半网络广播—这个**者智商还挺高—然后两边正好有两个矿工几乎同时取得记账权,把各自记的block发布给大家的话(这个概率很低),网络是不是会混乱呢,区块链的规则是这样的:先选择任意一个账本都可以,这时候原来统一的账本出现了分叉:但是在两个账本中各只有一笔交易,**者不会有好处。接下来,下一个矿工选择在A基础上继续记账的话,A分支就会比B分支更长,根据区块链的规则,最长的分支会被认可,短的分支会被放弃,账本还是会回归为一个,交易也只有一笔有效:
那么如果这个**犯真的智商非常高,他会这么做:如果是A分支被认可(B也一样),相应交易确认,拿到商品之后,立刻自己变身矿工,争取到连续两次记账权,然后在B分支上连加两个block,就像这样:于是B分支成为认可的分支,A被舍弃,A分支中的交易不再成立,但他已经拿到商品,**成功。
在B分支落后的情况下要强行让它超过A分支,其实是挺难的,假设**者掌握了全网1%的计算能力,那么他争取到记账权的概率就是1%,两次就是10的负4次方。但这个概率还没有太低。
应对办法呢?建议大家在一笔交易确认后,也就是一个block被记下来之后,再等5个block,也就是等6个block被确认后再把交易对应的商品交付。这样,**者还能追上的概率就几乎为0了。除非……
如果**者掌握了全网50%以上的计算力,那么,即使落后很多,他追上也只是时间问题,这就是比特币的“51%攻击”。
这就是区块链需要警惕的问题。虽然在比特币网络中,用户已经极多,全网算力总和非常大,如果真掌握50%以上,也不用靠这个**了,挖矿的收益都更高。但是在小的区块链网络中呢?况且,没有50%以上的算力,还是有机会成功的,只是概率低而已。
区块链是如何解决信任问题的?
应“汕头神马都是浮云”的邀请
答;区块链是杭州复杂美科技有限公司搞的一个网上交易平台。主要是以赚钱为目的的供应链应收款融资、票据融资、授信融资、区块链合同存证。
区块链于2018.11.19日在中国33个大城市宣布正式开源。 个人观点认为;这是一个与时俱进的作法,至于今后运作怎么样?还真是不好回答。
如今利用网络赚钱是马云的首创,而马云赚钱赚得是钵满盆满也没有看见这些富人来回报社会。一不小心跑到美国联合国那边去,不要一分钱的做官去了。
有人说现在都是高智商的人引领低智商的人向前冲的闯的最佳时机,而本人不是这样想得, 就拿区块链的其中供应链中的应收款融资来说,它主要是满足借款人因为自己应收款没有收回来,而造成短期流动资金不足的融资需求。说穿了就是一个具有合法性的高利贷集团公司。
不过话说转来,姜太公钓鱼,愿者上钩。一些想富而没有机会的富人会千方百计的往上攀爬。
至于说如何解决信任问题,就不好说了。因为信任是没有问题为前提,既然有问题就根本达不到信任。中国文字博大精深,只要读过书的人,都会分析它。
再一个就是区块链的公司名称前面有“复杂美”三个字,本身一般人提起“复杂”二字就胆战心惊,你还搞个“复杂美”,这样更让人理解不透。
综合上述;本人没有应收款作为担保,也不需要融资来解决暂时的金融危机,故对此所谓的“区块链”没有一点兴趣。
入市需谨慎,借钱、融资有风险。
知足常乐于上海2018.12.7日
谢邀,区块链底层技术研发工程师一枚,携带满腔热情来怒答一发。
先说答案,区块链是通过多方参与来解决信任问题的。至于如何通过多方参与来解决信任问题,且听我来一一道来。
区块链是一个账本
这是一个老生常谈的话题,但逢给人讲解区块链,我必然要讲,区块链系统就是一个分布式账本系统,而区块链所作的事情其实也就是记账而已。
对于记账,我们很熟悉,有手写记账,有电脑系统记账等等,但是无论是哪种记账,都需要解决信任问题,即看账本的人要相信这个账本记录的内容是真的。例如,你自己做的流水账,你自己肯定相信,因为账是你自己做的,自己不可能骗自己,对吧。而公司的账是财务做的,所以每年需要审计,核账。而银行我们在银行的存款记账则是银行系统做的,我们之所以认可,是因为有银行这个主体背书。
所以说,不管是什么情况下的记账,总要解决信任问题,即让看账本的人相信你这个账本是真实的。
传统的解决方式
传统的解决方式大致是这样,通过一个具有公信力的第三方机构来记账,即由第三方机构信用背书的方式来记账,这样的账本让大家认可。
(中心化记账)
总结起来讲,就找一个大家都信任的第三方来记账来解决信任问题。
区块链的解决方式
区块链的记账方式简单来讲则大致是这样,通过每个人都拷贝一份账本的方式来记账,当每发生一笔新的交易的时候,每个人都在账本上加上这笔交易的记录。因为每个人都有账本的记录,发生新交易的时候同步记账,所以每个人之间不需要相互信任,只需要看自己的账本就好。这就是区块链解决信任问题的方式。
总结
如果一句话描述的话,区块链就是通过多方参与多方持有账本参与记账的方式解决信任问题。
关注令狐一冲,关注区块链技术和行业动态
双花交易正加财富网内容推荐 | ||
OK交易所下载 | USDT钱包下载 | 比特币平台下载 |
新手交易教程 | 平台提币指南 | 挖矿方法讲解 |