JOSS Statement of need
Important
this issue only applies to the paper-joss branch from !210.
The "Statement of need" part begins with citing situations where Komodo can be useful. This can be extended with some additional use cases:
- Benchmarking and comparing different configurations of available PC
- Developing and benchmarking new PCs, e.g. post-quantum
The "Statement of need" part can also introduce what Komodo adds to its contenders (fec-rs and arkworks), what they do not provide (the need), and how Komodo may fill the gap.
Below is something I wrote a few months ago, that could be appended to the current beginning of the section.
A few libraries provide similar functionalities, with a few gaps filled by Komodo.
The arkworks ecosystem [@arkworks] is probably the closest library, providing many of the necessary building bricks involved in Data Availability Sampling: prime fields, possibly paired with elliptic curves like BLS12-381 or BN254 among many others; linear algebra operations like polynomial operations and matrix operations; and polynomial commitment. On top of those features, Komodo adds Reed-Solomon encoding, tightly integrated with proof generation.
The Rust implementation of Reed-Solomon erasure coding [@rust-rse] provides mechanisms to encode and decode data into raw shards, using elements of finite fields \mathbb{F}_{2^8} or \mathbb{F}_{2^{16}}, containing respectively 2^8 and 2^{16} elements. Komodo adds the proving mechanisms, and makes it possible to use elements from arkworks' prime fields, possibly paired with elliptic curves.
Komodo also adds a unified high-level API, allowing to benchmark and compare different combinations of prime fields, elliptic curves and polynomial commitment schemes, as we did in two publications [@stevan2024performance; @stevan2025performance]. Finally, a modular design allows to extend Komodo with new polynomial commitment schemes, which performance can be evaluated in the same benchmarking conditions.
@article{stevan2025performance,
TBD
}
@misc{rust-rse,
author = {{rust-rse contributors}},
title = {Rust implementation of Reed-Solomon erasure coding},
year = {2021},
publisher = {GitHub},
journal = {GitHub repository},
url = {https://github.com/rust-rse/reed-solomon-erasure}
}