区块链以和区块链技术总结_第1页
区块链以和区块链技术总结_第2页
区块链以和区块链技术总结_第3页
区块链以和区块链技术总结_第4页
区块链以和区块链技术总结_第5页
已阅读5页,还剩13页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

区块链以及区块链技术总结

区块链是现在一个匕匕较热」新概念,蕴含了技术与金融两层概念。从技术角度来看,这是一

个牺牲一致性效率且确保最终一致性分布式数据库,当然这是比较片面。从经济学角度来看,

这种容错能力很强点对点网络,恰恰满足了共享经济一个必须要求一低成本可信环境。

此次分享一下聊聊区块链技术,以及现在区块链技术架构,而且介绍一下价值互联网。

因为区块链是一个新兴技术概念,本文全部观点仅代表个人观点,未必全部正确。

#1.技术人员对待区块链正确姿势

区块链即使是一个新兴概念,但它依赖技术一点也不新,如非对称加密技术、P2P网络协

议等。好比乐高积木,积木块是有限,不过不一样组合却能产生非常有意思事物。

我接触过一些工程师,首次接触区块链时,不约而同表示了:都是成熟技术,不就是分布式

存放嘛。站在工程师角度,第一反应将这种新概念映射到自己知识框架中,是非常自然。不

过细究之下发觉,这种片面了解可能将对区块链了解带入一个误区,那就是作为一个技术人

员,忽略了区块链经济学特征一一个权力分散且完全自治系统。

区块链本质上是一个基于P2P价值传输协议,我们不能只看到了P2P,而看不到价值传输。

一样,也不能只看到了价值传输,而看不到区块链底层技术。

能够这么说,区块链更像是一门交叉学科,结合了P2P网络技术、非对称加密技术、宏观

经济学、经济学博弈等等知识,构建一个新领域一针对价值互联网探索。

那什么是价值互联网?价值互联网能够是当下如日中天电子商务所衍生支付业务。但,真只

是支付领域吗?很显然这是不够,一级资本市场,实体资产确权与转移,证券登记交割、证

信与反欺诈。我们再仔细想想,我们各大电商平台专业差评师,恶意刷单还少吗?

如今金融领域,除了支付比较便利之外,在其余绝大部分业务中,我们就像是被套着钺链走

路一样,我们重复确认,重复审核,重复监督,我们重复构建一个又一个大大小小高可用集

群,确保线上服务可靠性与连续性,我们雇佣一个又一个安全工程师,交付一个又一个渗透

测试项目。为何?因为作弊成本太低了,低到只要改数据库一行统计就能够提取上百万资金。

强大互联网给了我们成本几乎为零高速信息传输通道,却没有一个成本低廉可靠高速价值传

输通道,那么这也就是区块链即将带来。

区块链是一个公共分布式总账,下面从技术角度简单介绍一下:

想象有一个100台分布式数据库集群现在情况是这100个节点实际上拥有者是一个机构,

而且全部节点处于该机构内网当中,所以这个机构想让这100个数据库节点干嘛就干嘛,

换句话说这100个节点之间是处于一个可信任环境,而且受控于一个实体,这个实体具备

绝对仲裁分配权。

另外情况是这么,想象这100个节点分别归不一样人全部,且每个人节点数据都是一样,

即完全冗余,而且全部节点是处于广域网当中,换句话说就是这100个节点之间是不信任,

且不存在一个实体,它拥有绝对仲裁权。

现在考虑第二种情况,采双什么样算法(共识模型)能够提供一个可信任环境,使:

"1.每个节点交换数据过程不被篡改;交换历史统计不可被篡改;

2.每个节点数据会同归到最新数据,且认可经过共识最新数据;

3.基于少数服从多数标准,整体节点维护数据本身客观反应了交换历史。"

区块链本质上就是要处理以上第二种情况一个技术方案,更确切说应该叫分布式冗余链式总

帐本方案。关于区块链一些要素,在我以往文章里有总结过一些:

"1.包含一个分布式数据库

2.分布式数据库是区块链物理载体,区块链是交易逻辑载体,全部关键节点都应包含该

条区块链数据全副本

3.区块链按时间序列化区块,且区块链是整个网络交易数据唯一主体

4.区块链只对添加有效,对其余操作无效

5.基于非对称加密公私钥验证

6.记账节点要求拜占庭将军问题可解/防止

7.共识过程(consensusprogress)是演化稳定,即面对一定量不一样节点矛盾数据不会

瓦解

8.共识过程能够处理double-spending问题"

所以作为一个技术人员不应该只看到了区块链所依赖技术,更应该关注区块链以外点和面,

综合来看,区块链将会有趣得多。

#2.区块链通常性架构介绍

关于区块链本身发展史,网络上资料比较多,本文不再赘述。

而关于区块链技术介绍,在各个区块链平台小区是有详细资料,不过针对这些资料总结,以

及抽象出一共通概念介绍,还是凤毛就角,本文尝试总结一下。

在介绍之前,我想稍微介绍一下公有链,联盟链概念,这些概念是以太坊创始人Vitalik提

出,我在这些概念基础上做了一些研究。

其实区分公有链、联盟链很简单,只要看这个区块链访问权限就能够了/融口访问该区块链

需要取得链上节点许可,那么这是一个联盟链,不然是公有链。

依照名称,我们也能够"望文生义",公有表示一个完全开放网络,联盟表示一个半开放网

络,组员之间是共享,非组员身份是没有自由访问权限,所以我们也称联盟链为许可链。

下面我们来看几个比较主流区块链平台(公有链,皆开源):

"1.比特币Bitcoin

2.以太坊Ethereum/经典以太坊EthereumClassic

3.比特股Bitshares"

我通常戏称为"三巨头\从生态上来看,比特币是最为成熟稳定,以太坊更像是一个冲

在前面勇士,比特股相比前两位生态要小很多,不过从创新角度,也不亚于前两位。

其余很多项目,是从这三个区块链上衍生出来,所以以这三个为基础,基本上能够吃透区块

链了。

不得不提还有Linux基金会项目——HyperLedger项目(主打联盟链,开源),也是意在

打造一个通用区块链技术,不过我认为现在尚在开发迭代当中,还没有详细应用案例,按下

不讲。

另外还有一些好玩联盟链项目一R3CEV项目(联盟链,闭源),以及中国R3项目——

ChinaLedger(联盟链,闭源),当然这些不是开源,我无法取得有用资料进行分析,所以

就不展开了。

从技术上来看,针对不一样业务场景,对区块链有不一样需求,比如实时结算业务,要求区

块链提供秒级交割,相对应就是出块速度要求,而出块速度过快往往会造成区块链分叉

(fork),形成孤儿链,孤儿链是无效,那么交易也就作废了,影响了区块链最终一致性。

假如频繁产生分叉造成相当百分比用户交易失效,那么能够认为系统是不可靠。

假如我们将这种实时性要求比较高业务安插到联盟链中,就能够控制风险,经过调整共识算

法,利用快速一致共识模型(ConsensusModel)来防止上述问题,即使不如公有链那么

健壮,但对一些特殊场景足够了。

所以架构层面,对公有链和联盟链技术也要差异化对待,

不过客户端整体设计还是有一些通用概念,以下列图:

UserinterfaceUye«

gd卜on-rpc&webs.vice]

BlockchainLayer

blockchainmodules

P2PprotocolEodule(network)Transactionmodule(bc)WalletModuie<db)

P2Pnet-workprotocolSnMrtContractBCledgersRoleManagerAccount

dnssecdBMcScriptsmetHetrxTrivialUseraddiessmanager

discover-nodeAdvMxedVMtransactionrecordsVaildingPeerfee

address-bookindexsofledgersOracleskey-v<iading

ping-pongkeepaliveCredit-Scores

shake-hands/bye-bye

data-streamtransfertransaction-poolMembershipPrivacyManB^^r

member$hjp(blacklt$t,trustlist)blacklistblooms

tnntlist

ErKryplionModuleConsensusModuleConnoteModuh?

EncryptionAlgorithmConMn»ut-proc«ts(plug-in)•erinterfoce&emwte

HASHProof-of-worttunings

keygenalgorithmTinyqueryServer

switchmode

CommonLayer

commonlibrary

etKrpytnetworkhashstorage(levd-db^SQLite)tventCore

"reamtimethreAd-manaoefbasictypedefinitionrandom

file,log.net.stfingcompressionsignals

(图1)

一个区块链最少分为三层:

最底层是一些通用基础模块,比如基础加密算法,网络通讯库,流处理,线程封装,消息封

装与解码,系统时间等;

中间一层是区块链关键模块,通常包含了区块链主要逻辑,如P2P网络协议,共识模块,

交易处理模块,交易池模块,简单合约或者智能合约模块,嵌入式数据库处理模块,钱包模

块等等;

最上面一层,往往都是基于JsonStandardRPC交互模块,基于Json-RPC,我们还能够做

出愈加好UI界面,也能够是一个web-service.

假如区块链支持智能合约,可能还要分更多层,比如增加BaaS层,区块链上智能合约提

供自治服务,比以下面这张以太坊架构图(来自谷歌,仅作参考):

(图2)

这种分层愈加关注是区块链本身分层,即业务上视角,而不完全是技术。

我们再转向比特币设计:

baseclass

typedefinition

definition

transactionp2p-network

scripts/transacuon

/block/merklenet-buffer,

h一

tree/coin/ctxin/ctxNaddr;

out

I

ledger

chain-paramters

(图3)

比特币几个模块之间耦合度其实比较高,而且有不少历史包袱,比特币创造者一中本聪

在开发比特币时候,使用VC++开发,而VC++标准库中sstream流处理性能非常感人,

不得不放弃,自行实现了了基于vector<char>流处理容器。而伴随C++11推出以及标准

库更新迭代,性能不可同日而语。

从整张图我们能够看出,比特币模块比较少,也比较简单。chain-paramters描述了整个

区块链参数设置,wallet是与地址/加密还有存放相关,mem-pool是未确认交易池。得益

于比特币关键开发者不朽贡献,相比中本聪时代比特币代码,现在比特币代码质量已经相当

不错了。

以上不论哪种设计,通常都要从P2P网络协议作为切入,作为一个P2P钱包,既要提供

Service也要提供Client,作为Service依赖P2P网络协议,作为Client依赖Json-RPC。

需要指出是,现在“三巨头"所使用账户模型是不一样(所谓账户模型是指账户记账方法),

比特币使用UXTO模型,以太坊和比特股使用账户余额模型。

UXTO模型(UnspentTransactionOutputs(UTXOs)):此模型表示了一个转移概念,

即任I可产生新币,在以后生命周期中,只有转移,没有消亡,转移实质上是由加密算法署名

与验证控制:

Eachinputspendsapreviousoutput

TheMainPartsOf

Transaction0

TheMainPartsOf

Transaction1

EachoutputwaitsasanUnspentTXOutput(UTXO)untilalaterinputspendsit

(图4)

账户余额模型:账户余额模型摒弃了这种强验证账户模型,即账户余额回归到数字加减,这

么做提升了交易效率。

#3.共识算法与分布式

终于来到重点了,本文每节其实都能够展开成为独立文章,内容所限,简单讲。

所谓区块链共识过程,在上文有所提及,是指怎样将全网交易数据客观统计而且不可篡改过

程。现在"三巨头”分别使用不一样共识算法(ConsensusAlgorithm),比特币使用工作

量证实PoW(ProofofWork),以太坊即将转换为权益证实PoS(ProofofStake),

比特股使用授权权益证实DPoS(DelegatedProofofStake).

以上这些算法我称之为“经济学"算法,所谓经济学算法,是指让作弊成本可计算,目让作

弊成本往往远大于作弊带来收益,即作弊无利可图,经过这种思想结构一个用于节点之间博

弈算法,并使之趋向一个稳定平衡。

相对应我们还有计算机领域分布式一致性算法,比如Paxos.Raft,我也称之为传统分布式

一致性算法。

他们之间最大区分是:系统在拜占庭将军(ByzantineGeneralsProblem)情景下可靠性,

即拜占庭容错(PBFT算法支持拜占庭容错)。然而不论是Paxos还是Raft算法,理论上

都可能会进入无法表决经过死循环(尽管这个概率其实是非常非常低),不过他们都是满足

safety,只是放松了liveness要求PBFT也是这么。

下面是一些传统分布式一致性算法和区块链共识过程异同点:

相同点:

Ml.Appendonly

2.强调序列化

3.少数服从多数标准

4.分离覆盖问题:即长链覆盖短链区块,多节点覆盖少数节点日志"

不一样点:

"L传统分布式一致性算法大多不考虑拜占庭容错(ByzanetinePaxos除外),即假设全部

节点只发生宕机、网络故障等非人为问题,并不考虑恶意节点篡改数据问题;

2.传统分布式一致性算法是面向日志(数据库),即更通用情况,而区块链共识模型面

向交易,所以严格来说,传统分布式一致性算法应该处于区块链共识模型下面一层。"

考虑上面不一样点,结合公有链和联盟链特征,我们有:

"1.联盟链:半封闭生态交易网络,存在对等不信任节点,如房地产行业A、B、C、D企

业。

2.公有链:开放生态交易网络,这层主要是为行业链和私有链提供全球交易网络。”

因为联盟行业链其半封闭半开放特征,使用DelegatedProofofXXX是可行,能够考虑

以传统一致性算法作为基她加入拜占庭容错/安全防护机制进行改进也是能够。

而针对公有链,PoW/Pos/DPos等"经济学"算法可能是最优算法。

技术上,以上不一样共识算法,我们很多新开发区块链都对应支持一个特征:共识模块可插

拔,以应对不一样场景下要求。

下列图是一张未来区块链生态示意图:

封闭的应传统机构

用逐端APPAPPDAPP

半开放的

区域价值传统数据库联盟链/侧链智约

网络

完全开放

的全球价

他网络

(图5)

公有链提供可信可靠价值传输网络,上面能够继续组建去中心化应用(DAPP)或者布署联

盟链,甚至传统数据库都行,在上层搭建C端应用。

refl浅谈区块链共识机制与分布式一致性算法-

ref2:从Paxos到拜占庭容错,兼谈区块链共识协议(转)-

#4.数字资产与价值流通网络

这里有张图:

ref:Metaverse元界白皮书-CN(概要)

“三巨头"中,比特币在"数字货币"处,比特股在"去中心化交易所”附近,以太坊在"去

中心化组织"处。而实际上,区块链和现实接触点,还在图示位置。

所以区块链仍是一个正在成长少年,结合图5,我们希望构建一个基础设施完善价值传输网

络,上层应用丰富区块链生态,依然需要付出巨大努力。

下一步目标,是将资产数字化(类比资产证券化),比如我们能够将珍稀物品(艺术品/古

董)数字化、知识产权数字化、票据基金等收益权数字化,将极大提升市场运作效率,配置

智能合约,甚至人工智能,可编程社会不再是梦想。

Q:还是感觉太抽象,至今都还不能具象化了解这个区块链,也没找到具象化解释,费

H解TT?•?•7•

A:正如区块链这个名词一样,它是被创造出来,并没有以往概念能够映射到上面,所以轻

易费解。我们不谈这个概念,我们只需要想想我们互联网还需要什么。正如比特币白皮书提

到,一个点对点现金系统,他使用前提要求是很低,不需要注册,不需要手机号,一个点对

点网络,只要你用设备接入,那么你就能够使用。区块链这个概念也一样,目标是构建一个

点对点生态,解构权力带来不对称。它本身只是一个共享总账本,不一样于网络中多节点自

己记账,再对账,这就瓦解了中心权力。

Q:区块链技术在互联网身份认证方面怎样应用?

A:这个问题很好。我现在所做区块链项目是涵盖了这个概念,也就是你所说互联网身份认

证。我们认为它是使区块链接入现实业务必要一环。

在我们构想中,首先什么是身份?身份不单单是一个ID号,一个密码,而是一个使用者全

部操作统计集,这个统计集代号才是身份。正如账户丢矢,然后申诉一样,申诉内容才是真

正定位到你这个人。区块链也一样,它需要一样ID,一样它也需要自动验证你历史统计正

当性。现在互联网身份认证是依赖公安系统,最简单方案就是把公安系统中身份系统映射到

区块链中。另外一个方案也是用户自定义统计集,依照交易历史查对身份。当然再更远未来,

结合人工智能,区块链可能有愈加好表现。

Q:实时交割数据假如放到联盟链中,联盟链数据是否要最终同时到公有链?按分享所说,

联盟链数据对公有链来说是不可信任,联盟链和公有链中数据是什么关系?此处没有了解,

谢谢老师分享!

A:我认为不可能全部机构都愿意把资产放到公有链上,一定会出现并存现象。理想情况当

然完全使用公有链搭建去中心化应用。联盟链和公有链直接数据是单纯引用关系,我认为开

放关犍数据集,如用户身份应该沉淀到公有链,让用户自己管理,而机构比较私有关犍数据,

应该使用访问权限将它与公有链隔离,所以联盟链数据和公有链数据我认为是互补。也就是

说,联盟链数据是否要同时到公有链,这个要是视机构本身需求而定。另

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论