究竟什么是中心化?什么又是去中心化?相信大家在刚刚接触到这个词汇的时候都不会太熟悉,而去中心化又是区块链技术及其相关应用(例如比特币)中一个非常重要的特性,如果想了解区块链技术,就一定要弄明白什么是去中心化。
为了让读者们能够以最直观的方式了解区块链技术,本文在向大家解释区块链概念的同时,通过丰富的插图以及生动的举例,力求深入浅出的让所有人都能明白区块链技术,由于比特币是区块链技术的第一个应用,所以本文会着重讲解比特币的构成,通过比特币这一区块链技术在现实当中的映射,来帮助大家了解。
首先我们来讲中心化,我们用一个班级来举例,在整个系列文章中,我们将多次运用这一实例,将例子中的多个事件都一一对应到区块链的某些技术上,读者们只需要熟记这个实例,就可以勾勒出整个区块链的框架。
有这么一个班级,班级里工有100位品学兼优的学生,除了同学们以外,还有一位班主任老师,每天学生们的任务就是写作业,完成作业以后,学生们要上交自己的作业给班主任老师,班主任老师拿到学生们的作业之后,会根据学生们完成作业的程度打分,并且给作业完成的好的同学以奖励,也许是一朵小红花,也许是一个小奖章。总之老师会把给学生们的奖励一一记在一个小本上,可能记录了这样的信息:“1月1日,小明获得小红花一朵。”在之后的日子里,同学们可以用自己获得的奖励换取一些自己想要的东西,也许是一个布娃娃,也许是一个玩具,也许是一瓶饮料。当小明想要用自己获得的小红花兑换其他东西的时候,他会把自己的小红花交给老师,老师就会在自己的小本上将小明获得的奖励清除掉,并记下“1月3日,小明用一朵小红花换取了一瓶饮料”
在这个系统中,学生写作业,交给老师,换取小红花。也可以把小红花交给老师,换取其他自己需要的物品。而老师,负责批改学生们的作业,发放和收回小红花,并且记录学生们获得小红花的情况明细。在这种情形下,这个系统就是中心化的,而整个系统的中心节点就是班主任老师,她拥有评判同学们作业完成度的权利,发放奖励的权利,兑换其他物品的权利。在老师和同学都是绝对公正、无私的情况下,这个系统是可以完美运行的,然而在现实生活中,这个系统会遇到许多信任问题。
首先,全体同学默认都是信任班级的中心--班主任老师的,事实上所有同学不得不信任老师,因为只有老师有记账权,同学们的劳动成果全部由老师记录,并且老师的账本也不对外公开。这时候老师就有了作弊的空间,在收到所有同学的作业后,她可以任意决定同学们获得的奖励,因为同学之间是无法互相知道大家作业完成的情况的,那么老师可以给和自己关系好的同学更多的奖励,给和自己关系不好的同学更少的奖励,或者一部分同学会选择贿赂老师(我们无法保证任何人都是公正无私的,包括同学们),这样即使他每次上交的作业都是空白的,他也会获得小红花,而努力学习完成作业最勤劳的同学,可能一朵小红花都得不到。等到学生想用小红花兑换其他物品的时候也会出现问题,老师可以记花账,有的同学用一朵小红花可以换到三朵小红花才能换到的物品,有的同学花费三朵小红花却只能换到价值一朵小红花的物品。这一切都是因为老师在这个系统中的绝对掌控,她拥有记账权,并且账本不对外公开。当有的同学意识到自己受到不公平待遇后,会对班主任老师失去信任,或者也加入到贿赂老师的队列中去。
那么如何解决这一难题呢,显然把班主任剔除然后从学生中选举一个来记账是不可行的,这只不过是换了一位班主任而已。而区块链技术就为我们提供了一种思路,在这种技术的帮助下,我们可以将系统中的中心化节点剔除,只剩下若干的一般节点,这些节点没有任何的区别,他们所负责的工作也完全一致,具体到这个例子中,就是在班级里只保留学生而没有班主任,学生们依然要写作业,但是完成作业以后获得的奖励由所有人一起决定,并且可以杜绝任何的欺诈行为。
接下来我们用这个例子演示一下比特币是如何在实际生活当中运行的,在例子中,每一个动作和行为都对应着区块链技术的知识点,在大家了解整个系统如何运行之后,我们再将每一步进行分解剖析
首先,我们假设班级里有100位同学,并且我们给每一位同学手里都发一个账本,他们勤勤恳恳的每天写作业,以换取自己的奖励。同学们的作业有以下特点:第一,每位同学的作业题解题方式都是一样的(哈希计算),题目也一样,但是答案不唯一。第二,这些作业题计算起来很难,但是验证答案是否正确很简单。第三,这些作业题的解题难度根据同学们的解题能力而不断变化。最终的结果就是平均每10分钟会有一位同学解题成功。
然后有一位同学小明解出了题目,他马上用大喇叭在班里宣布,我算出来这一题的(其中一个)答案了!结果是XXXXXXX,然后其他的同学马上用小明的答案进行验算,发现的确是正确答案,那么所有人都在自己的账本上写下“某年某月某日某时,小明作对了一道题目,小明获得了一朵小红花”。小明自己也在他自己的账本上做好记录。这个过程就是一个挖矿的过程,小明最终获得的小红花就是比特币,而如果小明想要交易,比如他想将自己的小红花送给小红,那么他还是要在班级里用大喇叭宣布,我要将自己的一朵小红花送给小红,大家首先在自己的账本里查看,小明是否拥有一朵小红花,之后大家都在账本上写下,“某年某月某日某时,小明将一朵小红花送给小红”。看起来虽然很简单,但是实际上这些过程中充满了问题和信任危机,如果这100位同学有作弊的怎么办,如果有同学记花账怎么办,如果有同学没有听到小明的大喇叭宣告怎么办,别着急,在接下来的文章中,我们将一步步,一点点,把区块链技术和比特币掰开揉碎放到大家眼前,用最直白的语言,让大家了解区块链技术。