Skip to content

Autoparallel/ethereum_research

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ethereum Research

This repository is the culmination of work done by Colin Roberts and Waylon Jepsen, supported by a small grant from the Ethereum Foundation. The goal of this project is to investigate the Poseidon hash function closely. We aim to provide a comprehensive learning resource for the Poseidon hash function with a precise mathematical intuition on its function and security assumptions. This repository also serves as a playground to attack implementations of Poseidon with small field sizes to better understand the security assumptions of the hash function.

Repository Contents

This repository has two essential components; the first is written educational content in the form of a rust mdbook in the journal/ directory. To run and host the journal, make sure that you have cargo installed; then you can install mdbook with the following command:

cargo install mdbook
cargo install mdbook-katex

Then, you can run the journal with the following command:

mdbook serve

This command will host a local server on your machine that you can access at http://localhost:3000 to view the journal. If this project is widely used and a popular resource, we will consider hosting it on a public server under some domain to make it accessible on the web. This is also the best place to start if you want to follow our learning resources to understand the Poseidon hash function and its security assumptions.

The second component of this repository is the Poseidon/ directory, which contains a rust implementation of the Poseidon hash function. This implementation is based on the Poseidon paper and the Poseidon paper with S-Boxes. This directory currently contains four modules:

  • attacks serving as a playground for attacking Poseidon with small field sizes
  • home_baked_crypto serving as one of the implementations of Poseidon inspired by the Arnacube Implementation
  • python_transcription serving as a transcription of the Poseidon python implementation here
  • implementations Containing what we found to be the two most utilized rust implementations of the Poseidon hash function:

These comprise a collection of at-home and production implementations, along with some examples of attacking the hash function with small field sizes. We hope this repository can serve as a learning resource for the Poseidon hash function and a place to experiment with the hash function in a safe environment.

Open Source

We believe it is important to do this work in the public view and support collaboration and collective learning.

About

Research for Waylon + Colin alongside the EF.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages