Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

smc: use ed25519 for long-term keys #13

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,23 @@ Delayed-execution Ethereum client.
Based on previous work by Shufan Wang.

# Architecture
`dela/` is a modified version of `dela`.
`go-ethereum/` is a modified version of `go-ethereum v1.10.23` which integrates with `dela`.
`smc/` contains the Secret Management Committee code and provides the `dkgcli` command.
`go-ethereum/` is a modified version of `go-ethereum v1.10.23` which integrates with the SMC.

# Design (WIP)

- [x] When creating a transaction, the user agent IBE-encrypts the calldata with dela.
- [x] The IBE label is sender address concatenated with big-endian 64-bit nonce
- [x] The ciphertext is authenticated (HMAC-SHA256, encrypt-then-MAC)
- [ ] The chain only accepts encrypted transactions
- [x] ~~The chain only accepts encrypted transactions~~ delayed execution for all transactions
- [x] The `to` address is encrypted
- [ ] The transaction receipt contains a symmetric encryption key
- [ ] ~~The transaction receipt contains a symmetric encryption key~~
- [ ] The execution layer can direct the SMC node to release an encryption label only after the transaction is finalized.
- [ ] TDH2, PVSS, beacon IBE options maybe
- [ ] ~~TDH2, PVSS, beacon IBE options maybe~~ sticking to pairings for compact decryption proofs
- [ ] Direct contract creation doesn't work ? (nil address thing)

# Running
Run `setup.sh` to build and install to `$GOPATH` the modified `dela and `go-ethereum`.
Run `setup.sh` to build and install `smc` and the modified `go-ethereum` to `$GOPATH`.

Make sure [Foundry](https://getfoundry.sh/) is installed.
Run `git submodule update --init --recursive contracts` to make sure the foundry dependencies are ready.
Expand Down
29 changes: 0 additions & 29 deletions dela/.github/workflows/go_lint.yml

This file was deleted.

69 changes: 0 additions & 69 deletions dela/.github/workflows/go_test.yml

This file was deleted.

5 changes: 0 additions & 5 deletions dela/.gitignore

This file was deleted.

12 changes: 0 additions & 12 deletions dela/.gitrepo

This file was deleted.

13 changes: 0 additions & 13 deletions dela/Dockerfile

This file was deleted.

29 changes: 0 additions & 29 deletions dela/LICENSE

This file was deleted.

40 changes: 0 additions & 40 deletions dela/Makefile

This file was deleted.

21 changes: 0 additions & 21 deletions dela/README.md

This file was deleted.

94 changes: 0 additions & 94 deletions dela/cli/cli.go

This file was deleted.

37 changes: 0 additions & 37 deletions dela/cli/crypto/crypto.go

This file was deleted.

Loading