# Update commitment for Besu:
This is my understanding how it should work for 1 commitment and 1 leaf:
`update_commitment(commitment, newValue-oldValue, index)`
So those are 2 32byte and 1 byte values. Total 65bytes. Rust can easily process that.
Then rust takes the commitment (which is a banderwagon element) and we do `new_commitment = commitment + (newValue-oldValue)*CRS[index]`
Where `newValue` and `oldValue` are `Fr`s.
Reg updating multiple values in one commitment:
It can be done for multiple values in the same commitment, just we would need to pass multiple Bytes32 `(commitment, (newValue_1-oldValue_1), (newValue_2-oldValue_2) ...., index_1, index_2...)`
Rust part:
- cut first 32 bytes to get the commitment
- split the rest in 2 parts
- First part is all the `(newValue_i-oldValue_i)` parameters
- Second part is all the `index_i`