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

完全保密的以太坊交易:Aztec网络的隐私架构

1. 引言

Aztec为隐私优先的以太坊zkRollup:即其为具有完全隐私保护的L2。
为了理解私有交易的范式变化性质,以及为什么将隐私直接构建到网络架构中很重要,必须首先讨论为什么以太坊不是私有的。

2. 以太坊:公有链

以太坊为具有包含accounts和balances的公共账本。
以太坊上最primitive的交易是由一个账号发送Ether给另一账号。网络跟踪这一情况的方式是增加一个账户的余额,减少另一个账户——换句话说,ETH在任何意义上都不会真正“移动”。
以太坊通过accounting ledger来表示简单的ETH transfer。
在这里插入图片描述
破解公共交易图是一项大生意:Chainalysis和Nansen等公司运行复杂的取证分析,将各种钱包关联起来,监控活动,并对谁拥有什么进行概率假设。
想象一下,如果你每次刷信用卡买羊角面包时,都向世界上每个人展示你的银行对账单。那就太傻了,对吧?
这就是今天以太坊的现状。

3. 加密账号

借助加密账号和加密交易,账本看起来将是:
在这里插入图片描述
以太坊的默认账号模型是:

  • 某account 拥有 某balance。

而Aztec则表示为:

  • 一定数量的money(即note) 具有 某owner。

在这里插入图片描述
Aztec采用的是与比特币一样的UTXO(Unspent Transaction Output)模式。可将UTXO看成是cash(bank notes)。

为什么现金本质上更安全、更私密——或者更准确地说,比基于账户的系统更安全、更有私密性?原因在于:

  • 只有现金交易的双方,才知道所有权已更改。而整个宇宙的其它每个人都不知情。

可将现金交易看成是:

  • 某对象(即note)的所有权改变

而将账号交易看成是:

  • 对2个账号状态的更改。

在这里插入图片描述
在处理Aztec交易时,不是对账号余额进行更新(增加和减少balance),而是Aztec网络简单的对某特定note重新分配所有权。

原因在于,对note加密是更简单的方案,仅需要对其写入2件东西:

  • 该note价值多少?
  • 谁拥有该note?

将换手时,仅需要划去老的owner名,再写入新的owner名。

为避免造出空气币,为保持token守恒,Aztec交易为join-split交易,需满足:
A + B = C + D A+B=C+D A+B=C+D
可借助ZKP技术来证明 A + B = C + D A+B=C+D A+B=C+D,而不泄露交易前后各个参与方的values。

同时为确保花费的是用户所拥有的token,需prove ownership——借助Merkle tree。

Aztec系统中有2种merkle tree:

  • note tree:包含所有已创建的notes。
  • nullifier tree:包含所有已销毁的notes。
    在这里插入图片描述

在Aztec中,拥有某note,是指该note存在于note tree中,但在nullifier tree中不存在相应的note-nullifier。
而销毁note是指,将a nullifier添加到nullifier tree中,而不是从note tree中删除该note。

在这里插入图片描述
为了发送已经证明自己拥有的notes,创建了一个全新的Merkle树(和Merkle根)。一旦注释树和无效树的Merkle根都移动到了新的值——换句话说,系统的状态已经更新——这些根就会在以太坊的主链上发布(结算),交易就会被视为已记录。

构建完全保密的以太坊交易的挑战在于:

  • 需 在不侵犯或暴露用户数据的情况下,验证交易是合法的并且正确执行的。

参考资料

[1] Aztec 2021年博客 Fully Confidential Ethereum Transactions: Aztec Network’s Privacy Architecture

Aztec系列博客

  • Aztec Hybrid Rollup:混合zkRollup,而非zkEVM
  • Proof Compression
  • Aztec Connect即将主网上线
  • Aztec connect bridge代码解析
  • Aztec 征集 Rollup Sequencer去中心化提案
  • Aztec的隐私抽象:在尊重EVM合约开发习惯的情况下实现智能合约隐私

相关文章:

完全保密的以太坊交易:Aztec网络的隐私架构

1. 引言 Aztec为隐私优先的以太坊zkRollup:即其为具有完全隐私保护的L2。 为了理解私有交易的范式变化性质,以及为什么将隐私直接构建到网络架构中很重要,必须首先讨论为什么以太坊不是私有的。 2. 以太坊:公有链 以太坊为具有…...

初识Java 9-1 内部类

目录 创建内部类 到外部类的链接 使用.this和.new 内部类和向上转型 在方法和作用域中的内部类 匿名内部类 嵌套类 接口中的类 从多嵌套的内部类中访问外部人员 本笔记参考自: 《On Java 中文版》 定义在另一个类中的类称为内部类。利用内部类,…...

合宙Air724UG LuatOS-Air LVGL API控件-屏幕横屏竖屏切换(Rotation)

屏幕横屏竖屏切换(Rotation) lvgl.disp_set_rotation(nil, lvgl.DISP_ROT_angle) 屏幕横屏竖屏切换显示,core版本号要>3202参数 参数类型释义取值nil无意义nilangle显示角度0,90,270,360 返回值nil 例子 lvgl.init()- -初始化 lvgl.disp_set_rotation(nil,…...

在Unity中,Instantiate函数用于在场景中创建一个新的游戏对象实例

在Unity中,Instantiate函数用于在场景中创建一个新的游戏对象实例。它的语法如下所示: public static Object Instantiate(Object original, Vector3 position, Quaternion rotation); original:要实例化的原始游戏对象。position&#xff1…...

解决 tesserocr报错 Failed to init API, possibly an invalid tessdata path : ./

问题描述 我们在初次使用tesserocr库的时候,可能会报以下错误: RuntimeError: Failed to init API, possibly an invalid tessdata path: ./ 这是因为我们在使用 conda 创建的环境中找不到"tessdata"这个文件夹。 解决办法 这时候把Tessera…...

使用Python CV2融合人脸到新图片--优化版

优化说明 上一版本人脸跟奥特曼图片合并后边界感很严重,于是查找资料发现CV2还有一个泊松函数很适合融合图像。具体代码如下: import numpy as np import cv2usrFilePath "newpic22.jpg" atmFilePath "atm2.jpg" src cv2.imrea…...

Python分享之对象的属性

Python一切皆对象(object),每个对象都可能有多个属性(attribute)。Python的属性有一套统一的管理方案。 属性的__dict__系统 对象的属性可能来自于其类定义,叫做类属性(class attribute)。类属性可能来自类定义自身,也可能根据类定义继承来的…...

编程参考 - std::exchange和std::swap的区别

这两个功能是C standard library中的Standard template library中的一部分。容易混淆,我们来看下它们的区别。 exchange: 这个函数是一个返回原先值的set函数。 std::exchange is a setter returning the old value. int z std::exchange(x, y); Af…...

Sentinel整合RestTemplate

resttemplate开启sentinel保护配置resttemplate.sentinel.enabledtrue配置sentinel-dashboard地址spring.cloud.sentinel.transport.dashboardlocalhost:8858\ spring.cloud.sentinel.transport.dashboard.port8739 实例化RestTemplate并加入SentinelRestTemplate注解Configura…...

微前端学习(下)

一、课程目标 qiankun 整体运行流程微前端实现方案二、课程大纲 qiankun 整体流程微前端方案实现DIY微前端核心能力1、微前端方案实现 基于 iframe 完全隔离的方案、使用纯的Web Components构建应用EMP基于webpack module federationqiankun、icestark 自己实现JS以及样式隔离2…...

Android Splash实现

1、创建Activity package com.wsy.knowledge.ui.splashimport android.animation.Animator import android.animation.AnimatorListenerAdapter import android.annotation.SuppressLint import android.os.Build import android.os.Looper import android.util.Log import an…...

FPGA projet : VGA

在vga屏幕上显示 &#xff1a; 野火科技 相比于上个工程&#xff0c;只需要修改 vga_pix 模块即可。 注意存储器类型变量的定义&#xff1a;reg 【宽度】<名称>【深度】 赋值 always &#xff08;poseedge vga_clk&#xff09;begin 为每一行赋值&#xff0c;不可位赋…...

JDK8 升级至JDK19

优质博文IT-BLOG-CN 目前部分项目使用JDK8&#xff0c;部分项目使用JDK19因此&#xff0c;环境变量中还是保持JDK8&#xff0c;只需要下载JDK19免安装版本&#xff0c;通过配置IDEA就可以完成本地开发。 一、IDEA 环境设置 【1】通过快捷键CTRL SHIFT ALT S或者File->P…...

Python3.10 IDLE更换主题

前言 自定义主题网上有很多&#xff0c;3.10IDLE的UI有一些新的东西&#xff0c;直接扣过来会有些地方覆盖不到&#xff0c;需要自己测试着添几行配置&#xff0c;以下做个记录。 配置文件路径 Python安装目录下的Lib\idlelib\config-highlight.def。如果是默认安装&#xf…...

C# OpenVino Yolov8 Pose 姿态识别

效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp;namespace OpenVino_Yolov8_Demo {public…...

北邮22级信通院数电:Verilog-FPGA(1)实验一“跑通第一个例程” 过程中遇到的常见问题与解决方案汇总(持续更新中)

北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 问题一&#xff1a;Verilog代码没有跑通 报…...

CSS - 鼠标移入整行高亮显示,适用于会员套餐各参数对比页面(display: table,div 转表格形式)

效果图 可根据基础示例和进阶示例&#xff0c;复制进行改造样式。 如下图所示&#xff0c;本文提供 2 个示例。 基础示例 找个 HTML 页面&#xff0c;一键复制运行。 <body><h1 style"text-align: center;">基础示例</h1><section class"…...

无涯教程-JavaScript - ATAN2函数

描述 The ATAN2 function returns the arctangent, or inverse tangent, of the specified x- and ycoordinates, in radians, between -π/2 and π/2. 语法 ATAN2 (x_num, y_num)争论 Argument描述Required/OptionalX_numThe x-coordinate of the point.RequiredY_numThe…...

Tomcat 下部署 jFinal

1、检查web.xml 配置&#xff0c;在 tomcat 下部署需要检查 web.xml 是否存在&#xff0c;并且要确保配置正确&#xff0c;配置格式如下。 <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns:xsi"http://www.w3.org/2001/XMLSchema-i…...

【Spatial-Temporal Action Localization(二)】论文阅读2017年

文章目录 1. ActionVLAD: Learning spatio-temporal aggregation for action classification [code](https://github.com/rohitgirdhar/ActionVLAD/)[](https://github.com/rohitgirdhar/ActionVLAD/)摘要和结论引言&#xff1a;针对痛点和贡献相关工作模型框架思考不足之处 2.…...

DeEAR语音情感识别部署教程:NVIDIA GPU显存优化技巧(<4GB显存可运行)

DeEAR语音情感识别部署教程&#xff1a;NVIDIA GPU显存优化技巧&#xff08;<4GB显存可运行&#xff09; 1. 引言 你有没有想过&#xff0c;让电脑听懂我们说话时的情绪&#xff1f;是开心、平静&#xff0c;还是激动&#xff1f;今天要聊的DeEAR&#xff0c;就是一个专门…...

Go语言HTTP服务开发:从标准库到框架

Go语言HTTP服务开发&#xff1a;从标准库到框架 作为一个写了十几年代码的Go后端老兵&#xff0c;我在HTTP服务开发上踩过不少坑。今天就来分享一下Go语言HTTP服务开发的实践经验&#xff0c;从标准库到框架。 一、标准库net/http 1. 基本用法 package mainimport ("fmt&q…...

Rasa Pro企业级对话AI实战:从安全扫描到密钥管理的完整配置指南

Rasa Pro企业级对话AI实战&#xff1a;从安全扫描到密钥管理的完整配置指南 在金融行业数字化转型浪潮中&#xff0c;智能对话系统已成为客户服务的核心组件。作为Rasa的商业化企业版本&#xff0c;Rasa Pro凭借其专业级的安全防护和可观测性功能&#xff0c;正在成为银行、保险…...

VoxCPM-1.5语音合成作品集:高清自然语音生成效果展示

VoxCPM-1.5语音合成作品集&#xff1a;高清自然语音生成效果展示 1. 开篇&#xff1a;当AI学会"说话" 想象一下&#xff0c;你正在制作一部有声书&#xff0c;需要一位声音温暖、吐字清晰的主播。传统方式可能需要花费数千元聘请专业配音员&#xff0c;录制数小时音…...

GME多模态向量模型助力AI编程:代码与注释的跨模态理解工具

GME多模态向量模型助力AI编程&#xff1a;代码与注释的跨模态理解工具 1. 引言&#xff1a;当代码能听懂人话 你有没有过这样的经历&#xff1f;面对一个庞大的代码库&#xff0c;想找一个实现特定功能的函数&#xff0c;却记不清它的名字&#xff0c;只能靠模糊的记忆在文件…...

ChatGPT越狱指令最新版:原理剖析与安全实践指南

ChatGPT越狱指令最新版&#xff1a;原理剖析与安全实践指南 最近在AI开发者圈子里&#xff0c;关于大语言模型“越狱”的话题又热了起来。所谓“越狱”&#xff0c;就是指通过各种技巧绕过模型内置的安全限制&#xff0c;让它回答一些原本被禁止的问题。作为开发者&#xff0c;…...

AI算力狂飙背后的秘密:当“稳重老哥”Gloo遇上“极速引擎”NCCL

AI工业大炼丹的隐秘功臣 当我们谈论深度学习的飞速发展时&#xff0c;聚光灯往往打在那些参数量动辄千亿的巨型语言模型上。然而&#xff0c;这些庞然大物能够在合理的时间内训练完成&#xff0c;绝非单台机器单张显卡的功劳&#xff0c;而是成百上千台计算节点共同协作的奇迹。…...

深入解析时钟网络延迟(Clock Network Latency)的优化策略与实现原理

最近在搞一个分布式系统项目&#xff0c;性能压测时总发现吞吐量上不去&#xff0c;延迟时高时低。经过一番排查&#xff0c;定位到了“时钟网络延迟”这个平时不太起眼&#xff0c;但影响巨大的问题上。今天就来聊聊这个“时钟网络延迟”&#xff08;Clock Network Latency&am…...

ClawHub 抖音 Skills 完整盘点:36 个 Skills 分类与选型指南

ClawHub/OpenClaw 平台上共有 36 个专门针对抖音&#xff08;Douyin&#xff09;的 Skills&#xff0c;覆盖热榜监控、视频下载、自动发布、转录分析、内容创作、合规检测等完整工作链。本文从技术实现角度做完整整理&#xff0c;含安装命令和实现细节说明。 数据截至 2026 年…...

学术PDF处理流水线:OpenClaw+Qwen3-32B-Chat镜像实现论文精读

学术PDF处理流水线&#xff1a;OpenClawQwen3-32B-Chat镜像实现论文精读 1. 为什么需要自动化论文精读工具 作为一名经常需要阅读大量学术文献的研究者&#xff0c;我长期被三个问题困扰&#xff1a;一是PDF文档的信息密度太高&#xff0c;逐字阅读耗时耗力&#xff1b;二是跨…...