区块链 | NFT 水印:Review on Watermarking Techniques(三)

🍍原文:Review on Watermarking Techniques Aiming Authentication of Digital Image Artistic Works Minted as NFTs into Blockchains



一个 NFT 的水印认证协议

可以引入第三方实体来实现对交易的认证,即通过使用 R S A \mathsf{RSA} RSA 加密协议来验证水印的有效性。 R S A \mathsf{RSA} RSA 加密是一种广为人知的公钥加密技术,它被广泛应用于保障数据传输的安全性。

作品的所有者 o w n e r \mathsf{owner} owner 和认证实体使用自己的私钥和公钥,在艺术作品中嵌入一个 s i g n a t u r e \mathsf{signature} signature 签名,也就是 w a t e r m a r k \mathsf{watermark} watermark 水印,从而增强了作品本身、创作者 c r e a t o r \mathsf{creator} creator 身份和认证实体的真实性。

个人理解:作品的所有者可以是 c r e a t o r \mathsf{creator} creator 创作者,也可以是创作者委托的 s e l l e r \mathsf{seller} seller 卖家。不过,水印中始终包含的是 c r e a t o r \mathsf{creator} creator 创作者的信息。

除此之外,可以把水印 w a t e r m a r k \mathsf{watermark} watermark 的校验和 c h e c k s u m \mathsf{checksum} checksum 也记录在区块链上,以注册 r e g i s t e r \mathsf{register} register 交易以获得额外的安全性,同时维持 NFT 和数字货币的去中心化特性。

后文会对水印认证协议进行详细的阐述。

通过运用 R S A \mathsf{RSA} RSA 加密技术,可以创建一个水印 W W W,将其嵌入到作品中,以此来验证创作日期 D A T E C R E A \mathsf{DATECREA} DATECREA、所有者标识 U S E R I D \mathsf{USERID} USERID 以及其他相关信息。

假设我们采用了一种 R S A \mathsf{RSA} RSA 对称加密方法,该方法包括两个过程:

  • 名为 P U B ( K e y P U B , ⋅ ) \mathsf{PUB(Key_{PUB},\ \cdot\ )} PUB(KeyPUB,  ) 的加密过程;
  • 名为 P R I V ( K e y P R I V , ⋅ ) \mathsf{PRIV(Key_{PRIV},\ \cdot\ )} PRIV(KeyPRIV,  ) 的解密过程;

它们分别与公钥 K e y P U B \mathsf{Key_{PUB}} KeyPUB 和私钥 K e y P R I V \mathsf{Key_{PRIV}} KeyPRIV 相对应,使得以下等式成立:

W = P R I V ( K e y P R I V , P U B ( K e y P U B , W ) ) W=\mathsf{PRIV(Key_{PRIV},PUB(Key_{PUB},} W \mathsf{))} W=PRIV(KeyPRIV,PUB(KeyPUB,W))

个人理解:在我们使用公钥 K e y P U B \mathsf{Key_{PUB}} KeyPUB 对水印 W W W 进行签名后,可以使用私钥 K e y P R I V \mathsf{Key_{PRIV}} KeyPRIV 将签名值还原为 W W W 水印。

为了确保消息被准确地加密和解密,上述流程必须依赖公、私钥。公钥负责加密,它可以安全地公开传播,而不会削弱系统的安全性。相对地,私钥则必须严格保密,仅被信息的发送者或作品的创作者与所有者所知。接下来,本文将阐述一个用于验证作品真实性及其创作者所有权的认证协议。



1 水印认证协议的提出

设想存在一个认证实体,它通过展示和处理艺术作品来增加艺术家的信誉,同时将交易注册 r e g i s t e r \mathsf{register} register 到区块链上,以便进行公开审计和验证嵌入的水印。这个实体可以是现有的市场,它负责将作品的 URL 和其他相关信息注册到区块链上,通常采用以太坊区块链。

简而言之,“认证实体” 可以由 NFT 市场来充当。

作品的所有者可以利用市场提供的服务来生成一对私钥和公钥,其中私钥需要安全地存储在用户的数字钱包中。同时,市场平台也需要为该笔交易创建一对私钥和公钥。

各自的公私钥如下:

  • 卖家:私钥 K e y P R I V U S E R \mathsf{Key_{PRIVUSER}} KeyPRIVUSER 和公钥 K e y P U B U S E R \mathsf{Key_{PUBUSER}} KeyPUBUSER
  • 市场:私钥 K e y P R I V M K T \mathsf{Key_{PRIVMKT}} KeyPRIVMKT 和公钥 K e y P U B M K T \mathsf{Key_{PUBMKT}} KeyPUBMKT

所有者的私钥必须对市场保密,市场的私钥也必须对所有者保密。

说明:所有者可以是卖家也可以是创作者,我这里写卖家纯粹是为了对齐文字😇



1.1 水印的嵌入

水印的嵌入和提取过程是公开的。

水印的生成依赖于:

  • 市场在创建所有者账户时提供的用户身份 U S E R I D \mathsf{USERID} USERID
  • 作品的创作日期 D A T E C R E A \mathsf{DATECREA} DATECREA
  • 交易日期(即作品被铸造成区块链记录的日期) D A T E M I \mathsf{DATEMI} DATEMI

这些信息通过连接操作符 ∣ \mid 结合。

所有者将使用市场的公钥来加密其水印部分 W 1 W_1 W1,而市场则使用所有者的公钥来加密其水印部分 W 2 W_2 W2。最终生成的水印 W W W 是通过将这两部分进行异或操作 ⊕ \oplus 结合而成的:

  • 卖家: W 1 = P U B ( K e y P U B M K T , U S E R I D ∣ D A T E C R E A ) W_1 = \mathsf{PUB(Key_{PUBMKT},USERID\mid DATECREA)} W1=PUB(KeyPUBMKT,USERIDDATECREA)
  • 市场: W 2 = P U B ( K e y P U B U S E R , U S E R I D ∣ D A T E M I ) W_2 = \mathsf{PUB(Key_{PUBUSER},USERID\mid DATEMI)} W2=PUB(KeyPUBUSER,USERIDDATEMI)
  • 水印: W = W 1 ⊕ W 2 W = W_1 \oplus W_2 W=W1W2

将水印 W = W 1 ⊕ W 2 W = W_1 \oplus W_2 W=W1W2 嵌入到作品当中,并在 IPFS 中保存加了水印的作品。注意,可以选择多种水印技术之一来嵌入水印 W W W,例如前面所述的扩散频谱技术和 LSB 技术。

个人理解: W 1 W_1 W1 W 2 W_2 W2 只是在对关键信息进行签名,最后才是通过水印技术把 W W W 嵌入到作品当中。



1.2 水印的提取

在必要时,市场可以通过异或 ⊕ \oplus 操作的可逆性,利用已知的 W 2 W_2 W2 水印和提取出的水印 W W W 来生成未知的 W 1 W_1 W1 水印:

W 1 = W 2 ⊕ W W_1 = W_2 \oplus W W1=W2W

同样地,所有者也可以采用相同的方法生成 W 2 W_2 W2 水印。

此外,可以使用现有的算法 [16] 生成水印的校验和 C H E C K S U M \mathsf{CHECKSUM} CHECKSUM。这个校验和会被添加到即将铸造成区块链的数据 D A T A M I N T \mathsf{DATAMINT} DATAMINT 中, D A T A M I N T \mathsf{DATAMINT} DATAMINT 包含作品在 IPFS 中的 URL 和其他相关信息。为了降低燃料费用,校验和 C H E C K S U M \mathsf{CHECKSUM} CHECKSUM 应该比水印本身更小,其功能是为嵌入的水印提供真实性验证。

所提出的认证协议如下图所示:

在这里插入图片描述



2 嵌入水印后的验证流程

设想市场系统利用取证工具发现某件已发布作品存在复制或极其相似的情况。或者,作品的所有者察觉到其作品遭受了盗窃,且在该作品原版被铸造成区块链之后,被盗版本也完成了铸币。

通过从涉嫌的作品中提取出透明水印,并利用私钥对相关信息进行解密,可以确认作者的身份。具体来说,通过区块链上的校验和来验证水印,通过水印来验证创作日期、铸币日期和用户的身份信息。这些信息将作为有关争议作品的可靠法律证据。因此,建议的市场流程可以由市场实施,从而为艺术家提供更高质量、更安全的服务。

请注意,验证过程依赖于市场和所有者对交易及作品本身的了解。两个实体(所有者和市场)可以核对水印 W = W 1 ⊕ W 2 W = W_1 \oplus W_2 W=W1W2 的对应部分,并验证所有权。通过对比这两部分信息,可以全面验证可能存在的欺诈行为。为了进一步增加对 NFT 交易的信心,并提升艺术品市场的价值,可以提出这一协议的变种。此外,可见水印和多种透明技术可以与先进的半脆弱水印技术相结合使用。



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3029860.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

力扣每日一题37:解数独

目录 题目 大致思路 方法一:回溯剪枝(正常人能想出来的) 方法二:位运算优化剪枝 需要使用的位运算技巧 代码 位运算怎么就优化了呢? 方法三:枚举优化。 官解代码 方法四:舞蹈链算法 题…

FreeRTOS任务调度器

目录 1、什么是任务调度器 2、FreeRTOS中的任务调度器 2.1 抢占式调度 2.2 时间片调度 2.3 协作式调度 3、任务调度案例分析 3.1 实验需求 3.2 CubeMX配置 3.3 代码实现 3.3.1 uart.c 重定向printf 3.3.2 打开freertos.c并添加代码 3.3.4 代码现象 1、什么是任务调度…

7 系列 FPGA 产品介绍及选型

目录 Spartan-7 FPGAsArtix-7 FPGAsKintex-7 FPGAsVirtex-7 FPGAsFPGA芯片命名规则DSP资源BRAM资源Transceivers 资源Transceivers 总带宽I/O 个数及带宽参考文档 Spartan-7 FPGAs Artix-7 FPGAs Kintex-7 FPGAs Virtex-7 FPGAs FPGA芯片命名规则 DSP资源 BRAM资源 Transceiver…

day5Qt作业

服务器端 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//准备组件,初始化组件状态this->setFixedSize(800,600);chatwidget new QListWidge…

【Linux】Linux——Centos7安装Tomcat

1.下载Tomcat 安装包 官网地址:Apache Tomcat - Apache Tomcat 9 Software Downloadshttps://tomcat.apache.org/download-90.cgi 2.将下载的安装包上传到 Xftp 上,我是直接放到 usr 下了 3.将安装包解压到 /usr/local/ tar -zxvf apache-tomcat-9.0.8…

Java+SpringBoot+JSP实现在线心理评测与咨询系统

前言介绍 随着互联网技术的高速发展,人们生活的各方面都受到互联网技术的影响。现在人们可以通过互联网技术就能实现不出家门就可以通过网络进行系统管理,交易等,而且过程简单、快捷。同样的,在人们的工作生活中,也就…

249 基于matlab的MED、OMEDA、MOMEDA、MCKD信号处理方法

基于matlab的MED、OMEDA、MOMEDA、MCKD信号处理方法。最小熵反褶积(MED),最优最小熵反卷积调整卷积 (OMEDA),多点最优最小熵解卷积调整(Multipoint Optimal Minimum Entropy Deconvolution Adjusted,MOMEDA),最大相关峭…

Neuralink首个脑机接口患者:打游戏、搞研究两不误,重获自主能力

今年1月28日,Neuralink首次将侵入式脑机接口植入人类患者Noland Arbaugh的大脑。100天后,这家由埃隆马斯克创立的公司公布了最新的进展。从Neuralink的更新中我们可以看到,Arbaugh的恢复情况超出预期,他的用户体验也非常积极。 原…

Android 按钮Button点击音效

一、新建工程 编译运行&#xff0c;确保工程无误&#xff0c;这里不过多赘述。 二、UI布局 添加两个播放音效Button <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"…

芋道系统springcloud模块启动报错,枚举类不能为空

问题描述&#xff1a; Error starting ApplicationContext. To display the conditions report re-run your application with debug enabled. 2024-05-10 15:50:15.756 | ERROR 9120 | main [TID: N/A] o.s.b.d.LoggingFailureAnalysisReporter | ************************…

腾讯云coding代码托管平台配置问题公钥拉取失败提示 Permission denied(publickey)

前言 最近在学校有个课设多人开发一个游戏&#xff0c;要团队协作&#xff0c;选用了腾讯云的coding作为代码管理仓库&#xff0c;但在配置的时候遇到了一些问题&#xff0c;相比于github&#xff0c;发现腾讯的coding更难用&#xff0c;&#xff0c;&#xff0c;这里记录一下…

【漫画版】指挥官的排序战术:快速排序算法解密

作者介绍&#xff1a;10年大厂数据\经营分析经验&#xff0c;现任字节跳动数据部门负责人。 会一些的技术&#xff1a;数据分析、算法、SQL、大数据相关、python&#xff0c;欢迎探讨交流 欢迎加入社区&#xff1a;码上找工作 作者专栏每日更新&#xff1a; LeetCode解锁1000题…

stm32单片机学习路线

第一步 编程及硬件基础知识 1.掌握C语言基础 作为STM32的主要编程语言&#xff0c;C语言的基础知识是必不可少的。建议通过书籍、在线课程或者教学视频系统地学习C语言的基础知识&#xff0c;包括语法、数据类型、函数、指针等。 2.了解电子电路基础 对于单片机开发来说&…

面向对象 03:类与对象的创建、初始化和使用,通过 new 关键字调用构造方法,以及创建对象过程的内存分析

一、前言 记录时间 [2024-05-10] 系列文章简摘&#xff1a; Java 笔记 01&#xff1a;Java 概述&#xff0c;MarkDown 常用语法整理 Java 笔记 11&#xff1a;Java 方法相关内容&#xff0c;方法的设计原则&#xff0c;以及方法的定义和调用 面向对象 01&#xff1a;Java 面向对…

ESP32引脚入门指南(四):从理论到实践(PWM)

引言 ESP32 作为物联网领域的明星微控制器&#xff0c;除了强大的Wi-Fi和蓝牙功能&#xff0c;还内置了丰富的外设资源&#xff0c;其中就包括高级的PWM&#xff08;脉冲宽度调制&#xff09;功能。本文将深入探讨ESP32的PWM引脚&#xff0c;解析其工作原理&#xff0c;并通过…

2024年数维杯B题完整代码和思路论文讲解与分析

2024数维杯数学建模完整代码和成品论文已更新&#xff0c;获取↓↓↓↓↓ https://www.yuque.com/u42168770/qv6z0d/bgic2nbxs2h41pvt?singleDoc# 2024数维杯数学建模B题45页论文和代码已完成&#xff0c;代码为全部问题的代码 论文包括摘要、问题重述、问题分析、模型假设、…

G2 - 人脸图像生成(DCGAN)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目录 理论知识DCGAN原理 模型结构逻辑结构物理结构 模型实现前期准备1. 导入第三方库2. 修改随机种子(相同的随机种子&#xff0c;第i次随机的结果是固定的)3.…

Cocos creator实现《战机长空》关卡本地存储功能

Cocos creator实现《战机长空》关卡本地存储功能 Cocos creator在开放小游戏过程中&#xff0c;经常会出现设置关卡&#xff0c;这里记录一下关卡数据本地存储功能。 一、关卡设置数据 假如我们有关卡数据如下&#xff0c; let settings [ { level: 1, // 第1关 score: 0,…

SAM轻量化应用Auto-SAM、Group-Mix SAM、RAP-SAM、STLM

1. Auto SAM&#xff08;Auto-Prompting SAM for Mobile Friendly 3D Medical Image Segmentation&#xff09; 1.1 面临问题 医学背景&#xff1a; &#xff08;1&#xff09;与自然图像相比&#xff0c;医学图像的尺寸更小&#xff0c;形状不规则&#xff0c;对比度更低。&…

window10设置静态IP

右键桌面网络图标 点击属性 点击要查看的网络 点击详细信息 获得网络连接详细信息 右键WiFi符号 或者其他方式进入网络与internet中心 点击 WLAN 点击属性 点击编辑&#xff08;点击一个即可&#xff09; 选择手动将刚才的信息方进入即可 完成