《区块链入门教程》-学习区块链从[起点区块链]开始
《区块链⼊⻔教程》
作者:阮⼀峰
区块链(blockchain)是眼下的⼤热⻔,新闻媒体⼤量报道,宣称它将创造未来。
可是,简单易懂的⼊⻔⽂章却很少。区块链到底是什么,有何特别之处,很少有解释。
下⾯,我就来尝试,写⼀篇最好懂的区块链教程。毕竟它也不是很难的东⻄,核⼼概念⾮常简单,⼏句话就能说清楚。我希望读完本⽂,你不仅可以理解区块链,还会明⽩什么是挖矿、为什么挖矿越来越难等问题。
需要说明的是,我并⾮这⽅⾯的专家。虽然很早就关注,但是仔细地了解区块链,
还是从今年初开始。⽂中的错误和不准确的地⽅,欢迎⼤家指正。
⼀、区块链的本质
区块链是什么?⼀句话,它是⼀种特殊的分布式数据库。
比特币挖矿教程
⾸先,区块链的主要作⽤是储存信息。任何需要保存的信息,都可以写⼊区块链,也可以从⾥⾯读取,所以它是数据库。
其次,任何⼈都可以架设服务器,加⼊区块链⺴络,成为⼀个节点。区块链的世界⾥⾯,没有中⼼节点,每个节点都是平等的,都保存着整个数据库。你可以向任何⼀个节点,写⼊/读取数据,因为所有节点最后都会同步,保证区块链⼀致。⼆、区块链的最⼤特点
分布式数据库并⾮新发明,市场上早有此类产品。但是,区块链有⼀个⾰命性特点。
区块链没有管理员,它是彻底⽆中⼼的。其他的数据库都有管理员,但是区块链
没有。如果有⼈想对区块链添加审核,也实现不了,因为它的设计⺫标就是防⽌出现居于中⼼地位的管理当局。
正是因为⽆法管理,区块链才能做到⽆法被控制。否则⼀旦⼤公司⼤集团控制了管理权,他们就会控制整个平台,其他使⽤者就都必须听命于他们了。
但是,没有了管理员,⼈⼈都可以往⾥⾯写⼊数据,怎么才能保证数据是可信的呢?被坏⼈改了怎么办?请接着往下读,这就是区块链奇妙的地⽅。
三、区块
区块链由⼀个个区块(block)组成。区块很像数据库的记录,每次写⼊数据,就是创建⼀个区块。
每个区块包含两个部分。
•区块头(Head):记录当前区块的特征值
•区块体(Body):实际数据
区块头包含了当前区块的多项特征值。
•⽣成时间
•实际数据(即区块体)的哈希
•上⼀个区块的哈希
这⾥,你需要理解什么叫哈希(hash),这是理解区块链必需的。
所谓"哈希"就是计算机可以对任意内容,计算出⼀个⻓度相同的特征值。区块链的 哈希⻓度是256位,这就是说,不管原始内容是什么,最后都会计算出⼀个256位的⼆进制数字。⽽且可以保证,只要原始内容不同,对应的哈希⼀定是不同的。
举例来说,字符串123的哈希是a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0(⼗六进制),转成⼆进制就是256位,⽽且只有123能得到这个哈希。(理论上,其他字符串也有可能得到这个哈希,但是概率极低,可以近似认为不可能发⽣。)因此,就有两个重要的推论。
推论1:每个区块的哈希都是不⼀样的,可以通过哈希标识区块。
推论2:如果区块的内容变了,它的哈希⼀定会改变。
四、 Hash 的不可修改性
区块与哈希是⼀⼀对应的,每个区块的哈希都是针对"区块头"(Head)计算的。也就是说,把区块头的各项特征值,按照顺序连接在⼀起,组成⼀个很⻓的字符串,再对这个字符串计算哈希。
Hash = SHA256( 区块头 )
上⾯就是区块哈希的计算公式,SHA256是区块链的哈希算法。注意,这个公式⾥⾯只包含区块头,不包含区块体,也就是说,哈希由区块头唯⼀决定,
前⾯说过,区块头包含很多内容,其中有当前区块体的哈希,还有上⼀个区块的哈希。这意味着,如果当前区块体的内容变了,或者上⼀个区块的哈希变了,⼀定会引起当前区块的哈希改变。
这⼀点对区块链有重⼤意义。如果有⼈修改了⼀个区块,该区块的哈希就变了。为了让后⾯的区块还能连到它(因为下⼀个区块包含上⼀个区块的哈希),该⼈必须依次修改后⾯所有的区块,否则被改掉的区块就脱离区块链了。由于后⾯要提到的原因,哈希的计算很耗时,短时间内修改多个区块⼏乎不可能发⽣,除⾮有⼈掌握了全⺴51%以上的计算能⼒。
正是通过这种联动机制,区块链保证了⾃⾝的可靠性,数据⼀旦写⼊,就⽆法被

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。