区块链 101
自 2008 年成立以来,区块链一直是金融、技术和其他类似行业的热门话题。除了为记录保存和共识带来新的概览之外,区块链对大多数行业都有巨大的颠覆潜力。早期采用者、爱好者以及现在的政府和组织都在探索区块链技术的用途。
在本书中,我们将讨论使用法定货币创建我们自己的基于以太令牌的加密货币的金融交易的基础,并且,在这样做的过程中,我们将尝试涵盖围绕区块链的大多数主题。我们将讨论基于以太坊的区块链,超分类帐项目,钱包,备用硬币,以及其他理解区块链的功能和潜力所必需的激动人心的话题。
在本章中,我们将讨论以下内容:
- 金融交易
- 财务分类账
- P2P 网络
- 区块链的一般要素
- 区块链的用途和益处
- 各种类型的区块链
- 引入共识系统
- 区块链网络面临的挑战
让我们从讨论前面列出的每个主题以及围绕它们的其他重要细节开始。
处理金融交易
在我们深入研究区块链交易之前,了解金融交易实际上是如何发生的以及法定货币的功能是有帮助的。
法定货币完全建立在经济信用的基础上;根据定义,它是政府宣布的法定货币。没有政府的担保,法定货币一文不值。
另一种货币是商品货币。它来源于制造好货币的商品。例如,如果制造了一枚银币,硬币的价值将是它以银表示的价值,而不是硬币的定义价值。与物物交换体系相比,商品货币是一种方便的贸易形式。但是容易出现价格的巨大波动。
商品货币被证明是很难携带的,因此,相反,政府推出了印刷货币,可以从政府银行兑换实际商品,但后来,即使是这样,政府也很难管理,它推出了法定货币,或信仰货币。
基于法定货币的货币在当时招致了很多第三方的一致意见;这将有助于从系统中根除欺诈。还需要有一个严格的共识过程,以确保该过程以及隐私在系统内得到维护。下图描述了基于信用卡的付款流程:
基于信用卡的支付过程以及需要多个第三方参考点来维护信任。
分类帐
分类账是经济交易的记录,包括现金、应收账款、存货、固定资产、应付账款、应计费用、债务、权益、收入、成本、薪水、工资、费用、折旧等等。简而言之,记录账目的账簿被称为分类账。这是银行和其他金融机构用来调节账面余额的主要记录。在一个会计期间,所有的借项和贷项都被计算以使分类账平衡。
银行、金融机构和企业的财务报表都是使用分类账户编制的。
无信任系统的概念
在使用法定货币进行金融交易时,我们有一个第三方分类账来维护每笔交易的信息。这些第三方信任系统包括 VISA、MasterCard、银行等等。
区块链通过让每个人都成为账本的一部分,改变了这个不可信系统的格局。因此,它有时甚至被称为分布式分类账;每个在区块链进行交易的人都有在区块链比特币系统中已经发生或正在发生的其他交易的记录。这种分散式分类账为已经发生的每笔交易提供了多个真实性点;此外,规则是预先定义的,每个钱包用户都一样。
进一步说,区块链实际上并没有消除信任;它的作用是最小化信任量,并在网络中平均分配。使用基于所遵循的规则自动鼓励顾客的各种规则来定义特定的协议。我们将在后面的章节中深入讨论这一点。
介绍区块链
比特币的创始人或一群创始人中本聪在 2008 年发布的白皮书将比特币描述为纯粹的点对点版本的电子现金。区块链是和比特币一起引入的。在最初阶段,区块链只能与比特币一起用于基于比特币的金融交易。
区块链不仅限制比特币的金融交易,而且通常限制由开放、去中心化的账本维护的双方之间的任何交易。最重要的是,这种基础技术可以被分离出来,并可以让其他应用程序在相同的实验和项目数量上产生激增。
许多受区块链启发的项目开始了,如以太坊、超级账本等,还有莱特币、命名币、Swiftcoin 等货币。
区块链的核心是一个分布式和去中心化的开放账本,它以密码方式管理和更新其同行之间的各种共识协议和协议。人们可以在没有任何第三方参与的情况下使用交易来交换价值,维护总帐的权力分布在区块链或区块链节点的所有参与者之间,使其成为真正分布式和去中心化的系统。
使用区块链的一些垂直行业如下:
- 加密货币:比特币就是最好的例子。除此之外,还有各种可供选择的加密货币,如以太币、莱特币、对等币等等。
- 网络安全:有各种各样的公司和项目利用区块链的分布式特性来创建供大众使用的特殊认证协议。
- 医疗保健:可扩展性是区块链最好的催化剂之一;许多项目都在安全地存储数据,并使用分析得出完美的解决方案。提供分散的患者记录和认证已经在各种机构中使用。
- 金融服务:许多保险和金融机构正在使用区块链来维护大量的银行数据,如财务记录、分类账、担保、债券等等。
- 制造:供应链、原型和概念验证,以及货物的跟踪和追踪,都在以最高的效率利用区块链。
- 治理:许多政府都在努力成为世界上第一个由区块链掌权的政府。大多数政府部门都在使用区块链,而不仅限于公共安全、运输、卫生和航运。
- 零售:很多创业公司和项目都旨在引入开放的无中间人生态系统;一些公司正在开发忠诚度系统和区块链衍生的礼品卡系统。
- 媒体:唱片公司可以利用区块链来保护他们的所有权网络和知识产权的安全。
- 旅行:项目正在进行中,以引入和革新车辆租赁、拼车和其他与旅行相关的查询。
- 法律:区块链可以带来透明度,并解决日益复杂的法律系统中的规模问题。
此外,我们将讨论区块链的各种其他因素以及区块链能够解决的其他问题。
区块链的一般元素
现在是讨论区块链的一般元素的时候了,从它的基本结构开始到它的形成和同样的进一步细节。
对等网络
这是一种网络类型,通过这种网络,所有对等体可以相互通信,并享有同等权利,而不需要服务器或主机的集中协调。在传统网络中,系统连接到中央服务器,该服务器充当系统间通信的中心点。另一方面,在对等网络中,所有系统均匀地相互连接,没有系统具有中央权威。请看这张图表:
客户端到服务器网络和对等网络之间的图形差异
街区
一个块是区块链的最小元素;第一块被称为创世块。每个块包含成批的散列和编码事务。这些块以 Merkle 树的形式存储。每个块都包括将所有块相互链接的链中的前一个块的散列。在比特币中,一个区块平均包含 500 多笔交易。块的平均大小约为 1 MB。一个块由一个标题和一个事务列表组成。
块标题
比特币中的块的块头由关于该块的元数据组成。请考虑以下情况:
- 比特币版本:该字段包含比特币版本号。
- 前一个块散列:需要前一个块的散列来创建新块的散列。
- Merkle root :这是当前块事务的 Merkle 树的根的散列。
- 时间戳:这是 UNIX 中该块的时间戳。
- 挖掘难度:挖掘是比特币区块链生态系统中至关重要的一部分。挖矿有难度目标,表头有提到。
- Nonce :区块链在每个区块中添加偏差;这些被称为现时。请看这张图表:
块头的形成以及 Merkle 根和 Merkle 树由什么组成
地址
地址是区块链交易中使用的唯一标识符,用于将数据发送到另一个地址;就比特币而言,地址是用于发送或接收比特币的标识符。比特币区块链地址一直在不断演变。最初,IP 地址被用作比特币地址,但这种方法容易出现严重的安全缺陷;因此,决定使用 P2PKH 作为标准格式。P2PKH 地址由 34 个字符组成,第一个字符是整数 1。从字面上看, P2PKH 的意思是支付给公钥 Has 。这是一个基于 P2PKH 的比特币地址的例子:1 pnjry 6 F8 p 7 eakjjuejiluczabrygejxxg。
现在,有另一种先进的比特币协议来创建一个 P2SH 地址,这意味着支付给脚本哈希。P2SH 地址的一个主要区别是它总是从整数 3 开始,而不是从 1 开始。
钱包
钱包是一种数字钱包,用于存储公钥或私钥以及交易地址。有各种类型的钱包,每一种都提供一定程度的安全和隐私。
以下是基于功能的各种钱包列表:
- 软件:这个钱包安装在实际电脑上;私钥由安装了钱包软件的机器的所有者访问。
- 网络钱包:这些钱包基于云,可以在任何地方访问。私钥与钱包服务共享。
- 纸钱包:这个钱包的私钥是印在纸上的。
- 硬件:这些是实体钱包,体积小,便于携带。每个钱包的硬件用户都有私钥。
了解各种钱包的功能和需求以及对每种钱包的要求非常重要。
交易
事务是将数据从区块链的一个地址传输到另一个地址的过程。在比特币中,就是把比特币从一个地址转移到另一个地址。在区块链发生的所有交易从链的开始到当前时间都被登记;该信息在网络和所有 P2P 节点之间共享。交易得到了矿工的确认,他们的工作得到了经济补偿。
区块链中的每笔交易都要经过多次确认,因为它们是交易的共识。没有确认,任何交易都不能生效。
节点
节点是区块链网络的一部分,执行分配给它们的功能。任何连接到比特币网络的设备都可以被称为一个节点。作为网络组成部分并验证区块链所有规则的节点被称为完全节点。另一种类型的节点被称为超级节点,它充当高度连接的重新分发点,以及中继站。
区块链解决了什么问题?
区块链执行各种功能。我们将在这里简要讨论它们,稍后详细讨论:
- 安全性:由于其一致的结构和多个故障恢复点,出现故障的可能性极小。它的分布式特性提供了更好的安全性和可靠性。
- 更快的结算:传统的银行协议非常耗时,并产生相当大的外汇费用;另一方面,基于区块链的比特币提供了近乎即时的速度,为整个金融业节省了时间和成本。
- 透明:本质上是去中心化的,不需要第三方,因为每个人都可以用钱包分享区块链,这使它成为一个透明的信任系统。
- 经济:没有第三方,账本大家共享,意味着没有管理费用和审计费用。
下图描述了集中式、分散式和分布式网络之间的区别:
由于是分布式的,区块链提供了许多开箱即用的特性,比如高稳定性、安全性、可伸缩性以及前面讨论过的其他特性。
区块链的类型
考虑到区块链的演变方式,我们可以将区块链分为多种类型;这些类型定义了区块链的过程,并使其超越了 P2P 资金的使用。下图显示了目前可用或建议的不同类型的区块链网络。
我们现在将详细讨论每种类型的区块链网络。
公共区块链
公共区块链是一个区块链,世界上的任何人都可以成为交易过程中的一个节点。加密验证的经济激励可能存在,也可能不存在。这是一个完全开放的公共分类账系统。公共区块链也可以叫做无权限账本。
这些区块链由密码经济学保护,即使用诸如 PoW 或 PoS 或任何其他共识机制的经济激励和密码验证。这种类型的区块链的一些流行的例子是比特币、以太坊、莱特币等等。
半私立区块链
半私有区块链通常由一个组织或一组个人运营,他们向任何用户授予访问权限,这些用户可以是直接消费者,也可以是内部组织用户。这种类型的区块链有一个面向普通观众的公共部分,任何人都可以参与。
二等兵区块链
在私有区块链中,写权限属于一个组织或某个个人组。读取权限是公共的,或者仅限于大量用户。这种类型的区块链中的交易将由系统中非常少的节点来验证。
私营区块链的一些主要例子包括 Gem 健康网络、Corda 等。
block chain consortium(块链联盟)
顾名思义,在这种类型的区块链中,共识权力被限制在一组人或节点中。它也可以被称为许可私人区块链。由于节点更少,交易批准时间更快。在这些类型的区块链,采矿得不到经济回报。
以财团为基础的区块链的几个例子是德意志交易所和 R3(金融机构)。
拜占庭将军问题
这是各种计算机网络面临的经典问题之一,直到最近还没有具体的解决方案。这个问题叫做拜占庭将军的问题 ( BGP )。问题的根源在于共识,这是由于网络节点之间的不信任。
让我们想象一下,各种各样的将军带领着拜占庭军队,正计划进攻一座城市,每个将军都有自己的营。他们必须同时进攻才能赢。问题是,一个或多个将军可能会不忠,传达杜平的信息。因此,必须有一种方法来找到一个有效的解决方案,有助于无缝通信,即使是与欺骗性的将军。
这个问题由 Castro 和 Liskov 解决,他们提出了实用拜占庭容错 ( PBFT )算法。后来,在 2009 年,通过开发 PoW 作为一个系统以达成共识,随着比特币的发明,第一次实现了实际应用。
我们将在后面的章节中详细讨论 BGP。
共识;一致
共识是区块链内节点间达成一致的过程。有各种算法可用于此,尤其是当它是分布式网络并且需要对单个值达成一致时。
共识机制:每个区块链都必须有一个能够处理网络中各种节点的机制。区块链达成共识的一些主要机制如下:
- 工作证明 ( PoW ):这是最常用的共识机制,也是有史以来第一种加密货币比特币所使用的。这种算法已经证明对 Sybil 攻击是最成功的。
- 这使得那些拥有最高数量加密货币的人更容易开采新区块。
- 委托利益证明 ( DPOS )它与 POS 相比的一个小变化是,每一个有利益关系的节点都可以通过投票的方式将交易的有效性委托给其他节点。
- 重要性的证明 ( POI )这是为了节能而设计的,也可以在相对不太强大的机器上运行。它依靠赌注以及代币的使用和移动来建立信任和重要性。
- 耗时证明 ( 诗人)这是英特尔创造的区块链算法,利用可信执行环境 ( TEE )在投票过程中使用有保证的等待时间,具有随机性和安全性。
- 烧录证明 ( PoB )这主要用于从一种加密货币引导到另一种加密货币。基本概念是矿工要证明自己烧过硬币,也就是把硬币送到了一个可验证的不可描述的地址。
- 活动证明 ( PoA ):在这种情况下,从整个网络中随机选择一个对等体来签署必须防篡改的新块。
所有先前的算法和大量已经可用或当前正在研究的算法确保实现完美的一致状态,并且在网络上不存在任何可能的安全威胁。
简而言之,区块链
是时候讨论区块链技术所面临的优势、挑战或限制,以及整个社区正在采取的措施了。
利益
如果一切都是关于信任和安全,那么我们真的需要一个可信的系统吗,即使一切都已经高度安全和私密了?让我们来看看区块链最适合的现有生态系统的局限性。
银行记录
银行部门的记录保存和分类账维护是一个耗时耗力的过程,并且仍然容易出错。在目前的制度下,在一个国家内转移资金很容易,但当我们不得不跨境转移资金时,面临的主要问题是时间和高成本。
即使大多数钱只是数据库中的一个条目,它仍然会产生很高的外汇成本,而且速度慢得令人难以置信。
医病案
在全球范围内的记录保存、认证和记录转移方面存在许多问题,即使在拥有电子记录之后,在实际实施时也是困难的。由于没有共同的第三方,许多记录都是以物理方式维护的,很容易损坏或丢失。
在流行病学案例中,访问和挖掘与特定地理位置相关的患者的医疗记录变得至关重要。在这种情况下,区块链是一个福音,因为医疗记录如果存储在区块链,可以很容易地访问,而且对于所需的用户来说,它们也是安全和隐私的。
政府记录
任何政府机构都必须处理其所有部门的大量记录;新的归档可以在区块链进行,确保数据在分布式系统中永远安全可靠。
数据存储的这种透明性和分布式特性导致了无腐败系统,因为共识确保了区块链中的参与者在需要时使用所需的标准。
创意和版权记录
版权和创作记录可以得到保护和认证,保持对版权滥用和许可的标签。
这方面的一个主要例子是 KodakCoin,这是一种基于区块链的面向摄影师的加密货币,用于支付授权拍摄照片的费用。
大学学位记录
验证、认证和检查是困难的。它很容易被偷窃和误用。区块链可以提供一个很好的半私人记录访问,确保学位的签署是使用区块链数字完成的。
逐步记录学位和分数将有利于资源的有效利用以及适当的分配和检查过程的简化。
除了比特币和替代加密货币之外,上述只是区块链的一些不同使用案例。在接下来的章节中,我们将更详细地讨论这些问题。
挑战
与任何技术一样,区块链技术存在各种挑战和局限性。重要的是要解决这些挑战,并为所有人提供一个更强大、更可靠、更灵活的解决方案。让我们简要讨论一下这些挑战及其解决方案。
复杂性
区块链理解复杂,实现简单。
然而,随着广泛的认识和讨论,这在未来可能会变得更容易。
网络可扩展性
如果区块链没有一个具有良好节点网格的健壮网络,将很难维护区块链并为正在进行的事务提供明确的一致意见。
速度和成本
虽然基于区块链的交易速度非常快,并且与任何其他传统方法相比也更便宜,但是这有时变得很困难,并且速度随着每个块的交易数量的减少而降低。
就成本而言,需要大量的硬件,这又导致了巨大的网络成本,并且需要节点间的间歇性网络。
社区已经提出了各种扩展解决方案。最好是增加块的大小,以实现每个块更大的事务数,或者动态块大小的系统。除此之外,还有各种其他的解决方案来保持速度的降低和成本的控制。
双重支出
这是对区块链网络的一种攻击,通过这种攻击,给定的一组硬币在不止一次交易中被花费;比特币的创始人在推出时提到的一个问题是 51 次攻击。在这种情况下,如果某个矿工或一群矿工控制了区块链一半以上的计算能力,由于本质上是开放的,任何人都可以成为节点的一部分;这引发了 51 攻击,在这种攻击中,由于对网络的多数控制,该人可以确认错误的交易,导致同一枚硬币被花了两次。
实现这一点的另一种方法是在区块链网络中快速连续地进行两个冲突的交易,但是如果实现了许多确认,那么这是可以避免的。
在接下来的章节中,我们将讨论各种其他功能,应该注意的是,所有这些功能都存在于当前的系统中,但是考虑到社区的积极支持,所有这些限制都在快速减少。
摘要
这一章向我们介绍了区块链。首先,讨论了关于分布式网络、金融交易和 P2P 网络的想法。然后,我们讨论了区块链的历史和其他各种话题,如区块链元素,区块链的类型,以及共识。
在接下来的章节中,我们将更详细地讨论区块链;我们将讨论区块链背后的机制,比特币。我们还将更详细地了解如何达成共识,并深入研究基于区块链的应用程序,如钱包、以太坊、Hyperledger,直至创建您自己的加密货币。