长安链可验证数据库,保证数据完整性的可信存证方案

news2024/11/23 11:19:07

近日,长安链发布“可验证数据库”实现了链上链下协同存储及数据完整性保证,显著提升长安链存储能力的可扩展性。

可信存证是联盟链最典型的应用场景,被广泛应用在司法、工业、农业、贸易等领域。联盟链的存证应用主要分为两个阶段:存证和用证。存证阶段由相关参与方将原始数据或其散列值写入到区块链,用证阶段由用户或司法机关从区块链上取回数据,或由相关参与方提供数据并通过区块链验证其散列值。

但是原始数据上链和散列值上链这两种方式都存在一定的不足:原始数据上链会占用大量的存储,每个节点都需要保存数据副本,远高于分布式系统“两地三中心”的冗余要求,因此对所有节点都会造成极大的存储压力和开销;散列值上链能够在一定程度上压缩链上存储成本,但是在查询链下存储的数据时,通过散列值只能验证参与方提供数据的真实性,而无法确保参与方提供了全部相关数据,即数据查询结果的全面性无法得到保证。

图片

可信存证典型应用场景

“区块链可扩展性关键技术研究”是由未来区块链与隐私计算高精尖创新中心任务团队针对可信存证等联盟链应用场景特点,兼顾链下业务系统数据存储和链上智能合约完整性验证的需求,实现并开源了链下可验证数据库及配套智能合约。这一成果主要从两个方面解决区块链的存储扩展问题:一是区块链参与者将数据写入具有Merkle B+树索引结构的链下数据库,并将根节点信息定期上链,使链上数据规模极小且增长速度只与时间相关。二是智能合约能够查询链下数据,并且能够在查询结果的基础上通过 Merkle证明和范围证明验证查询结果的正确性、真实性和全面性。

图片

链下可验证数据库索引结构

可验证数据库支持以数据库模式独立运行和作为MySQL存储引擎加载运行两种运行方式,用户可以通过可验证数据库内置的命令行终端或者使用MySQL开源生态工具与数据库交互,大大降低了业务开发人员的使用和迁移成本。同时,本成果提供了配套的智能合约,用户可以通过调用智能合约完成数据库查询任务下发和查询结果的完整性验证。因此在存证等区块链典型场景中能够在确保数据可信、可用的前提下,降低存储成本,并可根据存储需要弹性扩展存储能力。

图片

链上链下交互过程

数据完整性能够通过Merkle证明和范围证明保证。本项目的Merkle证明与Merkle树中的Merkle证明是相同的,范围证明由查询条件边界和Merkle证明共同组成。由于存储引擎中的数据记录是有序的,因此只要查询结果中包含查询条件边界,范围证明就能够保证所有满足查询条件的记录都已经包含在查询结果中。因此能够通过遍历数据保证其正确性,通过Merkle证明保证其真实性,通过范围证明保证其全面性。此外,由于只需要定期将根节点信息发送到区块链,因此链上数据规模很小且与原始数据的大小和数量都无关。

本项目与其他常用方案的对比如下:

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1191803.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决方案 |法大大电子合同推动汽车后市场多元数智化发展

近日,商务部等9部门联合发布《关于推动汽车后市场高质量发展的指导意见》(以下简称《指导意见》),明确了汽车后市场发展的总体目标和主要任务,系统部署推动汽车后市场高质量发展,促进汽车后市场规模稳步增长…

【kafka】Java客户端代码demo:自动异步提交、手动同步提交及提交颗粒度、动态负载均衡

一&#xff0c;代码及配置项介绍 kafka版本为3.6&#xff0c;部署在3台linux上。 maven依赖如下&#xff1a; <!-- kafka --><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka_2.13</artifactId><version>3.6.0…

QGraphicsView

** QGraphicsView教程及示例代码 ** 1、简介 在Qt界面库中,对于图形的绘制,可以使用 QPainter 实现普通二维图形的绘制,该方法在 paintEvent 事件里编写绘图程序,其本质绘制的图形是位图,这种方法更适合于绘制复杂度不高的固定图形,并且不能实现图项的选择、编辑、拖…

福布斯:Salesforce和ZohoCRM,哪个更适合你?

上周&#xff0c;福布斯发布了《CRM软件指南》&#xff0c;从企业的实际需求出发&#xff0c;通过性价比、功能、可用性、第三方集成、分析工具等多个维度进行比较&#xff0c;最终推选出7家代表厂商。本周&#xff0c;福布斯就其中呼声较高的两家企业Salesforce、Zoho CRM做进…

uniapp和vue3+ts开发小程序,使用vscode提示声明变量冲突解决办法

在uniapp中&#xff0c;我们可能经常会遇到需要在不用的环境中使用不同变量的场景&#xff0c;例如在VUE3中的小程序环境使用下面的方式导入echarts&#xff1a; const echarts require(../../static/echarts.min); 如果不是小程序环境则使用下面的方式导入echarts&#xff…

苹果手机发热发烫是什么原因?看完这篇你就知道了!

苹果手机以其卓越的用户体验和优秀的性能得到了广大用户的喜爱和追捧。在日常使用苹果手机时&#xff0c;我们可能会遇到手机发热发烫的情况。那么&#xff0c;苹果手机发热发烫是什么原因呢&#xff1f;小编将为大家解析这一问题的原因&#xff0c;并为您提供相应的解决方案&a…

mysql隐式转换转换引起的bug

生产环境中遇到一个情况情况 &#xff0c;过滤数据发现过滤不掉相关值情况&#xff0c;具体情况如下 原始数据&#xff1a; CREATE TABLE test (id bigint(11) NOT NULL AUTO_INCREMENT COMMENT 自增id,subject_id bigint(11) NOT NULL DEFAULT 0 COMMENT 主题id,subject_nam…

Java 设计模式——享元模式

目录 1.概述2.结构3.实现3.1.抽象享元3.2.具体享元3.3.享元工厂3.4.测试 4.优缺点5.使用场景6.JDK 源码解析——Integer 类 1.概述 &#xff08;1&#xff09;享元模式 (Flyweight Pattern) 是一种结构型设计模式&#xff0c;主要通过共享对象来减少系统中的对象数量&#xff…

【Cheat Engine7.5】基础教程第三关(步骤4)

文章目录 一、简介二、操作步骤2.1、加载进程2.2、查找健康数据2.2.1、首次扫描(单浮点数100)2.2.2、点击打我&#xff0c;再次扫描数值97.112.2.3、修改数据值为50002.2.4、测试正常 2.3、查找弹药数据2.3.1、双浮点数1002.3.2、点击开火2.3.3、修改数据2.3.4、测试 2.4、通关…

【23真题】太难!千万别考!不值!

今天分享的是23年哈尔滨工程大学810的信号与系统试题及解析。 为什么说不值呢&#xff1f;因为哈工程810据之前的分析来看不保护一志愿&#xff0c;就23年810的专业课来看&#xff0c;又在超纲的边缘疯狂试探&#xff01;&#xff08;如果它默认考DSP&#xff0c;当我没说&…

这份华为以太网接口配置命令太真香了!

【赠送】IT技术视频教程&#xff0c;白拿不谢&#xff01;思科、华为、红帽、数据库、云计算等等_厦门微思网络的博客-CSDN博客文章浏览阅读415次。风和日丽&#xff0c;小微给你送福利~如果你是小微的老粉&#xff0c;这里有一份粉丝福利待领取...如果你是新粉关注到了小微&am…

if...else绝佳替换方案

目录 方法一&#xff1a;提前 return方法二&#xff1a;枚举方案三&#xff1a;Optional 判空方案四&#xff1a;表驱动法方案五&#xff1a;策略模式 工厂方法方案六&#xff1a;责任链模式方案七&#xff1a;Function 方法一&#xff1a;提前 return 假如有如下代码&#x…

python实现微信新版v3的jsapi支付

python实现微信新版v3的jsapi支付 1、需要从公众号、商户号获取的信息 注意&#xff1a;在商户号的支付授权目录中需要设置好发起支付的界面url&#xff0c;比如我的&#xff1a; http://xxx/paypage/# 商户证书私钥&#xff0c;此文件不要放置在下面设置的CERT_DIR目录里。…

ZYNQ通过AXI DMA实现PL发送连续大量数据到PS DDR

硬件&#xff1a;ZYNQ7100 软件&#xff1a;Vivado 2017.4、Xilinx SDK 2017.4   ZYNQ PL 和 PS 的通信方式有 AXI GPIO、BRAM、DDR等。对于数据量较少、地址不连续、长度规则的情况&#xff0c;BROM 比较适用。而对于传输速度要求高、数据量大、地址连续的情况&#xff0c;比…

浏览器标签页之间的通信

前言 在开发管理后台页面的时候&#xff0c;会遇到这样一种需求&#xff1a;有一个列表页面&#xff0c;一个新增按钮&#xff0c;一个新增页面&#xff0c;点击新增按钮&#xff0c;在一个新的标签页中打开新增页面。并且&#xff0c;新增后要自动实时的更新列表页面的数据。…

Mybatis-plus 内部提供的 ServiceImpl<M extends BaseMapper<T>, T> 学习总结

作用 当集成Mybatis-Plus 后&#xff0c;我们的大部分数据库操作都可以通过 XxxxxMapper &#xff0c;同时 Mybatis-plus 在Mapper 提供基本操作方法的同时&#xff0c;也提供类基础的 serviceImpl 来帮助我们完成一些常见的基本操作。 使用 一般情况下&#xff0c;我们首先…

腾讯云真的是良心云!服务器带宽、CPU、硬盘IO性能大揭秘!

本文将通过对腾讯云服务器CVM S5 4核配置的云服务器进行测试&#xff0c;来评估其在带宽、CPU和硬盘IO性能方面的表现。 在云服务器的并发处理中&#xff0c;带宽是一个重要的因素。经过测试&#xff0c;腾讯云的带宽网络表现非常出色&#xff0c;能够跑满带宽&#xff0c;同时…

1.linux极速进阶

目录 概述文件相关vi文件编辑查找字符串查找某一行内容复制粘贴快速删除快速跳到文件首行和末行 进程相关ps/netstatjpstopkill linux三剑客grepsed添加方面操作删除方面替换操作 awk 结束 概述 身为后端开发&#xff0c;大数据平台搭建&#xff0c;对 linux 系统的操作最起码…

React的refs和表单组件总结

React的refs和表单组件 react中refs的使用字符串形式的ref react核心就在于虚拟DOM&#xff0c;也就是React中不总是直接操页面的真实DOM元素&#xff0c;并且结合Diffing算法&#xff0c;可以做到最小化页面重绘&#xff0c;但有些时候不可避免我们需要一种方法可以操作我们定…

pip 安装任意软件包报错

现象 使用 pip 命令时提示 查看源码 可以看到是从 pip 包中导入 main失败&#xff0c;点击查看目录 main 文件不见了&#xff0c;判断是文件缺失&#xff0c;重装 pip 即可 # python3 下载 pip curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # python2 下载…