区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > FIL > 正文

ENC:Cypherium隐私功能实现方案_NCL

作者:

时间:

一、基本模型:

将交易分成两种类型,”PublicTransaction”和“PrivatTransaction”。在实际的交易中,这两种类型都采用了以太坊的Transaction模型,但是又做了部分修改。在原有的以太坊tx模型基础上添加了一个新的“privateFor”字段。同时,针对一个tx类型的对象添加了一个新的方法“IsPrivate”。用“IsPrivate”方法来判断Transaction是public还是private,用“privateFor”来记录事务只有谁能查看。

PublicTransaction

PublicTransaction的机理和以太坊一致。Transaction中的交易内容能被链上的所有人访问到。

PrivateTransaction

PrivateTransaction虽然被叫做“Private”,但是在全网上也会出现与其相关的交易。只不过交易的明细只有与此交易有关系的成员才能访问到。在全网上看到的交易内容是一段hash值,当你是交易的相关人员时,你就能利用这个hash值,然后通过TransactionManager和Enclave来获得这笔交易的正确内容。

现场 | 区块大陆创始人杨扬:Libra第一次向全世界展示了什么叫区块链:金色财经现场报道,2019年第一财经金融科技峰会12月1日在北京举行。区块大陆创始人兼首席科学家杨扬在“区块链与数字货币”高峰对话环节表示,Libra第一次向全世界展示了什么叫区块链,几大互联网巨头和独角兽公司的联盟非常少见。区别于以太坊、比特币的获客生态建设模式,Facebook是一家真正的互联网区块链公司,它拿手上28亿用户来换场景,这是从来没有人干过的事情。但它们为什么会有互信基础,因为大家的利益都被写在区块链上面。[2019/12/1]

PublicTransaction的处理流程和以太坊的Transaction流程一致。Transaction广播全网后,被矿工打包到区块中。节点收到区块并校验区块中的事务信息。然后根据Transaction信息更新本地的区块

PrivateTransaction也会将Transaction广播至全网。但是它的Transactionpayload已经从原来的真实内容替换为一个hash值。这个hash值是由TransactionManager提供的。

声音 | BB:为什么Facebook不构建在区块链上?:Block.one CEO Brendan Blumer今日转发Facebook CEO马克.扎克伯格关于“言论自由” 看法的推特,并评论称:马克理解人们自由表达看法的重要性,但是为什么Facebook不构建在区块链上呢?难道是有太多东西不能公开透明化? (MEET.ONE)[2019/10/17]

二、实现步骤:

1.改造现有程序,将其升级到以太坊较新的代码,将我们的共识算法融入最新代码中。

2.将state分成public和private两部分来实现,分别用来记录“PublicTransaction”和“Private?Transaction”的改变状态。

3.增加对接本地Tessera服务部分(这部分是重点,P2P的加密消息交换机,是以安全的方式提交信息的通用系统)Tessera是一个无状态的java系统,主要用来保证Cypherium中的加密、解密和私有交易的分布式。

每个Tessera节点:

生成和保存许多公私钥对

自我管理,通过公钥和尽可能少的节点链接,在通过自己链接的这些节点进而发现整个网络的所有节点

声音 | 比特币安全专家:代码提交等KPI可信度取决于区块链项目既定目标是什么:据AMBcrypto消息,比特币安全专家Andreas Antonopoulos近期在会议现场提出:“我们是否应该将代码提交、区块链活动、DApp数量或节点数量作为衡量区块链项目成功与否的KPI(关键绩效指标)?这取决于你想达到的目标是什么。”Antonopoulos指出,KPI的可信度在很大程度上取决于选择适合其特定需求的度量标准。然而,他承认在许多情况下很难准确地衡量这些标准。Antonopoulos还提醒与会者,要避免将KPI视为一种投资零和游戏。[2019/5/7]

提供公开和私密的API通讯接口:

私密API-主要用于Cypherium内部的通讯

公开API-主要用于Tessera节点之间的通讯

基于多种信任模型提供双向SSL通讯,包括TLS证书、TOFU(TrustOnFirstUse)、白名单、证书授权等

支持IP白名单

可以连接任何支持JDBC的SQL数据库

它主要由交易处理器和Enclave两部分组成

(1)?交易处理器

声音 | 郎咸平发文:没搞清楚比特币,有什么资格活埋李笑来?:郎咸平于5日在微信公众号“功夫财经”上发布标题为《没搞清楚就瞎投,有什么资格“活埋”李笑来?》的原创文章,评论日前发生的李笑来录音泄露事件。

日前,一段疑似“中国比特币首富”李笑来内部讲话的录音在社交媒体上广泛传播。在这段长达50分钟的录音中,李笑来对以太坊、瑞波、小蚁等多个区块链项目和老猫、罗振宇、赵长鹏等多位区块链领域名人进行了吐槽和评价,全程脏话连篇,不断自曝,引起轩然大波。

郎咸平在文中评论此事件,称自己很早之前就揭露过比特币真相,比特币有“三宗罪”:操纵价格,沦为,区块链没有解决问题。由于这三宗罪的存在,郎咸平十分不建议老百姓当下投资比特币,他在文中谈到:“现在的比特币或者各种区块链Token就是中世纪时期的银行业,放长远来看,可能二十年后这里面谁特别牛,谁从里面捞了第一桶金,毕竟这么多聪明人,群雄逐鹿,你方唱罢我登场,肯定有枭雄。但是,你一个老百姓,我非常不建议你参与这个可能99%都注定肉包子打狗有去无回的游戏。”[2018/7/5]

交易处理器在整个私有交易流程中起到的作用可以查看本章第一节,这里总结概括一下,交易处理器主要有以下几个作用:??<1>Tessera节点P2P网络的基础,Tessera节点是通过交易处理器模块进行节点间通讯的??<2>和Enclave组件之间进行payload加密/解密的沟通??<3>向数据库存储和读取数据??<3>和Cypherium节点进行沟通

动态 | CypherOdin将利用区块链解决菲律宾河流污染:据ethnews援引菲律宾之星的报道,加密货币公司CypherOdin Inc.已与帕西格河修复委员会(PRRC)合作,试图清洁横跨菲律宾的污染严重的水源。 CypherOdin首席执行官Mariano Jose Villafuerte IV认为,区块链技术可能会解决河流污染问题。据悉,帕西格河是世界上污染最严重的河流之一,每年向海洋倾倒多达63700吨塑料。 CypherOdin打算通过在河上安装物联网(IoT)设备跟踪其水质,潮汐水位和其他数据以对抗这种污染。[2018/8/14]

注意,交易处理器必须通过Enclave进行数据的加密解密,本身不能访问任何公私钥,也不能进行任何的数据加密和解密,最大程度保证了数据的安全性。

另外Tessera在启动时,可以通过-Dspring.profiles.active=enable-sync-poller指定是否启用数据恢复功能。启用该功能以后,Tessera节点每连接上一个新的节点都会发送一个“resendrequest”请求,收到该请求的节点会将自己数据库中的交易数据再次发送给每个交易参与方。

2Enclave

Enclave更像是一个接收命令处理数据的黑盒,Enclave可以以软件形式存在也可以以硬件的形式存在,无论是哪一种形式,其目的都是为了保证信息只在Enclave内部,不会被恶意攻击盗取。

TesseraEnclave主要的作用是进行数据的加密/解密,已经公私钥对的生成和管理。这就保证了在程序中有一个安全的地方可以进行数据的加密解密处理,同时敏感信息不会流入程序内存被不必要的参与方读取。如果采用硬件Enclave,也保证程序能够以更小的体积运行在一个安全环境中。

Enclava存储的数据:

·?公私钥访问

·?交易参与方的公钥(这部分信息不涉及敏感数据,其实可以放到交易管理器中)

·?默认连接节点(Tessera节点,不是Quorum)的公钥

Enclave可以处理的请求:

·?获取默认连接节点(Tessera节点)的公钥

·?为每笔交易提供forwardingkeys(推送公钥)

·?当前Enclave保存的所有公钥

·?为给定发送者和参与者的交易载荷加密

·?为给定参与者的交易载荷加密

·?对指定接受者/发送者的交易解密

·?为已经存在的交易载荷增加参与者

其实Enclave的安全性主要在于它只能同Tessera节点的交易管理器通讯,其他组件无法连接Enclave

Enclave可以和交易处理器部署在本地,Enclave也可以部署在远程,提供Restful接口,交易处理器通过HTTP连接。

以下是和Tessera服务对接的工作流程

以上流程图说明:

1、A向Cypherium节点发送一笔交易,注明具体的交易payload,并且设置privateFor字段的值为A(可选)和B的公钥。

2、A的Cypherium节点将这笔交易发送给自己配套的TesseraNodeA的交易管理器,交易管理器存储交易的payload。

3、TesseraNodeA的交易管理器把这笔交易发给Enclave组件,Enclave组件进行交易发起者的身份校验并且加密payload。

4、Enclave的加密过程:

??(1)、随机生成一个主钥RMK和一个随机数,

??(2)、根据上一步生成的RMK和随机数加密交易payload

??(3)、遍历交易参与方

????针对每个参与方:根据Enclave和每个参与方的公钥,生成共享秘钥;生成一个随机数。

????根据共享秘钥和随机数加密RMK。这样保证了每个加密RMK对每一个交易参与方是独一无二的,并且只能由该参与方读取

????返回第二小步生成的加密payload和第三小步生成的所有加密RMKs给交易处理器

5、A的交易处理器计算加密载荷的哈希值并且在数据库中存储(加密payload,hash,加密RMKs)。

6、A的交易管理器通过HTTPS向B的交易管理器发送加密payload,和专门给B的共享钥匙+随机数。B接收到以后回复Ack/Nack。

7、A的交易管理器在收到B的接收回复后,将交易的hash值发送给A的Cypherium节点,Cypherium节点会用hash值替换原有的交易payload并且将交易的V值改为37或38,向其他节点表明这是一笔私有交易。

8、随后这笔交易会利用原有的EtherumP2P通信在节点之间同步。

9、一个包含该交易的块被打包出来,并发送给网络中的所有节点。

10、在处理块时,所有的节点都会处理这条交易,发现交易V值为37或38,Cypherium节点会把交易的内容发给自己对应的Tessera节点的交易处理器,交易处理器根据hash值查找自己的数据库,看自己是否能够解密该笔交易。

11、因为C不是这笔交易的参与反,所有C的Cypherium节点会收到交易处理器的NotARecipient回复,然后C会跳过这笔交易,并且不会改变自己的PriviatestateDB。

12、A和B的交易处理器会发现自己能够处理这笔交易,因此会调用Enclave,向其传入加密payload,加密的秘钥和交易签名等。

13、Enclave验证交易签名,然后用Enclave存储的私钥解密获得RMK,再用RMK解密payload获得交易明文。

14、A和B的交易处理器将解密后的交易内容发送给EVM执行执行智能合约。本次智能合约的执行只会更新节点的PrivatestateDB。

标签:ENCNCLcLAAVEeXPerience ChainUNCLCLASS币My Pandaverse

FIL热门资讯
Beep:平行链插槽拍卖背后的借贷市场,DeFi发展的新“飓风”将起?_beep币扑

最近,波卡的RococoV1测试网宣布重启成功,如果一切运行平稳,那么平行链插槽拍卖就会真正开拍.

区块链:Messari分析师:以太坊将在ETH2.0升级后超越比特币_以太坊币今日价格行情

专门从事数字资产投资研究的分析师Messari预言随着以太坊ETH2.0升级的启动,比特币在数字货币中的地位可能更早被以太坊所取代.

比特币:美国经济刺激计划即将出台 比特币能否再创新高?_加密货币

美国新一轮刺激经济计划的资金在本周晚些时候开始进入银行账户,而早先数据统计,美国散户交易员准备向比特币市场投入数十亿美元,为从去年起席卷加密货币行业的交易狂潮增速.

LAVE:什么是有条件转账?实现 L1-L2 互操作性的关键_CTI

本文意在讲解StarkEX为支持快速取款而提出的解决方案。本方案的优点在于,其速度完全独立于L2的运营者生成有效性证明的速度.

Aztec:金色观察丨Aztec上线Aztec 2.0 Rollup 支持ETH隐私交易_BLOC.MONEY

以太坊上将有和媲美Zcash的隐私交易了。UTC时间3月15日,以太坊隐私技术解决方案Aztec发文宣布Aztec2.0Rollup服务正式主网上线,并同步推出zk.money,zk.money.

TEC:多地连发规划文件 数字人民币迎来政策利好_Concretecodes

目前,数字人民币试点工作正在稳步开展,经过几轮测试和两会热点之后,数字人民币仍然保持着良好的持续推进趋势.