一个简单的指南来理解区块链与现实世界的类比。
如今,从你的理发师到证券市场工作的朋友,人人都在谈论比特币。别担心,这篇文章不是关于从比特币中赚钱的其他几篇文章。但是,我将尽力帮助您了解比特币运作的基础技术以及区块链的概念在未来几十年中如何发挥作用。
历史概述
2008年10月31日,一份名为Satoshi Nakamoto的匿名人士或组织发表了一份白皮书,解释了一种新的方法,可以直接从寄件人向收款人汇款而不涉及任何金融中介。该论文给出了这个概念的名称-比特币。由于比特币使用了密码学的一些基本概念,这种新的兑换方式被归类为加密货币。比特币的唯一目的是用于金融交易,但研究人员意识到,可以手机其基础技术,以构建其他安全可靠的应用程序,从而彻底改变但前系统的工作方式。“区块链”是这个基础技术的名称。很多技术词汇?我们简化吧!
什么是区块链?——真实世界的比喻
假设你住在一个拥有大型停车位的城市,可以同时停放200辆汽车(假设停车场只有一层)。这个停车场只有一个大门,它平时是上锁的,只有在汽车进出时才会打开。现在让我们从不同的角度来分析这个停车场建筑——
价格:由于一些私人公司专门为停车而建造了这个停车场,并且所有维护费用将由业主公司承担,如果租用单个停车位将需要很高的租赁费。
安全性:如果小偷可以从大门进入,他们能够轻而易举的找到你的车(拿走车轮,燃料,损坏刹车,或者其他任何东西!)
限制:如果您所在城市的汽车数量从200增加到300,该怎么办?停车场没有足够的空间容纳所有汽车,其他一些私人机构将不得不建造一个新的停车场。
值得信赖:你信任停车场公司,他们负责保证安全和可靠性。
集中:由于所有车辆都在一栋楼内,我们可以将其视为集中的停车场。
现在,让我们修改当前场景。想象一下,你所在城市有200座房子,所有200所房子各有两个车位。简而言之,我们假设每个房子只有一辆车(上面所说的停车场里所有的位置都已经被车子占据)。因此,每个房子至少有一个可用的空车位。现在,假设这个城市的人们决定把空的车位租给任何需要停车的人。这种提供车位的模式将解决200辆以上的汽车停放问题(如果人们迁入或者迁出城市),而不需要为整个城市建造任何集中的更大的停车位。与上一个场景类似,让我们分析一下这个场景—
价格:由于第二个车库不是专为出租目的而建的,并且维护费用也很低,所以租用额外的停车位的费用相对于中央大停车位要低一些。
安全性:每辆车都被锁在不同的车库里,因此盗贼必须打开所有的车库才能接近汽车,从而提供更高的安全性。(区块链中的安全性有点不同,但为了简单起见,现在让我们这有考虑吧!
限制:随着房屋数量的增加,假设每栋新房子也有额外的车库空间,那么容纳更多汽车的空间就会不断增加。这样,增加了承租人和出租人的网络。
无信任:由于没有中央机构控制这些分布的停车位,我们假设所有参与的车库业主都会制定一定的规则来出租他们的停车位。
分散:如前所述,这些停车位分布在整个城市,我们可以认为它是一个分散的停车场。
上面的类比为理解区块链的实际技术基础结构提供了基础。
停车模型到技术模型
停车模型用真实世界的语言提供了区块链的基本概述。现在,让我们试着把停车场的构成要素和实际的技术模型相匹配——
大型中央停车场是一个集中式系统,如AWS,Google Cloud等(这些云平台在某种程度上也是散布的,但为了简单起见,我们假设它们是单个的实体)。
汽车是数据和应用。
分布式停车场是一个分散式系统——区块链。
等等,我们漏了点什么。
所有分散的系统都不是区块链。没错,区块链是一种特殊的分散系统,具有独特的属性。什么属性呢?让我们探讨一下。
“区块”造就区块链
回顾一下我们的分散式停车场的案例,并做一些小变化。假设有个特别的停车库,一旦车子停在里面就会上锁(假设同一辆只会停在同一个库里面)。同时假设我们已经为分散式车库按顺序编号。50号车库的配对锁钥依赖于49号车库的配对锁钥,同时也依赖于停在50号车库内车辆的特性(像颜色、重量、引擎编号等),这种链式过程从1号开始,直到200号或更远。
每个车库的配对锁钥依赖于该库内车辆的特性和上一车库的锁钥。
因此,如果一个盗贼想要闯入49号车库,并且修改汽车的任何特性,比如颜色或者注册号,那么49号车库的车辆特性将会变化,这就意味着生成了新的49号车库的配对锁钥,50号配对锁钥也随之改变,并且未来的车库也会发生变化。
下面让我们做最后一个假设,计算一副配对锁钥需要大量的运算资源,这就是说如果我们必须重新计算这些配对,以防盗贼修改任意车库内的车辆特性,那么将所有配对重新计算一遍几乎是不可能的。
如果更改了锁定密钥对,会发生什么?
希望你还记得之前我们说过所有车库老板都会遵守一些规则,你还记得吗?这些规则之一就是:检查是否有一个有效的车库是很必要的。车库是否有效取决于:如果你可以确保你能使车库的锁定密钥对生效,并且你此时你也更改了锁定密钥对,那么以下所有车库的锁定密钥对就会失效,因为每一对锁定密钥对都取决于前一对锁定密钥对。(验证特定车库的锁定密钥对的过程比生成锁定密钥对要快得多。)
这种对前一对锁定密钥对的依赖使得它成为一条车库链,在技术世界中也是如此,这些车库可以看作是一个个“区块”,因此它被命名为——“区块链” 1(Blockchain)(一串使用密码学方法相关联产生的数据块)。
区块链中的块通过“散列” 2(Hash)绑定到下一个块,就像我们示例中的锁定密钥对一样。与车库的例子类似,如果修改了一个区块中的数据,则需要重新计算以下所有区块的散列,而且由于计算散列是一种非常资源密集的形态的操作,因此实际上不可能这样做,因此网络排除了无效的区块。散列的计算被称为采矿,我们将在本系列的下一个版本中对它进行更多的讨论。
区块如何从修改中恢复?
区块链网络上的所有计算机,都保留着完整的区块链副本,所以如果某台计算机或多台计算机上的一个区块或一个完整的链被修改,整个网络就会试图将其与自己的完整链副本进行比较。
如果网络上的大多数节点(或计算机)发现修改后的链无效,则用其他节点的有效链替换修改后的链。这使得区块链容易受到51%攻击。简单地说,如果网络上超过50%的节点是恶意的(或者说是有一个经过修改的链),那么整个网络都可能被破坏。
总结
区块链有很多需要消化的信息。这是《初学者指南》的第一部分,为区块链提供了基础。我希望这篇文章为您准备好与您的朋友就区块链有一些谈资。查看本系列的下一个版本,我们将讨论以太坊3(Ethereum)、智能合约4(Smart Contracts)和采矿5(Mining)。
名词解释:
区块链(Blockchain):区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。区块链也是比特币的一个重要概念,它本质上是一个去中介化的数据库,同时作为比特币的底层技术。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
散列(Hash):一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
以太坊(Ethereum):以太坊是一个开源的有智能合约功能的公共区块链平台,通过其专用加密货币以太币(Ether)提供去中心化的虚拟机(“以太虚拟机” Ethereum Virtual Machine)来处理点对点合约。
智能合约(Smart Contracts):在区块链上运行的程序,通常称为智能合约。所以通常会把写区块链程序改称写智能合约。虽然比特币(Bitcoin)上也能写智能合约,但是比特币所支持的语法仅与交易有关,能做的事情比较有限。因此目前提到写智能合约,通常指的是支持执行图灵完备程序的以太坊(Ethereum)区块链。
挖矿(Mining):挖矿其实是一种安全机制,利用密码学哈希函数和非对称加密,确保区块链网络的挖矿节点在广播区块前,投入大量的计算,提高作假和作恶的成本,保证已有数据不可能被篡改,确保全网达成共识。
原文地址:
https://hackernoon.com/beginners-guide-to-blockchain-explaining-it-to-a-5-years-old-772caac6ae97
往期文章: