BITE Protocol: On-Chain Decryption via Precompiled Contracts

Hey folks

At SKALE we are developing BITE( Blockchain Integrated Threshold Encryption) where the current PoS validator committee is also a Threshold Encryption committee

In addition to provably eliminating MEV, one compelling direction for BITE is enabling smart contracts to perform on-chain decryption via a precompiled contract.

This would allow Threshold Encryption (TE) to become a native primitive in the EVM, making advanced coordination, privacy, and game-theoretic mechanisms not just possible—but practical.


:package: Use Case 1: Multiplayer Rock-Paper-Scissors (RPS)

In a 3-player RPS game, each player submits an encrypted move (Rock, Paper, or Scissors). Once all encrypted moves are collected:

  • The contract calls a decryption precompile to simultaneously decrypt all inputs.
  • This guarantees a fair reveal—no player can adjust their move after seeing others.

Today, this would require an off-chain commit-reveal protocol, which is more complex and less trustless.


:hammer_and_wrench: Use Case 2: Sealed-Bid Auctions

Participants submit encrypted bids on-chain.

  • After the smart contract collects all submissions, a precompiled decryption function is invoked.
  • All bids are decrypted at once, enabling a trustless, fair reveal.

This eliminates the need for off-chain reveal phases and complex timeout logic.


:gear: Why a Precompiled Contract?

  • Security: Deterministic, on-chain decryption avoids front-running and malicious reveals.
  • Simplicity: Reduces reliance on off-chain coordination or multi-transaction workflows.

bytes plaintext = DecryptPrecompile.decrypt(bytes ciphertext);

The ciphertext would be encrypted using the current TE committee public key and decrypted using the current TE committee

:rocket: Impact

If implemented, this would unlock a wide range of privacy-preserving, game-theoretic, and multi-party coordination applications on-chain—many of which are currently impractical due to the lack of synchronous, verifiable secret handling in Solidity.


Would love to hear thoughts on:

  • Precompile feasibility and gas cost targets
  • Threshold decryption protocols best suited for this use
  • Real-world dApps this would enable

Looking forward to feedback from the community!