What’s in Atlantis? EIP196/EIP197 (Precompiled contracts and zkSNARK)

Stevan Lohja
3 min readJun 18, 2019

--

Image from https://secure.meetupstatic.com/photos/event/3/6/3/5/600_469993877.jpeg

Atlantis Update: On Jun 13, 2019, ETC dev core stakeholders agreed on all the proposed upgrades in ECIP-1054.

Atlantis Update: On Jun 20, 2019, ETC dev core stakeholders agreed on official hard-fork schedule for ECIP-1054 Atlantis.

- Block 716,617 on Kotti Classic PoA-testnet around June 19, 2019.
- Block 4,729,274 on Morden Classic PoW-testnet around Jul 29, 2019.
- Block 8,772,000 on Ethereum Classic PoW-mainnet around Sept 17, 2019.

The related zkSNARK EIPs in ECIP-1054 (Atlantis) fork specifications are EIP-196 and EIP-197.

Zero-Knowledge Succinct Non-Interactive Argument of Knowledge” is a variant of zero-knowledge proofs in which no interaction is necessary between prover and verifier. This method allows one to prove x without having to convey any information to the verifier other than they know x.

Traditional encryption schemes can be effective for protecting data but require decryption to perform computations. zkSNARK utilizes a Homomorphic Encryption technique that allows computations to perform on encrypted data without decryption or requiring access.

The only thing shared between the prover and verifier is the same encryption data set or encryption parameters. Imagine Shane does not know how to count but wants to know the sum of 2 + 4. Shane encrypts the values to 38 + 82 and sends the encrypted data to Zack. Zack only sees the encrypted data of 38 + 82 but shares the same encrypted data set as Shane. Zack processes the encrypted data 38 + 82 and sends back 120 to Shane. When Shane decrypts the data, the value of 6 is revealed. So, Shane was able to have Zack compute his math problem without revealing the values to Zack.

Current smart contract executions are entirely transparent on the blockchain which is not suitable for private information such as identity or location. By adding zkSNARK functionality, users would have access to increased privacy features on the Ethereum Classic blockchain as well as increased performance for such smart contracts.

EIP-196 suggests precompiled contracts for elliptic curve operations are required in order to perform zkSNARK verification within the block gas limit. The precompiled contract can be implemented using elliptic curve pairing functions, more specifically, an optimal ate pairing on the `alt_bn128` curve, which can be implemented efficiently. Finally, EIP-197 allows the verification of zkSNARK contracts on Ethereum Classic.

If you’d like to learn more about the specific parameters and technical specification, then feel free to explore the references provided below:

Interested in getting more involved with ETC? We’re focused on accelerating the development of Ethereum Classic and need your help! Reach out to us to see how you can get more involved today!

Our team links: About, Github, Medium, Twitter

Come chat with us on Discord

--

--