工作是这样的,最近我的室友Hasaki一直在问我区块链和比特币的工作,我尝试了许多种不通的姿势以求简略通俗形象生动地跟他解释什么是区块链技能,可是最后都失利了。因而我萌生了要写一篇BlockChain for Babies(又名:怎么向你的弱智室友解释区块链)的主意,以求能简略直观生动形象地向对区块链技能不了解可是想知道区块链是什么的人介绍区块链技能或许比特币。
因为面向的读者是不想知道具体技能完成只想了解区块链的人群,因而本文避开了一些底层和算法细节,选用比较片面的方法来展现笔者对区块链技能的感性认识。假如你只是对区块链感兴趣,并没有深化学习的计划,或许只是想像我相同在他人问起来的时分装逼,本文应该是一篇很好的“导论”。
总览
区块链本质上是一个去中心化的分布式账本数据库(感谢
@程剑宇
指出:在与比特币相关的区块链应用中可运用这一术语,但区块链技能或许并不包含“账本”)。其自身是一串运用密码学相关联所发生的数据块,每一个数据块中包含了多次比特币网络买卖有效供认的信息。
这是区块链的界说,因而要逐渐了解区块链,咱们需要一步步了解如下东西。
去中心化
先来考虑一个中心化集中式处理的进程。你要在某宝上买一部手机,买卖流程是:你将钱打给支付宝-支付宝收款后通知卖家发货-卖家发货-你供认收货-支付宝把钱打给卖家。


图1: 中心化集中式买卖形式
在这个进程中,尽管你是在和卖家买卖,可是这笔买卖还牵扯到了除了你和卖家的第三方,即支付宝,你和卖家的买卖都是环绕支付宝打开。因而,假如支付宝体系出了问题便会造成这笔买卖的失利。并且尽管你只是简略的买了一个手机,可是你和卖家都要向第三方供给多余的信息。因而考虑极点状况,假如支付宝跑路了或许是拿了钱不却不供认你的买卖或许是支付宝所在的城市因为开G20把一切人都赶走了(?),那么你就悲惨剧了。
而去中心化的处理方法就要显得简略许多,你只需要和卖家交流钱和手机,然后两边都声称完成了这笔买卖,就OK了。
能够看出在某些特定状况下,去中心化的处理方法会更便捷,一起也无须忧虑自己的与买卖无关的信息走漏。
其实假如只考虑两个人的买卖并不能把去中心化的优点彻底展现出来,想象假如有不计其数笔买卖在进行,去中心化的处理方法会节省许多资源,使得整个买卖自主化、简略化,并且排除了被中心化署理控制的风险。
去中心化是区块链技能的颠覆性特色,它无需中心化署理,完成了一种点对点的直接交互,使得高效率、大规模、无中心化署理的信息交互方法成为了实际。
当然,上述的比方有一个很大的潜在问题:没有了威望的中心化署理,怎样确保每笔买卖的精确性和有效性呢?比方:假如没有了威望的中心化署理,张三某一天借了我100块钱,可是不还钱还不供认怎样办?这儿就引出了区块链的其它特性。
两个根底难题
在去中心化今后,整个体系中没有了威望的中心化署理,信息的可信度和精确性便会面临问题。
问题1:类两军问题
第一次听说这个问题居然是在TCP的课上,大致说的是有两个相距很远的戎行要传递信息,赤军派遣一个信使去跟蓝军说:“你他娘的把意大利炮拿出来!”。蓝军收到信息后又派了一个信使去赤军说:“收到指令!”。然后赤军又派一个信使去蓝军说:“知道你收到指令了!”。然后蓝军又派一个信使去赤军说:“知道你知道我收到指令了!”。然后赤军又派一个信使去蓝军说:“知道你知道我知道你收到指令了!”……然后就没完没了了。

图2:在分布式计算中在异步体系和不可靠的通道上到达一致性是不或许的
在这种状况下,因为是点对点的通信,两边不或许在这种状况下到达信息的一致性。严谨一点,就是“在分布式计算上,试图在异步体系和不可靠的通道上到达一致性是不或许的”。
问题2:拜占庭将军问题
拜占庭罗马帝国在军事行动中,采纳将军投票的战略来决议是进攻仍是撤退,也就是说假如多数人决议进攻,就上去干。可是戎行中假如有奸细(比方将军现已反水故意乱投票,或许传令官反叛擅自修改军令),那怎样确保最后投票的成果真正反映了忠实的将军的意愿呢?
拜占庭将军问题反映到信息交流领域中来,能够了解为在一个去中心的体系中,有一些节点是坏掉的,它们或许向外界播送错误的信息或许不播送信息,在这种状况下怎么验证数据传输的精确性。
区块链技能的诞生
现在让咱们来一步一步在去中心化的体系中处理这些问题,见证区块链技能雏形的诞生。
1
咱们先来树立一个去中心化的体系,为了方便了解,咱们来看一个简略的去中心化借贷模型:假如A借了B 100块钱,这个时分,A在人群中大喊“我是A,我借给了B 100块钱!”,B也在人群中大喊“我是B,A借给了我100块钱!”,此时路人甲乙丙丁都听到了这些消息,因而一切人都在心中静静记下了“A借给了B100块钱”。你看,这个时分一个去中心化的体系就树立起来了,这个体系中不需要银行,也不需要借贷协议和收据,严格来说,乃至不需要人与人长久的信任联系(比方B忽然又改口说“我不欠A钱!”,这个时分人民群众就会站出来说“不对,我的小本本上记载了你某天借了A100块钱!”)。


图3:去中心化借贷模型2
或许你现已发现了,在上述的模型中,所谓的“100块钱”现已不重要了。换句话说,任何东西都能够在这个模型中交流,乃至你能够随便臆造一个东西,只需咱们供认,你就能够让你臆造的东西流转。比方:我在人群中高喊一声“我发明了10个查克拉!”,我乃至不需要知道查克拉是什么,也不需要关心世界上是不是真的有查克拉,只需咱们都听到,然后在自己的小本本上记下“LaiW3n有10个查克拉”,所以我就真的有100个查克拉了。从此今后,我便能够声称我给了某人1个查克拉,只需路人甲乙丙丁都收到并且供认了这一信息,那我就算完成了这次买卖,哪怕世界上没有查克拉。
你现在脑海中是不是显现出了三个字——“比特币”?因为真正的区块链和比特币比我上述的模型复杂太多,细节也丰富太多,因而以下仍是以查克拉举例,毕竟本文是Blockchain for Babies.(笑)
3
假设过了很长一段时刻,我随便发明的查克拉现已在这个体系中流转了起来,咱们都开端认可了查克拉。可是这个体系中总共就只要10个查克拉,所以有人动了坏心思,他在人群中高呼“我有10个查克拉!”怎样办?咱们是直接在本本上记下他有10个查克拉么,这样不是人人都能够假造查克拉了么?
为了防止这种现象发生,我决议在我发明查克拉的时分给我的查克拉打上标记(更精确地说,我是给我喊的那句“我发明了10个查克拉”打上标记,比方标记为001),这样今后在每一笔买卖的时分,我在高喊“我给了某某1个查克拉!”的时分,会附加上额外的一句话:“这1个查克拉的来源是记为001的那条记载,我的这句话标记为002!”。咱们再抽象一点,某人喊话的内容的格式就变成了:“这句话编号xxx,上一句话的编号是yyy,我给了某某1个查克拉!”,这样就处理了假造的问题。其实上述模型就变成一个简化的中本聪第一版比特币区块链协议:


图4:查克拉模型和中本聪第一版区块链协议比照图
好了,看到这儿你根本现已能够生动形象又不涉及任何细节地向你的弱智室友解释区块链了。可是也许你的室友是一个有打破沙锅问究竟精神求是学子,因而你最好持续准好答复以下这几个问题。
1. “凭啥?”
你室友或许会问:“凭啥你喊一句话我就帮你记?我的小本本不要钱么?”。为了鼓励咱们帮我传话和记账,我决议给第一个听到我喊话并且记载在小本本上的人一些奖赏:第一个听到我喊话并记载下来的人,你就随便得到了1个查克拉,这个查克拉是整个体系对你幸苦记账的酬劳,而你记载了这句话之后,要立刻奉告其它人你现已记载好了,让他人抛弃持续记载这句话,并给你自己的记载编号让他人有据可查,然后你再把我的话加上你的记载编号一起喊出来,供下一个人记账。
当这个规矩定下今后,这个体系中一定会出现一批人,他们开端竖着耳朵监听周围发出的声响,以抢占第一个记账的权利。对的,你脑海中是不是又显现出了“比特币挖矿”的字眼?
值得一提的是,关于比特币挖矿,
@玲珑邪僧
举了一个很形象的比方:
独身汪们要找女票,国民岳母说我有很多女儿,这样吧我给你们出点标题,解出一个就给其间一个姑娘的微信号。
独身汪们张狂竞赛,想破脑袋去解题。只需其间一只汪解出一道题,就立马沾沾自喜地昭告天下,示威悉数独身汪,这个姑娘是我的啦,你们抛弃吧。其他独身汪们即便不服也没有方法,惆怅沮丧也不是个事儿啊,仍是麻溜地立马去解下一道标题吧。这只喜赢姑娘的走运小汪被岳母认可后还能得到25个钱银单位的彩礼,简直人生赢家。
2. “听谁的?”
在这个体系中,假如我和另一个人C简直一起地喊出一句:“为了艾泽拉斯!”。因为听众所处的方位不同,一定会有人先听到我说的那句话,而另外一些人则先听到C的那句话,假如咱们规矩只能有一个人说出这句话,那究竟这句话是谁说的?
假如不加任何条件,那么上述的状况一定会这样开展:一部分人以为这句话是我说的,在听到这句话之后开端记账,之后他们所做的一切工作都是根据这个事实,并且随着这个信息一次次的传下去,这条信息链会越来越深;而另外一群以为是C先说这句话的人,也会依照这样的趋势开展。这样,原本是一条仅有的信息链,在咱们喊出“为了艾泽拉斯”这句话之后,分叉了!?


图5:“区块链”分叉
这会导致怎样的状况呢?依照咱们的想象,应该每个人的小本本上记载的东西都是相同的,都是一条能够把一切信息串联起来的链条。可是在这一刻,他们小本本上记载的东西不相同了!这还玩毛啊?今后还怎样确定买卖和信息的真实性!?
为了处理这个问题,我又追加了新的规矩:每个人在记载小本本的时分,需要脱鞋然后用脚拿笔,在小本本上用正楷体书写!有了这个规矩,因为用脚写字难度很大,每个人至少需要10分钟才能写完,并且因为每个人用脚写字的熟练度不通,写完这句话所用的时刻也不同,因而一定会有人先写完然后高呼“我写完了!那句话是LaiW3n喊的!”,这样其它正在写这句话的人便会停笔,然后在小本本上重新开端写“那句话是来文写的,上一句的编号是xxx”。
假如你对上述我的处理方法感兴趣,你能够对照我上面的比喻去了解以下常识:
“听谁的”——中本聪破解“拜占庭将军问题”的算法
“在小本本上记载”——比特币挖矿
“脱鞋用脚写字”——比特币挖矿难度
“脱鞋写字速度”——算力
“新的规矩”——工作量证明链
3. “双花”问题
这个时分你的室友或许又要问:假如我一起宣布我给了A一个查克拉和我给了B一个查克拉,可是我只要一个查克拉,那咋整?是A和B都收到了查克拉仍是咋地?
这个时分你只需要托起他的下巴,温柔地看着他的眼睛,用手刮刮他的鼻子,说:“小妖精,你把这种状况带到上面的规矩中去试试?”
--------------
一些私信问题讨论:
1. 为何目前还鲜有区块链和实体商业事务对接的案例?
从理论上:区块链是一门新技能,保存群众(包括我)还处在观望阶段,只要少数急进或许方针清晰的实体开端向区块链进军,而这些少数的实体在现阶段发声的强度还不够。
从应用上:区块链技能要与实体商业对接,在技能和规矩上还需要进一步开辟,区块链处理的所谓“不信任”问题其对象也只局限于区块链上的数据。因而假如区块链要与实体事务对接,还需要进一步推动实体与数据之间跨域的“游戏规矩”的树立。
2. 虚拟加密钱银终究是否会走向庞氏骗局?
这个问题我也不太好答复,毕竟我是一个技能人员而非这个领域的弄潮儿。我个人的观点是:对于普通人,不建议长时间持有某种数字钱银,应将数字钱银作为法币之间转化的桥梁;对于投机者,“炒币”需谨慎,应将风险控制在自己能够接受的范围内。PS:其实我真的不关心这个问题。
3. 为什么听你一讲,感觉区块链很弱智的样子?
我在文中现已阐明,这只是一篇关于区块链技能的新人导论,其目的在于帮助你快速对区块链有一个感性的认识;假如真的想了解区块链技能细节,请阅览相关文献或拜访区块链社区。
4. 工作机会
感谢各位热情的HR,但我现在暂无换岗的计划。
文章来源:www.xa756.com
添加新手交流群:币种分析、每日早晚盘分析
添加助理微信,一对一亲自指导:YoYo8abc