---
# System prepended metadata

title: Week 8 Update 8.1
tags: [Ethereum, EPF]

---

# Week 8 Update 8.1

This week I continued implementing a Rust version of Poseidon. The entire permutation was completed in three commits shown below:

1. Added `sbox` function that computes the sbox stage. [commit link](https://github.com/mdvillagra/poseidon-rust/commit/d735655269fe38c6c647f63fb30dffa6a304a051).
2. Added `linear_layer` function. [commit link](https://github.com/mdvillagra/poseidon-rust/commit/e8c3aac92c443d42c01acaa3861b1ab7ab731619)
3. Added poseidon permutation. [commit link](https://github.com/mdvillagra/poseidon-rust/commit/058e83f8bee3ba0393565304fd66c412ba88246a)

This implementation is based on the [arkworks](https://github.com/arkworks-rs/) library and it uses the BLS12-381 curve. The parameters used for this instantiation are
* $\alpha=5$,
* $N = 1275$ round constants,
* $n = 255$ bits of security,
* $t = 5$ width,
* $R_F = 8$ number of full rounds,
* $R_P = 60$ number of partial rounds,
* $p=$`0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001`.

The goal of the following week will be on implementing functionality for most of the elliptic curves [instantiations](https://github.com/arkworks-rs/curves) of the arkworks library.