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

比特币 ZK 赏金系列:第 1 部分——支付解密密钥

以前,我们使用零知识赏金 (ZKB) 来支付比特币上的数独解决方案。在本系列中,我们将使用 ZKB 来解决范围更广的更实际的问题。

在第 1 部分中,我们应用 ZKB 来支付解密密钥。假设 Alice 使用对称密钥 K 加密她的文件。为了安全起见,她联系了在线备份服务 Bob,以保留 K 的副本。她不想让 Bob 知道 K,所以她使用门限秘密共享方案将 K 分成 N 份,这样任何 M 份的法定人数都可以恢复 K。Bob 生成一个椭圆曲线私钥/公钥对 (sk, pk) 并将 pk 给 Alice。Alice 使用非对称加密算法用 pkK 的份额进行加密。例如 ElGamal 或 ECIES,并将其发送给 Bob。她对其他 (M-1) 台备份服务器也这样做。

如果 Alice 丢失了她的本地 K,她会向 Bob 索要解密密钥 sk,而 Bob 只有在获得报酬后才交付 sk。这是 ZKB 解决的经典公平交易问题,因为它保证付款会导致正确解密密钥的泄露。

实现

与数独付费相比,我们只需要改变子电路C来验证解密密钥对应于用于加密 K 的公钥,而不是验证数独解。电路的其他部分保持不变,可以重复使用。

template Main(n, k) {// little-endiansignal private input privkey[k];signal public input pubkey[2][k];// get pubkey from privkeycomponent privToPub = ECDSAPrivToPub(n, k);for (var i = 0; i < k; i++) {privToPub.privkey[i] <== privkey[i];}// verify input pubkeysignal pub_x_diff[k];signal pub_y_diff[k];for (var i = 0; i < k; i++) {pub_x_diff[i] <-- privToPub.pubkey[0][i] - pubkey[0][i];pub_x_diff[i] === 0;pub_y_diff[i] <-- privToPub.pubkey[1][i] - pubkey[1][i];pub_y_diff[i] === 0;}Assert that (db * Qa) = Qs ...Assert that (db * G) = Qb /...Assert that encrypting w with Qs produces ew. /...}

请注意,用于解密的私钥作为私有输入传递给电路,因此永远不会向公众透露。公钥作为公共输入传递,以便验证者智能合约可以确保证明是使用正确的私钥生成的。

这与支付到私钥谜题不同,后者将私钥公开暴露在链上。

勒索软件

可以想象恶意黑客可以使用相同的方法来支付解密密钥。

黑客用恶意软件感染受害者的计算机并加密他的文件,例如,让受害者点击网络钓鱼电子邮件中的恶意内容。

该恶意软件显示赎金要求,以比特币支付,并在受害者的计算机上显示支付说明。

受害者和黑客彼此不信任。受害者希望得到保证,他在支付赎金后能够解密他的文件。

在这种情况下可以使用相同的 ZK 赏金,但有一个主要区别。在备份情况下,用户可以确定用于加密的公钥,因为他自己执行了加密。在勒索软件案例中,需要额外的证据让受害者相信赏金智能合约中使用的公钥确实与用于加密他的文件的公钥相同。一种简单的解决方案是随机选择几个文件供黑客解密。

如何缓解此类勒索软件攻击不在本文讨论范围之内。感兴趣的读者可以在例如 [1] 中找到更多信息。

[1] Gyges 之戒:调查犯罪智能合约的未来

相关文章:

比特币 ZK 赏金系列:第 1 部分——支付解密密钥

以前&#xff0c;我们使用零知识赏金 (ZKB) 来支付比特币上的数独解决方案。在本系列中&#xff0c;我们将使用 ZKB 来解决范围更广的更实际的问题。 在第 1 部分中&#xff0c;我们应用 ZKB 来支付解密密钥。假设 Alice 使用对称密钥 K 加密她的文件。为了安全起见&#xff0…...

【Python深度学习】深度学习中框架和模型的区别

深度学习是人工智能领域的一股强大力量&#xff0c;它的快速发展离不开深度学习框架和模型的进步。本文将介绍深度学习框架和模型的基本概念、它们之间的联系与区别&#xff0c;以及如何根据项目需求选择合适的框架和模型。 一、深度学习框架 深度学习框架是进行深度学习研究和…...

MyBatis面试题(二)

文章目录 前言一、MyBatis 与 Hibernate 有哪些不同&#xff1f;二、MyBatis 的好处是什么&#xff1f;三、简述 Mybatis 的 Xml 映射文件和 Mybatis 内部数据结构之间的映射关系&#xff1f;四、什么是 MyBatis 的接口绑定,有什么好处&#xff1f;五、接口绑定有几种实现方式,…...

Android之MediaMetricsService实现本质(四十二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…...

Flutter超好用的路由库-fluro

文章目录 fluro的介绍fluro简介安装和导入路由配置导航到路由参数传递 fluro的典型使用创建路由管理类代码解释例子小结 初始化路由导航到路由 总结 fluro的介绍 fluro简介 fluro是一个流行的Flutter插件&#xff0c;用于实现高级路由管理。它提供了灵活的路由配置和导航功能…...

约数个数(蓝桥杯)

约数个数 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 答案&#xff1a;96 1200000 有多少个约数&#xff08;只计算正约数&#xff09;。 约数&#xff0c;又称因数。整数a除以整数b(b≠0) 除得的商正好是整…...

越狱(快速幂C++)

题目 监狱有连续编号为 11 到 n 的 n 个房间&#xff0c;每个房间关押一个犯人。 有 m 种宗教&#xff0c;每个犯人可能信仰其中一种。 不存在没有信仰的犯人。 如果相邻房间的犯人信仰的宗教相同&#xff0c;就可能发生越狱。 求有多少种状态可能发生越狱。 输入格式 共…...

电脑入门:怎么进入路由器设置

怎么进入路由器设置 在浏览器地址栏上输入路由器的出厂默认IP地址(192.168.0.1)后按回车。在登录窗口中输入说明书上的密码,点击“Log in”按钮进入宽带路由器管理设置界面。 管理设置界面分为左右栏,左栏是主菜单,右边则是与之对应的设置内容。 请根据自己接…...

Vue3大屏项目实现数字跳动的效果

一、vue-count-to组件&#xff1a; 1、安装&#xff1a; npm install vue3-count-to --save 2、使用&#xff1a; <template><BaseCountTo:startVal"startVal":endVal"endVal":duration"duration":decimals"decimals":pr…...

MATLAB打开历史命令窗口并保持

版本&#xff1a;matlab 2021a 方法&#xff1a;菜单栏 主页 - 布局 - 命令历史记录 - 停靠...

等差数列和等比数列 常用公式

等差数列 定义 通项公式 &#xff0c; 公差 &#xff0c; 前n项和公式 中项公式 下标&#xff1a;mnpq&#xff0c;则 等比数列 定义 通项公式 &#xff0c; 公比 &#xff0c; 前n项和公式 &#xff0c; 中项公式 下标&#xff1a;mnpq&#xff0c;则...

基于SpringBoot+Vue的MOBA类游戏攻略分享平台

1 简介 MOBA类游戏攻略分享平台&#xff0c;为用户随时随地查看游戏攻略信息提供了便捷的方法&#xff0c;更重要的是大大的简化了管理员管理MOBA类游戏攻略信息的方式方法&#xff0c;更提供了其他想要了解MOBA类游戏攻略信息及运作情况以及挑选方便快捷的可靠渠道。相比于传…...

基于异常上线场景的实时拦截与问题分发策略

作者 | 彭阳 导读 性能中台负责MEG端研发数据的接入、传输、管理、应用等各个环节。为了应对移动应用领域中端技术的快速迭代和线上突增问题的挑战&#xff0c;中台提出了实时拦截与问题的分发机制&#xff0c;旨在在端上线的不同阶段及时发现并拦截异常上线&#xff0c;最大程…...

MySQL常见面试题(一)

&#x1f600;前言 在数据库管理系统中&#xff0c;存储引擎起着核心的角色&#xff0c;它决定了数据管理和存储的方式。MySQL作为一个领先的开源关系型数据库管理系统&#xff0c;提供了多种存储引擎来满足不同的需求和优化不同的应用。除了选择合适的存储引擎&#xff0c;数据…...

webpack:详解entry和output一些重要API的使用

文章目录 contextentry单个入口多个入口entry相关API例一例二例三 outputoutput.assetModuleFilenameoutput.chunkFilenameoutput.clean【5.20.0版本支持】output.filename【重要】output.globalObjectoutput.library【重要】output.library.nameoutput.library.type【重要】ou…...

Spring后处理器-BeanPostProcessor

Spring后处理器-BeanPostProcessor Bean被实例化后&#xff0c;到最终缓存到名为singletonObjects单例池之前&#xff0c;中间会经过bean的初始化过程&#xff08;&#xff08;该后处理器的执行时机&#xff09;&#xff09;&#xff0c;例如&#xff1a;属性的填充、初始化方…...

每日一题~修剪二叉树

原题链接&#xff1a;669. 修剪二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 思路分析&#xff1a; 由题可知&#xff0c;我们要将原来的二叉搜索树调整为值在 low~high 之间的新二叉搜索树&#xff0c;接下来我们分析一下针对不同的节点的处理方…...

图像形态学操作(连通性、腐蚀、膨胀)

相关概念 形态学操作-腐蚀 参数&#xff1a; img: 要处理的图像kernal :核结构iteration &#xff1a;腐蚀的次数&#xff0c;默认是1 形态学操作-膨胀 参数&#xff1a; img : 要处理的图像kernal : 核结构iteration : 膨胀的次数&#xff0c;默认为1 import cv2 as cv im…...

中国这么多 Java 开发者,应该诞生出生态级应用开发框架

1、必须要有&#xff0c;不然就永远不会有 应用开发框架&#xff0c;虽然没有芯片、操作系统、数据库、编程语言这些重要。但是最终呈现在用户面前的&#xff0c;总是有软件部分。而软件系统开发&#xff0c;一般都需要应用开发框架&#xff0c;它是软件系统的基础性部件之一。…...

仿猫扑盒子引流神器试看神马视频-红包打卡签到领金

特点1&#xff1a;站内发红包&#xff0c;抢红包 特点2&#xff1a;会员可上传视频 特点3&#xff1a;设置每天免费试看次数…..具体看演示站点&#xff0c;为准 支付在后台上传收款二维码即可&#xff0c;支持微信和支付宝。前台提交订单后台管理员审核 环境&#xff1a;宝…...

从无人机到平衡车:MPU6050姿态融合(互补滤波)的实战调参指南与避坑心得

从无人机到平衡车&#xff1a;MPU6050姿态融合实战调参与避坑指南 姿态解算在无人机飞控、平衡车和机器人系统中扮演着核心角色。MPU6050作为一款集成了三轴陀螺仪和三轴加速度计的惯性测量单元(IMU)&#xff0c;其数据融合质量直接决定了系统稳定性。许多开发者虽然理解了互补…...

3个步骤快速掌握Windows网络性能测试:iperf3实战指南

3个步骤快速掌握Windows网络性能测试&#xff1a;iperf3实战指南 【免费下载链接】iperf3-win-builds iperf3 binaries for Windows. Benchmark your network limits. 项目地址: https://gitcode.com/gh_mirrors/ip/iperf3-win-builds 还在为网络速度不稳定而烦恼吗&…...

Windows 11终极优化指南:一键清理系统臃肿,免费提升51%性能

Windows 11终极优化指南&#xff1a;一键清理系统臃肿&#xff0c;免费提升51%性能 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to …...

3步快速上手Thorium浏览器:新手也能掌握的完整性能优化指南

3步快速上手Thorium浏览器&#xff1a;新手也能掌握的完整性能优化指南 【免费下载链接】thorium Chromium fork named after radioactive element No. 90. Source code and Linux releases. Windows/MacOS/ARM builds served in different repos, links are towards the top o…...

自研系统与Odoo ERP数据集成中间件设计与实现

1. 项目概述&#xff1a;连接两个世界的桥梁最近在折腾企业信息化系统集成时&#xff0c;遇到了一个挺典型的场景&#xff1a;公司内部有一套自研的、基于特定业务逻辑的微服务应用&#xff08;我们内部戏称为“雾系统”&#xff09;&#xff0c;同时又在使用Odoo这套成熟的ERP…...

气象数据分析实战:用Python+cinrad从雷达基数据中提取组合反射率并可视化

气象数据分析实战&#xff1a;用Pythoncinrad从雷达基数据中提取组合反射率并可视化 雷达基数据是气象业务和科研中的宝贵资源&#xff0c;尤其在强对流天气监测和短临预报中发挥着关键作用。对于气象从业者来说&#xff0c;如何高效地从原始雷达数据中提取组合反射率&#xf…...

5个关键技巧:让魔兽争霸III在现代Windows系统流畅运行

5个关键技巧&#xff1a;让魔兽争霸III在现代Windows系统流畅运行 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸III在Windows 10/11上…...

Zotero Duplicates Merger终极指南:3分钟彻底告别文献库重复烦恼

Zotero Duplicates Merger终极指南&#xff1a;3分钟彻底告别文献库重复烦恼 【免费下载链接】ZoteroDuplicatesMerger A zotero plugin to automatically merge duplicate items 项目地址: https://gitcode.com/gh_mirrors/zo/ZoteroDuplicatesMerger 还在为Zotero文献…...

FanControl完整指南:免费开源的风扇控制软件让Windows散热管理如此简单

FanControl完整指南&#xff1a;免费开源的风扇控制软件让Windows散热管理如此简单 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/Gi…...

NLTK数据包高效部署与下载加速实战

1. NLTK数据包下载慢&#xff1f;这些方法让你效率翻倍 第一次用NLTK跑自然语言处理项目时&#xff0c;我在数据包下载环节卡了整整三小时。看着进度条像蜗牛爬行&#xff0c;我甚至怀疑是不是网络断了。后来才发现&#xff0c;这是所有NLTK初学者都会遇到的经典问题——由于默…...