区块链基础知识25讲(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-23 08:43:09

点击下载

作者:(英) 丹尼尔·德雷舍(Daniel Drescher)

出版社:人民邮电出版社有限公司

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

区块链基础知识25讲

区块链基础知识25讲试读:

开始

硕士课程的学习,并且创办了一家与初创企业共同在以太坊平台上开发应用程序的咨询公司。对分布式账本技术的热情,让他现在成了一位以太坊开发者和推广者。前言

在前言中,作者会回答一些最重要的问题:为什么每个人都要看这本书?说得更具体些,为什么每个人都需要看这本关于区块链的书?通过阅读前言,你会知道写本书的原因、能从中获得哪些知识以及本书的大致章节结构。

为什么又是一本关于区块链的书?

区块链获得了公众和媒体的大量关注,一些极客宣称区块链是自互联网诞生以来最伟大的发明。因此,在过去几年中,已有大量关于区块链的书籍出版。但是,当想要学习更多区块链的知识时,你会发现自己很容易就迷失在知识的海洋中,这些书有的快速掠过技术细节,有的在很深的层面讨论重要的技术内容。前者没有仔细解释技术细节,不能使读者充分理解区块链;后者假设读者已经拥有了丰富的区块链基础知识,这两者都无法使人满意。

前一类书是纯粹讨论区块链底层技术的,后一类则更像是经管类书籍,主要关心具体的区块链应用和其对经济的影响。本书填补了这两类书籍中间的空白。

理解区块链技术的基础概念对于理解其具体应用、评估初创企业的业务前景和参与区块链对未来经济影响的讨论是十分必要的。没有对重要概念的理解,便无法评估区块链总体的价值和影响力,也无法理解具体区块链应用的价值。本书聚焦在区块链涉及的重要概念上,因为若缺乏对技术概念的理解,将削弱对新技术的深刻认识,也将因不切实际的期待而感到失望。

本书以通俗易懂的形式介绍了区块链的概念,努力做到简明、全面,书中阐述了介绍新技术时一定会被问到的三大问题:这项新技术是什么,为什么我们需要它,它将如何改变我们的生活。

你无法从这本书里获得的知识

本书刻意忽略了与区块链应用相关的内容,侧重于对区块链技术的介绍和解释,不会聚焦在具体的区块链应用案例上,因此,本书不包括以下内容。

● 关于比特币和其他“加密货币”的介绍。

● 关于具体区块链应用的介绍。

● 关于区块链数学证明的内容。

● 关于区块链编程的内容。

● 与区块链相关的法律条款。

但是,在读过本书后,你会在一定程度上获得对以上问题的理解。

你可以从本书中获得的知识

本书解释了区块链相关的一些基础概念,比如交易、哈希值、非对称加密、数据结构、点对点系统、系统完备性和分布式共识算法,并将基于以下4个前提对这些概念进行解释。

● 对话的形式。

● 不涉及数学证明,也没有公式。

● 逐步深入。

● 使用类比的介绍方法。

对话的形式

为了易于读者阅读理解,本书刻意用对话的形式写作,且不使用数学和计算机术语。但是,本书介绍和解释了一些参加区块链讨论和理解其他区块链出版物时必要的术语。

不涉及数学证明,也没有公式

区块链的主要组成部分,比如共识机制和挖矿算法,都是基于复杂的数学公式建立起来的,这也是区块链技术的难点所在。但是,为了去除任何不必要的复杂性,避免给读者带来阅读困难,本书将不使用数学符号和公式。

逐步深入

书里各讲的内容构成了理解区块链的基础知识框架,每一讲都精心设计,涵盖了软件工程的基础内容,解释了相关术语,同时指出我们需要区块链的原因,也解释了组成区块链的独立概念之间的关系。本书各讲相互独立且逐渐深入,它们组成了一个理解区块链的完整知识体系。

使用类比的介绍方法

每一讲会介绍一个新概念,所有新概念都参考现实生活中的实例,使用形象化的方式进行讲解。这些类比能够达到4个主要目的:第一,它们可为读者接触一个全新的技术概念做好准备;第二,将技术概念与易于理解的现实生活实例联系在一起,减少读者探究新领域的困难;第三,类比是学习新概念的理想方式;第四,类比的形式可让记忆新概念更加容易。

本书是如何组织的

本书包含五大部分的内容,共分25讲,给出了区块链学习的基础知识框架。这些章节涵盖了软件工程的基础内容,解释了相关术语,指出我们需要区块链的原因,也解释了组成区块链的独立概念之间的关系,还涉及区块链应用和相关领域内的一些研究成果。

第1部分 区块链术语与技术基础

第1讲到第3讲解释了与区块链相关的主要概念,以及后续内容中需要掌握的其他概念。第3讲结束时,你将对区块链的整个底层概念有一个总体的认知,并且能从更宏观的角度看待区块链。

第2部分 为什么这个世界需要区块链

第4讲到第7讲主要解释为什么需要区块链,它解决了什么问题,为什么要解决这些问题,以及区块链的潜在价值是什么。第7讲结束时,你将了解区块链能够解决的问题有哪些,它在哪些领域最具应用价值,以及为什么我们需要它。

第3部分 区块链如何工作

第3部分是本书的核心,解释了区块链的工作原理。第8讲到第21讲介绍了与区块链相关的15个技术概念。第21讲结束时,你将理解区块链的主要概念,以及它们之间是如何相互协作的。

第4部分 区块链的局限以及如何克服这些局限

第22讲到第23讲将聚焦于区块链的局限性,以及造成这些局限的原因,并提出一些可能克服这些局限性的方法。第23讲结束时,你将理解最初的区块链应用为什么不适用于更大规模的商业活动,为了克服这些局限需做哪些改进,以及这些改进如何提升区块链的性能。

第5部分 如何使用区块链,区块链技术的总结及展望

第24讲和第25讲介绍了如何在现实生活中使用区块链,如何选择区块链应用,以及区块链技术能够解决什么问题。这一部分还包括了区块链领域目前的热门研究方向和未来发展趋势等内容。第25讲结束时,你将对区块链有全面的理解,还将为阅读相关技术文章做好准备,并会成为未来区块链讨论中的积极参与者。第1部分 区块链术语与技术基础

这一部分介绍了软件系统的主要概念,并建立了一整套术语体系。另外,还介绍了软件架构的概念,并解释了其与区块链之间的联系。通过本部分最后一讲的内容,你将可认识到区块链存在的意义及其潜力。第1讲 理解分层的概念

从分层与架构的角度了解软件系统

这是本书的第1讲,它将是我们后续了解和学习区块链的基础。我会通过这一讲介绍本书中对技术概念的阐释规范。这一讲中你将学习如何分析一个软件系统,以及认识到将软件看作分层集合来分析的重要性。另外,你将了解通过分析一个软件系统中的不同分层能获得什么,以及这种分析方式如何帮助我们理解区块链。最后,我会简要介绍软件系统完备性的概念,并强调其重要性。

隐喻

你有手机吗?我相信回答是“有”,而且很多人还不止一个。那么你对使用手机收发数据的过程中用到的各类无线网络协议了解多少?你对移动通信的基础——电磁波的了解又有多少?

我们中的大多数人对这些问题的细节知之甚少,因为使用手机并不需要你知道这些,并且大多数人都没有时间去学习这些知识。我们在主观上将手机分成两部分,一部分我们需要知道,另一部分我们想当然地选择了忽视。

这种对待技术的态度并不只出现在对待手机上。我们会用同样的态度去对待电视机、计算机以及洗衣机等产品。而因为每个人的经历不同,使用相关产品的目标和体验也就不同,这种主观上的区分是高度个体化且独立的,因此,我和你对手机的主观划分或多或少都有所不同。当我尝试向你解释对于一台手机你需要了解什么、不需要了解什么的时候,这种差别在沟通中会更为显而易见。所以,当学习和讨论新技术时,我们首先需要对技术系统进行统一的划分。

本讲会介绍如何对一个软件系统进行划分,并建立我们接下来对区块链进行学习讨论的基础。

软件系统的分层

在本书中,我们使用两种方法来对软件系统进行分割。

● 应用层与实现层。

● 功能性与非功能性。

应用层与实现层

主观上对系统按照用户需求和内在技术原理进行划分,其实是在区分应用层与实现层。应用层中的所有内容都是从用户需求出发的(比如想要听音乐,想要拍照片,想要订酒店)。实现层中的一切都是使得这些需求落地实现的内容(比如,将电信号转变成模拟信号,在数码相机中识别一个像素的颜色,或者将信息通过互联网传给一个预设的系统)。实现层中的所有内容本质上都是技术性的,并且都会被当作达到目标的方法。

功能性与非功能性

考虑一个系统能够做什么和这个系统做得怎么样是有区别的,这就是对系统做功能性和非功能性划分的基础。

功能性特征的例子包括通过网络发送数据、播放音乐、拍摄照片和修改图片中一个特定的像素。非功能性特征的例子包括一个好看的可视化用户界面,快速运行的软件,以及安全、私密地保存用户数据的能力。对于一个软件系统而言,安全性与完备性这两类非功能性特征非常重要。完备性指的是如何设计系统的运行规则,并让系统具备诸如安全性和正确性等很多特征。我们可以通过英语中对语法的使用来帮助你理解功能性和非功能性特征之间的区别:动词描述了动作或已经完成的行为,而副词描述了一个动作是如何被完成的。举个例子,一个人能够快步走或慢步走。无论快慢,走这个动作是一样的,而这个动作的表现是有区别的。按照这样的理解,你可以认为功能性特征和动词相似,而非功能性特征和副词相似。

同时使用两种划分标准

对于一个软件系统,我们可以在识别其技术性特征与非技术性特征的同时识别应用层与实现层。表1-1是一个对手机同时使用两种划分方法的示例。表1-1 对手机同时使用两种划分方法的示例

表1-1可以解释一个系统中不同组成部分对用户的主观可见性。应用层的功能性特征是系统中最抢眼的部分,因为它们满足了用户的明确需求,这些部分一般来说就是用户愿意学习并深入了解的。另一方面,实现层的非功能性特征很少会被视作系统的主要组成部分,而且它们往往会被人们忽视掉。

完备性

完备性在任何软件系统中都是重要的非功能性特征,它往往包含以下3个方面的内容。

● 数据完备性:软件系统中的数据要完整、正确且无冲突。

● 行为完备性:软件系统要可顺利运行,并且保证不存在逻辑错误。

● 安全性:软件系统只对认证用户授权有限的数据访问与使用功能。

很重要的一点是,几乎每个人都认为任何一个软件系统都应该具有如上所述的完备性,而忽略了在软件系统背后付出巨大时间和精力的软件工程师,并且只有在软件系统出现各类问题时,才会意识到完备性的重要性。因此,当意识到软件工程师们为了高度完备性所做出的努力时,我们会有种被宠坏的感觉。但是当使用的系统出现问题时,我们的感觉就完全不同了。当你遇到数据丢失,或发现陌生人可以访问你的数据时,你会感觉非常不好。而当手机、计算机、电子邮箱、Word或Execl出问题让你感到生气时,你会忘记自己的好脾气!在这些情景中,我们开始意识到软件完备性是多么重要。因此,我们就不需要诧异为什么如此多的专家会把大量的时间和努力花费在实现层中这些看着不起眼的非功能性特征上了。

下一讲展望

本讲对软件工程的基础知识进行了介绍,其中我们重点学习了软件系统的完备性、功能性特征与非功能性特征,以及应用层与实现层的划分等知识。理解这些概念会帮助你意识到区块链所处的巨大舞台。下一讲我们会使用本讲中介绍的概念去对区块链系统进行分析。

本讲小结

● 软件系统可以通过如下划分来进一步进行分析。▶ 应用层与实现层。▶ 功能性特征与非功能性特征。

● 应用层关注用户的需求,实现层则关注如何满足这些需求。

● 功能性特征关注实现了什么,非功能性特征关注这些东西实现得怎么样。

● 大多数用户关注软件系统应用层的功能性特征,而很少关注其中的非功能性特征,特别是实现层的非功能性特征。

● 对于任何软件系统而言,完备性都是一个很重要的非功能性特征,它包括有3个方面的内容:▶ 数据完备性。▶ 行为完备性。▶ 安全性。

● 大多数软件错误,比如数据丢失,或被陌生人访问了用户数据,都是系统缺乏完备性导致的。第2讲 纵观全局

区块链与软件架构

本讲将描绘区块链技术所处软件系统的大环境,同时也将重点指出区块链在该大环境中的位置。首先,为了让你理解这一大环境,我会介绍软件架构的概念,并解释软件架构与系统分层之间的联系。然后,为了介绍区块链在大环境中的位置,我们会详细解释区块链与不同软件架构的关系。最后,我们会用一句话讲明白区块链的核心作用。理解区块链的作用是成功理解区块链的基础,也是我们接下来所介绍内容的基础。

隐喻

你买过车吗?即使没有买过车,你大概也知道一辆车可以配置不同的发动机(依靠油、天然气或者电来驱动)。如果我们对汽车进行分层拆分,可以将汽车的发动机看作一个模块。选配不同类型的发动机会给汽车带来巨大的差别,两辆外观相同的汽车会因为配置了不同的发动机而带来极为不同的驾驶体验。同时你对汽车发动机的选择会显著影响汽车的售价、保养开销、所用燃料、排气系统以及刹车系统。

在脑中记住发动机与车的关系,接下来就能更容易地理解区块链在整个软件系统中的位置与意义了。

一个支付系统

让我们将分层的概念应用到一个支付系统中,表2-1中列出了支付系统的功能性特征与非功能性特征,以及该系统的应用层与实现层。表2-1 一个支付系统的分层与架构

注意到表中的那个问号了吗?我故意留空白,之后需要你在里面填写实现各类功能并且确保系统正常运行的技术方案,这个空供你来选择在这套支付系统中使用怎样的“发动机”。在下一个部分,我们会开始接触软件系统中的“发动机设计方案”。

两种软件系统

实现一个软件系统有很多种方法,其中首先要决定的是该系统的各个模块之间如何互相关联,即需要决定采用什么样的基础架构。现代软件系统主要采用两种架构:中心化架构与去中心化架构。

在一个中心化系统中,一个中心模块连接了其他所有的模块。对应地,一个去中心化的系统中没有任何一个中心节点可进行节点间的协调与控制。

图2-1形象地描绘了这两类架构。图中的每个圆圈代表了系统的一个模块,也称之为“节点”,圆圈之间的线表示了两个模块之间的联系。现在我们还不需要深究这些模块如何工作,以及它们之间如何交换信息,只需要先理解这两种系统架构的组成方式。

图2-1的左半部分是一个去中心化的系统,其中的各个节点彼此相连,没有一个中心节点同时连接所有其余的节点。而在右半部分的中心化系统中,除了中心节点之外的节点都不和其余节点直接相连,它们只与中心节点直接相连。图2-1 去中心化系统架构 (左)与中心化系统架构(右)

去中心化系统的优势

建立在多台计算机之上的去中心化系统主要具有如下优势。

● 更强的计算能力。

● 更低的成本。

● 更高的可靠性。

● 自增长的能力。

更强的计算能力

一个去中心化系统的计算能力表现为系统中所有互联计算机的计算能力之和。因此,去中心化系统可以拥有比中心化系统更强大的计算能力。事实证明,就算去中心化系统中使用了计算能力不强的计算机,也可以拥有超过独立的超级计算机的计算能力。

更低的成本

在过去20年中,配置一台计算机所需要的内存、硬盘与网卡等硬件的价格大幅下降。虽然看起来组建一个去中心化系统需要大量的计算机,系统的初始搭建成本较高。然而一台超级计算机的搭建、维护与运营成本会远远高于相同计算能力的去中心化系统。特别地,相对于更换超级计算机的一个模块,更换一个去中心化系统中的节点计算机对系统的影响与开销几乎可以忽略不计。

更高的可靠性

去中心化系统中即使一个节点计算机宕机,整个系统依旧可以照常工作,这个特性为去中心化系统带来了更高的可靠性。当一个节点宕机时,其余节点可以接管该节点的工作,而相比之下一台超级计算机的可靠性就相形见绌了。

自增长的能力

一个去中心化系统的计算能力是其所有组成节点的计算能力之和。通过向系统中加入新的计算机,去中心化系统的计算能力能够得到进一步的提升,这就意味着一个组织良好的去中心化系统可以不断增加自己的计算能力,这个特性满足了大量的组织与公司的需求。对于单独的计算机而言,要获得更强的计算能力,只能更换CPU,或者索性买一台新的计算机。

去中心化系统的劣势

去中心化系统具有以下的一些劣势。

● 节点间的协调。

● 节点间的冗余通信。

● 对网络的过度依赖。

● 系统编程的较高复杂度。

● 安全问题。

节点间的协调

去中心化系统没有中心节点来协调其中的所有成员,因此系统的协作需要其中的成员节点自己来完成。去中心化系统中的协作具有不小的难度,并且在协调过程中会产生额外的开销,并占用一定的计算资源。这些开销与计算资源不能被直接用在系统的计算任务上。

节点间的冗余通信

节点间的协作需要通过通信交流来完成,因此去中心化系统中的成员节点需要和其他的节点频繁进行通信。这就需要在完善且可靠的通信协议的基础上发送、接收并处理消息,这些过程会产生额外的开销,并占用一定的计算资源。这些开销与计算资源也不能被直接用在系统的计算任务上。

对网络的过度依赖

任何形式的通信都需要媒介,媒介为节点间的整个通信过程负责。去中心化系统中的成员节点需要不停地互相通信,这个通信过程依靠网络作为媒介。由于各类通信网络均存在各自的局限性,因此对网络的选择与依赖会影响整个去中心化系统。但是,如果没有网络就不会有通信,也就不会有协作,更不会有去中心化系统的存在。因此,一个去中心化系统对网络具有很强的依赖性。

系统编程的较高复杂度

我们通过编写程序或软件来解决各类问题。由于前面提到的3个劣势,任何一个运行在去中心化系统上的软件都需要解决额外的问题(节点间协调、通信,以及对网络产生依赖),这就带来了较高的编程复杂度。

安全问题

任何计算任务都需要直接在网络上进行通信协调与数据传递。不同的网络对安全有不同的标准。因此,通过任何网络传递数据与信息都存在可靠性的问题。而一个去中心化系统的特征决定了这个系统需要更加注重系统的安全性。系统对成员节点使用网络的权限限制越大,这个去中心化系统就越安全可靠。

去中心化的点对点网络系统

点对点网络是一种特殊的去中心化系统,该系统由很多台计算机组成,每一台计算机在没有任何中心节点的情况下向系统中的其他计算机直接提供相关的资源(包括计算能力、存储空间、数据服务和网络带宽)。网络中的每台计算机都作为一个节点,这些节点在系统中扮演相同的角色,拥有相同的权利。对于整个点对点网络而言,其中的任意一个节点既是系统资源的提供者,也是系统资源的使用者。

点对点网络系统在诸如文件分享、内容分发、隐私保护等方面都有一些很有趣的应用,其中大多数利用了一个简单而强大的想法:将网络的使用者同时转变成网络的构建者。这个做法最终导致了使用这些软件的人越多,这个软件背后的系统就越庞大,资源也就越丰富。在接下来的其他几讲中,我们会进一步讨论这个想法本身、它带来的后果,以及它面临的挑战。

具有中心化与去中心化优势的混合系统

中心化与去中心化是系统架构设计中的南北极。在实际应用中,工程师经常受到互相对立的两个技术方案的启发,从而创造出继承两者优点的混合系统。

工程师们设计出两种原型来结合中心化与去中心化系统的架构,我们需要理解这两种原型方案,因为在现实世界中的区块链应用会用到这两种混合架构设计方法。这两种架构分别是:拥有中心节点的去中心化系统和去中心化系统作为中心节点的中心化系统。图2-2 混合去中心化架构与去中心化系统作为中心节点的中心化架构

图2-2展示了以上两种系统的基本结构。左边展示的是一个拥有中心节点的去中心化系统的架构图,第一眼看上去这个系统像是一个去中心化系统,节点之间具有互相的直接关联。但是仔细看一下会发现,所有的小圆圈均与中间的大圆圈相连,因此这个系统表面上看起来是一个去中心化的系统,实际上是一个中心化系统。

右边展示的是一个完全相反的系统架构,该系统第一眼看起来是一个中心化系统,每一个外围的圆圈都和中间的大圆圈相连。但是事实上,中间的大圆圈包含了一个去中心化的子系统,外围的所有圆圈可能都无法感知到中间的圆圈内实际上是一个去中心化的系统。

这两种混合架构系统有一个共同点:难以定义它们的本质是中心化的还是去中心化的。看起来并不需要给它们特殊的名字加以分辨,但是我们有必要指出它们的双重特质。这之所以重要是因为这些系统内在的中心化或去中心化本质有时候是很难分辨的。稍后当我们讨论区块链的商业化时,会重新回到这个话题上。

识别去中心化系统

混合架构的出现,使得我们有时候很难分辨系统是不是去中心化的。给出一个通用的对于去中心化系统的定义超出了本书的讨论范围,但是了解什么是去中心化系统,以及去中心化系统和其他类型的软件系统的区别,对于理解本书接下来的内容而言非常重要。如果你对于一个系统属于中心化系统还是去中心化系统心存疑虑,那么我教你一招:在系统中尝试寻找是否有一个组成部分(数据库、用户等级、登入/登出模块或是紧急停止按钮)可以直接关闭这个系统。如果你找到了,那么说明这个系统不是去中心化的。

█ 备注:如果存在一个这样的单独节点,比如其有一个单独的关闭按钮可以切断整个系统,那么这个系统就不是去中心化的。

区块链的作用

当设计一个系统时,我们像选择汽车用哪一种发动机一样,可以决定选择采用哪种系统架构,同时架构的选择可以与功能特征和应用层无关。这就意味着从满足同一个应用层的需求来看,我们可以选择中心化系统,也可以选择去中心化的系统,两个选择在最后的实现阶段意味着两种实现方法。因此,对于一开始在表2-1中提到的支付系统而言,我们既可以用去中心化系统架构,也可以用中心化系统架构。

两种系统架构的设计理念都有各自独特的满足需求的方式,也都有各自的优缺点。对系统架构的选择会直接影响你达成系统功能需求的具体实现方法。特别地,这两种系统在确保完备性上拥有完全不同的方式,而这就是区块链引起人们注意的关键点:区块链是去中心化系统中用来实现并确保系统完备性的工具(可以将其看作在系统的实现层上满足非功能性特征的工具)。

█ 备注:区块链的用途是实现且保持去中心化系统的完备性。

下一讲展望

在一个去中心化系统中实现并确保完备性非常复杂,并且其原理了解起来可能会有些无聊。但是,如果我们关注到去中心化系统会做什么,以及它们会取代哪些中心化系统,那么很多人都会感到兴奋。下一讲我会介绍一种改变了世界的点对点系统,并且开始帮你理解为什么实现和确保去中心化系统完备性的区块链技术已经具备了改变世界的潜力。

本讲小结

● 软件系统的架构决定了其中的节点计算机如何被组织,以及如何与其他计算机连接。

● 中心化和去中心化的软件系统可以看作系统架构的南北极。

● 分布式系统由许多独立的计算机组成,它们通过使用通信介质相互协作,以实现特定的目标,且没有任何计算机能控制整个系统。

● 根据经验,可以指出只要有一个单一的组件可能导致整个系统崩溃,那么不管系统的架构多么复杂,它都不是去中心化的。

● 区块链是去中心化软件系统实现层的一部分。

● 区块链的意义在于确保去中心化软件系统中一个特殊的非功能性特征:实现并维护系统的完备性。第3讲 认识去中心化的潜力

为何点对点系统可能改变世界

本讲通过介绍特定类型的点对点分布式系统,来加深你对于区块链价值的理解。因此,本讲将有助于你了解为什么技术极客和商业机构对区块链如此感兴趣。本讲还将指出区块链未来会产生极大价值的主要应用领域。此外,还会讨论点对点系统在现实世界中的应用及其产生的影响。

隐喻

你还能记得上一次在商店中购买CD是什么时候吗?现在大多数人已经很久没有购买过一张实体CD了,因为音乐行业经历了巨大的变化。如今,人们从音乐门户网站下载各种歌曲,在朋友之间分享MP3文件,或在移动设备上使用音乐类APP,而不是购买CD。这种变化开始于一种软件的出现,它允许人们彼此分享他们的音乐文件。这种软件有什么特别之处呢?以下是该软件的一个发明者对其的评价:

这个系统里面最有意思的事情是,你是在和其他人交互,你可以和街上的任意一个人互换信息。——肖恩·范宁,Napster联合创始人

范宁和他的同事发明了一个用于分享音乐文件的点对点系统。早在20世纪90年代末,这款软件就将音乐产业带入了一个新纪元。本讲将会解释Napster的出现、CD销量的下降以及音乐产业出现戏剧性变化这些事件和区块链之间的关系。

点对点系统是如何改变整个音乐产业的

音乐产业以下面的方式运行了很长时间:音乐家与唱片公司签订合同,录制歌曲,制作各种载体(如黑胶唱片、磁带或CD)的音乐产品,通过各种分销渠道(包括百货公司和专卖店)向客户销售。唱片公司实际上是音乐家和喜欢听音乐迷之间的中间人。唱片公司在制作、营销和发行方面具有独特的知识和技能,可以保证其作为中间人的角色不可被去除。 然而,在21世纪的头10年,唱片公司的生存环境发生了巨大的变化。

音乐产品数字化、用廉价设备录制音乐的可行性、个人计算机的普及以及互联网的出现,使得唱片公司变得越来越不必要。唱片公司的制作、销售和发行3个功能可以由艺术家和消费者自己完成。Napster在改变唱片公司作为中间人的地位方面发挥了重要作用。通过使用Napster,人们不再依赖唱片公司获得最新的音乐资源,并可以与世界各地的人分享自己的音乐文件,而无须购买任何CD。Napster的点对点的架构方式,实际上创建了一个音乐文件的分享集市。它使消费者能够获得比以往任何时候更丰富的音乐产品,也使得唱片公司开始变得不被需要,并给它们造成了极大的经济损失。

点对点系统的潜力

Napster的出现告诉我们,点对点系统有可能根据一个简单的想法重塑整个行业:通过点对点的直接互动来取代中间人。在音乐产业中,作为艺术家和消费者之间中间人的传统唱片公司及其营销和分销渠道已被点对点文件共享系统替代。而唱片公司如此容易受到点对点系统替代的主要原因是音乐产品可数字化的本质,以及互联网上复制和传输数据的低成本特征。

点对点系统的应用并不局限于音乐产业,每一个在数字资源的生产者和消费者之间扮演中间人角色的传统产业里的公司都容易被点对点系统取代。这个观点可能听起来有点抽象,但是如果仔细观察你身边的诸多无形的数字商品和服务的中间商,你将发现其中最大的一个:金融行业。

你的银行账户、信用卡或借记卡里面有真的钱吗?很久以前你拥有的钱已经变成了无形的数字记录和字节数据,只有少量的货币以实物纸币和硬币的形式存在。世界上绝大多数的钱都以无形的电子数据的方式存在于金融行业的中心化信息技术系统中。银行和金融业的许多其他“玩家”只是生产者和消费者之间的中间人,它们使用无形的电子数据记录构建了我们的资产和财富。借款、借贷或从一个账户转账到另一个账户的行为只是通过中间人将账户资产进行转移而已。而令人惊奇的是有多少中间人参与了这一看似简单的交易(例如,从一个银行账户转账到另一个国家的另一个银行账户会涉及多达5个中间人,这些中间人都会收取手续费,并且都需要各自处理交易的时间)。因此,有时候向另一个国家的银行账户转账可能会涉及很长的处理时间,以及高昂的交易费用。在点对点系统中,相同的交易将会简单得多,并且花费更少的时间和手续费,因为它可以被处理为:直接在两个对等节点之间传送电子数据。

点对点系统相对于中心化系统的优势在于其直接在交易双方之间进行交互,而不通过中间人,因此处理时间更短,成本也更低。

点对点系统的优势并不限于转账,几乎所有虚拟商品和服务的生产者和客户之间的中间商都易受到点对点系统的替代。随着数字化的发展,将会出现越来越多虚拟化的商品和服务,它们都将受益于点对点系统效率的提升。点对点系统的倡导者认为,我们生活的各个方面几乎都将受到数字化技术和点对点系统的影响,如支付、储蓄、贷款、保险、出生证明、驾驶证、护照、身份证、教育证书、专利和劳动合同。它们中的大多数已经以数字化的形式存在于夹在提供者和消费者之间的机构的中心化系统中了。

█ 备注:去除中间人也被称为“脱媒现象”,其对很多商业公司来说构成了严重的威胁。因为这些公司存在的基础是能在不同人群之间成为主要的中介,例如在买家和卖家、借贷者和放贷者或生产者和消费者之间。

术语介绍以及其与区块链之间的联系

现在你已经了解到点对点系统的潜力,那么我们有必要对一些术语加以定义,并解释其与区块链之间的联系。我们将着重探讨以下3点。

● 点对点系统的定义。

● 点对点系统的架构。

● 点对点系统和区块链之间的联系。

点对点系统的定义

点对点系统是由若干节点(个人计算机)组成的分布式软件系统,系统中单一节点的计算资源(例如CPU处理能力、存储容量)可直接被其他节点调用。当加入点对点系统时,用户按照其权限和角色将其计算机转换为系统的节点。尽管用户对系统贡献的资源可能有所不同,但系统中的所有节点具有相同的功能和责任。因此,所有用户的计算机都是资源的供应者和消费者。

例如,在点对点文件共享系统中,各个文件均存储在各个用户的计算机上。当有人想在这样的系统中下载文件时,他直接从另一个人的计算机上下载即可,这个人可能是隔壁的邻居或世界上任何的其他人。

点对点系统的架构

点对点系统是分布式计算机系统,它们由共享计算资源的各个节点组成。然而,还有一些仍然利用中心化设计思想的点对点系统。中心化系统通过维护中心节点以促进系统成员之间的交互,同时维护描述不同节点提供的服务目录,或执行节点的查找和标识等任务。中心化点对点系统通常使用图2-2左侧所示的混合架构,这种架构集合了中心化系统和去中心化系统的优点。另一方面,完全分布式的点对点系统没有中央节点进行控制或协调,因而系统中的所有节点都执行相同的任务,既作为资源和服务的提供者,也同样是消费者。

中心化点对点系统的一个例子是Napster,它维护着与系统连接的所有节点上可用歌曲的中央数据库。

点对点系统和区块链之间的关系

如第2讲所述,区块链可被认为是实现和维护分布式系统完备性的工具。完全分布式的点对点系统可使用区块链技术来实现和维护系统的完备性。

区块链的潜力

完全去中心化点对点系统和区块链之间的联系是,后者为前者提供了实现并维护完备性的工具。完全去中心化的点对点系统具有极大的商业潜力,因为它们可以取代中心化系统下靠信息中介建立起来的商业模式。既然完全去中心化点对点系统可以使用区块链来实现并维护完备性,区块链就变得非常重要了。而真正主要的原因是,当我们为去中心化的产业模式感到无比兴奋的时候,会发现区块链是能够帮助我们实现目标的唯一手段。

█ 备注:区块链令人着迷的地方在于,在完全去中心化的点对点系统中,它是能保持系统完备性的工具,而且因为“脱媒现象”的存在,其就具有了改变各个行业的潜力。

下一讲展望

本讲阐明了什么是点对点系统,强调了因其去中心化特质而具备的改变各个行业的潜力。除此之外,本讲还指出由于区块链具备使去中心化点对点系统达成完备性的能力,故其同样具有巨大的潜力。然而,为何实现并确保完备性对于去中心化系统如此重要这一问题并未被回答。下一讲我们将会就这个问题进行深入讨论。

本讲小结

● 点对点系统由计算机组成,这些计算机将计算资源直接开放给系统中的其他成员。

● 点对点系统的优势是它们允许成员不通过中间人直接进行交互。

● 使用点对点系统取代中间人能够加快信息的处理速度,降低成本。

● 点对点系统可以是中心化的,也可以是完全去中心化的。

● 完全去中心化的点对点系统组建了一个成员完全平等的网络,其成员可以不通过中心化的协调直接进行两两间的交互。

● Napster通过它的文件共享系统将传统的音乐产业带入了新时代,展现了点对点系统的强大力量。

● 任何在虚拟资产的生产者和消费者之间充当中间人的公司都很容易被点对点系统取代。

● 金融系统中的很大一部分公司是在资产的提供者和消费者之间充当着一个简单的中间人角色。因此,数字化和点对点系统可能会像Napster重塑音乐产业一样重塑金融行业。

● 随着数字化的发展,越来越多的虚拟化商品和服务将受益于点对点系统的效率提升。

● 区块链能够为完全去中心化点对点系统的实现和维护提供完备性,而完全去中心化的点对点系统有能力改变所有有中间商参与的行业。第2部分 为什么这个世界需要区块链

这一部分我们会解释区块链旨在解决什么问题,以及这个问题有多么重要。我们需要你对区块链所能解决问题的背景以及该问题与信任和诚信的联系具有一定的了解。在本部分的最后,你会对区块链存在的价值有一个更为深入的理解,并且会对区块链本身产生不同的理解。第4讲 发现核心问题

面对像羊群一样各自独立的计算机集群,牧羊犬在哪里

前几讲我们指出了区块链的作用,并且强调了在一个完全分布式点对点系统中区块链的重要性:在一个分布式系统中确保系统的完备性。但是,为什么在一个分布式系统,或一个特殊的点对点系统中确保系统的完备性那么重要而困难呢?在本讲中,我们会探讨完全去中心化点对点系统的完备性与信任之间的关系这个问题。对以上问题的理解取决于你对完备性的重要程度的理解,以及是否能意识到区块链所解决的这个核心问题。最后,我们会介绍区块链能为其带来极大价值的一些行业。

隐喻

在很多语言中,都会用成语或短语描绘这样的一个场景:一个人试图协调组织纷乱的人群。比如在英语中会用“尝试去组织一群猫”来描述管理一群倔强而特立独行的动物是一个多么巨大的挑战。在一个完全去中心化的点对点系统中,我们也会遇到类似的问题,而管理的对象此时变为一台台独立工作的计算机,它们没有中心化的控制方来进行协调。接下来我们来看这个去中心化的点对点系统面临的主要问题,以及区块链和这些问题的关系。

点对点系统中的信任与完备性

信任与完备性是一枚硬币的两面。放在软件系统当中,完备性是对一个系统的非功能性特征的描述:安全、完整、持久、正确,并且不会失控和产生错误。而信任则引申至人类之间对可靠,真相以及对一些事或人无理由的相信。信任往往建立在早期,并且会受到合作行为的影响而发生变化。

在一个点对点系统中,这意味着人们如果相信这个点对点系统,并且这个系统运作的结果增强了他们的信任,他们就会进一步进入这个系统,并且持续给这个系统作出贡献。整个点对点系统通过系统的完备性来满足用户的预期,并且增强他们对系统的信任。如果因为系统缺乏完备性使得用户没有对这个点对点系统增加信任,那么用户就会抛弃这个系统,进而使得这个系统走向终结。意识到信任对点对点系统的重要性之后,核心的问题就变成了:我们如何在一个完全去中心的点对点系统中提供并确保完备性?

满足并确保一个完全去中心化系统的完备性,需要具备很多条件,其中最重要的为以下两个。

● 了解系统中的节点数目。

● 了解节点的可信任程度。

如果我们知道一个点对点系统的节点数目,并且知道它们的可信任程度,那么就更有可能去满足并确保系统的完备性。然而,现实的去中心化点对点系统中,我们只能面临一个最糟的情况:我们不知道系统的节点数目,更不知道节点的可信任程度,但是我们又需要把它开放给所有人。

点对点系统中的完备性威胁

为了简化起见,我们列举了两个主要的点对点系统的完备性威胁:

● 技术性故障。

● 恶意节点。

技术性故障

点对点系统是由网络中互相连接的独立计算机组成的,任何一台计算机的任意一个硬件(或核心软件),或这个系统所依赖的网络都有发生故障的风险。因此,一个分布式系统必须面对节点故障或系统运行错误所带来的风险。

恶意节点

恶意节点是点对点系统所面临的第二大完备性威胁,这类威胁不是技术问题,但是可能比技术问题更难以处理:有人出于私利而剥削整个系统,或占据这个系统中的主要资源。有人认为这类问题更像是一个社会问题,或者说是人类组织问题。不可信节点与恶意节点构成了点对点系统面临的最大威胁,因为它们在破坏这个系统的基石:信任。一旦用户无法信任他们的连接方,他们就会不信任这个系统,并转而离开。

区块链如何解决以上列出的这些核心问题

在一切正常的情况下,满足并确保完备性是容易做到的,真正的挑战在于能于最坏的情况下依然保证系统的高可靠性,也就是说真正的挑战发生在面对最差情况时,而这就是区块链要解决的问题。通过使用区块链技术,一个不知道内部节点数量,也不知道各节点可信度的点对点系统,也可以实现并确保整个系统的完备性。在计算机科学领域,这是一个由来已久的问题:拜占庭将军问题。有兴趣的读者可以进一步了解一下该问题。

█ 备注:人们要解决的问题是,通过使用区块链技术,让一个不知道内部节点数量,也不知道节点可信度的点对点系统也可以实现并确保整个系统的完备性。

下一讲展望

本讲中我们强调了点对点系统中完备性与信任的重要性,并指出区块链所解决的核心问题,强调了在现实世界的去中心化点对点系统中,确保完备性与可靠性的重要性与困难程度。

下一讲我们会给出区块链更进一步的完整定义。

本讲小结

● 完备性与信任是点对点系统设计者应该主要考虑的事情。

● 如果人们信任一个点对点系统,就会加入进来并持续作出贡献;而如果从系统中得到的正确反馈持续得到保证,则会进一步加强这种信任感。

● 一旦人们对一个点对点系统失去信任,他们会放弃它,从而最后导致系统的终结。

● 点对点系统完备性的主要威胁是:▶ 技术性故障。▶ 恶意节点。

● 在点对点系统中实现完备性取决于:▶ 对节点数量的了解。▶ 对节点可信度的了解。

● 对于由未知信任度的陌生节点组成的完全去中心化点对点系统而言,区块链解决的核心问题就是实现并确保系统的完备性。第5讲 消除术语的歧义

定义区块链的4种方法

在上一讲中,我们了解了区块链的主要功能,并尝试去理解信任和完备性与软件系统之间的关系,但是对于“区块链”这个术语,你可能还缺乏一个明确的定义。

接下来的内容中,我们会给出一个区块链的临时定义,并且会在接下来的介绍中不断完善这个定义来辅助你进行学习。并且在本讲内容的最后,我们会阐明,为什么对所有权的管理是一个意义非凡的区块链应用场景。

术语

在接下来对“区块链”的讨论中,“区块链”这个术语会有以下几种含义。

● 作为一种数据结构的名称。

● 作为一种算法的名称。

● 作为一个完整技术方案的名称。

● 作为普通应用场景下完全去中心化点对点系统的一个概括性术语。

一种数据结构

在计算机科学和软件工程学中,依据数据内部包含的信息对数据进行整理组织的方法称之为数据结构。我们可以将数据结构类比为建筑学中一栋建筑物的平面设计图。在一个平面设计图中,会把空间按照使用功能划分成墙壁、楼板以及楼梯等组件。当“区块链”作为一种数据结构被使用时,其指代将数据整合进入一个个“区块”当中。可以把“区块”这个概念称为一本书当中的一页,而一个个区块互相之间连接起来像一个链条一般,因此称为区块链。

在一本书中,每一页都包含了特定的信息,而一本书中所有的内容被存放在不同的页中,而不是存放在一个单独的大页之上。同时,书中的每一页都通过页码来确定自己的位置,并且与前后的页连接起来。

我们可以通过检查一本书当中页码的连续性来判断是否存在丢失的页,同时,这种连续性也意味着每一页上的信息之间也是具有一定顺序的。

而回到“区块链”的概念中,数据“区块”形成的链状数据结构是通过一个特殊的编码系统来实现的,这个编码系统与一本书籍当中页码的编写方法类似,但要复杂得多。

一种算法

在软件工程中,我们称算法为让计算机完成的一系列逻辑指令,这些指令经常包含数据结构的信息。当我们把“区块链”作为一种算法来考虑时,指的是在一个完全去中心化的点对点系统中,将大量特定数据结构的数据妥善协调组织在一起的算法,类似于一种完美的民主投票方法。

一个完整的技术方案

当我们把“区块链”作为一个完整的技术方案提出来的时候,“区块链”指的就是将区块链数据结构、区块链算法、密码学以及安全技术综合在一起,来确保完全去中心化点对点系统完备性的一个完整技术方案。

在普通应用场景下完全去中心化点对点系统的一个概括性术语“区块链”这个术语同时可以被看作利用区块链技术方案实现完全去中心化点对点分布式账本系统的方法。记住在这种情况下,“区块链”指的是一个完全的去中心化系统,而不是一个完全去中心化系统的一部分。

我们该如何使用“区块链”这一术语

在接下来的学习中,我们使用上面提到的第4种定义,即将“区块链”看作一个利用区块链技术方案,实现完全去中心化点对点分布式账本系统的方法。对于之前提到的其他3个术语的使用场景,我们会直接使用“区块链数据结构”“区块链算法”或“区块链技术方案”等表述方式。

█ 备注:现在我们所接触到的区块链是中本聪于2008年在论文中第一次提出的,而直到现在中本聪的真实身份仍是个谜。

临时定义

接下来的这个定义对区块链来说是个完整的,仍然有一些很重要的细节还没有展现出来。这个不完整的定义仍旧是一个很好的协助你完整理解区块链的中间步骤。“区块链是一个完全分布式的点对点账本系统,其利用一个特殊算法,实现对区块内信息生成顺序的协调,并使用加密技术对区块数据进行连接,从而确保了系统的完备性。”

所有权管理

上面的临时定义并未提及对比特币或“加密货币”所有权的管理,这看起来会有些奇怪,毕竟大量的文章和书籍都把区块链的用途描述为管理数字资产的所有权。

事实上,管理“加密货币”的所有权是一个意义非凡的区块链使用场景,但绝对不是唯一的使用场景。区块链具有非常丰富多样的应用场景。为什么如今我们会主要讨论区块链在“加密货币”所有权管理方面的应用呢?主要有两个原因:

● 理解起来最简单,解释起来最容易。

● 这个使用场景会对经济产生巨大影响。

所有权以及强制执行所有权的权利,是人类社会核心理念的重要组成部分。而在现代社会中,银行、保险公司、律师事务所、法院等机构的工作人员日常的大量工作,就是在管理所有权,或确保所有权可得到强制执行。因此,所有权管理是一个万亿级的市场,并且任何一个将会改变我们管理所有权方式的技术革新,都会对这个市场造成深远的影响。而区块链诞生之后人们发现,其能够彻底改变我们管理所有权的方式。

我们接下来会深入分析区块链的应用领域

把“区块链”作为一个完整技术方案用来管理完全去中心化的分布式账本,能够衍生出很多独特的应用,比如管理数字资产或“加密货币”。我们不会只局限于对一个特殊的使用场景进行深入讨论而使你偏离了最核心的概念,因此我们会介绍其他的应用场景,但为了让你能够更容易理解区块链,我们选择了涉及所有权管理的应用案例来进行介绍。希望能够帮助你打开思路,从而更全面地理解区块链。

下一讲展望

本讲中我们阐明了“区块链”的4种定义方式,并给出了一个临时性的定义来帮助你更好地理解区块链。接下来我们会把区块链带入所有权管理的应用案例中,同时也会仔细讨论这类应用场景下的一些细节。因为对所有权的更深入的理解,会帮助你认识到区块链在其中能发挥的作用,所以下一讲我们会对区块链在所有权管理领域的应用进行详细解释。

本讲小结

● 区块链这一术语是多义的,在不同的语境中对于不同的人,它可代表不同的含义。

● 区块链可以指代:▶ 一种数据结构。▶ 一种算法。▶ 一个完整的技术方案。▶ 一类完全去中心化的点对点系统。

● 管理和区分所有权是区块链一个极好的应用场景,但并不是唯一的一个。

● 区块链是一个完全分布式的点对点账本系统,其利用一个特殊算法实现对区块内信息生成顺序的协调,并使用加密技术对区块数据进行连接,从而确保了系统的完备性。第6讲 理解所有权的本质

我们为何知道我们拥有什么

在上一讲中我们给出了“区块链”的一个初步定义,并指出了为什么对所有权的管理会被认为是区块链最重要的应用场景。本讲中,我们会对这个话题进行深入探讨,并且会解释所有权管理与一个完全去中心化点对点系统和完备性之间的关系。另外,还会提供一些对所有权本质的洞悉,并介绍基本的系统安全知识。

隐喻

想象如下一些场景。你在家把苹果装到包中作为午餐。在去办公室的路上,你决定去一家超市买三明治和可乐。结完账你打开包将买的东西放入其中。此时超市的工作人员发现你的包中有一个苹果,此种苹果刚好在超市有售。

你觉得此时超市的工作人员会怎么想?他很有可能会误认为这个苹果是你从店内偷窃的!如果更不幸的是这个超市在苹果售卖柜台刚好没有安装监控探头或指派工作人员,而且你又是此时店内唯一的一个顾客,那么怎么证明这个苹果不是你从店内偷窃的呢?

所有权和见证人

你是否想过究竟是什么使得你成为一些东西的所有者?如果你刚读过我们上面讲到的故事,那此时此刻,你很可能正在思考这个问题!所以是什么让你成为你包中苹果的所有者呢?如何证明这个苹果不是从店内偷窃的呢?或者想象一下你站在法庭里为自己的苹果偷窃案件辩护,该如何证明自己是这个苹果的所有者呢?

我们知道,如果没有人证明你偷了这个苹果,那么就足够证明你是无辜的。但是,摆脱一个窃贼的指控并不意味着对所有权的证明,那么接下来让我们再度将问题聚焦到证明所有权上。

如果有人能够证明你在去超市之前就买了这个苹果,一切问题就都迎刃而解了对吗?很幸运,你刚好记得你买这个苹果的水果店,并且卖你苹果的店员愿意为你证明。但是你低估了公诉人,他在交叉验证环节向你的证人提出了一串尖锐的问题:他是否能准确证明他曾卖给你一些苹果?他是否能准确识别在你包里发现的苹果就是他卖给你的苹果?他是否能够证明你就是买了这个苹果的那个人?如果以上都可以证明,那么为何他能记得如此清楚?是不是你贿赂了他,让他来证明你的清白?

现在我们可以很清楚地认识到一个基本原则:能够有一个证人是一件好事,但是同时拥有多位互相独立的证人是向公诉人证明你清白的关键。

上面这点非常重要:有越多的独立见证人能够证明同一件事,这件事就越有可能是真实的。这一点也就是区块链的一个核心设计思想。

所有权的基础

我们将上一讲的内容提炼到一个更抽象的程度,一般证明所有权需要以下3个要素。

● 对所有者的证明。

● 对事物被拥有的证明。

● 提供一个所有者和事物之间的连接。

法庭上证人的证词囊括了上面的3个要素。从历史上讲,目击者经常是证明这3点的唯一信息来源,然而依赖目击者的口头陈述是很费时费力的。因此,这些基础信息会被依靠值得信赖的实体整理出的文档所证明。现在我们通过身份证、出身证明以及驾驶证去识别一个人,通过序列号、生产日期、产品证书或细节描述去区分不同的产品。这一类文件从它们生成之后就不会变化,因为对应的人和产品是不会变化的。

所有者和被所有事物之间的关联会象征性地通过一个账本进行记录,这个账本并不是从生成之后就一成不变的。每一次所有权的变更都会在账本中进行登记,一个过期了的账本会失去证实所有权的公信力。正因为这样,在我们的社会中围绕维护一个实时更新的账本,产生了很多相关的制度与机构,而所管理事物的价值越高,政府越有可能介入对应所属权账本的管理中来。在大多数情况下,任何人都可以访问账本,去鉴定所有权并且轻松证明所有权,这一点在任何国家都可以找到大量的例子。比如在英国,我们可以找到记录了房产、专利、交通工具、公司所属权的文件或账本。

图6-1描述了在设计一个管理所有权的软件系统时,需要囊括的不同的基础模块,以及它们之间的关系。图6-1 所有权的构成

在图6-1中,上层模块会比下层模块更加宽泛,下层的模块可以认为是对上层模块的具体实现。比如所有权的证明需要对所有者和财产的鉴定,以及明确二者之间的所属关系。要明确所有权就必须进行鉴定,并且需要通过检验去确定只有自由合法的人才可以使用对应的财产。最下面的5个方块代表着具体的实现层,比如密码和签名是用来实现授权与鉴定这两个基本功能的。账本可以看作关联所有者和他们财产的一个具体的实物实现。

浅谈安全

图6-1中主要提到了3个和安全相关的概念,我们需要稍稍展开来进行描述,因为它们在软件系统中的应用与在其他地方的应用有些不同。

● 身份认证。

● 鉴定。

● 授权。

三者的含义和相互关系,可以通过现实世界中的例子来加以说明。打个比方,你准备去超市买一瓶红酒,而超市不允许向未成年人出售含酒精饮料。那么超市如何确定他们只向正确的人群出售了酒呢?他们通过身份认证、鉴定以及授权这3个步骤来实现。接下来我们会做进一步的介绍。

身份认证

身份认证指的是通过提供可以作为标识符的相关信息来确认使用者的身份。在买酒的例子中,你可以提供一个身份证,但是身份认证并无法证明你就是你说的这个人,也无法证明你已经成年,身份认证只是意味着申明你是某一个人。

鉴定

鉴定的目的是为了阻止有人冒充他人。鉴定就意味着要核实你的确是你声称的这个人。这个鉴定过程可以通过提供一些能证明你身份信息的事物来进行,比如身份证或驾驶证。在这个过程中很重要的一点是,你所提供的对你身份的证明信息必须具备一些和你相关的独一无的东西,如照片、指纹等。在买酒的例子中,可以出示包含了你照片的驾驶证,通过比对你和驾驶证上的照片可以完成鉴定工作。对驾驶证上照片的检查是为了防止出现驾驶证被盗用的情况。

授权

授权意味着根据对应人的身份特征准许其访问特定资源或使用特定服务。授权产生于一次成功的鉴定,以及对其所拥有权利的准确评估。在买酒的例子中,授权意味着在检查过你驾驶证上的出生日期之

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载