区块链 | 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 交易的信心,并提升艺术品市场的价值,可以提出这一协议的变种。此外,可见水印和多种透明技术可以与先进的半脆弱水印技术相结合使用。



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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

喜报|知从科技荣获“2023年度浦东新区创新创业奖”

4月11日,由上海市浦东新区人民政府举办的“2024年浦东新区经济突出贡献企业表彰活动”在上海国际会议中心隆重举行。知从科技凭借过去一年在行业内卓越的技术创新实力及对浦东新区发展作出的杰出贡献,入选创新创业20强企业,荣获“2023年度浦东…

Coze扣子开发指南:用免费API自己创建插件

虽然Coze扣子现在插件商店已经有几百个插件了,但相对于海量人群的众多差异化需求,还是远远不够的。如果插件商店没有合适的插件,其实完成可以自己创建,过程也很简单,不需要编写任何代码。 首先打开个人空间&#xff0…

python:做柱状图

import matplotlib.pyplot as plt # 数据 categories [A, B, C, D] values [23, 45, 56, 78] # 创建柱状图 plt.bar(categories, values) # 添加标题和标签 plt.title(柱状图示例) plt.xlabel(类别) plt.ylabel(数值) # 显示图形 plt.show() D:\software\新建文件夹\python\L…

elementui- button按钮自适应大小

<el-button type"primary" class"daochu" click"download">导出</el-button> .daochu {width: calc(100vw * 80 / 1920);height: calc(100vw * 30 / 1920);font-size: calc(100vw * 13 / 1920); } 效果图&#xff1a;

顺序表详解及应用(通讯录的实现)

一.线性表 线性表&#xff1a;n个具有相同特性的的数据元素的有限序列。线性表是一种在实际中广泛应用的数据结构&#xff0c;常见的线性表&#xff1a;顺序表&#xff0c;链表&#xff0c;栈&#xff0c;队列&#xff0c;字符串... 线性表在逻辑上是线性结构&#xff0c;也就…

一、计算机基础(Java零基础一)

&#x1f33b;&#x1f33b;目录 一、&#x1f33b;&#x1f33b;剖析学习Java前的疑问&#x1f33b;&#x1f33b;1.1 零基础学习编程1.2 英语不好能学吗&#xff1f;1.3 理解慢能学好吗&#xff1f;1.4 现在学Java晚吗&#xff1f;1.5 Java 和 Python 还有 Go 的选择1.6 Java…

Rust 使用egui创建一个简单的下载器demo

仓库连接: https://github.com/GaN601/egui-demo-download-util 这是我第一个rust gui demo, 学习rust有挺长时间了, 但是一直没有落实到实践中, 本着对桌面应用的兴趣, 考察了slint、egui两种框架, 最后还是选择了egui. 这篇博客同时包含我当前的一些理解, 但是自身技术有限,…

ESP8266基础资源了解

封装的硬件资源 参考1&#xff0c;参考2 常说的esp8266指的是有一个屏蔽罩盖着的模块&#xff0c;里面包含了esp8266芯片和一个能够存储数据和程序的flash&#xff0c;因为esp8266没有存储功能。 使用arduino常用的nodemcu是包含这个模块并含有电源LDO和串口下载的设计电路如…

WINDOWS下zookeeper突然无法启动但是端口未占用的解决办法(用了WSL)

windows下用着用着时候突然zookeeper启动不了了。netstat查也没有找到端口占用&#xff0c;就是起不来。控制台报错 java.lang.reflect.UndeclaredThrowableException: nullat org.springframework.util.ReflectionUtils.rethrowRuntimeException(ReflectionUtils.java:147) ~…

铁山靠之数学建模 - Matlab入门

Matlab基础 1. Matlab界面与基本操作1.1 matlab帮助系统1.2 matlab命令1.3 matlab功能符号1.4 matlab的数据类型1.5 函数计算1.6 matlab向量1.7 matlab多项式1.8 M文件1.9 函数文件1.10 matlab的程序结构1.11 echo、warning和error函数1.12 交互输入1.13 程序调试1.14 设置断点…

Centos固定静态ip地址

这里我用的是Vmware虚拟机搭建的三台机器 进入 cd /etc/sysconfig/network-scripts然后使用 ip addr命令&#xff0c;查看自己虚拟机的以太网地址。 我这里是ens33 上面的第一个选项是本地环回地址&#xff0c;不用管它 然后查看刚刚进入的network-scripts目录下的文件 找到…

Mybatis框架笔记:基础信息

1.Mybatis介绍 MyBatis本是apache的一个开源项目iBatis&#xff0c;2010年这个项目由apache software foundation迁移到了google code&#xff0c;并且改名为MyBatis。2013年11月迁移到Github。 iBATIS一词来源于“internet”和“abatis”的组合&#xff0c;是一个基于Java的持…

AI赋能EasyCVR视频汇聚/视频监控平台加快医院安防体系数字化转型升级

近来&#xff0c;云南镇雄一医院发生持刀伤人事件持续发酵&#xff0c;目前已造成2人死亡21人受伤。此类事件在医院层出不穷&#xff0c;有的是因为医患纠纷、有的是因为打架斗殴。而且在每日大量流动的人口中&#xff0c;一些不法分子也将罪恶的手伸到了医院&#xff0c;实行扒…

健康知识集锦

页面 页面代码 <% layout(/layouts/default.html, {title: 健康知识管理, libs: [dataGrid]}){ %> <div class"main-content"><div class"box box-main"><div class"box-header"><div class"box-title"&g…

STM32 RTC的使用

注意 本文的总结基于STM32F103C8T6这款MCU&#xff1b;这款MCU的RTC没有硬件万年历功能&#xff0c;是通过RTC库的HAL_RTC_GetTime()函数将秒数转换成日期数据的&#xff1b; BCD格式 VS Binary格式 这个的BCD格式具体是指8421码&#xff0c;具体区别可以看如下代码&#xf…

《Python编程从入门到实践》day23

# 昨日知识点回顾 操控飞船移动发射子弹&#xff0c;删除屏幕之外的子弹 #今日知识点学习 第13章 外星人 13.1 项目回顾 项目添加新功能前审核既有代码&#xff0c;对混乱或低效的代码进行清理 13.2 创建第一个外星人 13.2.1 创建Alien类 # alien.py imp…

C++中的std::bind深入剖析

目录 1.概要 2.原理 3.源码分析 3.1._Binder分析 3.2._CALL_BINDER的实现 4.总结 1.概要 std::bind是C11 中的一个函数模板&#xff0c;用于创建一个可调用对象&#xff08;函数对象或者函数指针&#xff09;的绑定副本&#xff0c;其中一部分参数被固定为指定值&#xf…

摄像头参数笔记

DPI 每英寸多少像素点 例如&#xff1a; 例如要冲洗4*6英寸的照片&#xff0c;扫描精度必须是300dpi&#xff0c;那么文件尺寸应该是(4*300)*(6*300)1200像素*1800像素。 MP "MP"通常是"Megapixel"的缩写&#xff0c;意为“百万像素”。 2MP两百万像素…

YOLOv5改进 | 独家创新篇 | 利用MobileNetV4的UIB模块二次创新C3(全网独家首发)

一、本文介绍 本文给大家带来的改进机制是利用MobileNetV4的UIB模块二次创新C3&#xff0c;其中UIB模块来自2024.5月发布的MobileNetV4网络&#xff0c;其是一种高度优化的神经网络架构&#xff0c;专为移动设备设计。它最新的改动总结主要有两点&#xff0c;采用了通用反向瓶…

特征提取与深度神经网络(角点检测)

图像特征概述 图像特征表示是该图像唯一的表述&#xff0c;是图像的DNA HOG HOG &#xff08;Histogram of Oriented Gradients&#xff09;是一种用于目标检测的特征描述子。在行人检测中用的最多。HOG特征描述了图像中局部区域的梯度方向信息&#xff0c;通过计算图像中各个…