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

零知识证明在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区块链

http://www.kler.cn/news/329308.html

相关文章:

  • 高度细化的SAGA模式实现:基于Spring Boot与RabbitMQ的跨服务事务
  • 甄选范文“论软件的可靠性设计”,软考高级论文,系统架构设计师论文
  • Vue页面,基础配置
  • 机器学习模型评估
  • Web APIs 4:日期对象、时间戳、节点操作、swiper插件
  • VS code user setting 与 workspace setting 的区别
  • 前端规范工程-2:JS代码规范(Prettier + ESLint)
  • consul 介绍与使用,以及spring boot 项目的集成
  • Servlet——springMvc底层原理
  • 苏州 数字化科技展厅展馆-「世岩科技」一站式服务商
  • RD-Agent Windows安装教程
  • 第一节- C++入门
  • 图论(dfs系列) 9/27
  • telnet发送邮件教程:安全配置与操作指南?
  • 09_OpenCV彩色图片直方图
  • git cherry-pick作用
  • ClientlocaleController
  • Dify:一个简化大模型应用的开源平台
  • python中统计奇数和偶数之和
  • 如何在 Kubernetes 集群中安装和配置 OpenEBS 持久化块存储?
  • 卸载apt-get 安装的PostgreSQL版本
  • TI DSP TMS320F280025 Note14:模数转换器ADC原理分析与应用
  • gd32jlink第一次下载可以用,重新上电后不行了
  • 第十四周:机器学习笔记
  • 10 个最佳 Golang 库
  • 常见的 C++ 库介绍
  • C++学习笔记----8、掌握类与对象(二)---- 成员函数的更多知识(1)
  • 昇思MindSpore进阶教程--下沉模式
  • C++和OpenGL实现3D游戏编程【连载12】——游戏中音效的使用
  • DTH11温湿度传感器