BSV 上的付费解密智能合约

这篇具有很好参考价值的文章主要介绍了BSV 上的付费解密智能合约。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Alice 有一条加密消息,即密文。Bob 有原始消息,明文。Alice 想付费给 Bob BSV 以换取明文。如果 Alice 先付钱给 Bob,Bob 可能不会给她明文。相反,如果 Bob 先把明文告诉 Alice,Alice 可能会拒绝付费。

我们设计了一个称为支付解密的智能合约,使交易原子化且无需信任,确保只有正确的明文才能赎回锁定的资金¹。

Diffie–Hellman 密钥交换

Diffie–Hellman 密钥交换 (DHKE) 是一种密钥协商协议,允许两方通过不安全的通道建立共享秘密。

下图显示了椭圆曲线上的 DHKE。一开始,Alice 和 Bob 各有一对公私钥。交换后,他们生成一个共享密钥。

解密付费消息,智能合约,智能合约,区块链

椭圆曲线 Diffie Hellman

ElGamal 加密

ElGamal 加密是一种基于 Diffie–Hellman 密钥交换的非对称密钥加密算法,以 Taher Elgamal² 命名。Alice 用他的公钥加密给 Bob 的消息,只能用 Bob 的私钥解密。

下图显示了它如何在椭圆曲线上工作,例如 BSV 中的 secp256k1。与在标准 DHKE 中一样,建立了以下共享秘密。

S = k * A = a * K = k * a * P

a 是 Alice 的密钥,k 可以看作是 Bob 的。

为了加密消息 M,Bob 只需将其添加到 S

C = S + M

Bob 将密文,即 (K, C) 对发送给 Alice。

要解密,Alice 可以简单地减去以恢复 M

M = C - S

注意 Alice 从 K 知道 S

S = a * K

解密付费消息,智能合约,智能合约,区块链

付费解密

Alice 在给定 KC 的情况下将资金锁定在以下合约中。Bob 只有提供正确的明文和解密密钥才能赎回它。我们使用之前的椭圆曲线库进行点运算。

contract Pay2Decrypt {
    // ciphertext: (K, C)
    Point K;
    Point C;

    public function decrypt(PrivKey privKey, Point plaintext) {
        Point sharedSecret = EC.multByScalar(this.K, privKey);
        require(EC.addPoints(sharedSecret, plaintext) == this.C);
    }
}
Pay2Decrypt 合约

致谢

这是 nChain 白皮书 1611 的实现。


[1] 这适用于可以公开的明文,因为它将暴露在区块链上。

[2] Taher Elgamal 被称为“SSL 之父”,与 Diffie–Hellman 一样,也是 Martin Hellman 的博士生。文章来源地址https://www.toymoban.com/news/detail-796390.html

到了这里,关于BSV 上的付费解密智能合约的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 区块链智能合约代码示例

            以下是一个简单的区块链智能合约代码示例: 该合约具有以下功能: 定义了一个名为 SimpleContract 的合约。 定义了一个名为 myData 的公共整数变量。 定义了一个名为 setMyData 的公共函数,该函数接受一个 uint 类型的参数 newData,并将其设置为 myData 的新值。 在 So

    2024年02月14日
    浏览(45)
  • 区块链与智能合约

    要想理解什么区块链,我们先来从本质上认识一下它 区块链:本质上是一个去中心化的分布式账本数据库,是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方法。 没有基础的人可能理解起来有点困难,我们来解释一下里边的名词 分布式账本数据库:了解过

    2024年03月26日
    浏览(88)
  • 区块链智能合约基础

    什么是智能合约 简单来说,智能合约是一种满足在一定条件时,就执行的程序,例如自动售货机就类似一个智能合约系统。 1.向自动售货机投入足够硬币,按下按钮 2.售货机供出商品 3.售货机回到初始状态 智能合约的工作原理 智能合约是一段程序(代码和数据的集合),可

    2024年02月13日
    浏览(41)
  • 区块链智能合约开发学习

    最近正在肝区块链知识学习,入手学习智能合约的开发,由于网上资料实在是太少了,好不容易东拼西凑完成了智能合约的开发、编译、部署、web3js调用(网页页面)和web3j调用(java调用),赶紧趁热把重点提炼出来。 先上图,是我最近学习知识点的一个概括总结,此外还包

    2023年04月18日
    浏览(39)
  • 区块链智能合约

    合同(Contract)又称契约、协议,是平等主体的自然人、法人、其他组织之间设立、变更、终止民事权利义务关系的协议。本质上讲,合同是当事双方或多方在并没有充足信任的情况下,通过文字的约定和法律的权威,对各自的权利与义务进行的约定。 制订合同的目的就在于

    2024年01月18日
    浏览(45)
  • 区块链之智能合约

    智能合约( Smart Contract)是以计算机为主要工具,将数学算法嵌入到程序中,用以证明某个事件是否符合约定条件,并保证各方在约定时间内按照约定条件达成一致,以验证和执行合同条款的计算机文本。简单来说智能合约是一个计算机程序,可以在不需要第三方介入的情况

    2024年02月07日
    浏览(42)
  • 【区块链 | 审计】智能合约审计指南

    区块链技术正在改变各行各业的游戏规则,而智能合约是这一进程的关键部分。智能合约通过消除第三方中介机构来确保各方之间的信任,有助于降低成本,同时也增加透明度。如果你要写一个智能合约,关键是你要对代码进行审计,以确保它能正常工作--而且不会有任何错

    2024年02月07日
    浏览(52)
  • 区块链2——Solidity智能合约开发

    区块链 索引目录 智能合约是一种以代码形式编写的自动执行合约,它们运行在区块链上。这些合约定义了在特定条件下发生的事件以及相应的行为。 1.1 智能合约结构 版本声明(Version Declaration): 智能合约通常以声明版本开始,指定合约应该使用的Solidity编译器版本。例如

    2024年02月05日
    浏览(65)
  • 人工智能与金融技术:区块链与智能合约

    随着人工智能技术的不断发展,金融领域也在不断融合人工智能技术,为金融服务提供了更多高效、智能化的解决方案。其中,区块链技术和智能合约是人工智能与金融技术的重要组成部分,它们在金融领域中发挥着越来越重要的作用。本文将从以下几个方面进行阐述: 背景

    2024年04月14日
    浏览(89)
  • 区块链智能合约编程语言 Solidity

    上文介绍了区块链生态发展,我们知道以太坊的到来可以使开发人员基于区块链开发DApp,本文介绍 Solidity 编程语言的使用,然后基于 Solidity 编写一个简单的智能合约。 Solidity 是以太坊开发人员使用的编程语言,用来编写智能合约,运行在以太坊虚拟机(EVM)上。 有开发经

    2024年02月12日
    浏览(56)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包