update cashierd.rs to new config handling. note: password param in toml
sqlcipher: better document install process or otherwise remove friction of using bundled version
[X] remove default config from binaries and add to the readme
[X] delete zkvm
[X] SOL bridge poc
Optional Cargo "features" for cashierd/darkfid, to {en,dis}able different chains
deposit
drk: key generation
drk: deposit cli option
darkfid: check addresses are valid
darkfid: send drk public key to cashierd.rs over tcp, triggered by drk.rs
cashierd: receive BTC, mint dBTC (see tx.rs)
cashierd: push tx to rocksdb (type: deposit, signed by cashier key)
cashierd: watch address for deposit
cashierd: resume watch after restart
darkfid: poll gateway for new tx
darkfid: for every new coin received, add to merkle tree
darkfid: decode tx
darkfid: perform state transition function
darkfid: compute merklepath need to spend coin (see tx.rs)
withdraw
drk: withdraw cli option
darkfid: check address is valid
darkfid: send cashout request to cashier with btc pub key
cashierd: receive cashout request, reply with drk pub key
darkfid: send dbtc to the cashier drk pub key
cashierd: burn dbtc, send back btc (see tx.rs)
drk -> drk
drk: transfer cli option
darkfid: construct a new spend tx
darkfid: check address is valid
darkfid: build tx
darkfid: verify tx
darkfid: state transition function
darkfid: send tx data to rocksdb
research
Open research questions.
light-clients
Fast efficient batch DH technique. Currently all new transactions need to be scanned. There should be a means of efficiently batching this test for light clients initially syncing against a server.
Anonymous fetch using an Oblivious-Transfer protocol. Light clients potentially leak info to servers based on the data they request, but with an OT protocol they do not reveal exactly what they are requesting.
cryptography
FFT for polynomial multiplication
finish bulletproofs impl
halo2 lookup
read groth permutation paper
blockchain
basic sequencer architecture design
basic DHT design
consensus algorithm
solve double verify problem (potentially need need a payment inside the contract to handle exceptions)
research polygon design
code up a simple demo
product
first MPC services
DAO
auctions
staking. Look up how TORN was distributed anonymously.
swaps
token issuance
NFTs
dev
make bitreich halo2 impl
halo2
mint circuit poc
burn circuit poc
research port from jubjub to pasta (success)
research port from blake2b to sinsemilla and/or poseidon
solve poseidon gadget to hash >2 elements at a time