-
Discuss and research on how to achieve auto extraction of contract semantics
-
Propose a high-level design on auto extraction of contract semantics based on contract CFG (Control Flow Graph)
-
Employ EVM bytecode parsing framework to generate CFG and automatically extract eigenvectors, as well as execute simple tests
-
Finalized a Semantic Computing blueprint which is based on contract eigenvectors, including algorithm design, third-party libraries selection, the building of developing enviromnets, etc. Semantic Computing is currently in dev phase
-
Discuss and research on how to address VM architecture and implementation details; go through go-ethereum VM code structures and dev interfaces;
-
Finalize the high-level safe upgrade design for the VM end
-
Based on the VM implementations of go-ethereum1.8.11, we completed the extensions to core module of interpreter, as well as JUMP_TABLE mapping
-
Introduced a "Patched Contract" support to the VM, and added a —patchfile command line option;
-
Prepared use cases for regression testing on new features;
-
Completed a demo version of "Patched Contract" on VM side against BEC/SMT overflow vulnerbility.
-
Achieve the goal of automatic extraction of contract semantics characteristics as regards the EVM bytecode instructions; tests also done;
-
Completed the training process to the GAlib-based semantic computing model, and performed the fitting training of simple data set for the model parameters;
-
Completed framework codes for contract semantics clustering; finalized the use of third party libraries and the format of interactive data;
-
Carrying out the analysis work on contract semantics template ; omnichannel preparations for demo use; as well as result analysis.
-
Go on with the development of "Patched Contract", and go through code structures based on step-by-step debugging;
-
Completed the development work of Transaction Function Recognition, and extended on the map data structure in statedb;
-
Determined the implementation plan of patch permission authentication mechanism, focusing on the authentication scheme based on account address;
-
Conducted research on contract upgrade, existing technology roadmap of patches, as well as coding design patterns;
-
Built up a private chain for testing purpose, and completed the application of contract patches on the private chain
-
Completed the automatic framework of Semantic Computing, including characteristics extraction, model training and clustering;
-
Complated the crawling and preparation of datasets;
-
Optimized the training process to the GAlib-based semantic computing model, and completed the fitting training of contract code dataset for the model parameters;
-
Completed the code similarity calculation algorithm based on Bipartie Matching algorithm;
-
Completed the premilinary real contract data semantics clustering with not so ideal results; result analysis and extended experiments are in progress;
-
Discussed together on the plan of framework optimization
- Research and discuss on contract upgrade plans and come out with a report; discuss on limitations and application scenarios of each upgrade plan;
- Go on with the development of "Patched Contract", refactor the code implementations under Core package; go through code structures based on step-by-step debugging;
- Implement refactoring and optimizations on VM codes deployed and upgraded on private chain;
- Read through go-ethereum API documetns and principles, as well as web3 related documents;
- Get down with technical proposal design on upgradable contract and VM
-
Completed the semantics analysis on the current token based or walled based contract, and summarized several typical application scenarios;
-
Completed design on automatically generated interaction scenarios by smart contracts;
-
Completed the framework implementation of cluster based smartcontract semantics computing tools;
-
Achieved the optimized extraction of semantic information, and completed the automatic training of weighting parameter based on GAlib;
-
Discuss and research on the design scheme of Fault Tolerance system, analysing the practicability from the perspectives of technology and application of this proposal
-
Go on with the development of "Patched Contract" supporting VM, and completed the optimized implementation of the PC address redirecting;
-
Regarding the security vulnerability prediction engine related work, we focused on the taint analysis technology, and analyzed the feasibility of this technology at the virtual machine level;
-
Completed the merge of open-source taint analysis and patching;
-
Performed testing and debugging on security vulnerability prediction functions in private test-net.