区块链,第一部分:介绍和加密货币
如今,打开任何讨论技术或金融相关的新闻资讯,却看不到一两条关于比特币及其底层框架区块链的新闻标题,这似乎几乎不可能。但是为什么呢?是什么让比特币和区块链如此令人兴奋?它们提供了什么?为什么每个人都在谈论这个?而且,未来会怎样?
在这个分为两部分的文章系列中,我将介绍这项目前流行的技术,描述它的工作原理,并提供部署您自己的私有区块链网络的说明。
比特币和加密货币加密货币的概念并不新鲜,尽管鉴于上面提到的新闻标题的普及,人们可能会有其他想法。比特币由一个名为 Satoshi Nakamoto 的匿名方在 2009 年发明和发布,它是一种加密货币,因为它提供了一种去中心化的方式来进行数字交易。它也是一项全球技术,这是一种花哨的说法,意思是它是一个全球支付系统。由于该技术是去中心化的,因此没有一个单一实体被认为拥有所有权或有能力对该技术施加监管。
但是,这到底意味着什么?交易是安全的。这使得它们更难追踪,因此也更难征税。这是因为这些交易严格来说是点对点的,中间没有中介。听起来好得令人难以置信,对吧?嗯,它就是那么好。
虽然交易仅限于涉及的双方,但它们确实需要在独立运行的节点网络(称为区块链)上进行验证。使用密码学和分布式公共账本,交易得到验证。
现在,除了进行安全且更难追踪的交易之外,这些加密货币平台的真正吸引力是什么?以比特币为例,“比特币”是通过“挖矿”过程作为奖励生成的。如果你快进到今天,比特币已经获得了货币价值,因为它可以用来购买全球范围内的商品和服务。请记住,这是一种数字货币,这意味着不存在物理“硬币”。您必须保管和维护您自己的加密货币钱包,并将累积的资金花费在接受比特币(或任何其他类型的加密货币)作为支付方式的零售商和服务提供商处。
抛开所有炒作不谈,预测加密货币的价格是徒劳的,而且没有单一变量驱动其价值。然而,需要注意的一点是,加密货币绝不是对真实货币的货币投资。相反,购买加密货币是对未来可能性的投资,在未来它可以兑换商品和服务——而这个未来可能比预期的更早到来。
现在,这并不意味着加密货币没有现金价值。事实上,它确实有。在我撰写本文的当天(2018 年 1 月 27 日),一个比特币的价格为 11,368.56 美元。这个价值极不稳定,谁也不知道它明天会走向何方。影响比特币价值的一个因素是采用率。更多人使用该技术会导致更多交易由构成底层区块链的人们拥有的节点进行验证。反过来,验证系统的所有者获得奖励,从而提高了技术的价值。这很简单:验证更多交易,赚更多钱。当然,其中还有更多内容,但这就是总体思路。
验证系统的所有者被称为“矿工”。矿工提供记录保存服务。这种服务需要大量的处理能力来处理密码学计算。矿工的目的是保持底层区块链的一致性、完整性和不可更改性。矿工重复验证并将广播的交易收集到称为区块的交易组中。使用 SHA-256 算法(安全哈希算法 256 位哈希),每个新区块都包含前一个区块的密码学哈希值,从而建立链接以形成区块链,因此得名区块链。

图 1. 数据区块如何“链接”在一起的示例
全球“危机”随着加密货币的兴起以及矿工们竞相赚取公平份额的数字货币,我们现在正面临一个困境——全球高端 PC 图形适配器短缺。即使是以前使用过的适配器,其转售价格也远高于全新盒装版本。但这是为什么呢?使用具有足够板载内存和专用处理能力的高端显卡,每天可以轻松产生几美元的加密货币收入。请记住,挖矿需要处理内存密集型算法。随着加密货币价格持续上涨(尽管速度很快),奖励给矿工的数字货币价值也在增加。图形适配器的短缺已成为现有矿工寻求扩大运营或新矿工进入这一领域的日益严重的瓶颈。希望显卡供应商能尽快解决这一短缺问题。
比较区块链技术存在多个加密货币交易平台。您可能会看到一些文章讨论比特币,并将这种货币与其他货币(如以太坊或莱特币)进行比较。最初,这些文章可能会导致对两种不同类型的数字货币之间的混淆:1) 加密货币和 2) 代币。需要记住的关键事项如下
比特币或莱特币或任何其他形式的加密货币都在积极与现有货币和黄金竞争,希望取代它们成为公认的全球货币形式。如前所述,该技术承诺一种不受监管且全球可访问的货币——一种无论地点如何都具有相同稳定价值的货币。这个概念肯定会吸引那些生活在货币不稳定的不稳定国家的人们。
那么以太坊呢?嗯,它交易的是代币。它基于合约的思想运作。以太坊是一个平台,允许其用户编写有条件的数字“智能合约”,显示永不删除的交易证明。
在现代世界中,传统书面合同将概述关系的条款,通常可由法律强制执行。智能合约将使用密码学代码来执行关系——也就是说,通过执行其创建者使用程序定义的条件。以太坊更令人感兴趣的是,与比特币(或莱特币)不同,该平台并不局限于货币用例。
与比特币非常相似,当利用一个或多个这些合约进行交易时,会收取交易费用以获取所需的计算能力。所需的计算能力越多,费用越高。
什么是区块链?要理解这种加密货币现象及其爆炸式增长的普及程度,您需要了解支持它的技术:区块链。如前所述,区块链由以区块形式捕获的不断增长的记录列表组成。使用密码学,每个新区块都链接到并安全地连接到现有的区块链。
每个区块都将包含指向链中前一个区块的哈希指针、时间戳和交易数据。通过设计,区块链可以抵抗任何类型的数据修改。这是因为区块链提供了一个开放且分布式的账本,可以有效、可靠且永久地记录两个相关方之间的交易。
一旦数据被记录,给定区块中的数据就无法更改,除非更改所有后续区块。
我想你可以将此视为一个分布式“数据库”,其内容在计算机网络中被复制数百甚至数千次。这种复制方法强调了该技术的去中心化方面。在没有中心化版本或单个“主”副本的情况下,此数据库是公开的,因此,可以轻松验证,而没有黑客攻击或损坏的风险或担忧。该数据库的内容由数百万个计算节点同时托管,互联网上的任何人都可以访问。作为额外的优势,分布式和去中心化模型向其用户保证不存在单点故障。想象一下,其中一个或多个计算节点无法访问或正在经历某种内部故障,甚至正在生成损坏的数据。区块链具有弹性,因为它将继续提供请求的数据内容,并以正确的(即未损坏的)格式提供。这是因为一种通常被称为拜占庭容错方法的技术。
拜占庭容错系统会发生故障,并且可能由于多种原因(例如硬件、软件、电源、网络连接等)而发生故障。这是一个事实。此外,并非所有故障都容易检测到(即使通过传统的容错机制),它们也并非总是以相同的方式出现在网络集群中的其余系统中。再次想象一个由数百甚至数千个节点组成的大型网络。为了处理这种不可预测的情况,必须采用投票系统来确保集群能够容忍故障或不当行为。
拜占庭故障被定义为任何向不同观察者(即分布式计算系统)展示不同类型症状的故障。拜占庭故障是由于拜占庭故障导致系统服务丢失,而拜占庭故障发生在必须达成共识才能执行一项服务或操作的环境中。
拜占庭容错 (BFT) 的目的是保护分布式平台免受此类拜占庭故障的影响。系统的故障组件不会阻止其余组件在它们之间达成协议,而达成协议是执行操作所必需的。BFT 系统的正确运行组件将继续提供不间断的服务,前提是不存在太多故障。
这种机制的名称源于拜占庭将军问题 (BGP)。BGP 突出了一个协议问题,即所有参与成员之间存在分歧。想象一下这样一种情况:拜占庭军队的几个师驻扎在一个坚固的城市外。每个师都有自己的将军,将军们相互沟通的唯一方式是通过信使。将军们需要就一个共同的行动计划做出决定。问题是,一些将军可能是而且很可能是叛徒。在他们中间有一个叛徒的情况下,非叛徒能否就一个共同的计划达成一致?
在 BFT 环境中,这个问题的答案是肯定的。在三人组中,一个叛徒使得不可能不达成多数共识。例如,如果一位将军说“进攻”,而另外两位将军说“撤退”,则很容易确定谁是该组的叛徒。也有可能在非叛徒之间达成某种协议。现在,将这个概念应用于分布式计算节点网络。例如,当 f 个节点发生拜占庭故障时,2f + 1 个节点将不会容忍这种不当行为。您只需要比潜在的故障节点多 1 个正常运行的节点。

图 2. 拜占庭将军问题图解
现在,我为什么要谈论这个?BFT 是区块链弹性的核心。如果无法达成共识来处理交易,那么区块链本身就没用了。
网络由计算节点组成的网络构成了区块链。节点在加入网络后立即获得区块链的相同副本。每个节点都被视为区块链的管理员,并且不再比集群内的其他节点具有更多控制权——同样,这是去中心化的结果。

图 3. 去中心化区块链网络示例
这种计算方法赋予了区块链其稳健性。除了更新区块链之外,每个节点都可以并且将独立于其他节点运行,无论它是如何被访问的。当它需要将新区块附加到链时,它会将更新广播到其余节点(更新公共账本)。
无论用户驱动的事件是什么,它都被认为是整个网络的功能。是全球网络管理应用程序,它将在用户到用户或点对点基础上运行。每个节点在被独立访问时,都负责确认请求的交易(例如挖矿)。如前所述,正是这个核心概念使区块链更加安全。区块链技术消除了数据集中保存(或管理)且未在网络中复制所带来的风险(和漏洞)。另一种思考方式是:您不再需要单个实体来验证交易,而是有多个实体在达成共识后验证交易。它们充当见证人,没有一个实体比另一个实体具有更多权威。这没有歧义的空间,如果一个或多个节点歪曲了原始数据,BFT 模型将解决这个问题。
几乎所有阅读本文的人都熟悉互联网上猖獗的持续安全问题。我们个人尝试通过依赖传统的“用户名”和“密码”系统来保护我们在网上的身份和资产。区块链在此基础上更进一步,它的安全性源于其对加密技术的使用。身份验证“问题”通过生成“密钥”来解决。用户将创建一个公钥(一个长且随机生成的数字字符串)和一个私钥(类似于密码)。公钥充当用户在区块链中的地址,任何涉及该地址的交易都将被记录为属于该地址。私钥使其所有者可以访问其数字资产。公钥和私钥的组合提供数字签名。这里唯一需要担心的是采取适当措施保护私钥。
将各个部分组合在一起到目前为止,您应该对所有这些组件如何联系在一起有一个更完整的了解。

图 4. 跨区块链网络的交易通用处理
例如,假设有一笔比特币交易(或者可能是完全不同的东西),但假设网络中的某人正在请求该交易。然后,此请求的交易将在计算节点的点对点网络中广播。使用密码学算法,节点网络验证用户的状态和交易。验证后,交易将与其他交易结合,为公共账本创建一个新的数据区块。然后,新的数据区块将附加到现有的区块链,并以使其永久且不可更改的方式完成。然后交易完成。使用时间戳方案,所有交易都将被序列化。
是什么让区块链如此重要?与 TCP/IP 非常相似,区块链是一项基础技术。正如 TCP/IP 在 1990 年代实现了互联网一样,您可以期待区块链带来美好的新开端。现在预测它将如何发展还为时过早。这项革命性技术使组织能够探索它对其业务的意义和将来的意义。许多相同的组织已经开始探索,尽管它主要集中在金融服务领域。可能性是巨大的,似乎任何处理任何类型的基于交易的模型的行业都将受到该技术的颠覆。
总结本文介绍了加密货币的兴起和人们对加密货币的兴趣,并开始深入探讨支持它的底层区块链技术。在本系列的下一部分中,我将使用开源工具,开始描述如何构建您自己的私有区块链网络。这种私有部署将使您能够更深入地了解此处强调的细节。该技术今天可能以加密货币为中心,但我也将关注区块链可以帮助重新定义的各个行业以及利用该技术实现有希望的未来的潜力。