您好,欢迎访问三七文档
了解区块链主题NO.1NO.2NO.3NO.4什么是区块链区块链技术特点区块链应用场景开发区块链应用1简单地说,区块链就是一种去中心化的分布式账本数据库。去中心化,即与传统中心化的方式不同,这里是没有中心,或者说人人都是中心;分布式账本数据库,意味着记载方式不只是将账本数据存储在每个节点,而且每个节点会同步共享复制整个账本的数据。同时,区块链还具有去中介化、信息透明等特点。2去中心化不可篡改可追溯去中心化:在区块链的网络中分布着众多的节点,节点和节点之间地位平等,可以自由连接进行数据交换,不存在中心节点。不可篡改性:利用密码学的技术保证区块链上的数据不可被篡改,主要是两个点:哈希和非对称加密。可追溯性:区块链的数据结构保证了从第一个区块(创世区块)开始所有的数据形成了一条链,在链上的任何记录都可以通过链的结构追溯到本源(也就是创世区块的信息)。核心技术点区块链是以区块结构存储数据,多方参与、多方维护,通过密码学、P2P网络、共识算法等保证数据可靠的传输、存储、访问的技术体系。P2P网络密码学共识算法保证区块链落地应用的技术基石中心化网络传统的网络是中心化的网络,所有的机器、通讯都要走过一个中心化的节点完成通讯,一旦这个节点出现了问题整个网络就瘫痪了。就像现在如果电信、移动、联通的基站出现问题周围的网络通讯将会受到影响P2P网络传统的网络是中心化的网络,所有的机器、通讯都要走过一个中心化的节点完成通讯,一旦这个节点出现了问题整个网络就瘫痪了。就像现在如果电信、移动、联通的基站出现问题周围的网络通讯将会受到影响非对称加密技术非对称加密技术完全可以解决签名问题。非对称加密算法的加密和解密使用不同的两个密钥.这两个密钥就是我们经常听到的”公钥”和”私钥”。公钥和私钥一般成对出现,如果消息使用公钥加密,那么需要该公钥对应的私钥才能解密;同样,如果消息使用私钥加密,那么需要该私钥对应的公钥才能解密。Merkle树每一个区块都有MerkleTree,区块上所有的交易都会被存储在MerkleTree上。区块和区块之间也是相互链接的,每一个区块都知道上一个区块的Hash值。那为什么这样的区块结构能实现数据不可篡改呢?假设我要篡改Tx3,那我们将要篡改Hash3的值,接下来改变了Hash3就要改变Hash23,以此类推一直要改变MerkleRoot的Hash值。因为区块的HASH中包括了该区块MerkleTreeRoot的HASH值,所以一旦你改变了区块的HASH,就必须要修改之后所有区块的哈希值。同时这样的修改还要被网络中超过共识算法要求的节点接受。这就造成了篡改数据树的成本极高,几乎是不可能的。密码学:哈希函数哈希函数,输入可以是任意信息或者文件,输出是固定长度的比特串。例如256bit的1/0串,这个输出叫做这个信息的“哈希值”或者“摘要”(digest)。SHA256就是一个哈希函数。密码哈希函数有几个特点•特点是输入值稍微变化后,结果就会有很大的不同,完全无法预测不同输入间的规律•逆向计算不可行,只能使用试错法(穷举法),解空间2的256次方POW共识算法也就是常见的比特币网络的共识算法,它通过哈希算力作为工作量证明去竞争记账权。POW的几个缺点:性能比较低;消耗大量的资源,尤其是算力;出块比较慢,10分钟左右。但它也优点,抗容错性很好,只有超过51%的节点攻击网络,网络才会失败,容错性50%。POS共识算法相对POW,POS是用所谓的权益计算法。相对POW来说它有几大改进:不再消耗资源;提高性能,2分钟左右出块;同样容错性也是50%。PBFT共识算法PBFT也就是所谓的拜占廷容错,它的性能非常非常快,可以达到秒级出块甚至比秒级还要快,但是它的容错性相对差一些,一般是33%左右。PXOS共识算法PXOS假设的前提是没有恶意参与者,简单说就是节点不会发送错误的信息,但有可能漏发信息。在这种前提下容错性50%,性能也是很快的,基本上秒级出块。DPOS共识算法POS实现2分钟左右出块是比较大的提高,但距离业务的要求还有一定距离,所以在此基础上进行优化产生了DPOS,简单来说DPOS不要求每个节点记帐,而是有代理节点来记帐,这比较像现实生活当中的议会制度,大家选出代表帮忙记帐,这样参与记帐的节点会相对集中,性能也就会提高。所以在DPOS情况下基本可以做到秒级出块,容错性也是50%。工作量证明根据之前说过SHA256的性质:输入变化输出不可预测,找到这个特殊数字唯一的办法就是穷举。换言之,你很容易就证明了他们进行了海量的计算。而这个特殊数字就叫做工作量证明(proofofwork)。这就意味着,所有的工作量证明就对应了交易列表(账本Ledger),如果你修改了一个交易,哪怕只是其中一个字符,就会完全改变哈希值,就得重做工作量证明。修改任何部分都意味着重新计算区块链分代区块链分类主流区块链技术平台区块链1.0比特币以及相关的数字货币划分为区块链1.0。区块链1.0是基础的区块链,实现了数字货币所需的所有特性。区块链2.0以以太坊为代表的智能合约划分为区块链2.0,区块链2.0的核心概念是智能合约,简单说就是可编程的数字货币。虽然只是加了一个前缀,但却是巨大的进步。这意味着不仅仅价值本身,价值相关的商业规则也可以被数字化,是价值互联网的一个巨大进度。区块链3.0在非货币和金融领域外,在其他领域里的区块链的应用划分为区块链3.0。公有链公有链是任何人都可读取的、任何人都能发送交易且交易能获得有效确认的、任何人都能参与其中共识过程的区块链。联盟链联盟链主要针对有竞争又需要合作的场景,技术上联盟区块链是指其共识过程受到预选节点控制的区块链。只有获准进入联盟的节点才可以参与其中。私有链私有链一般仅在一个公司或者组织内使用,它更像一个分布式账本。比特币比特币BitcoinCore是一个代码质量高、文档良好的开源软件,从学习区块链原理、掌握核心技术的角度来说,BitcoinCore是最佳切入点,BitcoinCore是用C++写的,而且用了一些C++11和Boost库的机制,对学习者的C++水平提出了较高的要求。以太坊Solidity进行的智能合约开发是切入区块链开发最简单的方式,没有之一。以太坊的理想非常宏大,由于配备了强大的图灵完备的智能合约虚拟机,因此可以成为一切区块链项目的母平台,是驮住整个区块链世界的大乌龟。Fabric它是Hyperledger的第一个也是最知名的孵化项目。Fabric最早来自IBM的OpenBlockchain项目,到2015年11月,IBM将当时已经开发完成的44,000行Go语言代码交给Linux基金会,并入Hyperledger项目之中。主流区块链平台3金融服务供应链文化娱乐防伪、溯源医疗体育公益物流4认识HyperledgerFabricHyperledgerFabric的架构设计HyperledgerFabric学习资源HyperledgerFabric的架构设计Hyperledger是面向企业应用的全球最大的分布式账本开源项目,由Linux基金会支持,创建于2015年底。目前已有200多家科技、金融行业领军企业加入成员,包括IBM、Intel、摩根、甲骨文、万达、百度、腾讯等。大量基于超级账本技术的企业界区块链项目已经成功落地。如今说到Hyperledger基本都是指的当中IBM开发的Fabric平台。而HyperledgerFabric项目自诞生之日起就吸引了全球众多企业的密切关注,已经先后发布了两个大的版本,0.6实验版本(2016年9月),1.0正式版本(2017年7月),1.1正式版本(2018年3月20日)。HyperledgerFabric,也叫超级账本。现在由Linux基金会管理,主要由IBM和DigitalAsset发起。IBM和DigitalAsset的客户都是企业、政府部门。那么超级账本的也是是针对企业应用的开发的。开放超级账本的是Linux基金会2015年底宣布成立的,成立之后很快就吸引了大批的企业。到2016年底,加入的企业数达到120多家,大约四分之一是中国企业。现在的Fabric的代码,主要是由IBM和DigitalAsset这两家公司提供的。IBM把代码贡献出去之前,内部叫Openblockchain,是IBM开源的blockchain项目,中国有很多企业在研究这个项目,包括中信,民生,华为,浪潮,腾讯,招商银行等。谈到Linux基金会的大家首先会想到LnuxGithub。Linux毫无疑问是应用最广的OS,Github是最大的开源社区里面,github上有无数的开源软件,遍布全球的程序员每天都在Github上提交新项目,改进代码。开放谈到Linux基金会的大家首先会想到LinuxGithub。Linux毫无疑问是应用最广的OS,Github是最大的开源社区里面,github上有无数的开源软件,遍布全球的程序员每天都在Github上提交新项目,改进代码。开源它的源代码是开放的,Github上有镜像,大家可以很方便地下载。支持多语言SDK目前支持go,java,js,python四种语言,基本是目前最流行的编程语言,绝大部分写代码的同学至少会其中的一种。这也就大大降低了使用Fabric的门槛,开发者不用再学习新的语言就可以开始写程序做区块链的应用了。可插拔,可扩展Fabric中的CA,数据库,共识算法等,都是可以插拔的。而且,Farbric的Chaincode通过docker实现。Chaincode是什么呢?这又要回到共识机制。共识机制就是所有参与者对每个合约的确认过程。举个简单的例子,A转账给B100元:“A付款,B收款确认”,这些信息被记录在账本上,这就是共识机制。代码怎么实现这个动作呢?A转账的动作,B确认的动作,都是在chaincode实现。类似于我们定义一个转账的接口,A实现付款的代码,B实现确认的代码。这些代码就是chaincode。Peer节点Ordering-ServiceCAPeer节点,大部分代码都在peer里面实现.Ordering-Service完成共识机制的地方.CA成员管理.HyperledgerFabric的架构设计Fabric三大核心组件节点(Peer)在Fabric中,Peer主要有三种类型:Endorser,Committer,Submitter。1.Endorser(背书节点):负责对交易提案进行检查背书,根据定义好的规则读写数据,读写集,这个读写的数据叫statedb,或者叫worldstatedb。背书就是签署,它做的具体事情就是根据约定,往事务里读写数据,可以理解为执行合同里的每个条款。注意这个数据没有写到账本数据,因为账本是共享的。2.Committer(确认节点):负责检查交易请求,验证endorsements和transaction结果,并且执行交易,并维护区块链和账本结构。Commiter会写到共享账本数据。3.Submitter:目前版本中还未公布其具体功能,可能会参与写账本。Peer是在网络中具有一定功能的服务或者软件。它在Fabric网络中,主要负责接收交易请求。维护账本,一般都是运行在容器。节点之间通过gRPC进行通信。排序者(Orderer)Orderer负责对收到的交易在网络中进行全局排序。Order是接收transaction,产生block。并且负责共识机制的policy管理,有点类似比特币里面的矿工。CA节点负责对网络中的成员身份进行管理。目前采用的事数字证书机制,CA节点实现了PKI服务。PKI体系PKI(PublicKeyInfrastructure),它不是某一种技术,而是综合多种密码学手段来实现安全可靠传递消息和身份确认的一个框架和规范。一般情况下,包括如下组件:CA(CertificationAuthority):负责证书的颁发和作废,接收来自RA的请求;RA(RegistrationAuthority):对用户身份进行验证,校验数据合法性,负责登记,审核过了就发给CA;证书数据库:存放证书,一般
本文标题:区块链培训
链接地址:https://www.777doc.com/doc-5206993 .html