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

[WIP] Metropolis: EIP86 account abstraction #277

Closed
wants to merge 12 commits into from

Conversation

pirapira
Copy link
Member

This PR introduces ethereum/EIPs#208 as part of the Metropolis changes. #229

This is a reincarnation of #249, but reflects a recent change in ethereum/EIPs#208.

@pirapira pirapira mentioned this pull request Mar 27, 2017
12 tasks
Paper.tex Outdated
\boldsymbol{\sigma}_0[S(T)]_n & \equiv & \boldsymbol{\sigma}[S(T)]_n + 1
\boldsymbol{\sigma}_0[S(T)]_n & \equiv &
\begin{cases}
\boldsymbol{\sigma}[S(T)]_n &\text{if}\ S(T) = 2^{256} \\
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess the number should be 2^{256} - 1.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

agree

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fixed this.

Paper.tex Outdated
@@ -609,7 +613,11 @@ \subsection{Execution}
\begin{equation}
g \equiv T_g - g_0
\end{equation}
and $T_o$ is the original transactor, which can differ from the sender in the case of a message call or contract creation not directly triggered by a transaction but coming from the execution of EVM-code.
and $T_o$ is the original transactor, which can differ from the sender in the case of a message call or contract creation not directly triggered by a transaction but coming from the execution of EVM-code. $a$ is the address of the created account:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

superfluous double-space

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed.

Paper.tex Outdated
\begin{equation} \label{eq:address_calc}
a \equiv \mathcal{B}_{96..255}\Big(\mathtt{\tiny KEC}\big(0 \cdot \mathbf{i}\big)\Big)
\end{equation}
where $0$ denotes the zero element of $\mathbb{B}_{160}$, the operator $\cdot$ is the concatenation of binary data, $\mathtt{\tiny KEC}$ is the Keccak 256-bit hash function, $\mathcal{B}_{a..b}(X)$ evaluates to binary value containing the bits of indices in the range $[a, b]$ of the binary data.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

better not to "denote" 0 to be anything other than zero. if you want to pun it into a particular element of a set, better to use some other notation.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Introduced a symbol.

Paper.tex Outdated
and $T_o$ is the original transactor, which can differ from the sender in the case of a message call or contract creation not directly triggered by a transaction but coming from the execution of EVM-code.
and $T_o$ is the original transactor, which can differ from the sender in the case of a message call or contract creation not directly triggered by a transaction but coming from the execution of EVM-code. $a$ is the address of the created account:
\begin{equation} \label{eq:address_calc}
a \equiv \mathcal{B}_{96..255}\Big(\mathtt{\tiny KEC}\big(0 \cdot \mathbf{i}\big)\Big)
Copy link
Contributor

@gavofyork gavofyork Apr 12, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should read ...KEC(\mathbf{i})...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed.

Paper.tex Outdated
0xfb & {\small CREATE\_P2SH} & 3 & 1 & Create a new account with associated code on an address calculated using the \\
&&&& creator's address. \\
&&&& Exactly equivalent to {\small CREATE} except: \\
&&&& $a \equiv \mathcal{B}_{96..255}\Big(\mathtt{\tiny KEC}\big(I_a \cdot \mathbf{i}\big)\Big)$ \\
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should read ...KEC(\mathbf{i})...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed.

Copy link
Contributor

@gavofyork gavofyork left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a few corrections.

@pirapira
Copy link
Member Author

Addressed the comments.

@pirapira pirapira changed the title EIP86 account abstraction Metropolis: EIP86 account abstraction Apr 28, 2017
@pirapira
Copy link
Member Author

pirapira commented May 9, 2017

Probably there will be a conflict with #278.

@pirapira pirapira changed the title Metropolis: EIP86 account abstraction [WIP] Metropolis: EIP86 account abstraction May 10, 2017
@pirapira
Copy link
Member Author

This has to be adjusted after #232 and #303 are merged.

Paper.tex Outdated
\boldsymbol{\sigma}^{**} & \text{if} \quad g^{**}<c \wedge H_i<\firsthomesteadblock \\
\boldsymbol{\sigma}^{**} \quad \text{except:} & \\
\quad\boldsymbol{\sigma}'[a]_c = \texttt{\small KEC}(\mathbf{o}) & \text{otherwise}
\end{cases}
\end{cases} \\
E(\boldsymbol{\sigma}, a) &\equiv \big(\boldsymbol{\sigma}[a] \neq \varnothing \wedge (\boldsymbol{\sigma}[a]_c \neq () \vee \boldsymbol{\sigma}[a]_n \neq 0)\big)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The empty code is seen as KEC(()) not just ().

@pirapira
Copy link
Member Author

pirapira commented Jul 6, 2017

This PR needs to follow ethereum/EIPs@bd136e6

@pirapira
Copy link
Member Author

pirapira commented Jul 6, 2017

I finished applying ethereum/EIPs@bd136e6

@pirapira
Copy link
Member Author

This protocol change has been postponed and I don't know when it is planned.

@pirapira pirapira closed this Jan 18, 2018
@Dawidowak

This comment was marked as off-topic.

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.

3 participants