
Simon Perriard
About me
I am a smart contract auditor and blockchain security engineer at ChainSecurity. I like to tackle challenging problems and design neat and efficient solutions. Fast-learner, cheerful and hard-working, I am always excited to learn about new things.
I am particularly interested in zero-knowledge proofs and their applications in the blockchain space (zkSNARKs, zkSTARKs), a wiki on the topic is slowly cooking. I'm also into post-quantum cryptography, data privacy, and rockets. I am never against a nice CTF or arbitrary code execution! I like mountains and coffee.
Experience
Blockchain security engineer
Technologies used:
- Ethereum
- Solidity
- DeFi
- Foundry
Master project
Static analyzer for Substrate FRAME's pallets. The tool analyzes the pallets to extract the worst complexity of each extrinsic, so that developers can check whether their weights functions account for the worst case. A badly written weight function could be an attack vector for a DoS against the parachain.
Technologies used:
- Rust compiler
- Static analysis
- Substrate
- FRAME
Internship as blockchain security engineer
Conduct audits of smart contracts written in Solidity in teams of 2 auditors on many different projects, mainly around decentralized finance. On top of this, learned a lot about finance and decentralized finance. I also developed audit tools in the form of a VS Code plugin.
Technologies used:
- Ethereum
- Solidity
- DeFi
Semester project
Using standard hyperparameter tuning algorithms (grid search, random search, bayesian optimization, ...) under federated setting and privacy preserving (HE or SMC) frameworks adds a huge communication and computation overhead. The goal of the project is to find a way to tune hyperparameters without relying on costly frameworks under encryption. The experiments are conducted on several datasets and several models, with iid and non-iid data distribution amongst clients.
Technologies used:
- Python
- Tensorflow
- Keras
- FedJAX
Fullstack app developer
The project aims to greatly reduce the burden of stock management process, especially the manual count of items, by using an hybrid app that communicates with the company's ERP system.
Technologies used:
- NativeScript Angular
- TypeScript
- Android
- Webpack
- Java
- SQLite
- Docker
Certificate Authority Project
In this group project we had to design, implement and analyse a Certificate Authority infrastructure.
My role in this project was to setup the virtual machines/network and configure the router/firewall (iptables). I was also responsible for the database VM, and more precisely: enforce the least privilege property among the MySQL users, encrypt data at rest and write a proxy server with prepared statements to access the database.
Technologies used:
- Linux kernel
- MySQL
- Python
- VirtualBox
Min-cuts in 3-uniform hypergraphs
In the context of one of the course assignments we had to extend the Karger Stein algorithm to find the number of min-cuts in 3-uniform hypergraphs. I added the option to ouput the set of each min-cut. Further details on the Github repo.
Technologies used:
- Python
Bachelor project
Formally verified DIR-24-8 Longest Prefix Match data structure. It is part of a wider project that aims to provide fully verified network functions (Vigor).
Bachelor project under the supervision of Prof. George Candea and Dr. Arseniy Zaostrovnykh. Further details on the Github repo.
Technologies used:
- C
- VeriFast
Backend developer
Report on the feasibility of a source code migration from the Devart’s ODAC database access API to Oracle’s OCCI.
Technologies used:
- C
- C++
- Oracle SQL
Android app developer
Develop an Android app as part of the Software Engineering course, the idea was to discover the world of Agile development. The project was done in groups of 6 people with the help of continuous integration tools such as Travis CI and CodeClimate.
Technologies used:
- Java
- Android Studio
- Google Maps API
- Firebase
Compiler for Amy language
I had to write a compiler for the Amy language written in Scala in the context of the Computer Language Processing course in 2018. We had to add something to the compiler and our group chose to implement a documentation generation engine directly in the compiler. Further details on the Github repo.
Technologies used:
- Scala
Consultant
I was mandated to do a status report on the company’s information security level. Then I worked on the development and implementation of various policies and procedures required by ISO 27000 and the GDPR.
Technologies used:
- ISO 27000
- MongoDB
- Graylog
Education
MSc in Cybersecurity
BSc in Computer Science
Highschool diploma
Other certifications
Blockchain Specialization
Relevant courses
- Advanced Algorithms
- Advanced Cryptography
- Advanced Probability and Applications
- Algebra
- Algorithms
- Applied Security Laboratory
- Computer Architecture
- Computer Language Processing
- Computer Networks
- Computer Security
- Current Topics in Information Security
- Cryptography and Security
- Information Security and Privacy
- Machine Learning
- Probabilities and Statistics
- Security Engineering
- Software Engineering
- Software Security
- Stochastic Models for Communications
- System Oriented Programming
- System Security
- TCP/IP Networking
Some Skills & Tools
-
C
-
Solidity
-
Python
-
Scala
-
Rust
-
TypeScript
Others
- Git
- Java
- Linux
- Android
- C++
Language
- French (Native)
- English (Professional)
- German (Casual)
Interests
- Cryptography
- Blockchain
- Machine learning
Hobbies
- Climbing
- Mountaineering
- Cooking