My particular focus is on Distibuted Ledger Technologies and their Security aspects.
Having my current research interests in Hyperproperties, as my last(* and ongoing) Research is based on Verifying no vulnerability due to Information Flow in Ethereum Smart Contracts, done under Dr. Pramod Subramanyan, Computer Science & Engineering Department, Indian Institute of Technology - Kanpur, as an Undergraduate Research Assistant for a period of 2 months. [Read below about the Reseach]
Link to the Intern Completion Certificate
Other than these, I am also interested in Kernels of Machine Learning ALgorithms and their applications, Entrepreneurial Applications of the technology.
Further, I want to expand my domain, and move to Networked systems and learn more about Distributed systems at practical level, I am trying to find and delve into a field with an intersection of DLTs, Machine Learning and their Security.
Research Description
Secure Systems and Blockchain, [ETHEREUM],[under Guidance]
Advised by : Dr. Pramod Subramanyan, Assistant Professor, IIT Kanpur
Topic: “Verifying no vulnerability due to Information Flow in Ethereum Smart Contracts” using Fuzzing Techniques to verify HYPERPROPERTIES.
Using Fuzzing technique, to find the bugs created due to Information Flow , mainly with the help of Observational Determinism.
Description: I was the only Research Assistant in the project and have spent my summers working on Formal Methods , Concurrent and Parallel systems, hyperproperties, Functional Programming Language (particularly Haskell ), Model Checking, Solidity, and have worked out with source codes of popular security vulnerabilities finding software such as Slither, Oyente, ContractFuzzer. One of the main things I am working on is adding “Parallel Fuzzing Campaign” in a fuzzing tool Echidna, which is a Fuzz Testing Framework for Solidity Contracts.
Github Repository:
Below is the link to the repository containing the I worked on related to the issue, you stated above: https://github.com/johnsoncarl/echidna
the thing I performed was actually Concurrency as Hyperproperties require the two instances to be completely independent.
The code contains 3 added branches and respective corrections, out of them the most important one has the listed changes:
MASTER
concurrent https://github.com/johnsoncarl/echidna/tree/concurrent
- Campaign.hs https://github.com/crytic/echidna/compare/master…johnsoncarl:concurrent#diff-a050da14fd68a4b940e8d477c2a28ba3
- UI.hs https://github.com/crytic/echidna/compare/master…johnsoncarl:concurrent#diff-034a47a58d6131377508c0edab99f1e4
- Main.hs https://github.com/crytic/echidna/compare/master…johnsoncarl:concurrent#diff-f8f3412da88cd4806f23d59fe59ebc3b
- Spec.hs https://github.com/crytic/echidna/compare/master…johnsoncarl:concurrent#diff-ddfd6cf4255c17008ce71c04432b2eba
experimental https://github.com/johnsoncarl/echidna/tree/experimental
experimental2 https://github.com/johnsoncarl/echidna/tree/experimental2
In the rest of the branches, major changes were done in the same files.
Language,Tools and Libraries: Solidity , shell, Haskell, Fuzzing Systems , Echidna(Fuzzing Framework), Python