从互联网协议开始 盘点四大神奇的区块链创新技术
在今天这篇文章中,我会重点介绍区块链技术的工作原理。首先让我们从区块链协议开始讲起。
为什么要讲协议?这是因为协议代表着区块链技术的根本。中本聪在2008年发表的白皮书中,比特币真正技术创新正在于其区块链协议。在探讨区块链协议的运作之前,我们先来了解下现代互联网协议(没有它们就不可能实现区块链协议)。
互联网协议
什么是协议?协议是通过互联网将数据从一台计算机发送到另一台计算机的方法。维护现代互联网运作的三种协议分别是超文本传输协议(“HTTP”),传输控制协议(“TCP”)和互联网协议(“IP”)。 TCP和IP是路由信息的协议,HTTP是网页浏览器的应用程序级协议。
TCP / IP
传输控制协议和互联网协议构成了所谓的“互联网协议栈”。它们实际上是通过网络路由信息的协议。左侧的图清晰地解释了这些协议的运作。传输控制协议从你的应用程序中获取信息,将该信息分解为较小的数据包,添加标头以便在收件人的计算机中重新打包信息,然后将这些数据包发送到互联网协议(IP)。IP获取这些数据包后,添加IP头(包括发送者和接收者的IP地址)并在互联网上路由该信息。一旦数据包到达收件人的计算机,收件人的IP就会将它们传递给TCP,TCP会再次打包并将它们发送到相应的应用程序。
HTTP
就像我上面提到的,超文本传输协议是一种应用程序级协议。这意味着它是一种将数据发送到TCP / IP协议栈(然后通过网络路由)的协议。 HTTP是允许网页浏览器与网页服务器通信的协议。我们来看一个例子。当你在Google Chrome中输入网址时,网络浏览器会连接到域名服务,并确定该网站所在的IP地址。
在识别网站之后,浏览器向服务器发送HTTP请求(通过TCP / IP协议栈)。如果页面存在,则Web服务器将内容发送回浏览器,浏览器将其显示在请求者的屏幕上。如果页面不存在,那么服务器会发回HTTP 404错误,提示页面不存在(我猜每个人都曾遇到过这个问题)。虽然HTTP是一种应用程序协议,但它肯定不是唯一的一种。我们每天都使用许多协议,包括简单邮件传输协议,它可以实现电子邮件通信。
区块链协议实际上建立在TCP / IP之上,类似于HTTP等应用程序协议。现在,让我们继续深入探讨区块链协议的工作原理。
区块链协议
正如我们上文所讨论的,协议是一种通过网络发送信息的方法。区块链协议与传统的互联网协议略有不同。虽然并非每个区块链协议都相同,但都存在固有的特征,包括(i)分布式账本,(ii)加密算法,(iii)一致性算法,以及(iv)数据集成块。让我们简要讨论一下这些元素是如何运作的。
分布式账本
什么是分布式账本?分布式账本是去中心化的数据库,可在多个位置或网络参与者之间共享。换句话说,分布式账本就是点对点网络,每则信息/交易都由网络上的所有参与者(或“节点”)共享和存储。
分布式账本与现有的互联网客户端服务器架构相反。客户端 - 服务器架构是这样一种模型:信息存储在中央服务器上,用户(即“客户端”)可以发送请求。例如,Facebook,谷歌和亚马逊等机构都拥有大型中心化服务器,用于存储用户的交易历史记录,个人信息等。客户通过HTTP请求接入这些服务器。点对点网络与客户端 - 服务器模型不同,因为它们没有充当一个中央存储点。相反,每个连接在网络上的节点既是客户端,又是服务器端。
这样做有什么好处呢?使用分布式账本而不是中心化数据库的好处是没有单点故障,降低了网络遭到黑客攻击/信息丢失的几率。此外,没有一个实体拥有存储在网络上的数据。这意味着没有人可以滥用数据为自己谋私利。用户控制他们自己的数据,决定这些数据的用途。网络参与者未来可根据需要出售他们的数据。如果你将搜索记录存储在区块链版本的Google上,那么你可以将该搜索记录出售给广告商。广告商会直接向你支付相应费用,而不是Google等第三方公司。
现在你或许会想:把个人信息存储在一堆陌生人的电脑上,岂不是对隐私的侵犯?幸运的是,区块链协议有一个解决方案:加密。通过加密技术可以隐藏网络参与者的身份和交易内容。
这种加密是如何运作的呢?区块链上的加密技术有三个核心功能:哈希,公钥/私钥验证和数字签名。这些加密方法并非区块链技术独创的。相反,区块链是将现有的加密方法合并到其协议中。
哈希算法
广义来说,哈希是一种数学函数。它可以把任意长度的输入(一个字母,一个句子或整本书),通过公式来创建一个看似随机的,字母和数字数量固定的输出。例如,使用SHA 256哈希函数来创建“这是一个哈希函数!”的哈希值,你将获得以下输出:
2c886077bbc252137f1d78d2915d96befe71bca1caf3ff9cc7b6dcb47b3c4248
哈希函数的有趣之处在于输入中的任何小变化都将创建完全不同的哈希。例如,如果删除“这是一个哈希函数”的感叹号,则输出将更改为:
4ca94a9dbbe380459790d3ba464a1f916f9a30c1f2e01e023d306649236f651e
虽然有许多不同的散列函数(包括SHA 1,SHA 256,MD 5,Keccak-256),但它们都遵循一些重要的规则。
1.相同的输入必须始终创建相同的输出。2.两个不同的输入不能产生相同的输出。3.必须无法根据给出的输出推算出输入。4.输入的微小变化必须完全改变输出。
为什么哈希函数这么重要?首先,它可以把无限量的内容缩减为一小段字符。其次,正如上面提到的规则,哈希函数是具有唯一性的单向函数。通过获取文件的哈希值,你可以生成该文件唯一的固定字符串,也就是该文件的数字指纹。
因此,要验证两个文件是否完全相同就很容易了。你没必要字对字的检查,而是创建该文档的哈希值并将其与原始文档的哈希值进行对比。如果对原文档进行了细小的改动,则哈希值将完全不同。举一个例子,假设你为一本电子书付费,并想确认该书与原版书的内容完全相同。你可以给电子书创建一个哈希值,将该哈希值与原始图书的哈希值进行比较。检查这256个字符是否匹配,而不是检查每一章以确保没有遗漏任何内容。
区块链协议中是如何使用哈希的呢?它用于创建数字签名,打包交易区块以形成不可更改的账本。我们来讨论下这些使用案例。
公钥/私钥加密:
讨论完哈希功能,我们来继续讨论区块链加密的第二个关键组成部分:公钥/私钥加密,也称为非对称加密。加密数据有两种核心方法:对称加密和非对称加密。对称加密使用单个私钥来加密和解密消息。对称加密一直是最常用的加密数据的方式,它比非对称加密更快。
对称加密的唯一问题是所有各方都需要使用私钥来解密消息。为了使每一方都拥有私钥,需要把私钥发送给所有人。不幸的是,发送私钥的唯一可靠的方法是面对面通信,因为所有其他通信方法都可能被黑客入侵。如果你希望将加密数据发送给不同地理区域的某个人则可能会出现安全问题。
这就需要非对称加密技术了。非对称加密有两个密钥:公钥和私钥。顾名思义,用户广泛传播公钥但从不共享私钥。这两个密钥在数学上是相互对应的,公钥加密的内容只能使用对应的私钥来解密。例如,如果John想要使用非对称加密向Bob发送消息,他可以使用Bob的公钥来加密消息,解密该消息的唯一方法就是使用Bob的私钥。这使用户无需交换密钥即可交换消息。这种加密方式虽然牺牲了效率,但它显着提高了安全性;并允许用户共享内容而无需共享私钥。因此,所有区块链协议都使用了非对称(公钥/私钥)加密。
数字签名
数字签名用来验证发件人的身份,并确认文件在传输过程中未被更改。数字签名是如何运作的?我们来通过数字签名验证文档的过程来进行解释:
首先,发件人接收消息并创建哈希。其次,发件人使用他/她的私钥加密哈希文件,并将文档发送给接收者。第三,接收方使用发送方的公钥解密,获取文档的哈希值。第四,接收方获取完全解密的文档并对其进行哈希处理。第五,接收方对比两个哈希值,确认它们是否匹配。
共识算法
什么是共识算法?正如我们之前所讨论的,分布式网络中没有中央权威。因此,网络需要一个决策机制来促成参与者达成一致。区块链网络在其协议中建立了共识算法以实现该目的。
共识算法是网络参与者就“单一版本的事实”达成一致的方式。网络参与者使用一致性算法来确认发起的交易是有效的,发送资产的人实际上拥有这么多资产。例如,如果有人试图发送10个比特币,网络参与者使用共识算法证明他的确拥有10个比特币。
共识机制很重要,它们解决了双花问题。我们历来需要可信赖的第三方来确认我们正在交易的资产(货币,财产等)尚未在其他地方花费过。共识算法允许分布式网络无需信任第三方就可以验证交易是否合法。
共识算法是怎么运作的?区块链有许多不同的共识算法,我将在这里介绍两个最受欢迎的算法。
POW工作量证明
工作量证明机制是区块链协议中实现的第一个共识算法。比特币和以太坊都使用POW。工作量证明算法要求网络参与者通过计算复杂的数学难题来验证交易,并通过向成功完成计算的节点提供奖励来激励他们验证交易。这种验证方法保障了系统的安全性。如果黑客想要对区块进行任何追溯性更改,他们需要拥有足够的计算能力来与整个现有的区块链网络竞争。
假设目前有多笔比特币交易需要进行验证,所有连接到网络的节点(矿工)将竞争“挖矿”交易区块。他们会获取不同输入的哈希,包括(i)区块中的所有交易,(ii)进行区块哈希的时间戳,(iii)区块的难度值,(iv)上个交易区块的哈希,(v)一个称为“nonce”的随机数。
矿工必须要解决什么数学问题呢?比特币矿工需要在所有的哈希输入中找到特定的哈希输出。唯一的做法是猜测一个随机数并对输入进行哈希。如果输入没有导致正确的输出,则矿工必须猜测不同的随机数并重新哈希输入。矿工重复这一过程,直到他们找到正确的输出。第一个猜到正确随机数的矿工会获得预先设定的比特币奖励。其他矿工继续重复这一计算过程,竞争下一个区块的奖励。
这种共识机制需要大量的计算资源。随着工作量证明网络规模扩大,消耗的电力越来越大。这引发了人们对挖矿可持续性的质疑。他们担心挖矿会成为少数玩家的中心化游戏,因为只有他们能买得起最好的设备,获得最便宜的电力。也有人认为POW机制效率低,他们支持交易速度更快的共识机制,如POS股权证明机制。
POS机制
2012年,Peercoin首次使用了POS股权证明机制(proof-of-stake)。近几年,POS机制获得了更多的认可。股权证明机制的优点是减少了验证交易所需的电力和昂贵的硬件成本。这种机制更加环保。又因为验证节点的门槛低,所以更加去中心化。
在POS机制中,节点无需解决数学难题。按照系统设计,验证节点会根据持币数和币龄通过半随机的方式挑选出来。
如何确保这些节点不会造假?POS机制会强制验证节点锁定他们的“股权”(即通证)来解决这个潜在的问题。如果节点验证了虚假交易,将会丢失锁定的通证,被并踢出验证人名单。
POW和POS共识机制的另一个关键区别在于它们的激励方式。与POW机制不同,POS系统中没有块奖励。相反,节点收取的是验证交易的交易费用。网络要想鼓励更多的验证者,就可以增加交易费用。反之亦然。
打包区块
区块链中的第一个区块称为“创世区块”。创世块与其他块不同,它被硬编码到网络中并详细说明了区块链的初始参数。创世区块的交易被验证后,会进行哈希处理并生成标识这个区块的唯一值。在验证第二个区块时,第二个区块的交易以及第一个区块的哈希值会被用作输入以创建第二个块的唯一哈希值。后续的每个区块都进行此操作,有效地将所以块链接在一起。这种链接功能使区块链“不可逆”。黑客如果试图更改某个块中的数据,就必须更改所有后续每个区块的哈希值。这种操作会立即被链上的节点发现,为网络提供额外的安全保护。
结论
这篇文章涵盖了大量的信息,将互联网协议和区块链协议进行了对比。论述了对称性和非对称性加密, 阐述了两种共识机制。如果你们有任何问题,可以在推特上跟我沟通。
Roy Walker - OK区块链商学院签约作者
Hello,我是Roy Walker,2016年毕业于斯沃斯莫尔学院,目前在一家私募股权公司担任战略技术分析师。我一直对技术和风险投资充满热情,如果您想查看我的更多作品,欢迎关注我的Twitter和博客。
Twitter:@AllThings_VC
medium:all-things-venture-capital