一、区块链的技术要素
(一)区块与链
从技术角度看,区块链是一种利用去中心化和去信任的方式集体维护一本数据簿的可靠性的技术方案。该方案要让参与系统中的任意多个节点,通过一串使用密码学方法相关联产生的数据块(block)的每个数据中都包含了一定时间内的系统全部信息交流的数据,并生成数据指纹用于验证其信息的有效性和链接下一个数据库块。首先来看基于公有区块链讲解的两张图:
在图1中存在一个中心机构O,所有的节点要参与交易必须通过中心机构O来达成交易。
图1 区块链原理介绍1
这里的中心机构O扮演了两个身份,一个是维护者的身份,即维护交易账目正常达成且真实可靠;另外一个是特权参与者的身份,即发行货币(资产)的权利。
如果我们要去中心化,那么我们应该如何做?
第一是去掉维护者这个身份,如何去掉它又能保证交易正常完成且真实可靠呢?首先,在区块链上我们只记录交易本身,而不是记录每个人的账户余额。然后,大家一起记账,都写到一个账本(区块链)上,并且每个人都保留一份总账副本。
这个问题其实分两层,第一层是一个技术问题,并且已经有成熟的解决方案了,就是使用P2P技术(BT技术),大家都来同步分布式总账本,大家发送交易直接到节点,并且通过公私钥技术来验证节点;第二层是一个确认真实交易的问题,我们通过共识过程(consensus progress)来确认交易的有效性。目前有四种共识过程可以选择:工作量证明(POW)、权益证明(POS)、股份授权证明机制(DPOS)、验证池(POOL)。
第二是去掉特权参与者这个身份,如何去掉它又能保证资产的流通呢?这个问题也是一个核心问题。在公有链上,可以发行自己的虚拟货币,如bitcoin和litecoin。而在私有链的实现方式里,是将资产直接数字化,可以将对应的物理实体细分所有权发行。在图2中节点A直接发交易给节点D,所有节点一起确认并且验证交易的真实性,更新了公共总账以后,所有人再同步一下最新的总账。
图2 区块链原理介绍2
资料来源:https://www.zhihu.com/question/37290469/answer/79131321
这里我们将维护者的身份下放至每一个参与者手中,并且通过加密算法来保证交易真实可信,不需要对账,只需要维护一条总账就可以。
1. 区块
Header:链接到前面的块并且为区块链提供完整性
Body:包含验证了块创建过程中的比特币交易的记录
2. 链
链目前分为三类:
(1)公有区块链(public BlockChains)
公有区块链是指世界上任何个体或者团体都可以发送交易,且交易能够获得该区块链的有效确认,任何人都可以参与其共识过程。公有区块链是最早的区块链,也是(目前)应用最广泛的区块链,各大bitcoins系列的虚拟数字货币均基于公有区块链,世界上有且仅有一条该币种对应的区块链。
(2)联合(行业)区块链(consortium BlockChains)
联合(行业)区块链是指由某个群体内部指定多个预选的节点为记账人,每个块的生成由所有的预选节点共同决定(预选节点参与共识过程),其他接入节点可以参与交易,但不过问记账过程(本质上还是托管记账,只是变成分布式记账。预选节点的多少,如何决定每个块的记账者成为该区块链的主要风险点),其他任何人可以通过该区块链开放的API进行限定查询。
(3)私有区块链(private BlockChains)
私有区块链是指仅仅使用区块链的总账技术进行记账,可以是一个公司,也可以是个人,独享该区块链的写入权限,本链与其他的分布式存储方案没有太大区别。截至2015年底,保守的巨头(传统金融)都是想实验尝试私有区块链,而公链的应用例如比特币已经工业化,私链的应用产品还在摸索当中。
如何建立一个严谨数据库呢?区块链的办法是将数据库的结构进行创新。顾名思义,区块链就是区块加链的方式组合在一起,以这种方式形成的数据库就是我们所谓的区块数据库。区块链是系统内所有节点共享的交易数据库,这些节点基于价值交换协议参与到区块链的网络中来。
区块链是如何做到的呢?由于每一个区块的块头都包含了前一个区块的交易信息哈希值,这就使得从创始块(第一个区块)到当前区块连接在一起形成了一条长链。由于如果不知道前一区块的“交易缩影”值,就没办法生成当前区块,因此每个区块必定按时间顺序跟随在前一个区块之后。这种所有区块包含前一个区块引用的结构让现存的区块集合形成了一条数据长链。
“区块+链”的结构为我们提供了一个数据库的完整历史,从第一个区块开始,到最新产生的区块为止,区块链上存储了系统全部的历史数据;区块链为我们提供了数据库内每一笔数据的查找功能;区块链上的每一条交易数据,都可以通过区块链的结构追本溯源,一笔一笔进行验证;“区块+链+时间戳”是区块数据库的最大创新点,区块链数据库让全网的记录者在每一个区块中都盖上一个时间戳来记账,表示这个信息是这个时间写入的,形成了一个不可篡改、不可伪造的数据库。
(二)分散存储
分散存储是比特币的一个重要概念,它是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链技术是应用程序基础,它超越了货币本身,这些技术能促进智能交易、分布式股权发布和资产转移。在未来,区块链技术可能会给我们货币交易、资产和数据进行带来变革。
1. 分布式存储系统
将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
2. 集群文件系统
是指运行在多台计算机之上,相互之间通过某种方式通信,从而将集群内所有存储空间资源整合、虚拟化并对外提供文件访问服务的文件系统。其与NTFS、EXT等本地文件系统的目的不同,前者是为了扩展性,后者运行在单机环境,纯粹管理块和文件之间的映射以及文件属性。集群文件系统有很多种。
(1)按照对存储空间的访问方式分类
可分为共享存储型集群文件系统和分布式集群文件系统。前者是多台计算机识别到同样的存储空间,并相互协调共同管理其上的文件,又被称为共享文件系统;后者则是每台计算机各自提供自己的存储空间,并各自协调管理所有计算机节点中的文件。Veritas的VxFS/VCS、昆腾的Stornext、中科蓝鲸的BWFS、EMC的MPFS都属于共享存储型集群文件系统。而HDFS、Gluster、Ceph、Swift等互联网常用的大规模集群文件系统无一例外都属于分布式集群文件系统。分布式集群文件系统可扩展性更强,目前已知最大可扩展至10K节点。
(2)按照元数据的管理方式分类
可分为对称式集群文件系统和非对称式集群文件系统。前者每个节点的角色均等,共同管理文件元数据,节点间通过高速网络进行信息同步和互斥锁等操作,典型代表是Veritas的VCS;而非对称式集群文件系统中,有专门的一个或者多个节点负责管理元数据,其他节点需要频繁与元数据节点通信以获取最新的元数据,比如目录列表文件属性等,典型代表是HDFS、GFS、BWFS、Stornext等。对于集群文件系统,其可以是分布式+对称式、分布式+非对称式、共享式+对称式、共享式+非对称式,两两任意组合。
(3)按照文件访问方式分类
集群文件系统可分为串行访问式和并行访问式,后者又被俗称为并行文件系统。串行访问是指客户端只能从集群中的某个节点来访问集群内的文件资源,而并行访问则是指客户端可以直接从集群中任意一个或者多个节点同时收发数据,做到并行数据存取,加快速度。HDFS、GFS、pNFS等集群文件系统,都支持并行访问,需要安装专用客户端,传统的NFS/CIFS客户端不支持并行访问。
(三)共识机制
1. 工作量证明(POW)
就是大家熟悉的挖矿,通过与或运算计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其他节点验证后一起存储;工作量证明机制(POW)不难理解,很多情况下我们都使用POW,只是不自知而已。在不考虑验证的情况下(无论是中心化还是非中心化的验证),我们可以认为任何具有概率性事件的累计都是工作量证明,如淘金。假设矿石含金量为p%,当你得到一定量黄金时,我们可以认为你一定挖掘了1/p质量的矿石。而且得到黄金数量越多,这个证明越可靠。在一些其他场合我们也可以见到POW的踪影,比如电子游戏里的胜率、K/D比率,在大量的交战中一定的胜率能说明玩家的实力。同样有些游戏里的成就系统、装备体系也是POW,一般认为成就点数高的玩家在游戏里投入越多,越不容易诈骗,有时候交易点卡要求装备等级或者成就点数也是这个道理。因此,POW要求出示一定的证明表明工作量,证明可以是直接记录也可以是以概率表示,其中对于由小概率事件累计的工作,出示结果等同于证明了工作量(因为不太可能直接得到小概率结果)。在比特币和其他类比特币的系统中,POW系统是以合乎要求的HASH(哈希)作为工作结果。由于矿工要取得合法的计算结果需要一定量的计算,因此得到合法的计算结果就可以证明完成了一定量的计算。
优点:完全去中心化,节点自由进出。
缺点:目前比特币已经吸引全球大部分的算力,其他再用POW共识机制的区块链应用很难获得相同的算力来保障自身的安全;挖矿造成大量的资源浪费;共识达成的周期较长,不适合商业应用。
2. 权益证明(POS)
POS是POW的一种升级共识机制,根据每个节点所占代币的比例和时间,等比例地降低挖矿难度,从而加快找随机数的速度。POS(Proof Of Stake)就是“股权证明”,即直接证明你持有的份额。除了混合性的PPC之外,真正的POS币是没有挖矿过程的,也就是在创世区块内就写明了股权证明,之后的股权证明只能转让,不能挖矿。在现实世界中股权证明很普遍,最简单的就是股票。股票是用来记录股权的证明,同时代表着投票权和收益权。股票被创造出来以后,除了增发外,不能增加股权数量,要获得股票只能转让。在纯POS体系中,如NXT,没有挖矿过程,初始的股权分配已经固定,之后只是股权在交易者之中流转。股权从创世区块中流出,被交易者买卖而逐渐分散化。
优点:在一定程度上缩短了共识达成的时间。
缺点:还是需要挖矿,本质上没有解决商业应用的痛点。
3. 股份授权证明机制(DPOS)
DPOS是一种新的保障加密货币网络安全的算法。它在尝试解决比特币采用的传统工作量证明机制以及点点币和NXT所采用的股份证明机制的问题的同时,还能通过实施科技式的民主以抵消中心化所带来的负面效应。DPOS背后的基本原理是给持股人一把可以开启他们所持股份对应的表决权的钥匙,而不是给他们一把能挖矿的铲子。
DPOS的基本特点是持股人永远掌控大局,这样一来系统便是去中心化的。虽然投票的方式不够完美,但当涉及某事物(例如公司)的共同经营权时,这便是唯一可行的办法。幸运的是,如果你不喜欢公司的经营者,你可以抛售股份,而市场的反馈将促使持股人比一般群众更理性地进行投票。这样一来每一位持股人都能够选出某人,让他来代替持股人进行区块的签署(也可以称他为受托人)。任何能够获得超过1%选票的人都可以成为受托人,这些受托人便组成了“董事会”,并轮流签署区块。如果其中一位“董事”错过了签署该轮区块,客户端会自动将他的选票移走,因此错过签署区块的“董事们”将会被投出董事会,改由其他人加入。董事会成员会收到一些酬劳,以此作为他们进行竞选、担负风险、保证上线时间的工资。而他们也必须缴纳一小笔保证金,其金额相当于生产一个区块的收入的100倍。要能够达成盈利,一位董事(受托人)必须保证99%以上的在线时间。
优点:最大化持股人的盈利;最小化维护网络安全的费用;最大化网络的效能;最小化运行网络的成本(带宽、CPU等);大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。
缺点:整个共识机制还是依赖于代币,很多商业应用不需要代币存在。
4. 验证池(Pool)
基于传统的分布式一致性技术,加上数据验证机制,是目前行业链大范围在使用的共识机制。
优点:不需要代币也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础上,实现秒级共识验证。
缺点:去中心化程度不如比特币;更适合多方参与的多中心商业模式。
二、区块链的核心特点
(一)开放
比特币的本质是一个互相验证的公开记账系统。这个系统所做的事情,就是记录所有账户发生的所有交易。每个账号的每笔数额变化都会记录在全网总账本(区块链)中。而且每个人手上都有一份完整的账本,每个人都可以独立统计出比特币有史以来每个账号的所有账目,也能算出任意账号当前余额是多少。比特币客户端在使用时会进行大量的数据同步,它同步的就是全网总账本,这些数据保障了整个体系的去中心化和每个客户端的一切知情权。正是因为所有数据公开透明,而整个比特币软件也是开源的,任何人都可以去查看它的源代码,人们才会信任这套去中心化的系统,而不担心里面是否隐藏着什么阴谋。
开放交易的一个主要目的是将所有金融资产分散化,通过密码学加密所有的人都可以发布货币和各种金融资产。任何人都可以在开放的交易中创建数字标记,这些标记代表实际的价值。这个最具创新的特性是一旦某人发布了这个数字标记后,他就不能在全球账单中改变他们的货币或者股份。比特币交易中开放性的好处是无国界、跨境。跨国汇款会经过层层外汇管制机构,而且交易记录会被多方记录在案,但如果用比特币交易则直接输入数字地址,点一下鼠标,等待P2P网络确认交易后,大量资金就过去了,不经过任何管控机构,也不会留下任何跨境交易记录。
开放交易也有一些缺点,它们的表现和比特币不一样,这意味着被比特币社区所接受将更缓慢,而基于比特币系统的东西更容易被社区接受。
(二)分布式
区块链技术也被称为分布式账本技术。分布式账本从实质上说就是一个可以在多个站点、不同地理位置或者多个机构组成的网络里进行分享的资产数据库。在一个网络里的参与者可以获得一个唯一、真实账本的副本。账本里的任何改动都会在所有的副本中被反映出来,反应时间会在几分钟甚至是几秒内。在这个账本里存储的资产可以是金融、法律定义上的,实体的或是电子的资产。在这个账本里存储的资产的安全性和准确性是通过公私钥以及签名的使用去控制账本的访问权,从而实现密码学基础上的维护。根据网络中达成共识的规则,账本中的记录可以由一个、一些或者是所有参与者共同进行更新。
区块链就是这种分布式账本的底层技术,它最初是为在2008年实现的点对点数字现金系统比特币而设计的。区块链算法让比特币的交易可以在“区块”里集中起来,并通过密码学签名添加到现有区块组成的“链”里面。比特币账本是用分布式及“无须许可”的方式构建的,任何人都可以通过解决生成新区块所需的密码学难题从而添加一个包含交易的区块。这个系统的鼓励机制是在解决难题并生成每个区块后得到25个比特币的奖励。任何人只要有网络和电脑的算力,都有机会解决这些密码学难题并将交易添加到账本里,这些人被称为“比特币矿工”。挖矿的比喻是很恰当的,因为比特币的挖掘是要消耗大量的电脑运算能力,因此会带来很高的能源消耗。据估计,比特币网络运行所需的能源超过1GW(十亿瓦特),可以与爱尔兰的电力消耗相提并论了。
分布式账本技术有潜力帮助政府征税、发放福利、发行护照、登记土地所有权、保证货物供应链的运行,并从整体上确保政府记录和服务的正确性。在英国国民健康保险制度(NHS)里,这项技术通过改善和验证服务的送达以及根据精确的规则去安全地分享记录,有潜力改善医疗保健系统。对这些服务的消费者来说,这项技术根据不同的情况,有潜力让消费者们去控制个人记录的访问权并知悉其他机构对其记录的访问情况。
现行的数据管理方案,特别是个人数据的管理,通常是在单一的机构内架设的大型传统IT系统。由此还会引入一系列的网络与通信系统,才能实现与外界的交流,这也增加了额外的成本和复杂性。高度中心化的系统的单点失败的概率很高。这也会带来被黑客攻击的风险,而数据经常会出现没有及时同步的、过期的或者不准确的问题。
与此相反,分布式账本天生就是很难被攻击的,因为它没有用单一的数据库去存储记录,而是保留了同一个数据库的多个副本,因此黑客攻击必须同时针对所有的副本才能生效。这个技术也具备阻止未授权修改或恶意篡改的能力,因为网络中的参与者会立刻发现账本中的某个部分被篡改了。另外,这种技术用于维护信息安全及更新信息意味着参与者可以共享数据,并确保账本的所有副本在任何时候都是与其他副本一致的。
不过,这不代表分布式账本对黑客攻击是免疫的,从原则上说,任何人只要能够找到“合法”地修改一个副本的方法,则有可能修改账本的所有副本。因此,保证分布式账本的安全性是一项重要的任务,就如确保现代社会运行所依赖的数字技术基础设施的安全性一样。
商业界很早就看到了这项技术的潜力。分布式账本提供了一种确保商品及知识产权的所有权和起源的新方法。例如,Everledger提供了一种确保钻石身份的分布式账本,并记录从采掘、切割、销售和承保的相关信息。在这个有相当多的纸质文件被伪造的市场里,这种技术让钻石的归类更加高效,并有潜力降低诈骗的风险,以及防止“血腥钻石”(即在战乱或冲突地区开采并用于资助战争活动的钻石贸易)进入市场。
总的来说,分布式账本技术提供了一个框架,让政府可以用于减少欺诈、腐败、错误和涉及大量纸质文件业务的耗费。它有潜力重新定义政府与公民在数据分享、透明度和信任意义上的关系。对私营部门来说,类似的潜力也是存在的。
(三)总账本
可以把区块链想象成一个比特币的公共账本,这个账本:(1)里面记录着自比特币诞生以来的所有比特币转账交易(即总账);(2)存放在互联网的各个比特币节点上,每个节点都有一份完整的备份;(3)是分区块存储的,每一块包含一部分交易记录,每一个区块都会记录着前一区块所有交易信息的哈希值,形成一个链状结构,因而称为区块链;(4)当你要发起一笔比特币交易的时候,只需把交易信息广播到P2P网络中,矿工把你的交易信息记录成一个新的区块连到区块链上,交易就完成了。
1. 公共账本的特征
(1)去中心化。整个账单网络不需要中心管理系统或机构,个体与个体之间能够有效实现信息共享,有效提高数据存储和运行速度。现在交易模式是交易个体将信息传输到中央服务器,再由中央服务器经过数据分析,返回到交易个体。而区块链则可以实现网络个体两两互动,交易信息就在他们之间直接传递,不再上传到中央服务器,大大降低了交易的运行时间,提高了效率。
(2)每次交易产生的账本都记录在区块链的节点上,每个账本都有完整的备份。
(3)每个账本都记录着本次交易及以前所有交易的所有信息,通过这种方式,从账本最初状态开始,每一张账单记录是公开可验证并有时序,当前每个人持有的资产数等信息都是可以被推算出来的。
(4)区块链实现了两种记录:交易以及区块。交易的是被存储在区块链上的实际数据,而区块则是记录确认某些交易是在何时,以及以何种顺序成为区块链的一部分。交易是由参与者在正常过程中使用系统所创建的,而区块则由“矿工”负责创建。
(5)当你要发起一笔交易时,需把交易信息广播到区块链网络中,“矿工”把交易信息收录并验证合法后,交易就完成了。
(6)对于试图修改或者重写交易记录的人而言,这个成本是非常高的。在数据和用户量低的时候相对容易通过,但如果数据和用户量非常大,想要通过修改就将非常困难,别人不认可,你的修改就没有意义。
2. 关于公共账本的三个问题
第一个问题:如何保证用户有足够的余额?例如你只有10个币,而你居然发起了一笔转20个币的交易怎么办?这个问题很好解决,因为区块链上记录了所有比特币交易记录,只需要回溯所有的和你账户相关的历史交易就能知道你这个账户上到底有多少余额,余额不对的账户矿工是会拒绝记录你的交易的。由此可能又会产生一个疑问,那么最初的比特币是从哪里来的呢?最初的比特币是由系统奖励给记录区块的矿工的。每一个区块在生成的时候就会在生成这个区块的矿工的账户上生成一定数量的新比特币作为奖励。
第二个问题:如何保证你的账户不被冒名顶替?这个问题也很好解决,用数字签名技术就可以了。每个比特币账户都有公钥和私钥,你发起交易的时候用私钥对交易信息签名,矿工收到信息后用公钥检查一下签名就可以。
第三个问题:那么多矿工,如何决定该由哪个矿工生成下一个区块?解决方案是这样的:中本聪设计了一个数学问题,这个数学问题会耗费大量的计算机cpu时间才能得出答案,同时每一次得出的答案都会作为下一次计算的初始条件。全世界的矿工一起来计算这个问题,谁先得出答案,谁就可以用这个答案生成一个新的区块,再广播到网络中。收到这个新块数据的矿工会立即停止当前的计算,用新块里的数据重新进行下一次计算。这就是所谓的“挖矿”。矿工产生的区块一旦被网络接受,他就能获得一笔比特币作为酬劳。这时要考虑一种情况:如果同时有两个矿工各自得到一个正确答案,并各自生成了一个区块广播出去会发生什么呢?这时在区块链上同一个位置就有了两个区块,所谓的“分叉”就出现了。分叉是绝对不允许的,所以当矿工发现区块链分叉之后,会选择最长的一条继续计算,短的那条区块链会被丢弃。
仔细思考下这个体系,你会发现它几乎无懈可击。首先你不能凭空造出比特币,只能挖矿获得;其次你无法伪造交易,无法控制不属于你的账户;最后交易一旦被确认,几乎无法取消。
总体来看,区块链数据库系统是一个公共总账本,全球一本账,所有的数据记录在这一本账上。比如,我们可能在不同的银行开了不同的账户,不同的银行账户被不同的银行所记账,但是没有一个系统可以提供一本总账给你。你在不同银行的所有账户到底有多少钱、欠了多少钱、每个月要付多少利息,需要你自己来计算。在区块链这个数据库,全球一本总账,这个账是公开透明的。维护、存储这个账本数据库,使用的是共识算法,这个数据库里面所有的账不是由你本人来记账,而是由第三方记账的。你本身无法篡改它,因为你的篡改不会被别人认可,除非你串通网上的所有人都帮助你记假账,这需要你控制这个网络超过51%的节点或者计算能力,你才可能在网上做假账,但这几乎是不可能完成的事情。如果要完成的话,成本也非常高,高到你做假账根本不划算。共识算法确保了这个数据库不可篡改,不能作伪,并且可追溯。即使50%的东西坏了,这个数据库还能继续有效地运行。同时,这个数据库的安全保障是非对称的加密算法,到目前为止,没有一个黑客有能力成功攻破过任何一个比特币账户,因为无法破解它。因此,从数据库的层面,区块链和现有金融体系及金融机构的数据库相比,具有很大的潜力和价值。
经过无数次的记账,区块链就成为一个可信赖、超容量的公共账本。
三、区块链的核心原理
(一)点对点传输
点对点技术(peer-to-peer,简称P2P)又称对等互联网络技术,是一种网络新技术,依赖网络中参与者的计算能力和带宽,而不是依赖放在较少的几台服务器。P2P网络通常用于通过Ad Hoc连接来连接节点,这类网络可以用于多种用途,各种文件共享软件已经得到了广泛的使用。P2P技术也被使用在类似VoIP等实时媒体业务的数据通信中。
纯P2P网络没有客户端或服务器的概念,只有平等的同级节点,同时对网络上的其他节点充当客户端和服务器。这种网络设计模型不同于客户端——服务器模型,在客户端——服务器模型中通信通常来往于一个中央服务器。有些网络(如Napster、OpenNAP或IRC @find)的一些功能(比如搜索)使用客户端——服务器结构,另一些则使用P2P结构来实现另外一些功能。类似Gnutella或Freenet的网络则使用纯P2P结构来实现全部的任务。
1. 点对点传输的优势
P2P网络的一个重要的目标就是让所有的客户端都能提供资源,包括带宽、存储空间和计算能力。因此,当有节点加入且对系统请求增多时,整个系统的容量也增大。这是只有一组固定服务器的客户端——服务器结构不能实现的,因为在上述这种结构中,客户端的增加意味着所有用户更慢的数据传输。
P2P网络的分布特性通过在多节点上复制数据,也增加了防故障的强度,并且在纯P2P网络中,节点不需要依靠一个中心索引服务器来发现数据。在后一种情况下,系统也不会出现单点崩溃。
当用P2P来描述Napster网络时,对等协议被认为是重要的,但是实际中,Napster网络取得的成就是通过对等节点(就像网络的末枝)联合一个中心索引来实现。这可以使它能快速并且高效地定位可用的内容。对等协议只是用一种通用的方法来实现这一点。
有些网络和通信渠道,像Napster、OpenNAP和[email protected],一方面使用了主从式架构结构来处理一些任务(如搜索功能),另一方面又同时使用P2P结构来处理其他任务。而有些网络,如Gnutella和Freenet,只使用P2P结构来处理所有的任务,有时被认为是真正的P2P网络。尽管Gnutella也使用了目录伺服器来方便节点得到其他节点的网络地址。
2. 点对点传输应用
宾夕法尼亚州立大学的开发者联合麻省理工学院、西蒙弗雷泽大学的研究人员,还有第二代互联网P2P工作组,正在开发一个P2P网络的学术性应用。这个项目被称为LionShare,是基于第二代网络技术,更详细地说是Gnutella模型。这个网络的主要目的是让众多不同学术机构的用户能够共享学术材料。LionShare网络混合了Gnutella分散的P2P网络和传统的C/S网络。这个程序的用户能够上传文件到一个服务器上,不管用户是否在线,都能够持续地共享。这个网络也允许在比正常情况下小得多地共享社区中使用。与当前正在使用的其他P2P网络的主要不同是,LionShare网络不允许匿名用户。这样做的目的是防止版权材料在网络上共享,这同时也避免了法律纠纷。另一个区别是对不同用户有选择性地共享个别的文件。用户能个别选择哪些用户可以接收这一个文件或者这一组文件。学术社区需要这种技术,因为有越来越多的多媒体文件应用在课堂上。越来越多的教授使用多媒体文件,如音频文件、视频文件和幻灯片。把这些文件传给学生是件困难的任务,而如果用LionShare这类网络则容易得多。
(二)分布式公共网络
分布式计算技术处于多种方案并存的现象,RMI(远程方法调用)是平台独立的,但它不是编程语言独立的技术,客户机和服务器代码必须用Java来编写;对于DCOM,它语言虽然是独立的,但平台不是独立的,虽然程序可以使用许多不同的编程语言,但是它只能运行在Microsoft家族的操作系统上。CORBA同时能够做到编程语言和运行平台的独立性,但是基于CORBA的系统必须通过ORB进行通信。于是就出现了SOAP这样一种不捆绑任何一种硬件平台、操作系统、编程语言或网络硬件的分布式计算方案。
分布式网络拓扑结构一般呈网格状,和集中式网络结构不同,节点间不再是点对点的通信方式。通信方式的这种改变使得客户机/服务器的网络模型和网络的计算信息处理模型更易于分布式地实现。在分布式网络结构中,数据处理中心的概念已经淡化了,因为每一个网络站点既是网络服务对象又是网络服务提供者。
1. 分布式网络结构和集中式网络结构相比的优点
(1)电缆长度短,连线容易。因为任何一个想入网的计算设备只需就近连入网络,而不必直接连到中央节点。
(2)可靠性高。网状拓扑结构保证了冗余度,因为在任何两个节点之间至少有两条链路,所以当一个站点失效或者一条链路中断时,网络其他站点的通信不受影响。
(3)易于扩充。增加新的站点(site)可以在网络的任何点将其接入。
2. 分布式网络结构的缺点
(1)建网复杂,网络难于管理。
(2)故障诊断困难。分布式结构的网络不是集中控制,故障检测只能逐个检查各个站点。
(3)需要更多的网络技术人员和管理人员。因为各个站点彼此分散,而且每个站点的维护、管理工作都不简单;需要配备网络专业技术人员定期进行维护,有必要的话还需专职人员进行日常维护和管理。
(三)加密货币发行
1. 虚拟货币分为非加密货币和加密货币
(1)非加密货币是由公司或者私人自我固定发行,可无限发行,不需要通过计算机的显卡运算程序解答方程式获得。知名的虚拟货币如百度公司的百度币、腾讯公司的Q点、盛大公司的点券、新浪推出的微币(用于微游戏和新浪读书)等,因为其依据市场需求可无限发行,所以不具备收藏及升值价值。
(2)加密货币不依靠法定货币机构发行,不受央行管控。它依据全世界的计算机运算一组方程式开源代码,通过计算机显卡、CPU大量的运算处理产生,并使用密码学的设计来确保货币流通的各个环节安全性。基于密码学的设计可以使加密货币只能被真实的拥有者转移或支付。
(3)加密货币与其他非加密虚拟货币最大的不同是其总数量有限,具有极强的数量稀缺性。因为这一组方程式开源代码总量是有限的,必须通过计算机显卡的运算才可以获得。
(4)正因为加密货币总量有限,具有稀缺性,所以开采越多,升值越高,就好像地球上埋在地里的黄金,数量有限,永不贬值。我们计算机运算方程式代码的这一个运算过程就好比在金矿挖矿。
(5)加密货币长什么样子:通过挖矿开采出来后,加密货币就是一串代码,跟人民币左下角的那一串序列号一样,谁拥有这一串序列号,谁就拥有这一加密货币的使用权。
2. 加密数字货币的核心是其能成为各国货币之间的媒介
它最终起到的是“国际物联网、贸易之间的结算、结汇”作用。虚拟货币之所以引起全球众多领域的关注,是因为它正在制造一个全球的快流通,并且流通领域越大、范围越广、其使用价值越高。因此虚拟货币的发行必须是在全球化领域发行。并且,从公司平台上能看到流通领域和市场份额,发行商亦正在通过努力拓宽其流通领域的市场空间或平台向此目标迈进。
3. 加密数字货币流通必须经得起各国法律的推敲和考证
比如虚拟货币发行不能成为恐怖主义、非法组织机构洗钱、逃税漏税的工具,虚拟货币发行从长远趋势看必须能被轻松纳入各国金融体系和税收管理,虚拟货币才有足够的市场空间和升值空间。这就要求虚拟货币发行管理必须实名化登记,类似比特币之类的匿名发行方式将成为其去中心化发展的一大障碍。
4. 加密数字货币的发行是一种突破
加密数字货币的发行有利于增加社会融资渠道、降低国际融资门槛、拓宽社会融资市场,其直销繁衍的众筹方式是从社会底层收入抓起的一种经济方式。其最大的助益是缩小贫富悬殊,提倡人人参与,为社会各界提供一个共荣的平台。因此虚拟货币发行模式必须受众面够广。比特币价格高企,已经不适合一般人去投资,而易物币的发行模式受众面更广,对推动底层经济较为助益。
5. 投资者、大众消费者、使用者必须有货币战争的意识,有全球性视野
因为各国都寄希望于自己国家的虚拟货币能充当未来支付媒介系统,毕竟这是一场全球化领域的经济战。虽然从表象看虚拟货币目前是介于企业之间的战争。但从实质看,虚拟货币已经成为国家与国家之间主导的一场暗战。
(四)去中心化
去中心化可能会在某些领域具备巨大竞争优势。去中心化不代表没有中心,只是将中心从“人”这种不可控的因素中外移至可控并且中立的因素中,这样之前的竞争优势就不会存在。因此从某种意义上来说,去中心化是一个“降权”的操作,同时对于个人而言可控性更好。经过这样的操作后整个网络形态会成为一个“细胞组织”,它们互相很难受到影响,因而更加稳定,但同时面临了新鲜空气进入困难的问题。去中心化是一个社会学操作,但是更优秀的处理思路可能会来自生物学或者其他学科。去中心化对中层用户更有价值,中层用户可以通过迅速成长,拥有自己的话语权。去中心化的益处在于,能够伸展出更多有价值的小中心,有人的地方就必然有中心,只是聚合半径大小的问题。
1. 去中心化的优点
(1)可适应性——就像人的脑袋一样,即使部分区域失去效果(像失忆和失语),但不影响脑袋的整体运行,部分不影响整体。
(2)可进化性——像DNA、电脑系统一样可以不断升级。
(3)无限性——这是一套并行运行系统,所以会有冗余部分,它的自我延伸性和自动繁衍性是永无止境的。
(4)弥补性——无规则组合会产生无数的可能性,同时又不强调个体的重要性,就算个体有缺陷和不足也不会导致整体的不足。
2. 去中心化的缺点
(1)并非最优——存在冗余又没有中央控制,有时效率是低下的,资源分配是混乱的。如蚂蚁搬家时的混乱,但它最终又会走向有序。
(2)不可控制——没有绝对领导和权威,所带来的后果就像放出去的羊,被狼吃掉的可能性很大。也像癌细胞,你永远杀不死它,它会自动调整。
(3)不可预测——像微博上的一件小事件,通过这种网状传播,它的效应被无限扩大化,成了流行或热点事件。
(4)不可知——分布式的去中心化是一种横向因果关系,A影响其他,其他影响A,一切像网一样散开传播和产生影响。
(5)重启效应差——点火系统很好,但机械的预热时间很长,并且要有足够的影响力和传播率。每个个体必须找回到自己的所在位置,各就各位才行。