Skip to content

gcapuzzi/open-whitepaper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Create Blockchain NFTs from authentic photos: an open source protocol

In the next few years, most of images will be generated by AI and it will be impossible to tell fake from reality. That will create lot of issues to professional photographers, reporters, SEOs, ecc. People who work with photos may have issues with inauthenticity ot them. This paper proposes an open source protocol to face this problem, adding integrity and ownership to authentic photos. The solution will be based on NFT blockchain technology.

Introduction and existing works

In the next few years, most of images will be generated by AI and it will be impossible to tell fake from reality. That will create lot of issues to professional photographers, reporters, SEOs, etc [1] and [2]. People that work with photos may have issues with inauthenticity of them. Furthermore, it will have ethical implications: AI creates misleading information, like deepfakes [3]. This paper proposes an open source protocol to face this problem, adding integrity and ownership to authentic photos. The solution will be based on NFT blockchain technology. Below the steps of the protocol:

  1. first the camera software must create the digest of the photo using hash function (integrity)
  2. second the same process must sign the photo and the digest using a private key (ownership)
  3. third the resulting file will be sent to a public blockchain platform, in order to store file and create an NFT (public digital ownership)

Others companies and organizations are investigating the problem and proposing solutions [4] and [5]. Canon proposed to store photos on blockchain platform in order to gain the Intellectual Property. While “Blockai” allows to register an image on a blockchain platform and provide also a “Certificate of Publication”. But, the previous solutions do not face mentioned issues related to Generative AI.

General workflow

The Figure 1 shows a general workflow of the protocol.

schema27 drawio

The camera captures the analog image transforming in a digital file (photo). When the photo is ready, a sotware creates its digest using hash function and adding integrity to the photo: according to hash function properties. Hence it guarantees that the photo is authentic, as it refers to “photo just captured”.

In the next step, the same software encrypts the couple (photo, digest) with the private key. This task adds the ownership of the photo to the owner of the private key. The next paragraph shows different scenarios to implement this activity.

When encrpypted data is ready, it could be sent to a public blockchain platform, through HTTPS request to a Web API. It stores received data on blockchain platform and creates a NFT which certifies the public ownership.

Further operations can be carried out, for example the creation of a QR code sent via email.

Camera tasks

The hashing and encryption tasks take places in the camera. There are several devices that have a camera. We analize two scenarios:

  1. camera without internet connection (e.g. reflex camera)
  2. camera with internet connection (e.g. smartphone)

Camera without internet connection

The Figure 2 shows a common block diagram of a camera without connection [6]. It saves photos on local storage.

schema29 drawio

This protocol could be integrated by adding the hashing and encryption function after Encoding block and before Storage bloc (see Figure 3):

schema28 drawio

This solution needs the private key (of the photographer) inside a microprocessor, that could be inside the camera (for improvement see Conclusion paragraph) or outside the camera (as in a smart card). Furthermore, in this scenario the connection to the Blockchain platform must be external to the camera (see Figure 4):

schema30 drawio

Camera with internet connection

In case of a device with connection, like a smartphone, all tasks must be executed on device. The Figure 5 shows a common block diagram of a camera installed on a smartphone [7]:

schema31 drawio

In that schema the saving task is executed by Operating System. It exposes to risk of software tampering: a software running on OS could tamper the photo before the connection to blockchain platform.

Adding an Operating System module can mitigate the risk: the module must be dedicated to the encryption tasks and must have the private key (see Figure 6):

schema32 drawio

NFT creation task

NFTs (Non-Fungible Tokens) are unique tokens: each token contains an unique ID and it is different to all the other tokens. A common case study of NFT is the proven ownership of an object: images, photos, artwork, assets, etc. The owner of the private key is the owner of the previous encrypted photo. This protocol proposes to store that photo on a public blockchain creating a NFT which proves the ownership. It is the third (and last) task, when a software sends the photo through internet connection. The blockchain should provide mentioned features by a Web API.

It could add extra features like a service for verification of the photo. After the NFT’s creation the API could create a barcode or QR code and sends it to the owner email. Scanning the code it should be possible to see the photo, the owner and NFT certificate.

Conclusion

The proposed protocol will not assure the solution of the problem. In fact, malicious people can try to modify hardware of the camera. An improvement could be the registration of the private key of the camera on a public organization. In that way, each camera could have a digital signature: when the camera captures a photo can sign the photo before storing it on local storage. That solution mitigates the problem giving a chance to take a photo and sign it as authentic. Next, the camera or a software will store the authentic photo on a public blockchain obtaining a NFT that certifies the ownership.

Future improvement could be implemented by “blockchain compliance camera”. The idea is a reflex camera that integrates an internet connection to public blockchain platform, allowing the use of the owner account (and wallet) for creating the NFT.

Another improvement could be the integration of meta data, adding position, date, time, etc. to the photo.

In case of camera integrated in a smartphone device, the Operating System’s Integrity is very important: “jailbroken” mobile device is not trustworthy!

A very important improvement should be a fingerprint sensor which allows the sole use to the owner. This solution creates an “hard-link” consisting of biometric <=> private key <=> NFT.

Most important is the choice of open source protocol to allow everyone to: use, integration, modification, suggestion, different use case or application, etc.

Acknowledgments

I would like to thank my friend Alessandro Annini for his contribution.

References

[1] website: https://hackernoon.com/instagram-is-dead-heres-why

[2] website: https://hbr.org/2023/04/generative-ai-has-an-intellectual-property-problem

[3] website: https://timesofindia.indiatimes.com/blogs/voices/generative-ai-and-what-the-future-holds/

[4] website: https://www.canon-europe.com/view/blockchain-photography-intellectual-property/

[5] website: https://www.slrlounge.com/blockai-uses-blockchain-help-change-face-copyright-protection/

[6] website: https://www.redsharknews.com/production/item/3027-a-new-way-to-think-about-cameras-and-lenses

[7] website: https://www.anandtech.com/show/6777/understanding-camera-optics-smartphone-camera-trends/2

About

Open source protocol for blockchain application

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages