每天5分钟,轻松区块链
田教授侃区块链第六讲:双花、分叉与51%攻击
啥是双花!
就是一份钱花两次,爽不爽?
爽是爽,可是现实社会中,不可能!
如果是实物货币!比如你有10元人民币,你买 了一杯咖啡!
咖啡给你,钱归人家!
你那个10元钱转移到另外一个人手里了!
你花两次的可能性,只能在梦中!
但是,如果用数字方式支付,是不是就不一样了呢?
比如,我刷卡!
我不用实体货币,我支付10元钱!其实只是少了点数字?
那能不能花两次呢?
答案是也不行!
因为,你花了10元,你的卡上的数字就会少10!
这个账由谁来记呢?
由发卡方银行!
哪张卡,在哪里消费,在啥时候消费,都被清清楚楚的给记在中心化数据库里!
这就是中心化记账!
想花两次,门都没有!
但是,这个账本能不能改呢?
答案是:技术上容易!
中央数据库,余额数字只要你有权限,随便改!
相改多少,就改多少?
一夜暴富不是梦想!
但问题是:银行很容易查出来!
因为银行有很严谨的对账系统!
你的卡上的数字,没有进项,是凭空多出来的!
这不合理,分分钟警察就会来找你!
但是,如果银行要改呢?
嗯,没毛病!
问题是,改少了,你会闹!
改多了,我就想问问,你是谁?谁的脑子被驴踢了?
但是,黑客也不傻!
道高一尺魔高一丈!
他不改自己的账户,改着玩!然后敲诈银行!
类似收点啥漏洞修补费之类的!
或者改完了,赶紧转账!
反正,有套路的人多的很!
你要知道,世界上还有洗钱这一说法!
明白了吧,这就是传统中心化数据库的好处与弊端!
没有双花问题!
但是潜在问题很大!
保证不出问题,不是靠的头顶灿烂的星空,而是靠心中的道德法则!
其实,最重要的是靠警察!
哈哈!
刚才说了,双花在中心化记账的情况下不会出现!
但是,在分布式账本的情况就不一样了!
为啥?
分布式记账!顾名思义,很多节点都有一本账!
可是问题就出在,各个账本的的统一性上!
先看一下交易的确认过程!
一个交易发生之后,比如,你花10元买了一杯咖啡!
你就会把这个交易信息向全网广播,请求记账!
注意,因为节点很多!网络传输是有延迟的!
这个延迟大小与节点的地理位置、接入带宽和当时的网络使用情况都有关系!
反正,节点A先收到这个信息,节点B没收到这个消息!
注意,时间差来了!
这个时候,假如你立刻再用这笔钱去买一个蛋糕!
同样,也要把这个交易信息向全网广播,这个时候,恰恰相反,B收到这个交易,A没收到这个交易!
在这个时间窗口下,你的钱就花了两次了!
那个这个问题出在哪里?
答案是记账!
也就是到底是A负责记这个账,还是B记这个账!
结果完全不同!
所以,拥有记账权的这个节点非常关键!
那么到底是谁有记账权呢?
答案是比赛!
比赛的题目是做数学题!
谁先猜对,谁就可以记账!
比如A先猜到,那么A就向全网进行广播,宣称已经做好了题目!
其他节点验证通过之后,就认可A的记账权利!
公平合理,童叟无欺!
这种选择谁来记账的方式,在区块链中有个比较专业的名字!
共识算法!
所以,共识算法就是解决双花问题的!
靠选择共同认可的单一记账节点,解决了账本不统一的问题!
等等,还有一个问题!
加入,AB两个节点同时解出了算数题呢?
那么他们就会同时宣称有记账权!
因为网络延迟问题,可能一部分先收到A的广播!
一部分先收到了B的广播!
就会分成两派,一部分节点认同A有记账权,一部分节点认可B有记账权!
怎么办?
分裂!
也就是传说的分叉!
认可A的,就会沿着A的链记录下去!
认可B的,就会沿着B的链记录下去!
那么究竟选哪个呢?
答案还是比赛!
在规定的条件下,哪个链长,哪个就赢!
另外一个作废!
听好了!
以下有点烧脑!
刚刚说的情况,是理想的、自然的情况!
假如,有人恶意分叉!
然后又干掉一个叉呢?
啥意思,你先把10元转到一个自己的一个交易所的账户!
然后等待这个交易被确认!
确认之后,你立马从交易所把这个10元取走!
然后,你又立刻分叉!
在新的分叉交易里面,你又把这10元转到自己的另外一个账户里面!
然后,两条链开始赛跑!
假如,在规定的条件下,第二条链更长!
那么,前面的链路作废!
也就是,你先前提现的10元钱交易,被作废了!
爽歪歪啊,这10元钱已经在你兜里面了!
可交易所欲哭无泪!
别急,实际上,交易所哭不了!
而是你哭!
为啥!
因为,你的第二条链要跑过第一条链,得靠实力,也就是算力!
最起码你得有超过全网算力的51%!
你在概率上才有赢的机会!
当然越多越好!
好了,很熟悉吧!
这就是所谓的51%攻击!
而这非常非常难!
因为你面对的是全网!
另外,比特币为啥是6个区块确认?
因为,根据一大堆计算!
如果,一个链领先另外一个链6个区块,另外一个链就基本追不上了!
事实也确实如此!
比特币这么多年安然无恙!
从中也可以看出,越费时费力费钱的共识算法,越安全!
事物总是双面的!
一般是天使,一半是魔鬼!
如果,你更爱天使,
那魔鬼也就忍了!
不是吗?
今天就到这里,明天继续!
领取专属 10元无门槛券
私享最新 技术干货