A non-custodial fiat on/off ramp utilizing zk proofs with MPC for transferring ACH transactions on-chain.
This project uses MINA SnarkyJS library to develop an API service that can receive raw ACH transaction data securely through a TLS supported protocol. The services generates keys for validator clusters which are then stored on-chain. Using Midpoint we can bring the MINA proof onto any EVM compatible blockchain.
The service uses NodeJS along with a Koa router to accept incoming ACH strings presumably from a banking API; this is hosted on a kubernetes cluster. Using SnarkyJS's poseidon hash function we generate subkeys for banking validator clusters that are used to produce a top-level hash. Because the banking validator clusters are the only parties to store the ACH subkeys, we are relieved of regulatory burdens. The validator clusters use their subkeys to approve an ACH field on an EVM compatible blockchain. Using Midpoint, the top-level hash is retrieved from the service. Once enough validators respond, the top-level hash can be regenerated, therefore confirming an ACH transaction.