Today, we are announcing "Kevlar" (github.com/shresthagrawal/kevlar), a tool that makes Metamask, or any RPC-based wallet, completely trustless! Kevlar first runs a light client to quickly sync with the beacon chain and then starts a local RPC proxy that you can add to your wallet.
Currently most wallets rely on trusted full nodes which makes them extremely centralized. Kevlar lets you run a light-client-based RPC proxy on your device that can be added to any RPC-based wallet. Now every RPC call made by your wallet is verified using Merkle Inclusion proofs.
Kevlar supports two syncing methods: Light Sync, based on the sync protocol specified by the Ethereum specification, and Optimistic Sync, (100x faster) based on the construction from our recent work arxiv.org/abs/2209.08673. Benchmarks can be accessed here github.com/shresthagrawal/poc-superlight-client.
Getting Kevlar up and running is as simple as
npm install -g @lightclients/kevlar && kevlar. By default, it uses the optimistic light client with predefined public RPC endpoints and provers. Command line instructions are available at github.com/shresthagrawal/kevlar#start-the-rpc-proxy.
Feel free to create a GitHub issue, or reach out to me, if you encounter any problems. We plan on adding full RPC support, ZK-based sync, and support for rollup chains, like Optimism and Arbitrum. Let's make blockchain wallets trustless, as they should be!
For those interested in learning more about the RPC proxy see here.