Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding EIP 1167 - Minimal Proxy Contract #1167

Merged
merged 8 commits into from
Jun 22, 2018
Merged

Conversation

yarrumretep
Copy link
Contributor

To simply and cheaply clone contract functionality in an immutable way, we propose to standardize on a minimal bytecode implementation which delegates all calls to a known, fixed address.

@yarrumretep yarrumretep changed the title Adding EIP 1154 - Minimal Proxy Contract Adding EIP 1167 - Minimal Proxy Contract Jun 22, 2018
@Arachnid Arachnid merged commit 6f06890 into ethereum:master Jun 22, 2018
Arachnid pushed a commit to Arachnid/EIPs that referenced this pull request Jul 19, 2018
* adding EIP 1154 - Minimal Proxy Contract

* Update eip-1154.md

* fix email brackets

* fix discussions-to email

* Update eip-1154.md

* renumber to avoid conflict
@loki-sama
Copy link

Hey just found this article about a vulnerability in Proxy contracts. Do you know if this is an issue. Im sadly not totally sure what the factory contract exactly does.
Thanks for the excellent work!

@yarrumretep
Copy link
Contributor Author

@loki-sama - This article refers to issues surrounding upgradable proxy contracts wherein the proxy inspects the selector bytes and dispatches the call differently depending on if the selector is a proxy-local method or a proxy-implementation method (my terminology).

In our instance, we specifically prevent this - the proxies themselves are inherently NOT upgradable. They always dispatch every call to the implementation contract which is determined by the Factory at proxy deployment time. This means the proxies can be relied upon to always point to the same implementation code (which, in turn, if the use-case requires, can be upgradable).

In short, this implementation does not suffer the same vulnerabilities that an upgradable proxy pattern exposes.

@loki-sama
Copy link

@yarrumretep Thanks, thats good to know!

@fulldecent
Copy link
Contributor

Here is the final link -> https://eips.ethereum.org/EIPS/eip-1167

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants