当前位置: 首页 > news >正文

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

请添加图片描述
​​发表时间: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区块链

相关文章:

  • YOLOv8/v10+DeepSORT多目标车辆跟踪(车辆检测/跟踪/车辆计数/测速/禁停区域/绘制进出线/绘制禁停区域/车道车辆统计)
  • Flask中实现WebSocket需要什么组件
  • 如何在mac上玩使命召唤手游?苹果电脑好玩的第一人称射击游戏推荐
  • 面对Redis数据量庞大时的应对策略
  • 【Linux 内核构建】如何查看 Linux 系统中可以选择的内核有哪一些?如何切换 Linux kernel 版本?
  • docker 安装 rabbitmq
  • Java内存马系列 | SpringMVC内存马 - 下 | SpringMVC 内存马分析
  • 人工智能在行动:利用人工智能扩展您的显示和视频工作
  • AI学习指南深度学习篇-带动量的随机梯度下降法的基本原理
  • QT6聊天室项目 网络通信实现逻辑分析
  • 优化算法与正则化
  • Tomcat服务详解
  • 我与Linux的爱恋:yum和vim以及gcc的使用
  • A题 农村公交与异构无人机协同配送优化
  • Rust:Restful API 服务程序开发详述
  • JS 中的深拷贝与浅拷贝
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • angular组件开发
  • CentOS 7 防火墙操作
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • React组件设计模式(一)
  • Spark学习笔记之相关记录
  • springMvc学习笔记(2)
  • Vue2 SSR 的优化之旅
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 第2章 网络文档
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 前嗅ForeSpider采集配置界面介绍
  • 推荐一个React的管理后台框架
  • 用mpvue开发微信小程序
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • ​用户画像从0到100的构建思路
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • #传输# #传输数据判断#
  • $forceUpdate()函数
  • $nextTick的使用场景介绍
  • (Forward) Music Player: From UI Proposal to Code
  • (笔试题)合法字符串
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (二)JAVA使用POI操作excel
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转) ns2/nam与nam实现相关的文件
  • (转)3D模板阴影原理
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)linux 命令大全
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • ... 是什么 ?... 有什么用处?
  • ../depcomp: line 571: exec: g++: not found