Skip to content

Commit

Permalink
Fixes #129
Browse files Browse the repository at this point in the history
  • Loading branch information
fulldecent authored and dwightguth committed Feb 27, 2018
1 parent 42a2b69 commit 6c88602
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion issues.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ These can be issues from simple "why did they do it that way?" to "this makes do

- Program representation is important in EVM (that is, you must be able to represent a program as a byte-array of opcodes).
When doing program analysis/abstract verification, you ideally would be allowed to make transformations on the program representation (e.g., convert it to a control-flow graph) without having to maintain a translation back.
Currently in EVM, the `*CODECOPY` opcodes allow regarding program pieces as data, meaning that a translation back must always be maintained, because in theory a program can modify itself while executing.
Currently in EVM, the `*CODECOPY` opcodes allow regarding program pieces as data, and using `CREATE` with `DELEGATECALL` allow executing arbitrary code.
For this reason, we had to build a parser/unparser and an assembler/dissasembler into our semantics.
Putting a symbolic value through the process of disassembling -> unparsing loses a lot of semantic information about the original value.
While self-modifying code is nice and powerful in principle, we are not aware of any programming languages for the blockchain that encourage or even allow that.
Expand Down

0 comments on commit 6c88602

Please sign in to comment.