Zencode
Secure
Crypto
Language
DECIFRIS23
CONSOB
Rome
15 Dec 2023
Andrea D'Intino
Denis "Jaromil" Roio
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.
Software
Environment & Sustainable Economies
Research
Privacy
Art & Society
Applied
crypto
Science
Technology
& Art
Change�Agents
Privacy By Design
Digital�Democracy
Lectures
Keynotes
Advisory
Circular Economies
GNU+
Linux
BSD
Think-do tank
github.com/dyne
Devuan GNU+Linux
Tomb crypto undertaker
Frei0r video plugins
Freej, MuSE, HasciiCam
GitZone - DNS manager
Dowse - LAN proxy
etc…
Partnerships
Crypto Standards
Decentralized ID�Algorethics
DECODE provides tools that put individuals in control of whether they keep their personal data private or share it for the public good
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/
ECC :: Elliptic Curve Cryptography
Zenroom implementa un sistema crittografico basato su curve ellittiche di primo e secondo ordine su cui e’ possible eseguire ATE-pairing (Miller-loop)
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)
)
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'
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
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
Thanks
for your
interest!
Get in touch with the merry dyne folks!
dyne.org/linktree