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

SNARKs 和 UTXO链的未来

1. 引言

SNARKs 经常被视为“解决”扩容问题的灵丹妙药。虽然 SNARKs 可以提供令人难以置信的好处,但也需要承认其局限性——SNARKs 无法解决区块链目前面临的现有带宽限制。

本文旨在通过对 SNARKs 对比特币能做什么和不能做什么进行(相对)简单的概述来揭开 SNARKs 的神秘面纱。将研究其与比特币相关的功能如何简明扼要地概括为非交互式见证聚合 (Non-Interactive Witness Aggregation,NIWA)。如果了解比特币的工作原理,将能够理解本文。

值得注意的是,SNARKs 仍然是一个非常活跃的研究领域。许多 SNARKs 变体要么效率不够高,无法证明复杂的语句,要么证明大小过大,要么需要可信的设置。话虽如此,多年来已经取得了很大进展,预计未来十年将继续看到改进。本文是为了期待这样的改进而写的,即使它今天可能并不实用。【本文写于2020年,目前SNARKs技术已走向实用。】

2. 何为SNARKs?

SNARKs 是一种结构,它允许在给定规则集和起点的情况下高效地验证结果。导致结果的输入不会被透露(“零知识”)。

以简单的国际象棋示例来解释。

国际象棋示例:

  • 规则:国际象棋规则集
  • 开始:棋盘的起始位置 A
  • 结果:棋盘的新位置 B

证明游戏从位置 A 有效过渡到位置 B 的常规方法是简单地揭示所有动作并检查它们是否有效。SNARKs 可以做同样的事情,但更好:

  • 无需透露移动集合(私密,数据更少)
  • 验证在计算上更高效

尽管创建 SNARKs 的计算成本往往很高。然而,在许多人希望验证相同结果的系统中,如区块链,这仍然是值得的。只有一个人需要付出努力来创建该 SNARK,从而提高每个人的验证效率。

区块链示例:

  • 规则:全节点软件
  • 开始:A 时刻的区块头和 UTXO 集合哈希值
  • 结果:B 时刻的区块头和 UTXO 集合

与国际象棋示例类似,验证转换的常规方法是从时间 A 的 UTXO 集(所有未使用的交易)开始,接收所有区块,并一直更新 UTXO 集,直到到达时间 B。使用 SNARKs,不需要这些数据来证明有效性。事实上,如果将时间 A 设置为创世区块(空的 UTXO 集),将时间 B 设置为现在,则可以在不接收任何历史数据的情况下验证整个链。

需要注意的是,对于时间 B,需要整个 UTXO 集,而不仅仅是 UTXO 集哈希。虽然这些数据对于证明有效性并非严格必需,但也关心可用性。如果只有 UTXO 集哈希,那么虽然你知道存在有效状态,但实际上并不知道该状态是什么。这意味着你无法花费任何coins,因为无法证明特定 UTXO 是集合的一部分的数据。在国际象棋类比中,会有新棋盘位置的哈希,但实际上不知道该位置是什么,因此无法继续玩游戏。

请注意,无论是谁制作了 SNARKs(大概是矿工)都会拥有这些数据(因为首先需要这些数据来创建 SNARK),但他们可能会选择向你隐瞒这些数据。

3. SNARK UTXO链

为了保证每个人都能使用自己的coins,更新 UTXO 集所需的所有数据都必须与每个区块进行通信。需要知道哪些 UTXO 已被使用(输入),哪些是新添加的(输出)。这就是所谓的non-witness data非见证数据。

转换的有效性可以通过单个 SNARK 来验证,从而取代所有witness data见证数据(脚本、签名),并且几乎不占用带宽。输入和输出之间的关系并不明显——一个区块看起来就像一个大的 Coinjoin 交易。大部分数据将是非见证数据。

与普遍看法相反,SNARKs 无法解决轻节点或non-federated非联合侧链背后的根本问题,因为必须始终下载非见证数据。如果非见证数据缺失,全节点具有拒绝有效 SNARK 的关键能力,而如果轻节点忽略了下载非见证数据,它可能会错误地认为缺少数据的链有效。如果矿工隐瞒哪怕一条非见证数据,除了那些特定的矿工之外,没有人能够创建具有有效 SNARKs 的新区块,从而将其变成一个许可系统。

4. SNARKs 消耗witnesses见证

UTXO链的 SNARK 或许可以概括为实现以下功能:

非交互式见证聚合 (Non-Interactive Witness Aggregation,NIWA)

在此广泛使用“见证”一词。

  • 在比特币中,见证是交易内部的数据,用于证明是否允许创建特定的 UTXO。
  • 但随着时间的推移,当 UTXO(非见证数据)被使用时,它就会成为自己的见证。当 1 BTC 从 Alice 发送给 Bob 再发送给 Carol 时,Bob 的交易就是 Alice 向 Carol 转账的见证。
    • 同样,自创世以来的所有已使用交易都是当前 UTXO 集的见证。

还要注意,SNARKs 本身就是见证。如果每笔交易都由 SNARKs 验证,也可以 NIWA 这些 SNARKs 成每个区块的单个 SNARK。而且由于输出在被使用时就成为见证,甚至可以将未确认但已使用的输出放入内存池中并聚合它们。Alice 到 Bob 再到 Carol 变成 Alice 到 Carol,实现非交互式Transaction cut-through交易直通。当单个 UTXO 带有许多分支链下交易(如闪电通道工厂的情况)被强制上链时,这可能特别强大。

5. 小结

本文总结了 SNARKs 对于具有NIWA UTXO链的核心功能。任何见证数据都可以通过 SNARKs 非交互式聚合。剩余的非见证数据直接反映了系统的状态——UTXO 集。虽然 SNARKs 可以实现一些很棒的功能,如允许仅通过下载 UTXO 集和单个 SNARK 即可从创世开始追赶,或者将未确认交易序列非交互式聚合为单个交易,但仍然需要发布每个新区块的所有非见证数据,以允许所有节点更新其 UTXO 集。因此,SNARKs 无法解决UTXO链的基本带宽限制。

在这里插入图片描述
NIWA 在行动。SNARKs消耗见证,同时也是自己的见证。SNARK 消耗 SNARK。

参考资料

[1] Ruben Somsen 2020年10月博客 SNARKs and the future of blockchains

相关文章:

SNARKs 和 UTXO链的未来

1. 引言 SNARKs 经常被视为“解决”扩容问题的灵丹妙药。虽然 SNARKs 可以提供令人难以置信的好处,但也需要承认其局限性——SNARKs 无法解决区块链目前面临的现有带宽限制。 本文旨在通过对 SNARKs 对比特币能做什么和不能做什么进行(相对&#xff09…...

JavaScript设计模式 -- 外观模式

在实际开发中,往往会遇到多个子系统协同工作时,直接操作各个子系统不仅接口繁琐,还容易导致客户端与内部实现紧密耦合。**外观模式(Facade Pattern)**通过为多个子系统提供一个统一的高层接口,将复杂性隐藏…...

百达翡丽(Patek Philippe):瑞士制表的巅峰之作(中英双语)

百达翡丽(Patek Philippe):瑞士制表的巅峰之作 在钟表界,百达翡丽(Patek Philippe) 一直被誉为“世界三大名表”之一,并且常被认为是其中的至高存在。一句“没人能真正拥有一枚百达翡丽&#x…...

阿里云一键部署DeepSeek-V3、DeepSeek-R1模型

目录 支持的模型列表 模型部署 模型调用 WebUI使用 在线调试 API调用 关于成本 FAQ 点击部署后服务长时间等待 服务部署成功后,调用API返回404 请求太长导致EAS网关超时 部署完成后,如何在EAS的在线调试页面调试 模型部署之后没有“联网搜索…...

分享一款AI绘画图片展示和分享的小程序

🎨奇绘图册 【开源】一款帮AI绘画爱好者维护绘图作品的小程序 查看Demo 反馈 github 文章目录 前言一、奇绘图册是什么?二、项目全景三、预览体验3.1 截图示例3.2 在线体验 四、功能介绍4.1 小程序4.2 服务端 五、安装部署5.1 快速开始~~5.2 手动部…...

【练习】【双指针】力扣热题100 283. 移动零

题目 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0] 示例 2: 输入: nums [0] 输出…...

QT 互斥锁

一、概述 1、在多线程编程中,为了防止多个线程同时访问共享资源而导致的不确定性和错误,经常会使用互斥锁(Mutex)进行保护。 2、QMutex是Qt提供的一个互斥锁类,用于确保在同一时间只有一个线程访问共享资源。 3、QM…...

什么是算法的空间复杂度和时间复杂度,分别怎么衡量。

1. 时间复杂度 时间复杂度衡量的是算法运行时间与输入规模之间的关系。它通常用大O记号(Big O Notation)表示,例如 O(1)、O(n)、O(n2) 等。 衡量方法: 常数时间复杂度 O(1):无论输入规模如何,算法的执行时…...

VMware Workstation 17.0 Pro创建虚拟机并安装Ubuntu22.04与ubuntu20.04(双版本同时存在)《包含小问题总结》

目录 一、创建虚拟机 二、下载安装22.04 三、一些配置问题总结(小屏,网络,复制贴贴等) 1、网络问题 2、sudo apt install net-tools出现无法定为软件包 3、小屏与ubuntu虚拟机与windows系统之间复制粘贴 4、安装终端:Termi…...

Windows 10 ARM工控主板CAN总线实时性能测试

在常规的Windows系统中支持CAN总线应用,需要外接CAN总线适配器,通常为USB转CAN模块或PCI接口CAN卡。实时性本身是CAN总线的显著特性之一,但由于Windows并非实时操作系统,应用程序容易受到系统CPU负载影响,导致调度周期…...

如何在不依赖函数调用功能的情况下结合工具与大型语言模型

当大型语言模型(LLM)原生不支持函数调用功能时,如何实现智能工具调度?本文通过自然语言解析结构化输出控制的方法来实现。 GitHub代码地址 核心实现步骤 定义工具函数 使用tool装饰器声明可调用工具: from langcha…...

【Linux AnolisOS】关于Docker的一系列问题。尤其是拉取东西时的网络问题,镜像源问题。

AnolisOS 8中使用Docker部署(全)_anolis安装docker-CSDN博客 从在虚拟机安装龙蜥到安装docker上面这篇文章写的很清晰了,我重点讲述我解决文章里面问题一些的方法。 问题1: docker: Get https://registry-1.docker.io/v2/: net/h…...

【Elasticsearch】Mapping概述

以下是Elasticsearch中提到的关于Mapping的各模块概述: --- 1.Dynamic mapping(动态映射) 动态映射是指Elasticsearch在索引文档时,自动检测字段类型并创建字段映射的过程。当你首次索引一个文档时,Elasticsearch会根…...

GPT-4o悄然升级:能力与个性双突破,AI竞技场再掀波澜

在大模型竞技场中,GPT-4o悄悄发布了全新版本,凭借其卓越的多项能力,迅速超越了DeepSeek-R1,成功登上并列第一的位置。这次更新不仅在数学(第6名)上有所突破,还在创意写作、编程、指令遵循、长文…...

如何选择合适的超参数来训练Bert和TextCNN模型?

选择合适的超参数来训练Bert和TextCNN模型是一个复杂但关键的过程,它会显著影响模型的性能。以下是一些常见的超参数以及选择它们的方法: 1. 与数据处理相关的超参数 最大序列长度(max_length) 含义:指输入到Bert模…...

C# SpinLock 类 使用详解

总目录 前言 SpinLock 是 C# 中一种轻量级的自旋锁,属于 System.Threading 命名空间,专为极短时间锁竞争的高性能场景设计。它通过忙等待(自旋)而非阻塞线程来减少上下文切换开销,适用于锁持有时间极短(如…...

【linux】在 Linux 上部署 DeepSeek-r1:32/70b:解决下载中断问题

【linux】在 Linux 上部署 DeepSeek-r1:32/70b:解决下载中断问题 【承接商业广告,如需商业合作请+v17740568442】 文章目录 【linux】在 Linux 上部署 DeepSeek-r1:32/70b:解决下载中断问题问题描述:解决方法方法一:手动中断并重启下载方法二:使用 Bash 脚本自动化下载在…...

机器学习所需要的数学知识【01】

总览 导数 行列式 偏导数 概理论 凸优化-梯度下降 kkt条件...

4.【线性代数】——矩阵的LU分解

四 矩阵的LU分解 1. AB的逆矩阵2. 转置矩阵3. ALU3.1 2x2矩阵3.2 3x3矩阵3.3 nxn的矩阵分解的次数? 1. AB的逆矩阵 { ( A B ) ( B − 1 A − 1 ) I ( B − 1 A − 1 ) ( A B ) I ⇒ ( A B ) − 1 B − 1 A − 1 \begin{cases} (AB)(B^{-1}A^{-1}) I\\ (B^{-1}A^…...

【清晰教程】本地部署DeepSeek-r1模型

【清晰教程】通过Docker为本地DeepSeek-r1部署WebUI界面-CSDN博客 目录 Ollama 安装Ollama DeepSeek-r1模型 安装DeepSeek-r1模型 Ollama Ollama 是一个开源工具,专注于简化大型语言模型(LLMs)的本地部署和管理。它允许用户在本地计算机…...

智慧农业之卷心采摘点图像分割图像数据集 卷心菜分割数据集 农作物图像识别数据集 自动化采摘点图像分割数据集 yolo图像分割数据集第10170期

卷心菜分割相关数据集简介 #类别 Classes (9) 类别(9) OkinaSP-Kaizu OkinaSP-Sunomata OkinaSP-墨俣 OkinaSP-Yoro RedCabbage-Yoro Suiryoku-Yoro 水力养老 TCA422-Kaizu TCA422-Sunomata TCA422-墨俣 Yumebutai-Yoro 汤布院万叶亭-养老 Yumegoromo项目…...

2026 AI员工推荐榜TOP5 全链路经营自动化工具深度测评

2026 年,大模型技术全面成熟,AI 员工系统成为中小企业数字化标配,全国中小企业 AI 系统使用率突破 51%,年增速达 140%。全链路自动化系统可实现人力成本减半、效率翻倍,成为企业破局核心。《2026 企业智能工具测评报告…...

LeetCode:226翻转二叉树

方法一:递归法/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode righ…...

从开发测试到等保三级认证:Dify细粒度权限管控全生命周期实施路线图(含策略模板+OpenPolicyAgent集成脚本)

更多请点击: https://intelliparadigm.com 第一章:Dify细粒度权限管控的架构演进与合规价值 Dify 作为开源 LLM 应用开发平台,其权限模型经历了从 RBAC(基于角色的访问控制)到 ABAC(基于属性的访问控制&am…...

BFloat16与Arm指令集优化深度学习计算

1. BFloat16基础概念与优势解析BFloat16(Brain Floating Point 16)是Google Brain团队在2018年提出的一种16位浮点数格式,专为深度学习应用设计。这种格式保留了32位单精度浮点数(FP32)的8位指数部分,但将尾…...

华为云ManageOne北向对接入门:从‘资源池’到‘VDC’,5分钟搞懂那些绕口的名词

华为云ManageOne北向对接核心概念拆解:用企业架构思维理解资源分配逻辑 第一次接触华为云ManageOne的运维工程师,往往会被文档中密集出现的"资源池""VDC""租户"等术语弄得晕头转向。这就像刚入职的财务人员面对"成本…...

SUMO交通仿真:E1/E2/E3三种检测器XML配置实战与数据解读指南

SUMO交通仿真:E1/E2/E3检测器配置与数据深度解析实战手册 在智能交通系统优化和自动驾驶算法验证领域,精确的交通数据采集是决策制定的基石。SUMO(Simulation of Urban MObility)作为开源的微观交通仿真平台,其三种核心…...

# 我用AI编程两年,差点被“驯化”:一个前端开发的反思

从依赖AI到被限流惊醒,再到重新找回自己的“决策权”和“创造力”。这篇文章记录了一个前端开发者在AI浪潮中的真实心路历程,希望能给你一些启发。 前言 作为一名前端开发,我从2024年初开始使用AI工具辅助编程。当时买的是Copilot&#xff0…...

SERA代码代理训练框架:低成本高效AI辅助编程方案

1. 项目概述:SERA代码代理训练框架 在当今AI辅助编程领域,代码代理(Coding Agents)正逐渐成为提升开发效率的核心技术。这类系统能够模拟开发者行为,通过理解代码库上下文、分析问题描述并生成有效的代码修改方案。然而传统训练方法面临两大瓶…...

Zemax编程避坑指南:MATLAB独立模式连接ZOS-API时,这几个配置细节千万别忽略

Zemax与MATLAB联调实战:ZOS-API独立模式配置全解析与典型故障排除 当光学设计遇上数值计算,Zemax与MATLAB的结合堪称工程仿真领域的"黄金搭档"。但许多开发者在首次搭建ZOS-API独立模式(Standalone Application)通信环境…...