零知识证明在BSV网络上的应用

news2024/9/21 12:34:26

请添加图片描述
​​发表时间:2023年6月15日


2024年7月19日,BSV区块链主网上成功通过使用零知识证明验证了一笔交易。

零知识证明是一种技术,它允许一方(证明者)在不透露任何秘密的情况下,向另一方(验证者)证明某个秘密是正确的。由于零知识证明的隐私特性,它在需要保护隐私的场合非常有用。更重要的是,它还可以作为构建更复杂协议的基础。

nChain的研究部门总监张伟在Medium上发表的一篇博客文章中解释说,BSV网络首次成功地通过验证一个交易中的Groth16零知识证明,从而完成了交易有效性的验证。

前往此链接阅读相关技术博客:

https://medium.com/@w.zhang/snark-verification-on-a-bitcoin-mainnet-c467991d931c

值得注意的是,在行业现存的所有区块链中,这也是一项前所未有的突破,同时也是比特币节点一个重要的里程碑,因为它为链上智能合约的发展铺平了道路。

由于比特币的设计初衷是为了确保网络的安全性和去中心化,而不是为了处理复杂的计算任务;与此同时,比特币的脚本语言相对简单,只能执行一些基本的操作,如验证交易签名,而不支持更复杂的编程逻辑。由此一来,比特币系统一直以来都被人们认为计算能力不足。
但现在,通过BSV区块链的实现,比特币网络具备了能够验证计算是否正确完成的能力。这意味着比特币网络可以处理更复杂的任务,如智能合约。这种对智能合约的支持不仅提高了比特币网络的可扩展性,允许它处理更多的交易和复杂的操作,而且还解决了在公共区块链上进行交易时的隐私问题。

张伟对此强调:“我们选择实现Groth16,因为它的特性非常适合优化交易大小,从而降低交易费用。在所有SNARKS中,Groth16具有最小的证明大小和非常高效的验证算法。我们迄今为止最小的实现是针对BLS12-381曲线的Groth16,它实现了480KB的锁定脚本大小和40KB的解锁脚本大小。我们选择在BSV上实现它,因为BSV支持大数运算,并且在其主网上有500KB的默认脚本大小限制。此外,利用BSV上低交易费的优势,我们创建和花费这笔交易仅支付了大约0.015美元。我和我的团队现在正在完善和改进目前Groth16的实现方式,以便在链上部署递归Groth16。”

请在GitHub上关注这个项目的进展:

https://github.com/nchain-innovation/zkscript_package

最近,BitVM和StarkWare这两家公司也发布了一些引人注目的新闻。StarkWare展示了一系列的交易,这些交易使用了一种名为STARK的先进的零知识证明技术来验证它们的正确性。与此同时,BitVM则展示了他们验证了一种叫做SNARK的零知识证明。

STARK和SNARK都是零知识证明的一种形式,它们允许一方在不透露任何敏感信息的情况下,向另一方证明某个陈述是正确的。这在区块链技术中非常有用,因为它可以在不牺牲用户隐私的前提下,验证交易的有效性。
这些交易的主要特点在于,它们都是在比特币的测试网络Signet上发布的,而不是在比特币的主网络上。测试网络是一个模拟环境,用于在不影响实际比特币的情况下测试新技术和交易。这些交易只有在比特币网络启用了一个名为OP_CAT的操作码之后,才能被迁移到主网络。OP_CAT是一个特殊的指令,它的作用是将多个输入连接在一起,这对于某些类型的交易来说是必需的。

sCrypt是第一个在BSV测试网络上实现Groth16验证的。Groth16验证是一种零知识证明技术,它允许在不透露任何敏感信息的情况下验证交易的正确性。sCrypt的验证脚本最初大小为5MB,但在今年的一个黑客马拉松活动中,一个名为ZkBaguette的参赛作品对其进行了改进,将其大小减少到了1.2MB。这种优化使得验证过程更加高效,更易于在实际的区块链网络中得到实施。


目前,全球已有超过400个项目构建于BSV区块链之上。凭借坚如磐石的协议及超高的网络性能,BSV生态系统迅猛发展,我们期待未来出现更多前所未有的商业应用。

  • 对BSV区块链开发感兴趣的朋友,可以前往我们的中文开发者专区:BSV区块链

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

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

相关文章

TP-link-路由器上网设置(已有路由器再连接新的网线)

一、192.168.0.1进入管理界面,比如密码:D804D804。 二、这是设置连接账户和密码(比如账户:TP-LINK_F56C 比如密码:D804D804)登录后台管理、移动设备连接。比较固定。 三、 有的网络是分:&#…

JS面试真题 part1

JS面试真题 part1 1、说说JavaScript中的数据类型,储存上的差别2、说说你了解的js数据结构3、DOM常见的操作有哪些4、说说你对BOM的理解,常见的BOM对象你了解哪些5、 和 区别,分别在什么情况使用 1、说说JavaScript中的数据类型,…

K8s的Pv和Pvc就是为了pod数据持久化

一、 1.pv(persistent volume):是k8s虚拟化的存储资源,实际上就是存储,列如本地的硬盘、网络文件系统(Nfs)、lvm、RAID、云存储。 2.pvc:pod对存储资源的请求,定义了需…

MyBatis:解决数据库字段和Java对象字段不匹配问题及占位符问题

MyBatis:解决数据库字段和Java对象字段不匹配问题及占位符问题 文章目录 MyBatis:解决数据库字段和Java对象字段不匹配问题及占位符问题一、数据库字段和Java对象字段不匹配问题1、问题描述2、解决方案2.1、方案12.2、方案22.3、方案3 二、占位符问题1、…

ELK在Linux上部署教程

Docker Compose搭建ELK Elasticsearch默认使用mmapfs目录来存储索引。操作系统默认的mmap计数太低可能导致内存不足,我们可以使用下面这条命令来增加内存 sysctl -w vm.max_map_count262144创建Elasticsearch数据挂载路径 mkdir -p /echola/elasticsearch/data对…

Day 3 - 5 :线性表 — 单链表

存储结构 将线性表中的各元素分布在存储器的不同存储块,称为结点。 结点的data域存放数据元素ai,而next域是一个指针,指向ai的直接后继ai1所在的结点。 如果要删除a1,只要修改a1前手元素指针的指向即可。 例如:需要找到…

案例——Mysql主从复制与读写分离

目录 一、为什么需要主从复制 二、主从复制原理 2.1复制类型 2.2mysql主从复制的工作过程 2.2.1mysql主从复制延迟 2.3mysql的三种同步方式 2.3.1异步复制 2.3.2同步复制 2.3.3半同步复制 2.4mysql应用场景 三、主从复制实验 3.1主从服务器事件同步 3.1.1master服务…

Web 地图服务 简介

网络地图服务 网络地图服务 由通过互联网托管的地理空间数据组成,其标准由开放地理空间联盟 (OGC) 制定。WMS 支持在 Web 浏览器中以地图或图像的形式交换空间信息并通过 Web 查看。 网络地图服务有很多种类型。例如,一些最常见的格式是 WMS、WFS、WCS…

C140 杨辉三角

C140 杨辉三角 题目题解(94)讨论(102)排行面经 new 简单 通过率:29.57% 时间限制:1秒 空间限制:256M 知识点C工程师牛客 校招时部分企业笔试将禁止编程题跳出页面,为提前适应,练习时请使用在线自测,…

tomato靶场攻略

1.使用nmap扫描同网段的端口,发现靶机地址 2.访问到主页面,只能看到一个大西红柿 3.再来使用dirb扫面以下有那些目录,发现有一个antibot_image 4.访问我们扫到的地址 ,点金目录里看看有些什么文件 5.看到info.php很熟悉&#xff0…

Java对象拷贝的浅与深:如何选择?

在日常开发中,我们经常需要将一个对象的属性复制到另一个对象中。无论是使用第三方工具类还是自己手动实现,都会涉及到浅拷贝和深拷贝的问题。本文将深入讨论浅拷贝的潜在风险,并给出几种实现深拷贝的方式,帮助大家避免潜在的坑。…

SpringBoot开发——整合Logbook进行HTTP API请求响应日志输出

文章目录 1. 简介依赖管理2. 实战案例2.1 基本用法2.2 结合Logback日志记录到文件2.3 自定义核心类Logbook2.4 自定义日志输出Sink2.5 与RestTemplate集成1. 简介 记录HTTP API请求响应日志对于监控、调试和性能优化至关重要。它帮助开发者追踪API的使用情况,包括请求来源、参…

基于ssm+vue+uniapp的“健康早知道”小程序

开发语言:Java框架:ssmuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:M…

好尴尬,借用的轮子在我这里还是没有运行起来

前期引用flask框架,由于版本不兼容,像是捅了flask-bug的窝。一开始是减低版本,然后一换卡一环,直接百度,试了很多办法都没有成功。 之后添加语句 下面展示一些 内联代码片。 # -*— coding:utf-8 -*— from datetime…

四战搜索,抖音难造“百度”

转载:新熵 原创 作者丨余寐 编辑丨九犁 抖音搜索野心暴露无遗!接连4次发起猛攻,这是要颠覆搜索市场的节奏?还是因为流量触顶,急寻新入口? 执念太深!抖音还是没放弃搜索,并发起一场…

人工智能在C/C++中的应用

随着技术的飞速发展,人工智能(AI)已经成为我们日常生活中不可或缺的一部分。从智能手机的语音助手到自动驾驶汽车,AI的应用无处不在。在众多编程语言中,C和C因其高性能和灵活性,成为实现复杂AI算法的理想选…

回调函数是什么,为什么要有回调函数?有什么优缺点?回调的本质是什么?

目录 前言 一、回调函数是什么? 二、为什么要有回调函数? 三、回调函数的优缺点 四、回调的本质是什么? 五、回调函数的实现方式 六、函数指针、Lambda 表达式、std::function: std::function这三者有什么不一样 1. 函数指…

仪表盘echarst

var bgColor #041F34,borderColor "#fff"let dataVal20 option {backgroundColor: bgColor,color: [borderColor],title: [{text: 处理率,x: center,top: 40%,textStyle: {color: #FFE600,fontSize: 56,fontWeight: 600,},},],series: [{type: pie,zlevel: 1,radi…

数据结构----高度为h的m叉树(记录一题)

(1)各层结点个数: 类比二叉树可得: 所以各层结点个数: (2)编号为i的结点的双亲结点(若存在)的编号是多少? 若存在表示:i>1(根节点没有双亲结点) 假设i结点有左兄弟和右兄弟&a…

javaweb项目1

1.配置servlet 注意:需要在web.xml进行操作。 2.执行原理 3.五个方法 1.init 在servlet创建的时候,执行,并且只执行一次。 init 方法可以用来执行 Servlet 的初始化逻辑,比如: 读取配置参数初始化数据库连接加载资…