现如今非常流行区块链技术,但是它到底是什么呢?它又是怎样工作?它解决了哪些问题?未来它又会有哪些用途呢?今天小锁会带着大家一起去了解。
区块链(Block Chain)是有一组包含信息的信息块(Block)相互连接(Chain)组成的信息链。
区块链=区块+链区块链技术最早是在1991年一群研究人员研发并用来给数字化文档打时间戳(digital timestamps)使这些文档的日期不能被倒填或者被篡改。这样子看上去区块链技术就像是一位公证人。然而这个技术自那以后基本没有再发挥其他作用,直至2009年中本聪(Satoshi Nakamoto)采用区块链技术创造了数字加密货币(Cryptocurrency)——比特币(Bitcoin)。
一条区块链就是一个对所有人完全公开的分布式账本(Distributed ledger)。它有一个很有趣的属性:一旦某些数据被记录到一条区块链中后,那么数据就很难再被改变。所以它到底是怎么工作的呢?
让我们一起来了解一个区块(block)的组成。每个区块会包含一些数据(Data),这个区块的哈希值(Hash)以及前一个区块的哈希值(Hash of previous block)。
区块的组成一、数据(Data)
区块中所保存的数据与区块链的类型有关,比如比特币区块链中的区块保存了相关的交易信息包括卖家、买家和比特币交易的数量。
数据保存的相关交易记录二、当前区块哈希值(Hash)
每个区块都包含了一个哈希值,哈希值可以被理解成指纹是唯一的,用它来标识一个区块和它所包含的所有内容。一旦某个区块被创建,那么它的哈希值就相应的被计算出来了,改变区块中的某些内容会使得哈希值发生改变。换而言之,如果你想检测区块中内容的改变时,哈希值会很有帮助。如果一个区块的哈希值改变了,那它也就不再是之前的区块了。
当前区块哈希值和指纹一样独一无二三、前一个区块的哈希值(Hash of previous block)
这个元素使得区块之间可以形成链接,并且保障了区块链的安全。假设我们有一条区块链包含3个区块,每个区块包含了一个之间的哈希值以及前一个区块的哈希值。
每个区块之间通过“链”关联如图,3号区块指向2号区块,2号区块又指向1号区块。但是1号区块有点特殊,它不能指向前一个区块,因为它是正式的第一个区块。通常1号区块被称作创世区块(Genesis block)。
假设篡改了第二个区块,这将导致第二个区块的哈希值发生改变,接下去就会导致3号区块以及3号区块链接后续所有的区块都变得非法,因为它们储存的前一个区块号都是非法的。所以我们明白改变一个区块会使得其后所有连接的区块变得非法。
任意篡改会导致区块非法现在仅仅使用哈希值的方法不足以防止用户篡改区块。现在的计算机运算速度已经足够强大,并且能够美妙计算成千上万的哈希值,你完全可以篡改一个区块并且重新计算其他区块的哈希值,这样你的区块就会再次变得合法。
为了减少这种风险,区块链还采用了一种技术叫做工作量证明(Proof-of-work)。这是一种减缓新区块创建过程的机制。在比特币区块链中,大概需要花费10分钟来完成所要求的工作量证明,并添加一个新的区块到区块链中。这个机制使得区块链的篡改更加困难。一旦你篡改了一个区块,你需要重新计算所有后续区块的工作量证明。所以区块链技术的安全性主要来自于哈希值以及工作量证明机制。
工作量证明加强区块链安全性能区块链还有一种机制保护自身的安全性,那就是分布式。相对有一个中心化的实体来管理区块链网络,区块链采用的是P2P网络(peer-to-peer network),并且所有的人都可以加入。当有人加入这个网络时,他就会得到整个区块链的复制。这个人就可以以此来验证是否所有的区块都是合法未篡改的。
如果当小锁创建了一个新的区块时,会发生哪些改变。这个新的区块会被发送给网络上的所有人,每个人再验证这个区块以确保这个区块没有被篡改过。如果所有的东西都被检验正确,那么每一个人就都会把这个新的区块加到自己的区块链上。
创建新区块我们称之为,网络上的所有人达成了“共识”(Consensus)。他们认同网络中哪些区块合法,哪些不合法。被篡改过的区块将会被网络上的其他用户拒绝。如果你要成功篡改一个区块链,那么你就需要篡改区块链上的所有区块,重新完成每个区块的工作量证明,并且控制区块链网络中超过50%的用户。只有这样,你篡改的区块才会被所有人承认。可以说这基本上是不可能做到的。
区块链技术本身也在不断地发展,最近的一个技术改进,叫做智能合约(Smart contracts)。智能合约是一些存放在区块链行的简单程序,可以在特定条件下实现自动化比特币交易。后续的文章中小锁会陆续给大家介绍。
区块链技术的诞生吸引了很多人的目光,在其诞生不久之后,一些人意识到区块链技术可以用来存放病史档案(Medical records),创造数字化公证(E-notary)甚至还可以用来收税(Collecting taxes)。
区块链未来应用每天5分钟了解币和链,有任何不足,欢迎留言和私信。
网友评论