先看流程图

为了锻炼画图技术,我用processon自己花了一遍

希望解决什么问题

由于区块链账本公开透明,存在着隐私被泄露了风险,攻击者比较容易获取链上的账本信息,从而获取所有用户的交易记录。然后利用关联分析,找到和实际中用户的关系,造成隐私泄露。

基于什么场景

能源交易,目前联盟链广泛用来实现安全可靠的交易(例如风能电能等)

利用什么技术,有什么创新点

1.使用过聚合签名技术,可以实现对用户真实交易分布的隐藏,降低隐私泄露的风险
2.采用了一对多的能源账户匹配机制,并利用聚合签名进行保护安全性,降低交易过程的存储和通信开销,提高实用性
ps:聚合签名在提高安全性的同时,减低存储和通信的开销

定义角色

1.联盟链网络:能源交易的基础设施网络
2.代币银行:网络中实现用户能源销售获取代币、对用户的真实交易记录进行分割隐藏处理的节点
3.能源存储池:能源存储的节点
ps:能源存储,感觉有点ipfs内味了,分享存储和算力之类的
4.交易实体:能源的卖方

发出售卖请求

用户向最近的能源存储池传输能源,发出出售请求
能源存储池设置能源体积V和汇率R,将其签名后发送给代币银行
代币银行验证签名

代币银行的操作

计算代币T0 = V * (1 – R)
通过预测函数生成预测值,当预测值大于阈值则活跃,否则则非活跃
若预测值 + 本次交易量 > 实际能源值:仍用现有账号
若预测值 + 本次交易量 < 实际能源值:产生新账号

新账号产生流程

1.代币银行向用户发request,要求其提供已有代币银行加密的原有用户到账户映射信息密文和代币银行对该密文的聚合签名
2.若非法,重新发送;合法则认可,同时存储该聚合签名
3.代币银行对用户到新产生的账户间的映射关系进行加密,并对密文进行签名(对称加密)
4.代币银行将新产生的签名和用户发来的聚合签名重新进行聚合,得到一个新的聚合签名
5.代币银行用加密之后的用户到新账户的映射信息,在代币银行内部更新原来的映射加密信息
6.代币银行将新的映射密文和聚合签名发给用户,提醒用户进行更新
7.代币银行存入代币并交易数据上链

有效结果

构造了一种改变联盟链上用户能源交易真实分布的方法,通过基于噪声的隐私保护方法来隐藏账本上记录的相邻能源交易系统中的用户交易分布趋势,引入一对多分割账户隐藏。使用聚合签名,保证映射关系的完整和准确性,并减低存储通信开销

总结

通过随机更新代币所在的账户隐藏用户信息
利用聚合签名保证映射的完整和有效,并提高效率