我搜索了很多网站博客,但没有获得Quorum区块链中公共交易和私人交易之间的确切区别?
答案 0 :(得分:1)
https://github.com/jpmorganchase/quorum/wiki/Transaction-Processing对我来说似乎很清楚-
公共交易以标准的以太坊方式执行,因此,如果将公共交易发送到持有合同代码的账户,则每个参与者将执行相同的代码,并且其底层StateDB将相应更新。
但是,私有交易不是按标准的以太坊执行的:在发送方的仲裁节点将交易传播到网络的其余部分之前,它将原始交易有效载荷替换为从星座/接收的加密有效载荷的哈希值特塞拉参与交易的参与者将能够通过其Constellation / Tessera实例将哈希值替换为实际的有效载荷,而未参与交易的参与者只能看到哈希值。
结果是,如果将私人交易发送到持有合同代码的帐户,则那些不参与交易的参与者将最终跳过交易,因此不执行合同代码。但是,参与交易的那些参与者将在调用EVM执行之前将哈希替换为原始有效负载,并且其StateDB将相应地更新。如果没有对geth客户进行相应的更改,那么这两组参与者最终将拥有不同的StateDB,并且无法达成共识。因此,为了支持合同状态的这种分歧,Quorum将公共合同的状态存储在全局同步的公共状态Trie中,并将私有合同的状态存储在不全局同步的Private State Trie中。有关根据此方法如何达成共识的详细信息,请参阅关于共识的部分。
公开交易与常规的Eth交易类似,而私有交易似乎是一种限制可以在交易中成功执行智能合约的网络实体数量的方法。打个比方,请考虑互联网和http vs https网站。当您使用http时,网络中的任何人(当然,您和远程站点之间的任何人)都可以监听您的流量并知道您在做什么。在https中,只有目标站点,您才能知道自己在做什么。两种流量类型都在公共网络上承载,并且可以看到在各方之间流动的一些数据,但是区别在于,这些数据对看相看的所有人还是仅具有正确访问权限的某些人有意义。与Quorum Trans相同,每个人都可以看到并执行公共合同,只有某些人可以看到并执行私有合同。它在较大的人群中建立了一些了解秘密的较小人群
答案 1 :(得分:1)
Quorum区块链中的公共交易与以太坊中的公共交易完全相同,它们仅修改区块链的公共状态。 私人交易是通过指定额外的地域 privateFor 以及其他地域来完成的。在其中,我们为交易应为privateFor的节点提供星座公共密钥。 在私有事务中,仅修改完成事务的各个节点的私有状态。 而且,您不能在同一事务中同时在仲裁中同时修改公共状态和私有状态。 希望它能为您提供一个起点,更多信息请参见here