Cryptographic verification of twitter followers onchain using TLSNotary
We have built a way to prove on-chain how many twitter followers a user has using TLSNotary. This produces a soulbound NFT that proves how many twitter followers a user has.
The possible applications of this are endless: proof of humanity, reputation-based voting, decentralised Patreon, etc.
TLSNotary allows Web2 requests (and responses) to be proven. Whilst making a request, a proof of this request is made using MPC between the webserver and a third party, and this guarantees the request and response that happened. This proof can then be verified in Rust.
TLSNotary verification has not yet been written in an EVM-compatible language. The current implementation is written in Rust and uses many secondary libraries such as Tokio. Thus, to run our code verifiably onchain, we use Cartesi - Cartesi is optimistic offchain compute that executes in a Linux VM, thus allowing us to use all of the dependencies of TLSNotary.
A web request is made to a Twitter server by an authorised user - we can catch this web request and 'notarise' it, to form two proofs; one that the account is owned by this user, and another that the account has n followers.
This proof is then pushed on-chain and then verified by the off-chain Cartesi coprocessor. This then produces a soulbound NFT, proving that the user had this many twitter followers at that time.