专栏名称: 区块链技术学习
致力于区块链技术的学习和普及,对区块链技术和相关企业事件进行深度分析和研判,探索去中心化账本技术应用领域。
51好读  ›  专栏  ›  区块链技术学习

话说区块链,它真的不是比特币

区块链技术学习  · 公众号  ·  · 2019-04-02 12:30

正文

来自:腾讯云,作者:用户1217550

链接:https://cloud.tencent.com/developer/article/1077621


随着比特币的大火,各种数字货币出现了,显卡价格飙升了,区块链技术传的神乎其神了。看到网上凡是和区块链沾边的股价,都跟吃了火药一样往上冲,仿佛这些就能和比特币这几年的发展一样,从几十枚一个披萨到一枚价值20000美元。


哦,对了,就像现在很多自媒体一样,一谈到区块链,十句话里面九句就是比特币,已然给他们画了个等号。


但是静下心来,区块链到底是什么,他能做什么,能带给我们什么,其实这一切到现在还只是一个谜。


理解区块链


首先以我的理解先大概描述下区块链。


区块链不是一种技术,它更像是一种架构体现,一种设计理念,或许这个时候加上ajax你会更加好理解一点。在区块链架构理念中,也没有诞生什么新的技术点,完全是将现有的技术杂糅在一起,组合起来达成它要的特色:去中心化,不可修改性(安全性),透明性。


举例说明:


现在的任何交易,都是通过第三方中心来进行。例如A转账给B,中心就是银行,假如银行事后反悔了,说A没转给B,那么A这笔钱就白花的。


去中心化的意义就是干掉这个中心,免得中心出事导致损失。有人就会提问了,没有中心那岂不是B说了算,更加不安全了。那你等我说完,去中心化不代表没了中心,而是把中心分散,让每个人(矿工)都是中心。


于是,就出来了分布式账簿的概念,例如A转给B,这下不是银行记录了,而是A对天大喊,我转账给B了。然后矿工C,D,E,F,G….听见的人马上拿着小本本记录,A转账给B多少钱,然后加个时间戳。第一个记录完之后拿给其他矿工看,其他矿工要立马停下手中的工作,确认他记录的是真的,就点头同意(共识算法)。


大家都通过之后,所有矿工的工作就要基于这个账单之后开始工作,形成链条。而这个被确认的账单也要追加公开在布告栏上,公布与众。而写这个账单的人,会获得一定的系统奖励(在有限的系统奖励完之后,可以收取交易方的手续费)。


这里记录的方式说明下,传统我们记录数据,都是记录总额,增删数字,这里记录则是采用每次转账的数据,在需要总额的时候再去计算,每次操作只能基于上一个区块(hash指向),所以不能修改。


51%攻击


在区块链概念中,数据是绝对安全的吗,有人提出过51%算法攻击这个概念。


首先我们得弄清楚一点,中本聪(比特币创始人)说:小组不应该以线性方式组织账簿,而应该以树状组织账簿,任何时刻,都以当前最长分支作为主账簿,但是保留其它分支。


也就是说如果在矿工记录账本的时候,有人恶意捣乱,把A转B的记录改成A转C。而且时间戳什么的其他信息都是完全合法的,那么A-B,A-C两个账本都会记录,在上一个区块后形成分叉。


然后接下来看下一个事件的hash指向哪个分叉,就跟在哪个分叉后面,以长的为主,短的会消失在时间长河里。


问题就出来了,在A转B之后,有人恶意生出A-C的分叉,然后正常操作是之后的指向都会指向正确的链条A-B。 然后A-B后面的长度会大于A-C,公告栏上就会出现A-B的消息。B就会收到转账成功。


但是B一旦接收到转账成功,给了A所需要的货物,A立马调用计算机网络,增加算力,把事件链接在A-C后面,使A-C的链条大于A-B。那么A-B就成了伪链条,B的账单记录在后续记录就会失效。造成了算法攻击。


简单的说:51%攻击,就是在掌握了比特币全网51%以上的计算能力的之后。先让其他的矿工进行工作,等受害者完成了交易之后再通过计算力的优势,覆盖掉原先分支。


这也是比特币建议重要交易在收到转账消息之后延迟一天发货,在比特币的发展中,一天增加的长度是伪链条追不上的。








请到「今天看啥」查看全文