Skip to content
This repository has been archived by the owner on Nov 12, 2021. It is now read-only.

perun-network/erdstall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Erdstall

A 2nd Layer Plasma based on abstract trusted third parties. Build during the ETHOnline 2020 hackathon.

Repository Structure

The repository's root directory is a Go module. contracts is a truffle project, containing the Solidity contracts. operator contains the operator code and client the end user logic. All main programs reside inside the cmd folder. All TEE related code can be found in tee.

Getting started

# build
go build -o operator.bin ./cmd/operator
go build -o client.bin ./cmd/client

# gnache
ganache-cli -e 100000000000000 -b 5 -m "pistol kiwi shrug future ozone ostrich match remove crucial oblige cream critic" -s 100

# op
./operator.bin
# alice
./client.bin --contract 0x4fb8637afd28492a3209017556e95dc2f8086ddb
--account-index 2
# bob
./client.bin --contract 0x4fb8637afd28492a3209017556e95dc2f8086ddb
--account-index 3

Configuration file

With the command line flag -config <file>, you can specify a JSON configuration file. In this file, you can override the default settings. For reference, see demo/config.json. If you wish to enable TLS support for the websocket connection, set the fields KeyFile to the TLS private key file path, and CertFile to the TLS certificate file path.

Description

Erdstall leverages Trusted Execution Environments (TEE) like Intel SGX (or even MPC committees) to scale Ethereum. Similar to Plasma or Rollups, the system consists of a smart contract, an untrusted operator running a TEE and a dynamic group of users. Joining and leaving the system is by a single call to a smart contract. But once assets are deposited into the system, off-chain transactions are free and only require the exchange of signatures from users to the operator. The TEE Enclave receives and verifies those transactions and keeps track of the system state. The whole system evolves in epochs and at the end of each epoch, so-called balance proofs are distributed to all users, allowing them to leave the system at any time. Those proofs are also necessary to give all users the possibility to exit the system shall the operator decide to cease operating.

The underlying protocols were developed and proven secure by the Chair of Applied Cryptography research group at Technical University Darmstadt (the same team behind the Perun generalized state channels). The related paper is currently in submission at a cryptography conference.

License

This work is released under the Apache 2.0 license. See LICENSE file for more details.

Copyright (C) 2020 - The Erdstall Authors.