Zenroom

zenroom
Crypto VM for database and blockchain

Zenroom is a tiny and portable virtual machine that integrates in any application to authenticate and restrict access to data and execute human-readable smart contracts.

Make cryptography easy

Clearly separate the workflow of programmers, cryptographers and privacy analysts: facilitate reviews, updates and distributed architecture design.

Specs

Perform Elliptic Curve Pairing as well public/private a-symmetric key cryptography for ECDH and ECSDA and AES-GCM.

Attribute based credentials (ABC) and non-interactive zero knowledge proof (zk-SNARKS)  based on Coconut.

Executes smart contracts in Lua or in Zencode: a non Turing-complete, English-like DSL, inspired by LangSec and BDD.

Deterministic execution end-to-end: in-browser, in-memory or distributed to a blockchain. Grants integrity across different platforms.

Tiny library or executable (1MB), low memory usage (600KB~2MB). No external dependencies. Language bindings: Js, Py, Go …

Written in C (ANSI C99), Zenroom runs on Linux, Windows, Mac, Android, iOS, WebAssembly, integrated Cortex chips and supports Seccomp.

low on resources
Highly scalable

~ 1
KB payload
~ 1
KB RAM usage (for basic crypto)
+
HASH/sec (on desktop PC)

Advanced Features

Attribute Based
Credential and zk-SNARKS

Zenroom implements the Coconut authentication flow, allowing developers to implement complex ABC and zk-SNARKS flows in minutes.

End-to-end cryptography
for distributed systems

Highly deterministic and replicable environment for the integrity of multiple cryptographic computations. Read more

Easy language
for smart contracts

Makes it possible to design and review data protection systems without programming or the need to understand code. Read more

AGPL3 and Commercial licensing

Community
Open Source

All our software is free and open source, we’re building inter-operability and coordinating efforts with DECODE, Sovrin, OW2, Cosmos and other communities.

Enterprise
support

We offer professional support for the integration with enterprise infrastructure and commercial products, along with dual licensing. Let us know about your project!                              

developer resources

Docs

Explore Zenroom documentation:
+ Command line interface
+ Binders
+ Zencode and Lua reference
+ Build and embed
+ Zenroom extensions

Sandbox

Play with Zenroom in-the-browser, using Zenroom’s JavaScript build (WASM).

Look at the examples and test your own smart contracts in Zencode or Lua, use the JSON output and create prototypes.

Downloads

Linux/Win/Mac CLI

Linux: X64 | ARM(armhf)

Windows: .exe | .dll | .lib | .exe debug

MacOS: X86/X64

Android/iOS

Android libs: ARM(armhf) | ARM64(AArch64) | X86 

iOS libs: ARM(armhf) | ARM64(AArch64) | X86_64

JavaScript

WASM (for use in browser, both files needed): .js | .wasm

NPM: yarn add zenroom (package)

Python 3

Linux: libs and examples

MacOS: libs and examples

Pip: pip install zenroom (package)

Golang

Linux: lib 

MacOS: lib

Zenroom derivatives

Restroom

Easy REST API builder executing Zencode: place a .zen file in a folder to expose an API.

Lotionroom​

Lotionroom integrates Zenroom into the Cosmos Tendermint blockchain using LotionJs.

Sawroom

Sawroom integrates the Zenroom as a transaction processor in the Sawtooth blockchain.

Redroom

RedRoom brings easy to use yet advanced cryptographic functions in Redis.

Zenbridge

Read/write data on Bitcoin, Hyperledger Sawtooth, MongoDB and more​.

Zenroom live demo

Watch a presentation of Zenroom's zero knowledge proof and attribute based credential flow, with a live demo of the crypto flow in a multiplatform setup.

Proudly crafted in the EU

This project received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement nr. 732546 (DECODE).

Our projects in the press

2019© Copyright dyne.org