Ethereum Blockchain’s EIP 1167 For Minimal Proxy Contract Could Improve Clone Functionality
As of developments which unfurled on Thursday, the Ethereum Improvement Proposal (EIP) 1167, otherwise known as the ‘Minimal Proxy Contract' has entered the ‘last call' phase of propositions. Created by Peter Murray, Nate Welch, and Joe Messerman, EIP 1167 will be one of those open for public comment for the next two weeks. After which time, assuming it all goes well, the code will be considered for final application.
However, if the EIP 1167 faces rejection by the community, the proposal will re-enter draft status until the issues can be resolved.
The EIP itself revolves around the functionality of cloned contracts and has the goal of cutting the overall cost of GAS in the aforementioned contracts. Specifically, EIP 1167 refers to the creation of a single known address (referred to as the Master Contract), where any number of cloned contracts can redirect their calls to.
Along with this, the proposal involves for the fostering of trust among users that the master contract will behave in the same manner as the redirecting contracts.
This trust originates from the fact that the Master Contract will be an immutable one, once a cloned contract is deployed on the Master Contract, it cannot be changed, and the master contract itself is completely irreplaceable. In the event that the Master Contract self-destructed, all cloned contracts within it would cease to function.
This creation of a system of reliance between the cloned contracts and the Master Contract acts as one which will foster a greater reliability in the system. The problem, however, stems from the fact that it's unique feature is also its key weakness.
An example of this is from recent news regarding the Parity multi-sig fiasco, and while that itself wasn't linked to any cloned contracts, it demonstrates the in-built weakness that a central contract can bring to any system.
In Parity's scenario, all of its multisig wallets linked back to a single library contract. But due to a serious fault with the contract, it resulted in its self-destruction. This resulted in the collective 587 wallets ceasing to function, losing a total of 513,774.16 Ether.
In order to prevent drawing negative comparisons, writer, and social coder, Giveth Bowen Sanders explained that this system is not like Parity in a number of crucial ways. The first being that the cloned contracts are not mere copies of the master contract, but operate as ‘minimal proxies', which allow the user to reduce a contract down to only its essential components.
These minimal proxies then rely upon the Master Contract for full functionality, as Sanders elaborates.
“[As it is,] thousands and thousands of contracts are routinely cloned, taking up unnecessary space and bloating the data segment of the blockchain. This data space could be used for things other than multiple clones of the same contract.” Sanders continues.
“There are certain contracts which need to be cloned for usage and security, such as with the ConsenSys or Gnosis multi-signature wallets, but many cases of these clones could re-use the original contract with a proxy contract routing the calls in and out of the original. This would save huge amounts of space.”
One additional function that proves critical, is the creation of an additional contract which will allow third parties like Etherscan to interrogate the code of clone contracts to determine the origin of the master contract.
EIP 1167, if successful in passing its assessment phases, would standardize “on a known minimal bytecode redirect implementation.”