以太坊不单单是公链
公有链、联盟链、私有链区别
区块链目前分为哪几类呢?
1“公有链”(Public blockchain)
2“私有链”(Private blockchain)
3“联盟链”(Consortium blockchain)
三类区块链主要区别是什么?
公有链:对所有人开放,任何人都可以参与;
联盟链:对特定的组织团体开放;
私有链:对单独的个人或实体开放。
业内外人士观点
业内外人士对于该采用以上哪种类型的区块链看法不一,并引发了诸多围绕公有链与私有链的争论。现在业内普遍认为联盟链介于公有链和私有链之间,实质上仍属于私有链的范畴。目前金融机构多偏向私有链,但也有人认为这只是暂时的.
业内人士表示,联盟链可视为“部分去中心化”,公众可以查阅和交易,但不能验证交易,或不能发布智能合约,需获得联盟许可。
下文主要介绍一个以太坊的联盟链项目
以太坊联盟链
以太坊公链很多人都很熟悉,说到联盟链,一般都会想到超级账本-Hyperledger。这里介绍下,基于以太坊开发的联盟链-Quorum。
详见:https://github.com/jpmorganchase/quorum/wiki
不错~~你没看错jpmorgan,摩根大通,作为美国最大的金融服务机构之一,其在2015年初时便对比特币及其底层技术产生了兴趣,从招聘加密货币专家、加入区块链联盟R3CEV、与数字资产控股公司(Digital Asset Holdings)合作开展区块链试验项目、测试区块链汇款、推出分布式账本原型Juno,到推出企业级区块链项目Quorum,摩根大通的区块链探索之路,正从起步,变成领跑。来自巴比特上对该项目的介绍。
公有链、联盟链、私有链的概念就不啰嗦了,直接介绍下基于以太坊的Quorum。
隐私保护
首先联盟链在超级节点之间来实现区块链的生成,那么以太坊公链是去中心化模式,节点之间平等。在Quorum中在以太坊的基础上进行改进,引入了隐私保护功能,这个在联盟链中是很重要的一个环节,考虑数据的隐私。在Quorum中有私有状态,私有交易等机制对交易的数据进行隐私保护。
共识机制
其次联盟链,一般会重点考虑交易的效率,特别是银行系。在Quorum中提供了两种不同于比特币、以太坊的POW共识机制。分别是:
RAFT一致性
Istanbul BFT(在拜占庭容错环境下使用该一致性协议)
Quorum模块
以太坊协议作为Quorum的底层,在Quorum层中有各模块分别各司其职。
交易管理模块:对私有交易进行加密,且和其他节点通讯的时候提供加密交易数据。
加密模块:加密算法、密钥管理、数据的加解密。
网络管理模块:控制网络的接入,授权节点加入联盟链。
Quorum模块:通过智能合约来实现投票共识机制。
Quorum运行理念
Quorum的理念就是通过加密交易,加密当前的交易信息,让无关的节点无法获取相关的信息。是一套单一区块链和智能合约软件构成的一套联盟链体系。当然底层基于以太坊的协议,在智能合约中增加了隐私保护的字段,同时把以太坊的共识机制进行修改,使用上述的RAFT或者Istanbul BFT。同时区块中节点在验证的时候,只验证公共的交易和与本节点相关的交易,那么和本节点无关的交易就可以不去验证。
问题一:
区块链要求每个全节点有完整的数据,那么交易分为公有交易和私有交易,是不是会出现本地两个库(一个公共的、一个单独的私有交易)?
在Quorum中所有的交易包括加密的私有交易都会以加密数据的形式记录下来,形成一条链的共识,都复制存储在每一个全节点中。
问题二:
私有交易如何生成和执行?
在Quorum中交易消息发送前,会针对交易数据字段的代码进行加密后形成散列值,那么在和该交易相关的节点,可以在交易模块中有上述散列值获得对应的加密代码,然后通过加密模块解密,解密后的代码在EVM中运行,最后结果返回给私有交易状态数据库。那么无关的节点就只能获得交易中的散列值。
私有交易
私有交易处理流程:
处理流程具体内容
交易发起方发起交易交易发起者向Quorum接口发送私有交易的交易相关方及交易数据
节点处理Quorum网络中节点的网络管理模块向交易管理模块发送交易数据(这里针对私有交易,故有一个私有交易的说明,以便后续处理)
交易模块和加密模块互动交易模块向加密模块发送相关交易方的信息和交易数据
加密模块加密加密模块使用PGP方式进行加密。
PGP加密处理随机生成一对对称密钥(对称密钥在执行效率上通常认为优于非对称密钥),使用对称密钥加密数据,再获取交易双方的RSA公钥,再对对称密钥进行一次加密,最后计算加密数据的散列值
加密模块返回消息至交易模块加密模块把处理过的加密交易数据形成消息传回给交易模块(包括上述加密数据、加密数据的散列值、交易双方公钥加密后的对称密钥)
交易模块处理交易模块存储交易数据信息,且广播到其他交易相关节点的交易模块。同时交易模块也会将加密数据的散列值传回到网络管理模块
网络管理模块处理加密数据的散列值作为Quorum交易消息字段,指明交易的双方,然后发送到有权限的节点
私有交易验证流程:
验证流程具体内容
节点收到区块节点收到新的区块,那么区块内的私有交易需要进行验证
网络管理模块处理网络管理模块发送交易的数据请求到交易模块
交易模块处理交易模块发送交易双方的信息(签名)到加密模块
加密模块处理加密模块验证交易双方的签名,确定交易的发出方信息
交易模块再处理交易模块根据消息中的散列值去寻找相应的加密数据,且将加密数据和当前节点的公钥加密后的对称密钥发送给加密模块
加密模块再处理加密模块用当前节点的私钥解密获得对称密钥,再用对称密钥解密交易数据,处理后将交易数据传输给网络管理模块
网络管理模块再处理把交易数据代码传送给EVM中执行
EVM执行后处理EVM处理上述代码更新相应的私有交易状态库
大致介绍Quorum。