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

加密货币交易所偿付能力的零知识证明

如何检测下一个 FTX 和 Mt. Gox

加密货币交易所 FTX 的内爆导致数十亿客户资金流失,这是加密货币历史上交易所破产的最新例子。历史可以追溯到 2014 年,当时处理 70% 比特币交易的历史最悠久、规模最大的交易所 Mt. Gox 丢失了用户的 850,000 个比特币。

如今,许多用户更喜欢将他们的加密货币资产存储在集中式交易所中,以便于使用,类似于网上银行,以避免自己管理加密密钥的困难和风险。

不幸的是,将资产存储在交易所会使用户面临因外部或内部盗窃而在交易所丢失资产的风险。

我们展示了一种交易所以加密方式证明偿付能力的方法,这意味着它的资产覆盖了它的负债。该证明不披露任何私人信息,包括其客户、其控制的地址和总负债。所提出的方法可以附加受信任的审计,这可能是昂贵的,或者是独立应用的。

原始的方法

交易所证明其偿付能力的一种基本方法是公开披露所有用户负债及其控制的所有比特币地址的。任何一方都可以计算其总负债和资产,从而检查其是否具有完全偿付能力。

每个用户都可以独立验证他是否在负债数据集中。如果遗漏任何用户,则可以发现交易所作弊。

交易所可以通过数字签名或将余额转移到新地址来证明其拥有任何地址的私钥。

这种完全透明的方法显然是有问题的,因为它会泄露有关交易所及其用户的商业敏感信息。我们需要一种保护隐私的替代方案。

密码学基础

佩德森 (Pedersen) 承诺

Pedersen 对消息 x 的承诺定义为:

GH 是椭圆曲线的独立生成元。 r 是一个随机值,称为致盲因子。

与基于哈希的承诺(例如 SHA256)相比,Pedersen 承诺是 加法同态 的。这意味着在不知道 xy 这两个值的情况下,可以将它们相应的承诺相加以计算其总和的承诺。

零知识范围证明 (ZKRP)

ZKRP 是一种特殊类型的零知识证明,它显示一个数字在一定范围内,而不公开数字。Bulletproof 是一种高效的 ZKRP 结构。

资产证明

在资产证明(又名储备证明)中,交易所充当其总资产的证明者,任何一方都可以扮演验证者的角色。

为防止交易所隐私数据泄露,采取了以下措施。

  1. 更多的匿名地址被添加到完整的资产集中,交易所不知道其私钥。这混淆了交易所拥有的地址集。

  1. 诸如 zk-SNARK 之类的 ZKP 用于为每个地址证明以下陈述:

“要么我知道地址对应的私钥,承诺就是地址的余额

或者

我不知道私钥,承诺的值为 0。”

  1. 由于其同态性质,总资产余额可以通过对步骤 2 中证明的所有个人 Pedersen 承诺求和来获得。请注意,未披露专有且敏感的总资产,仅披露其 Pedersen 承诺。

最终结果是 Pedersen 对总资产 commit(assets) 的承诺,即交易所知道全套比特币地址子集的私钥。

负债证明

接下来,交易所证明它欠所有客户的硬币总数。每个客户都确认自己被包括在内。

求和默克尔树

为此,交易所将所有用户组织成 Merkle 树的变体。每片叶子代表一个用户和她的余额。与规范的 Merkle 树相比,求和 Merkle 树进行了两个修改。

  1. 除了散列之外,每个节点中还添加了一个余额字段。节点的余额是其两个子节点的总和。
  2. 使用 Pedersen 承诺代替 SHA256 等哈希。

树的根包含总负债的承诺。交易所签署根并将其发布在例如比特币上。每个客户都可以根据已发布的根请求包含他们的 Merkle 证明。如果有足够数量的客户独立验证,则大概率可以抓到作弊交易所。

范围证明

不诚实的交易所可以通过包含负余额的假用户来欺骗,从而减少他们的总负债。为了防止这种攻击,交易所还提供了一个 ZKRP,叶节点的每个客户都有一个非负余额,但没有透露余额本身。请注意,交易所没有动力添加具有正余额的虚假用户,因为这会增加他们的负债。

偿付能力证明

一旦交易所完成资产和负债证明,我们就可以计算其余额的承诺。

commit(balance) = commit(assets) — commit(liabilities)

交易所有两种方式来证明余额是非负的,即交易所是有偿付能力的。

  1. 直接打开承诺。
  2. 给定承诺,使用 ZKP 证明余额是非负的。

讨论

我们的偿付能力证明只是交易所提高透明度和提高客户信心的初步步骤。要在实践中采用它还有许多其他措施,交易所会定期发布证明。

例如,一群资不抵债的交易所可以串通一气,通过用它们的集体资产来覆盖每个交易所的个人负债。从本质上讲,没有什么能阻止单个比特币地址的资产被用于各种交易所的偿付能力证明。为了对抗这种攻击,交易所的资产证明需要额外证明其使用的地址集与另一个交易所的地址集不相交。

参考

[1] 为比特币交易所提供隐私保护的偿付能力证明 Real World Crypto 2016:幻灯片

[2] 基于 ZK-SNARK 的比特币交易所资产证明协议

相关文章:

加密货币交易所偿付能力的零知识证明

如何检测下一个 FTX 和 Mt. Gox 加密货币交易所 FTX 的内爆导致数十亿客户资金流失,这是加密货币历史上交易所破产的最新例子。历史可以追溯到 2014 年,当时处理 70% 比特币交易的历史最悠久、规模最大的交易所 Mt. Gox 丢失了用户的 850,000 个比特币。…...

软考网络工程师防火墙配置考点总结

(考试重点) 一、访问控制列表 管理网络当中的数据流量,实现数据过滤的重要手段。可以在路由器、三层交换、二层交换和防火墙上实现。 隐藏规则:当前面的规则都匹配不上,华为默认允许,思科默认拒绝。 分…...

【IDEA】idea恢复pom.xml文件显示灰色并带有删除线

通过idea打开spring boot项目后,发现每个服务中的pom.xml文件显示灰色并带有删除线,下面为解决方案 问题截图 解决方案 打开file——settings——build,execution,deployment——Ignored Files,把pom.xml前面的复选框去掉,去掉之…...

Python数据分析之Excel

Openpyxl库 1、Openpyxl模块2、Excel写入2.1、新建2.2、添加数据2.3、单元格格式 3、Excel读取4、Excel的CRUD4.1、查4.2、改4.3、删 1、Openpyxl模块 Openpyxl是一个用于处理xlsx格式Excel表格文件的第三方python库,几乎支持Excel表格的所有操作 基本概念&#x…...

NISP证书是什么?NISP含金量如何呢?

一、NISP是什么 NISP证书是国家信息安全水平考试(National Information Security Test Program,简称NISP),是由中国信息安全测评中心实施培养国家网络空间安全人才的项目。由国家网络空间安全人才培养基地运营/管理,并…...

操作系统备考学习 day6(2.3.2 - 2.3.4)

操作系统备考学习 day6 第二章 进程与线程2.3 同步与互斥2.3.2 实现临界区互斥的基本方法单标记法双标志先检查法双标志后检查法Peterson算法 进程互斥的硬件实现方法中断屏蔽方法TestAndSet指令Swap指令 2.3.3 互斥锁2.3.4 信号量整型信号量记录型信号量 第二章 进程与线程 2…...

家电行业 EDI:Miele EDI 需求分析

Miele是一家创立于1899年的德国公司,以其卓越的工程技术和不懈的创新精神而闻名于世。作为全球领先的家电制造商,Miele的经营范围覆盖了厨房、洗衣和清洁领域,致力于提供高品质、可持续和智能化的家电产品。公司的使命是为全球消费者创造更美…...

Android ConstraintLayout app:layout_constraintHorizontal_weight

Android ConstraintLayout app:layout_constraintHorizontal_weight <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:…...

FPGA行业应用一:LED控制器

什么是LED控制器 LED控制器已经有很多年头了&#xff0c;应该是上世纪90年代就开始有了。它的主要构成是&#xff1a; 1&#xff1a;视频信号源——如 电脑&#xff0c;机机&#xff0c;DVD&#xff0c;U盘等 2&#xff1a;视频处理器——通过 HDMI/DVI/网口接收来自视频源的…...

Pyspark读写csv,txt,json,xlsx,xml,avro等文件

1. Spark读写txt文件 读&#xff1a; df spark.read.text("/home/test/testTxt.txt").show() ------------- | value| ------------- | a,b,c,d| |123,345,789,5| |34,45,90,9878| -------------2. Spark读写csv文件 读&#xff1a; # 文件在hdfs上…...

LeetCode 接雨水 双指针

原题链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题面&#xff1a; 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a…...

【Linux】【网络】传输层协议:UDP

文章目录 UDP 协议1. 面向数据报2. UDP 协议端格式3. UDP 的封装和解包4. UDP 的缓冲区 UDP 协议 UDP传输的过程类似于寄信。 无连接&#xff1a;知道对端的IP和端口号就直接进行传输&#xff0c;不需要建立连接。不可靠&#xff1a;没有确认机制&#xff0c;没有重传机制&am…...

数字音频工作站FL Studio 21中文版下载及电音编曲要用乐理吗 电音编曲步骤

FL Studio 21是一款强大的数字音频工作站&#xff08;DAW&#xff09;软件&#xff0c;为您提供一个完整的软件音乐制作环境。它是制作高质量的音乐、乐器、录音等的完整解决方案。该程序配备了各种工具和插件&#xff0c;帮助你创建专业的虚拟乐器&#xff0c;如贝斯、吉他、钢…...

金蝶云星空与旺店通·企业奇门对接集成其他出库查询打通创建其他出库单

金蝶云星空与旺店通企业奇门对接集成其他出库查询打通创建其他出库单 源系统:金蝶云星空 金蝶K/3Cloud&#xff08;金蝶云星空&#xff09;是移动互联网时代的新型ERP&#xff0c;是基于WEB2.0与云技术的新时代企业管理服务平台。金蝶K/3Cloud围绕着“生态、人人、体验”&#…...

Visual Studio 如何删除多余的空行,仅保留一行空行

1.CtrlH 打开替换窗口&#xff08;注意选择合适的查找范围&#xff09; VS2010: VS2017、VS2022: 2.复制下面正则表达式到上面的选择窗口&#xff1a; VS2010: ^(\s*)$\n\n VS2017: ^(\s*)$\n\n VS2022:^(\s*)$\n 3.下面的替换窗口皆写入 \n VS2010: \n VS2017: \n VS2022: \n …...

java spring cloud 企业电子招标采购系统源码:营造全面规范安全的电子招投标环境,促进招投标市场健康可持续发展

功能描述 1、门户管理&#xff1a;所有用户可在门户页面查看所有的公告信息及相关的通知信息。主要板块包含&#xff1a;招标公告、非招标公告、系统通知、政策法规。 2、立项管理&#xff1a;企业用户可对需要采购的项目进行立项申请&#xff0c;并提交审批&#xff0c;查看所…...

112. 路径总和

力扣题目链接(opens new window) 给定一个二叉树和一个目标和&#xff0c;判断该树中是否存在根节点到叶子节点的路径&#xff0c;这条路径上所有节点值相加等于目标和。 说明: 叶子节点是指没有子节点的节点。 示例: 给定如下二叉树&#xff0c;以及目标和 sum 22&#xf…...

国货疯抢流量,B站接连爆发800万播放实现破圈

近日&#xff0c;“79元商战”的消息洗刷全平台&#xff0c;众多国货品牌的“不容易”开始被越来越多的消费者注意到&#xff0c;消费者们自发性地开始重新审视真正做产品的国货品牌们&#xff0c;并为之全力支持。有网友笑称&#xff1a;这“泼天的富贵”终于落到了国货品牌的…...

(高阶) Redis 7 第14讲 数据统计分析 实战篇

面试题 存得进,取得出,反应快抖音电商商品评论:排序+展现+取前10条用户使用手机APP签到打卡:1天对应一系列用户签到记录,新浪微博/钉钉打卡,如何进行统计页面访问点击量:一个网页对应一系列的访问点击,淘宝网首页,多少人浏览首页公司系统上线后,UV、PV、DUV是什么亿级…...

SpringCloud nacos1.x.x版本升级到2.2.3版本并开启鉴权踩坑

近期由于服务器漏洞扫描&#xff0c;检测出nacos存在绕过登录鉴权漏洞&#xff0c;如图 需要进行升级并开启鉴权&#xff0c;就此次升级做下记录。 1.首先备份原来的nacos&#xff0c;导出配置文件作为备份&#xff1b; 2&#xff0c;从官网下载nacos-server-2.2.3.zip&#x…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

springboot 百货中心供应链管理系统小程序

一、前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;百货中心供应链管理系统被用户普遍使用&#xff0c;为方…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件

在选煤厂、化工厂、钢铁厂等过程生产型企业&#xff0c;其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进&#xff0c;需提前预防假检、错检、漏检&#xff0c;推动智慧生产运维系统数据的流动和现场赋能应用。同时&#xff0c;…...

CMake基础:构建流程详解

目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...