Show simple item record

dc.contributor.advisorUna-May O'Reilly.en_US
dc.contributor.authorSrikant, Shashank.en_US
dc.contributor.otherMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Science.en_US
dc.date.accessioned2020-09-15T21:54:08Z
dc.date.available2020-09-15T21:54:08Z
dc.date.copyright2020en_US
dc.date.issued2020en_US
dc.identifier.urihttps://hdl.handle.net/1721.1/127365
dc.descriptionThesis: S.M., Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Science, May, 2020en_US
dc.descriptionCataloged from the official PDF of thesis.en_US
dc.descriptionIncludes bibliographical references (pages 49-51).en_US
dc.description.abstractAs domain specific languages such as Solidity for Ethereum have emerged to program blockchain distributed ledgers, domain-specific bugs and vulnerabilities have reciprocally arisen. In this thesis, I propose a machine learning approach to designing classifiers which can flag specific lines of programs containing such vulnerabilities. This classification task calls for reasoning beyond what tokens are in a line to reasoning about how each token lies within a control context (e.g. loop) and how its meaning depends on its preceding definition. We present a neural architecture, Vulcan, which employs a distributed representation in a latent feature space to express these properties, while ensuring that lines of similar meaning have similar features. Using paths of the program's abstract syntax tree (AST), Vulcan inputs contextual information about tokens in a line to a bi-directional LSTM with an attention mechanism. It concurrently represents the meaning of a token in a line by recursively embedding all preceding lines where it is defined. In our experiments, Vulcan compares favorably with a state-of-the-art classifier that requires significant preprocessing of programs, suggesting the utility of using deep learning to model program dependence information.en_US
dc.description.statementofresponsibilityby Shashank Srikant.en_US
dc.format.extent57 pagesen_US
dc.language.isoengen_US
dc.publisherMassachusetts Institute of Technologyen_US
dc.rightsMIT theses may be protected by copyright. Please reuse MIT thesis content according to the MIT Libraries Permissions Policy, which is available through the URL provided.en_US
dc.rights.urihttp://dspace.mit.edu/handle/1721.1/7582en_US
dc.subjectElectrical Engineering and Computer Science.en_US
dc.titleVulcan : classifying vulnerabilities in solidity smart contracts using dependency-based deep program representationsen_US
dc.title.alternativeClassifying vulnerabilities in solidity smart contracts using dependency-based deep program representationsen_US
dc.typeThesisen_US
dc.description.degreeS.M.en_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Scienceen_US
dc.identifier.oclc1192495700en_US
dc.description.collectionS.M. Massachusetts Institute of Technology, Department of Electrical Engineering and Computer Scienceen_US
dspace.imported2020-09-15T21:54:08Zen_US
mit.thesis.degreeMasteren_US
mit.thesis.departmentEECSen_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record