BSV 上的零知识隐私机器学习

这篇具有很好参考价值的文章主要介绍了BSV 上的零知识隐私机器学习。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

此前,我们已经演示了在 BSV 上运行一个成熟的深度神经网络,其中机器学习 (ML) 算法的输入和模型都是公开的。在实践中,通常希望将输入或模型保持在链下并因此保持私有,同时仍确保 ML 算法如实运行。我们通过将零知识证明 (ZKP) 应用于 ML 来实现这一点。

零知识链上机器学习

涉及 ML 时,有两类隐私信息:

  • 隐私输入

模型的输入是隐私的,但模型本身是公开的。这对于涉及敏感和隐私数据的应用程序特别有用,例如财务记录、生物识别数据(例如指纹、面部)、医疗记录和位置信息。例如,可以证明他已经超过21岁而无需透露他的年龄。或者保险公司使用信用评分模型进行贷款审批。该模型是为提高透明度而公开的,但申请人的工资和银行对账单等输入内容应保密。

  • 隐私模型

模型的输入是公开的,但模型本身是私有的,通常是因为它是知识产权和专有的。例如,我们使用一家私人公司拥有的肿瘤分类模型来从图像中检测肿瘤。在对公共数据集进行分类时,该模型被证明具有 99% 的准确率。公司可以只发布其模型的密码承诺,即所有模型参数的哈希。我们可以确定该模型是合法的,虽然没有看到它。为了公平起见,密码学承诺还确保将相同的模型应用于每个人。这在例如根据候选人的公开信息对候选人进行排名的录取模型中是需要的。

ZKP 非常适合在使用链上 ML 时保留隐私,因为它可以在链下隐藏信息,同时证明 ML 推理是正确的。

手写数字分类

作为演示,我们实现了一个简单的手写数字分类模型。该模型使用来自 MNIST 数据集的标记示例进行训练。该模型的架构与我们用于完全链上模型的架构非常相似。

zk-snark 的机器学习,智能合约,智能合约,区块链,零知识证明
我们使用 ZoKrates 构建 ZK 电路,它可以通过简单地使用关键字 private 声明它来简单地将任何输入设为私有。

隐私输入

def main(private u64[N_NODES_IN] model_inputs
         u64[N_NODES_HL][N_NODES_IN] weights0, \
         u64[N_NODES_OUT][N_NODES_HL] weights1, \
         u64[N_NODES_HL] biases0, \
         u64[N_NODES_OUT] biases1, \) {
    u64[N_NODES_HL] step0 = apply_weights0(model_inputs, weights0);
    u64[N_NODES_HL] step1 = add_biases0(step0, biases0);
    u64[N_NODES_HL] step2 = apply_relu(step1);
    u64[N_NODES_OUT] step3 = apply_weights1(step2, weights1);
    u64[N_NODES_OUT] step4 = add_biases1(step3, biases1);
    u64 res = argmax(step4);

    assert(res == TARGET_CLASS);
    return;
}

从上面的代码中,我们可以看到模型的输入 model_inputs 作为私有参数传递,同时模型参数(权重和偏差)是公开的。一旦我们将输入传递给模型,电路就会对数据执行所有模型操作并输出模型预测/类别。

隐私模型

以下是将模型设为私有的代码。

def main(private u64[N_NODES_HL][N_NODES_IN] weights0, \
         private u64[N_NODES_OUT][N_NODES_HL] weights1, \
         private u64[N_NODES_HL] biases0, \
         private u64[N_NODES_OUT] biases1, \
         u64[N_TEST_EXAMPLES][N_NODES_IN] test_examples, \
         u64[N_TEST_EXAMPLES] test_labels) {
    u32 mut correct = 0;

    for u32 idx_test_example in 0..N_TEST_EXAMPLES {
        u64[N_NODES_HL] step0 = apply_weights0(test_examples[idx_test_example], weights0);
        u64[N_NODES_HL] step1 = add_biases0(step0, biases0);
        u64[N_NODES_HL] step2 = apply_relu(step1);
        u64[N_NODES_OUT] step3 = apply_weights1(step2, weights1);
        u64[N_NODES_OUT] step4 = add_biases1(step3, biases1);
        u64 res = argmax(step4);

        u32 to_add = if res == test_labels[idx_test_example] { 1 } else { 0 };
        correct = correct + to_add;
    }

    assert((correct * 100) / (N_TEST_EXAMPLES * 100) >= TARGET_CA);
    return;
}

这里我们不传递模型输入数据,而是将模型参数本身作为隐私输入。使用这些秘密参数,电路执行模型的所有必要操作,并将结果与​​一批测试示例进行比较。如果模型达到某个分类准确率 (CA) 阈值,则执行成功。

第一个场景和第二个场景的完整代码都可以在 GitHub 上找到。

总结

我们已经演示了如何利用 zk-SNARKS 的 ZK 属性进行链上机器学习,这允许我们隐藏 ML 计算的特定部分。

参考

零知识机器学习文章来源地址https://www.toymoban.com/news/detail-791880.html

到了这里,关于BSV 上的零知识隐私机器学习的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • BSV 上的 PLONK

    我们很自豪地宣布 BSV 现在支持 PLONK。关于 PLONK 工作原理的详细说明,可以参考我们之前的解释 第一部分 和 第二部分。 我们之前已经实现了 Groth16,这是最小且最高效的 SNARK 构造。但是,它需要为每个电路进行可信设置。通过消除对每条电路的可信设置的需要,PLONK 既减轻

    2024年01月20日
    浏览(32)
  • BSV 上用于通用计算的隐私非交互式赏金

    我们提出了一种新颖的赏金机制,可以在区块链上安全私密地外包任意计算。解决方案和付款的交换是原子的和无需信任的:赏金发布者获得解决方案而赏金收集者获得奖励,或者两者都不发生。赏金发布者部署一个智能合约,当且仅当提供解决方案时才会释放资金。为了防

    2024年02月02日
    浏览(29)
  • BSV 上的信息不完整游戏

    我们展示了如何使用零知识证明(ZKP)开发 BSV 上的信息不完整游戏,这通常被认为无法在透明的区块链上实现。我们使用两个游戏来举例说明关键过程。 游戏分为两类: 信息完整游戏 : 所有玩家都知道有关游戏状态的一切。例如,在国际象棋中,两个玩家都知道所有棋子在

    2023年04月24日
    浏览(23)
  • BSV 上的付费解密智能合约

    Alice 有一条加密消息,即密文。Bob 有原始消息,明文。Alice 想付费给 Bob BSV 以换取明文。如果 Alice 先付钱给 Bob,Bob 可能不会给她明文。相反,如果 Bob 先把明文告诉 Alice,Alice 可能会拒绝付费。 我们设计了一个称为支付解密的智能合约,使交易原子化且无需信任,确保只有

    2024年01月17日
    浏览(33)
  • 发布 Whatsonchain 上的 BSV20 插件

    我们发布了 whatsonchain 上的 BSV20 插件来验证 BSV20 代币。 对于任何交易,whatsonchain 都可以通过以下网址打开: 我们使用此 bsv20 v2 1 交易 打开 Whatsonchain 。 打开whatsonchain后你会看到BSV20插件: 点击插件,你会看到: 根据插件我们可以看到以下信息: id: 代币 ID op: bsv20 协议中

    2024年02月04日
    浏览(27)
  • BSV 上的点对点结算衍生品:远期合约

    远期合约是两方在特定未来时间以预定价格买卖资产的衍生工具。它是一种非常常见的对冲波动性的工具。因此,使用 USD 远期合约可以对冲 USD 兑 BSV 汇率的波动。 远期合约的收益图 例如,Alice 与 Bob 签订了一份 USD 远期合约。Alice 同意从现在起一个月后以每 BSV 100 USD 的价格

    2024年01月20日
    浏览(44)
  • 机器学习-隐私保护总览

    这段时间有项目在进行,所以对斯坦福Dan Boneh密码学的阅读进度有所放缓,之后会继续更新,这段时间对当前机器学习领域隐私保护的方向做了一点小总结。 近年来,隐私保护机器学习的研究方向大致可以分为三类 : 一是以k -匿名 为代表的基于等价类的方法 。 二是以差分

    2023年04月15日
    浏览(36)
  • 机器学习笔记 - 深度学习在网球运动分析上的应用

            观看网球比赛时,您可以根据中间或角落的发球次数、球的深度、向左或向右的偏好来自动丰富视图,具体取决于球员所处的位置。此类统计数据可以通过 Hawk-Eye、IBM Slamtracker 等工具提供。         Hawk-Eye 是一个复杂的系统,由多达 10 个高速摄像头组成,能

    2024年02月16日
    浏览(33)
  • 【机器学习故事】“超市货架上的智慧:如何通过机器学习优化商品布局,引爆销售热潮“

    在一个明媚的早晨,阳光洒在你刚刚开张的超市上,货架上整齐地摆放着各式各样的商品,等待着顾客的光临。 你站在超市的入口,满怀期待地想象着顾客们满载而归的场景。然而,生意并没有你想象的那么好。你发现有些商品似乎总是卖不出去,而有些商品则经常缺货。你

    2024年01月21日
    浏览(36)
  • 联邦学习:密码学 + 机器学习 + 分布式 实现隐私计算,破解医学界数据孤岛的长期难题

      这联邦学习呢,就是让不同的地方一起弄一个学习的模型,但重要的是,大家的数据都是自己家的,不用给别人。 这样一来,人家的秘密就不会到处乱跑(数据不出本地),又能合力干大事。   <没有联邦学习的情况> 在没有联邦学习的情况下,医院面临的一个主要问题

    2024年01月23日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包