Nir-vana+: plataforma de innovación abierta
This present document contains the result of the development of Task 4.1. Distributed Ledger DLT Technologies. A section is devoted to presenting the results, explaining the information provided in the approved report and subsequently the results obtained.
The development of the T4.1 task contributes in part to the fulfillment of the H3a milestone, reaching the version of beta 0.1 of Nir-vana C+D. The result of this deliverable is in http://redes.nirvana.eu.
Task 4.1. Distributed Ledger DLT Technologies
Tarea 4.1. Tecnologías Distributed Ledger DLT. Vamos a incorporar tecnología blockchain o Distributed Ledger Technologies para hacer el timestamping de las conversaciones desarrolladas dentro de los espacios de colaboración. De esta manera se obtiene una prueba de colaboración y se pude demostrar que alguien ha compartido cierta información con un colaborador.
In this task, we want to go further and determine how we can incorporate into Nir-vana C+D two innovations based on blockchain and smart contracts: the virtual notary and the protection of IP assets that are fully disclosed or partially disclosed. The most appropriate framework will be used (Ethereum and its combination with Alastria, being Rinkeby in the Ethereum testnet) and possible ZKP - Zero Knowledge Proof solutions will be considered to address the challenge of demonstrating IP capacity without revealing it, that is, without disclosing it in any way. compromising the know-how of the SME.
Description of the Work Done
In order to establish collaborations between participants of a space without fear of not being able to prove the disclosure of an intellectual property, a “proof of existence” process is carried out. All information (pre-image) can be represented by a hash key (image), hash functions are designed to behave injectively with extremely low collision probabilities.
If we record this hash key on the blockchain we can prove that we possessed the information or pre-image at the time the information is recorded. To optimize the number of transactions we can record all new conversations in a batch of hash keys.
When a post or comment is generated, a label appears as the message is still pending to be registered.
By clicking on the "pending" label, an explanation of how the virtual notary works appears.
A daily process generates an aggregate hash of all daily posts and comments and sends them to the Blockchain. At that moment the status of the post appears as “securing”.
Once the virtual notary process has been completed and the hash of all the intellectual properties generated on that day has been registered, the post changes to "secured".
Every piece of content created on Nir-vana has a private hash associated with it. This hash is generated with the following information:
- Hash of the platform user ID.
- Hash of the content date.
- Hash of the platform user ID.
- content Hash
- Hash of the attached files.
A new hash is generated from the private hash, SHA256(private hash) which is public.
The public hash is used to demonstrate that content has been created at a certain time and the private hash is used to demonstrate that the original user knows the information of a post without having to show the content of the post.
To prove that intellectual property has been generated at a certain time, you must follow the detailed instructions provided by the platform.
- You have to download the file with all the public hashes generated. In the list we can verify that our hash appears in the list.
- We can validare that the generated hash by the documment is the same as in the platform
- We can verify that the transaction entered in the blockchain contains the hash and verify the creation date of the proof of existence.
In this example we can see the blockchain transaction of the registration of a hash by the virtual notary.
You can also use the function specifically created in the virtual notary smart contract to check if a hash has been registered.
The virtual notary system requires exposing the content of the intellectual property in order to verify that this content is the one that has generated the hash. This may be inconvenient as we would be exposing the IP to a third party.
To provide more privacy when displaying an IP, a null knowledge test has been used. Zero-knowledge tests allow you to demonstrate possession of knowledge without having to disclose it.
For the proof of null knowledge, the zk-SNARK algorithm has been used.
ZK: It refers to the confidentiality and privacy of information between users without compromising their security.
S: Succinct: refers to the brevity and speed with which it can be verified and verified that the evidence is true or legitimate. Since the tests are a demonstration of the possession of information or data, their size is small, so they can be verified and validated in a matter of milliseconds.
N: Non-interactive: means that there is no constant interaction, communication or exchange relationship between the demonstrator and the verifier. In other words, in zero-knowledge proofs, it is only necessary to send a message with the proof to demonstrate possession of the information, without the need for constant or frequent communication between the parties.
ARK: Argument from knowledge: refers to the proof or knowledge that a tester has and can demonstrate to a verifier, to convince him that he has information that he knows and that it is correct, but without revealing what that information is.
For the generation of the circuit in charge of generating the specific elliptic curve used for the generator of valid points, the ZoKrates project has been used. ZoKrates is a programming language for generating the circuits used in Zk-Snarks. The Smart Contract in charge of validating the proof of null knowledge has also been created and stored in the blockchain for those who want to verify the knowledge of an intellectual property.
To demonstrate knowledge of a post or comment without revealing it, you must provide the public hash of the content and the text for proof.
These parameters are encoded to be used by the verifier Smart contract. It is this smart contract that verifies that the input parameters meet the conditions and that only the content knower could have generated the test text.
If the test is positive the smart contract returns a true value, otherwise it returns false
With the blockchain implementation of the virtual notary and the protection of intellectual property by means of zero-knowledge proof algorithms, the platform is provided with the necessary tools to favor collaborations and project developments with total security.
Activity financed under the Torres Quevedo 2018 Program. PTQ-2018-009753