Skip to content

Commit

Permalink
Update READMEs
Browse files Browse the repository at this point in the history
  • Loading branch information
gbenattar committed Mar 13, 2019
1 parent d1cf418 commit 988895b
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 52 deletions.
31 changes: 23 additions & 8 deletions README.md
@@ -1,11 +1,32 @@
Gotham City
=====================================
Gotham city is a fully functional project to demonstrate real-life
example of minimalist Bitcoin decentralized HD wallet using 2 party ECDSA.
Gotham city is a fully functional client/server application of a minimalist decentralized HD wallet using 2 party ECDSA.

Supported Blockchain(s) / Coin(s)
-------
### Server
Gotham **server** is coin / blockchain agnostic but Elliptic Curve specific.

List of supported Curve(s):

* secp256k1

### Client
Gotham **client** is coin / blockchain specific.

List of supported Coin(s):

* BTC

**Extending the client to support more coin(s) is easy as long as the Elliptic Curve and signing scheme of the new blockchain are supported. In the case a blockchain is using secp256k1 together with ECDSA, the same keygen and signing code can be reused.**

| ![Demo](misc/demo.gif) |
|-----------------------------|

Disclaimer
-------
### **USE AT YOUR OWN RISK, we are not responsible for software/hardware and/or any transactional issues that may occur while using Gotham city.**

Project Status
-------
The project is currently work in progress. For more information you can [email us](mailto:github@kzencorp.com).
Expand Down Expand Up @@ -35,8 +56,6 @@ Project Description
* [multi-party-ecdsa](https://github.com/KZen-networks/multi-party-ecdsa): Rust implelemtation of Lindell's Crypto17 paper: [Fast Secure Two-Party ECDSA Signing](https://eprint.iacr.org/2017/552)
* [kms](https://github.com/KZen-networks/kms): Two party key managament system (master keys, 2p-HD, shares rotation) for secp256k1 based two party digital sigantures



### White paper overview
#### Abstract
We demonstrate a Bitcoin wallet that utilizes two party ECDSA (2P-ECDSA).
Expand Down Expand Up @@ -64,10 +83,6 @@ The comparison was done on an Intel i9-8950HK (2.9GHz) using localhost for serve
| 2P-ECDSA Signing | **0.153** s | 0.206 s |


Disclaimer
-------
### Gotham city is a **proof of concept**. **DO NOT USE this project for PRODUCTION use! USE AT YOUR OWN RISK, we are not responsible for software/hardware and/or any transactional issues that may occur while using Gotham city.**

License
-------
Gotham City is released under the terms of the GPL-3.0 license. See [LICENSE](LICENSE) for more information.
Expand Down
46 changes: 2 additions & 44 deletions gotham-server/README.md
Expand Up @@ -16,7 +16,8 @@ cargo run --release
Optionally, it can use a remote [AWS DynamoDB](https://aws.amazon.com/dynamodb/),
by setting the environment variable `DB` to the value `AWS`, and the AWS credentials `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`.


* By default, the server will use no authentication (PASSTHROUGH).<br>
Optionally, it can use JWT with AWS Cognito as a service provider by setting proper environment variable (audience, region, pool_id, issuer).

### Running tests
#### Without timing output
Expand All @@ -28,46 +29,3 @@ RUST_TEST_THREADS=1 cargo test --release
```bash
RUST_TEST_THREADS=1 cargo test --release -- --nocapture
```

Example:
```test
gotham-server git:(master) ✗ cargo test --release -- --nocapture
Finished release [optimized] target(s) in 0.38s
Running target/release/deps/server_lib-c8356eb8232d5b73
running 1 test
🔧 Configured for production.
=> address: 0.0.0.0
=> port: 8000
=> log: critical
=> workers: 16
=> secret key: generated
=> limits: forms = 32KiB
=> keep-alive: 5s
=> tls: disabled
Warning: environment is 'production', but no `secret_key` is configured
PT0.022559567S Network/Server: party1 first message
PT0.018383316S Client: party2 first message
PT0.376486125S Network/Server: party1 second message
PT0.195108919S Client: party2 second message
PT0.007708591S Network/Server: party1 third message
PT0.000000497S Client: party2 third message
PT0.000052484S Network/Server: party1 fourth message
PT0.000002242S Client: party2 fourth message
(took PT0.630324S) test tests::key_gen ... ok
```

## APIs

* `#[post("/keygen/first", format = "json")]`
* `#[post("/keygen/<id>/second", format = "json", data = "<d_log_proof>")]`
* `#[post("/keygen/<id>/third", format = "json", data = "<pdl_chal_c_tag>")]
`
* `#[post("/keygen/<id>/fourth", format = "json", data = "<request>")]
`
* `#[post("/ecdsa/sign/<id>/first",
format = "json",
data = "<eph_key_gen_first_message_party_two>")]`
* `#[post("/ecdsa/sign/<id>/second", format = "json", data = "<request>")]`

0 comments on commit 988895b

Please sign in to comment.