All Projects → ZenGo-X → gotham-city

ZenGo-X / gotham-city

Licence: GPL-3.0 license
Gotham city is a fully functional project to demonstrate real-life example of minimalist Bitcoin decentralized HD wallet using 2 party ECDSA

Programming Languages

rust
11053 projects
TeX
3793 projects

Projects that are alternatives of or similar to gotham-city

sgxwallet
sgxwallet is the first-ever opensource high-performance hardware secure crypto wallet that is based on Intel SGX technology. First opensource product on Intel SGX whitelist. Scales to 100,000+ transactions per second. Currently supports ETH and SKALE, and will support BTC in the future. Sgxwallet is under heavy development and use by SKALE network.
Stars: ✭ 50 (-54.13%)
Mutual labels:  ecdsa, wallet
go-hdwallet
A multi-cryptocurrency HD wallet implementated by Golang.
Stars: ✭ 69 (-36.7%)
Mutual labels:  wallet
DAPSCoin
DAPS is the world's first coin to implement Bulletproofs and RingCT & Ring Signatures in a staking chain. With DAPS it is possible to stake, run masternodes and mine PoA blocks.
Stars: ✭ 58 (-46.79%)
Mutual labels:  wallet
wallet-address-validator
Useful library for validation of Bitcoin, Litecoin, Ethereum and other cryptocoin addresses
Stars: ✭ 240 (+120.18%)
Mutual labels:  wallet
polkawallet-flutter
Replace to: https://github.com/polkawallet-io/app
Stars: ✭ 107 (-1.83%)
Mutual labels:  wallet
filsnap
MetaMask snap for interacting with Filecoin dapps.
Stars: ✭ 60 (-44.95%)
Mutual labels:  wallet
Card-Tray-Demo
A clone of Apple's Wallet app
Stars: ✭ 40 (-63.3%)
Mutual labels:  wallet
TheWorldExchange
A purely client-side wallet and direct interface showcasing the full functionality of Ripple / blockchain.
Stars: ✭ 34 (-68.81%)
Mutual labels:  wallet
docker-nginx-certbot
Automatically create and renew website certificates for free using the Let's Encrypt certificate authority.
Stars: ✭ 367 (+236.7%)
Mutual labels:  ecdsa
asgardex-electron
||| ASGARDEX Electron App ||| desktop wallet and decentralized exchange for THORChain ||| 100% open-source
Stars: ✭ 93 (-14.68%)
Mutual labels:  wallet
cryptowallet-cli
CW is a crypto wallet generator CLI tool for a lot of blockchains: Bitcoin, Ethereum, Binance Smart Chain and many others
Stars: ✭ 45 (-58.72%)
Mutual labels:  wallet
RavenCoin-Wallet-With-Miners
RavenCoin Wallet including CPU and GPU miners! programs are directly from Ravencoin and official miner sources
Stars: ✭ 75 (-31.19%)
Mutual labels:  wallet
smrepl
A Spacemesh Terminal wallet app
Stars: ✭ 16 (-85.32%)
Mutual labels:  wallet
EOSWallet
🔐EOS Wallet: Manage your EOS accounts with steroids :)
Stars: ✭ 36 (-66.97%)
Mutual labels:  wallet
python-graphenelib
Python3 library for Graphene-based blockchains
Stars: ✭ 69 (-36.7%)
Mutual labels:  wallet
clorio-client
💰 A Mina Protocol Wallet - The most used Mina Protocol wallet.
Stars: ✭ 49 (-55.05%)
Mutual labels:  wallet
evian
www.balletcrypto.org/
Stars: ✭ 21 (-80.73%)
Mutual labels:  wallet
lightning-browser-extension
The Bitcoin Lightning Browser extension that connects to different wallet interfaces and brings deep lightning integration to the web
Stars: ✭ 194 (+77.98%)
Mutual labels:  wallet
cyton-ios
The CITA iOS Wallet App
Stars: ✭ 24 (-77.98%)
Mutual labels:  wallet
open-coinomi-android
The final open source (GPL 3.0) release of Coinomi's cryptocurrency wallet for Android
Stars: ✭ 33 (-69.72%)
Mutual labels:  wallet

Build Status

Gotham City

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

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.

Elements

Gotham Server Gotham Client
Description RESTful web service exposing APIs for two party ECDSA key generation and signing Bitcoin minimalist decentralized wallet CLI app
Instructions View View

Project Description

Design Overview

ECDSA Keygen and Signing

ECDSA

Cryptographic libraries

  • secp256k1: Rust language bindings for Bitcoin secp256k1 library.
  • curv : basic ECC primitives using secp256k1
  • rust-paillier: A pure-Rust implementation of the Paillier encryption scheme
  • zk-paillier: A collection of zero knowledge proofs using Paillier cryptosystem
  • multi-party-ecdsa: Rust implelemtation of Lindell's Crypto17 paper: Fast Secure Two-Party ECDSA Signing
  • 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). Our architecture relies on a simple client-server communication model. We show support for 2 party deterministic child derivation (2P-HD), secret share rotation and verifiable recovery. We discuss the opportunities and challenges of using a multi-party wallet.

Background

For end-users, cryptocurrencies and blockchain-based assets are hard to store and manage. One of the reasons is the tradeoff between security and availability. Storing private keys safely requires dedicated hardware or extreme security measures which make using the coins on a daily basis difficult. Threshold cryptography provides ways to distribute the private key and digital signing. This can potentially benefit security but at the same time reveal new challenges such as availability, ownership and recovery. Bitcoin is utilizing ECDSA as the signing scheme. There is an active line of research for practical and efficient multi-party ECDSA schemes.

For more information, see our white paper.

Comperative Performance

The comparison was done on an Intel i9-8950HK (2.9GHz) using localhost for server (no real network). The numbers are mean for 20 runs of 2P-ECDSA KeyGen and 50 runs for 2P-ECDSA Signing. Standard deviation is inconsistent but for both implementations it is order of magnitude smaller than mean value.

Implementation Gotham city (this repo) Unbound
2P-ECDSA KeyGen 1.05 s 0.813 s
2P-ECDSA Signing 0.153 s 0.206 s

License

Gotham City is released under the terms of the GPL-3.0 license. See LICENSE for more information.

Contact

For any questions, feel free to email us or join ZenGo X Telegram.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].