# EPF Week 5 Update 6 Hey there [Agnish](github.com/agnxsh) here. This is my update for Week 5 of EPF. Following up on whatever I did last week, this week I mainly focused on drafting my project proposal, thinking of what all can I really afford to take up such that I can finish off the cohort with some good significant contributions. I started this week with reading further about how [Verkle Tries are supposed to work with Bonsai](https://hackmd.io/@kt2am/SkLl7E0H3), another blog by [Karim Taam](https://hackmd.io/@kt2am). Went through the codebase of Bonsai, **how Account Hashes effectively were mapped to a flat array of leaves of the trie in their RocksDB**, which saved a lot of query processing time as whenever the Storage Tries were sparse enough, with the help of flattening, Bonsai prevented redundant traversal of the tries. Read further about how **Preload Caching worked in Bonsai** and how a part of the Storage Trie is always cached during the initial read/write operations, and as block processing happens the new transaction information is added only by adding new branches to the Storage Trie. Along with that **Trielogs, Accumulators and Layered States help in Rolling forward and backward of states for Ethereum**, as Bonsai always has **ONE persisted state** stored for the entire chain. Me along with the few of the members from the Only Dust team also scheduled a call with [Karim Taam](https://hackmd.io/@kt2am), where he walked us through some of the internals of how the code was structured for **Bonsai**. Furthermore, I spent some time understanding and deep diving into the [codebase](https://github.com/hyperledger/besu/tree/210927ed082d338692501f029814e1840109ebe6/ethereum/core/src/main/java/org/hyperledger/besu/ethereum/bonsai) as well. Additionally, this week I also studied about the **Barycentric Formula that is used to compute Inner Product Arguments for Multiproofs using the Pedersen Commitment**. This formula **helps compute the IPAs using their vector of coefficients at any point in the domain of the polynomial without converting it to the corresponding Coefficient form** which thereby optimises the time complexity of such operations from $O(d^2)$ to $O(d)$, where $d$ is the min number of multiplications. You can read it from this blog of [Dankrad's](https://dankradfeist.de/ethereum/2021/06/18/pcs-multiproofs.html#evaluating-a-polynomial-in-evaluation-form-on-a-point-outside-the-domain). Lastly I was also added as a collaborator for [Verkle Tries Besu](https://github.com/Quadratic-Labs/VerkleTries_Besu), and I've already started working on an issue. Coming to Verkle Tries in Nim, I started working on a **PoC for Inner Product Arguments on Nim**, you can find it here in [this repo](https://github.com/agnxsh/nim-ipa). As an initial implementation, and also being a beginner at Nim, I'm trying to get my programming logic correct first, then I hope to debug all my syntactical errors in a reiterative manner. Again this PoC is currently being built on top of [Constantine](https://github.com/mratsim/constantine/tree/master) by [Mamy](https://github.com/mratsim/). All this while I've been in constant communication with the Nimbus Team and especially [Mamy](https://github.com/mratsim/). Lastly, I attended a call with Nimbus team and gave them most of these updates.