Skip to content

Commit

Permalink
feat: refactor cli to use murmur-lib, get correct leaf position from …
Browse files Browse the repository at this point in the history
…index
  • Loading branch information
driemworks committed Sep 28, 2024
1 parent d6813da commit b55c9ca
Show file tree
Hide file tree
Showing 14 changed files with 157 additions and 375 deletions.
27 changes: 23 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
# Murmur

Murmur is an air-gapped keyless crypto wallet protocol that runs on the Ideal Network. It is based on the [Hours of Horus](https://eprint.iacr.org/2021/715) protocol, which leverages timelock encryption and a secure OTP code generator to construct a keyless wallet scheme. Our scheme improves on this construction in several ways.
Murmur is an air-gapped keyless crypto wallet protocol that runs on the [Ideal Network](). This repository contains the core implementation of the murmur protocol and a CLI to allow fully non-custodial usage of murmur wallets.

The murmur protocol enables **keyless account abstraction** capabilities for any chain bridged to the Ideal Network (alternatively, we can do this with drand). wallet is a special pure proxy that can only be executed when presented with proof that the origin knows a correct time-based OTP code.

It is based on the [Hours of Horus](https://eprint.iacr.org/2021/715) protocol, which leverages timelock encryption and a secure OTP code generator to construct a keyless wallet scheme. Our scheme improves on this construction in several ways.

- We leverage the Ideal Network to instantiate practical timelock encryption, allowing the HoH scheme to be realized in the first place.
- We use a Merkle mountain range in place of a Merkle tree, allowing for arbitrary numbers of OTP codes to be generated
- JIT execution: Rather than relying on a commit-reveal scheme in order to use the wallet, our scheme uses a 'just-in-time' approach leveraging the Ideal Network's on-chain randomness, which provides the decryption key (i.e. BLS signature) necessary to verify proofs.

This repository contains the core implementation of the murmur protocol and a CLI to allow fully non-custodial usage of murmur wallets on the Ideal Network.

## Setup
## Build

```
cargo build
Expand Down
3 changes: 1 addition & 2 deletions cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ license.workspace = true
subxt = "0.35.2"
subxt-signer = "0.35.2"
tokio = { version = "1.35", features = ["macros", "time", "rt-multi-thread"] }
murmur-core = { package = "murmur-core", path = "../core/", features = ["client"] }
etf-crypto-primitives = { git = "https://github.com/ideal-lab5/etf-sdk/", branch = "tony/dev" }
murmur-lib = { package = "murmur-lib", path = "../lib/" }
clap = { version = "4.1.1", features = ["derive"] }
rand_chacha = "0.3.1"
ckb-merkle-mountain-range = "0.5.2"
Expand Down
8 changes: 8 additions & 0 deletions cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@ It allows for the creation and exeuction of ephemeral 'murmur' wallets on the Id

## Setup

Install the cli with

``` shell
cargo install murmur
# verify it works
murmur --help
```

To setup a dev environment:
- run a local [IDN solochain node](https://github.com/ideal-lab5/etf)
- [generate metadata](#generating-metadata-for-the-chain)
Expand Down
Binary file removed cli/artifacts/metadata.scale
Binary file not shown.
Loading

0 comments on commit b55c9ca

Please sign in to comment.