物联网区块链项目的思考和Idea
对于物联网感知所得到的数据信息,将其存储在将编码技术和共识机制相结合的改进区块链上,研究
- 解决传统存储方式带来的存储花销问题
- 同时解决编码后存储区块链带来的解码通讯信息量过大的问题。
研究方向
- 需要存储什么
- 传统存储方案
- 区块链共识机制中怎么减少存储/通信信息
灵感
编码层面
签名聚合
基于 [[../../论文/区块链/以患者为中心的细粒度访问控制,通过双区块链安全共享电子病历]]
医生对某一病历签名,医院收集全部病历后验证签名,随后加上医院的签名
此后上载到MED链的信息不再存储医生的签名医院签名就相当于担保了全部医生的签名,因此无需存储医生的签名了。
在签名时采取逐层签名,保留上层聚合签名,去除下层签名的机制
- 最底层:楼宇的某一层对本楼的信息收集后附带上本楼层的签名
- 中间层:某个单元收集本单元全部楼层后可以附带上本单元的签名,同时舍去各个楼层的签名
- 上层:小区收集本校区全部单元楼的消息后,附带上本小区的签名,同时舍去各个单元的签名
拓展思路:最底层仅对应的单元楼存储,其他单元楼不存储(只存储他的哈希值用于校验)
精简区块体
分片存储
[[../../论文/区块链/基于编码的许可链|基于编码的许可链]]
- 联盟链上的信息分散到楼栋存储
- 进行两级分片编码
- 一级编码解决了委员会内部的恶意结点问题
- 二级编码解决了各个园区内部私有链中恶意结点的问题
- 两级编码将整个园区的巨量信息分散到每个楼宇存储。
- 签名可以使用刚刚的聚合签名,只需要验证园区签名即可
解决分片的查询效率
- 💡因为是并行的,所以效率一般不会太低。而且其他非委员会节点处理的事务并不多。
- 缓存机制
- 缓存整个一级编码
- “局部性原理“:一段时间内会访问,那么下一次也会访问
- 如何控制缓存大小,操作系统调页算法(最近最久未使用、clock)
- 二级分片进行最优化管理
- 分片数量少——单个节点存储量多;分片数量多——通信过程大
- 找到一个最优化的方案
- 如果分片数量>某个园区的存储数量,那么主节点预存额外的几个编码,只需额外收集到一个楼宇信息即可完成解码
- 主节点多存两三个分片,那么需要收到其他的节点的分片数量就少了。
主节点辛苦一点,存储完整的一级编码,如果主节点叛变,可以通过附属楼宇用二级编码来解决主节点存储的压力仍然不小不要求一级编码可以满足拜占庭,这样分片数量可以尽量精简一些,只需要二级编码满足拜占庭即可。
- 缓存机制
每个楼层只需存储他的区块头
共识层面
- 用hotstuff代替普通的拜占庭,节省通信开销。区块链基础知识
委员会/分园区共识
基础设想
具体的共识算法参考[[../../论文/区块链/基于编码的许可链|基于编码的许可链]]的分组编码的联盟链设计
在原始论文中,通知其他结点需要存储的信息由主节点承担
可以改进为由“每个委员会”负责。
即我们对非委员会结点
也进行了分组
以园区
为一个组织,如小红、小绿、小紫三个公司
- 三个公司的主节点作为委员会结点,其运行一套共识机制(如hotstuff)
- 传送的消息中的签名仅包含本公司的签名(聚合了各个楼层、各个楼栋的签名)
- 当委员会达成一致的时候,委员会结点向本公司内部传递应该存储的消息编码
无需让每个园区的各个楼宇都参与共识,他们只需要负责存储即可
只要每个园区的“代表”主节点来进行共识即可。
如果一个委员会有问题
- 发送全网广播
- 恶意结点的委员会内部开始重新选举
- 其他委员会不动
- 委员会内部再选举主节点
委员会的选举
参照[[../../论文/区块链/权威证明共识机制在区块链上的研究和应用|权威证明共识机制在区块链上的研究和应用]]
- 利用
权重值+贡献积分
来确定各个园区主节点
IDEA:基于分片存储+动态委员会
楼宇物联网的特性
- 分散且集总:
- 公司间分散(各个公司之间可能隔着马路)
- 按某个公司集中(公司内部的信息可以联通)
- 物联网设备上下级明显:
- 楼层的监控设备归属某个公司的安保部统一管辖
->园区分层特性明显
- 楼层的监控设备归属某个公司的安保部统一管辖
部分物联网信息不可传递给其他公司,具有严格的保密性
->门限签名
楼宇中部分设备可以认为固定且权威
->赋予较高贡献值
基于共识算法:Hotstuff进行改进
- 改进层面——
- 新增信誉值
- 基于图的信誉值(异步网络)
- 动态信誉值赋分
- 成长速度的调整
- 新增信誉值
初始版本
评论