1 of 17

Zencode

Secure

Crypto

Language

DECIFRIS23

CONSOB

Rome

15 Dec 2023

Andrea D'Intino

Denis "Jaromil" Roio

2 of 17

Dyne.org is a European non-profit free software foundry with more than 20 years of expertise in developing tools and narratives for community empowerment.​

3 of 17

Software

Environment & Sustainable Economies

Research

Privacy

Art & Society

4 of 17

Applied​

crypto​

Science

Technology

& Art

Change�Agents

Privacy By Design

Digital�Democracy​

Lectures

Keynotes

Advisory​

Circular Economies

GNU+

Linux​

BSD

Think-do tank

5 of 17

6 of 17

github.com/dyne

Devuan GNU+Linux

Tomb crypto undertaker

Frei0r video plugins

Freej, MuSE, HasciiCam

GitZone - DNS manager

Dowse - LAN proxy

etc…

7 of 17

Partnerships

Crypto Standards

Decentralized IDAlgorethics

8 of 17

DECODE provides tools that put individuals in control of whether they keep their personal data private or share it for the public good

9 of 17

10 of 17

Small, secure and portable virtual machine for crypto language processing that parses smart contracts in natural language​

Homepage: ​

Repo: ​

Online playground:​

Dev docs:

https://zenroom.org​

https://github.com/dyne/zenroom/​

http://apiroom.net/​

https://dev.zenroom.org/

11 of 17

ECC :: Elliptic Curve Cryptography

12 of 17

Zenroom implementa un sistema crittografico basato su curve ellittiche di primo e secondo ordine su cui e’ possible eseguire ATE-pairing (Miller-loop)

13 of 17

G2 = ECP2.generator()

sk = INT.random()

pk = G2 * sk

m = “messaggio da firmare”

U = ECP.hashtopoint( O.from_string(m) )

sig = U * sk

assert(

ECP2.miller( pk, U )

==

ECP2.miller(G2, sig)

)

14 of 17

G2 = ECP2.generator()

sk = INT.random()

pk = G2 * sk

m = “messaggio da firmare”

U = ECP.hashtopoint( O.from_string(m) )

sig = U * sk

assert(

ECP2.miller( pk, U )

==

ECP2.miller(G2, sig)

)

Given I am known as 'Alice’

When I create the keyring

and I create the BLS key

and I create the BLS public key

Then print my ‘BLS public key’

Then print my 'keyring’

Given that I am known as 'Alice’

and I have my 'keyring’

When I write string ‘message to sign’ in ‘message’

and I create the BLS signature of 'message’

Then print the 'message’

and print the ‘BLS signature’

Given I have a ‘BLS public key’

and I have a ‘BLS signature’

and I have a ‘string’ named ‘message’

When I verify the 'message' has a BLS signature by 'Alice’

Then print the string 'Signature is valid’

and print the 'message'

15 of 17

function make_pi_s(gamma, commit, k, r, m)

local wk = INT.random()

local wm = INT.random()

local wr = INT.random()

local Aw = G1 * wk

local Bw = gamma * wk + commit * wm

local Cw = G1 * wr + SALT * wm

local c = ZKP_challenge

({commit, Aw, Bw, Cw})

-- return pi_s

return {

commit = c,

rk = wk - c * k,

rm = wm - c * m,

rr = wr - c * r

}

end

Zero-Knowledge Proof – REFLOW CRYPTO - https://arxiv.org/abs/2105.14527

16 of 17

function credential.verify_pi_s(l)

local Aw = l.sign.a * l.pi_s.commit

+ G1 * l.pi_s.rk

local Bw =

l.sign.b * l.pi_s.commit

+ l.public * l.pi_s.rk

+ l.commit * l.pi_s.rm

local Cw =

l.commit * l.pi_s.commit

+ G1 * l.pi_s.rr

+ SALT * l.pi_s.rm

-- return a bool for assert

return l.pi_s.commit

== ZKP_challenge

({l.commit, Aw, Bw, Cw})

end

Zero-Knowledge Proof – REFLOW CRYPTO - https://arxiv.org/abs/2105.14527

17 of 17

Thanks

for your

interest!

Get in touch with the merry dyne folks!

dyne.org/linktree