You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Today, onchain applications are highly restricted in what computations they can do because of Ethereum's high gas costs. With ZKPs, developers can make use of more powerful compute in their onchain application by utilizing a "coprocessor": a method of moving computation off-chain and then verifying a succinct proof of this computation onchain (for only ~200k gas).
With SP1, it is trivial to implement your coprocessor logic in Rust. But a lot of Solidity developers are used to writing their code in Solidity and might not want to use Rust for their coprocessor. But, there is an easy way to enable Solidity coprocessors with SP1: we can use the revm interpreter to execute EVM bytecode inside SP1 and prove valid execution of Solidity functions.
You can look at this repo for inspiration on how to use revm and its InMemoryDb to verify execution of stateless EVM bytecode.
A great demo example would be showing how SP1 can prove valid execution of a Solidity library (as libraries are stateless) using the revm interpreter and other EVM-related Rust crates.
The text was updated successfully, but these errors were encountered:
Today, onchain applications are highly restricted in what computations they can do because of Ethereum's high gas costs. With ZKPs, developers can make use of more powerful compute in their onchain application by utilizing a "coprocessor": a method of moving computation off-chain and then verifying a succinct proof of this computation onchain (for only ~200k gas).
With SP1, it is trivial to implement your coprocessor logic in Rust. But a lot of Solidity developers are used to writing their code in Solidity and might not want to use Rust for their coprocessor. But, there is an easy way to enable Solidity coprocessors with SP1: we can use the revm interpreter to execute EVM bytecode inside SP1 and prove valid execution of Solidity functions.
You can look at this repo for inspiration on how to use
revm
and itsInMemoryDb
to verify execution of stateless EVM bytecode.A great demo example would be showing how SP1 can prove valid execution of a Solidity library (as libraries are stateless) using the
revm
interpreter and other EVM-related Rust crates.The text was updated successfully, but these errors were encountered: