Home /
aiken-lang /
merkle-patricia-tree
Jun 18, 1-2 PM (0)
Jun 18, 2-3 PM (0)
Jun 18, 3-4 PM (0)
Jun 18, 4-5 PM (0)
Jun 18, 5-6 PM (0)
Jun 18, 6-7 PM (0)
Jun 18, 7-8 PM (0)
Jun 18, 8-9 PM (0)
Jun 18, 9-10 PM (0)
Jun 18, 10-11 PM (0)
Jun 18, 11-12 AM (0)
Jun 19, 12-1 AM (0)
Jun 19, 1-2 AM (0)
Jun 19, 2-3 AM (0)
Jun 19, 3-4 AM (0)
Jun 19, 4-5 AM (0)
Jun 19, 5-6 AM (0)
Jun 19, 6-7 AM (0)
Jun 19, 7-8 AM (0)
Jun 19, 8-9 AM (0)
Jun 19, 9-10 AM (0)
Jun 19, 10-11 AM (0)
Jun 19, 11-12 PM (0)
Jun 19, 12-1 PM (0)
Jun 19, 1-2 PM (0)
Jun 19, 2-3 PM (0)
Jun 19, 3-4 PM (0)
Jun 19, 4-5 PM (0)
Jun 19, 5-6 PM (0)
Jun 19, 6-7 PM (0)
Jun 19, 7-8 PM (0)
Jun 19, 8-9 PM (0)
Jun 19, 9-10 PM (0)
Jun 19, 10-11 PM (0)
Jun 19, 11-12 AM (0)
Jun 20, 12-1 AM (0)
Jun 20, 1-2 AM (0)
Jun 20, 2-3 AM (0)
Jun 20, 3-4 AM (0)
Jun 20, 4-5 AM (0)
Jun 20, 5-6 AM (0)
Jun 20, 6-7 AM (0)
Jun 20, 7-8 AM (0)
Jun 20, 8-9 AM (0)
Jun 20, 9-10 AM (0)
Jun 20, 10-11 AM (0)
Jun 20, 11-12 PM (0)
Jun 20, 12-1 PM (0)
Jun 20, 1-2 PM (0)
Jun 20, 2-3 PM (0)
Jun 20, 3-4 PM (0)
Jun 20, 4-5 PM (0)
Jun 20, 5-6 PM (0)
Jun 20, 6-7 PM (0)
Jun 20, 7-8 PM (0)
Jun 20, 8-9 PM (0)
Jun 20, 9-10 PM (0)
Jun 20, 10-11 PM (0)
Jun 20, 11-12 AM (0)
Jun 21, 12-1 AM (0)
Jun 21, 1-2 AM (0)
Jun 21, 2-3 AM (0)
Jun 21, 3-4 AM (0)
Jun 21, 4-5 AM (0)
Jun 21, 5-6 AM (0)
Jun 21, 6-7 AM (0)
Jun 21, 7-8 AM (0)
Jun 21, 8-9 AM (0)
Jun 21, 9-10 AM (0)
Jun 21, 10-11 AM (0)
Jun 21, 11-12 PM (0)
Jun 21, 12-1 PM (0)
Jun 21, 1-2 PM (0)
Jun 21, 2-3 PM (0)
Jun 21, 3-4 PM (0)
Jun 21, 4-5 PM (0)
Jun 21, 5-6 PM (0)
Jun 21, 6-7 PM (0)
Jun 21, 7-8 PM (0)
Jun 21, 8-9 PM (0)
Jun 21, 9-10 PM (0)
Jun 21, 10-11 PM (0)
Jun 21, 11-12 AM (0)
Jun 22, 12-1 AM (0)
Jun 22, 1-2 AM (0)
Jun 22, 2-3 AM (0)
Jun 22, 3-4 AM (0)
Jun 22, 4-5 AM (0)
Jun 22, 5-6 AM (0)
Jun 22, 6-7 AM (0)
Jun 22, 7-8 AM (0)
Jun 22, 8-9 AM (0)
Jun 22, 9-10 AM (0)
Jun 22, 10-11 AM (0)
Jun 22, 11-12 PM (0)
Jun 22, 12-1 PM (0)
Jun 22, 1-2 PM (0)
Jun 22, 2-3 PM (0)
Jun 22, 3-4 PM (0)
Jun 22, 4-5 PM (0)
Jun 22, 5-6 PM (0)
Jun 22, 6-7 PM (0)
Jun 22, 7-8 PM (0)
Jun 22, 8-9 PM (0)
Jun 22, 9-10 PM (0)
Jun 22, 10-11 PM (0)
Jun 22, 11-12 AM (0)
Jun 23, 12-1 AM (0)
Jun 23, 1-2 AM (0)
Jun 23, 2-3 AM (0)
Jun 23, 3-4 AM (0)
Jun 23, 4-5 AM (0)
Jun 23, 5-6 AM (0)
Jun 23, 6-7 AM (0)
Jun 23, 7-8 AM (0)
Jun 23, 8-9 AM (0)
Jun 23, 9-10 AM (0)
Jun 23, 10-11 AM (0)
Jun 23, 11-12 PM (0)
Jun 23, 12-1 PM (0)
Jun 23, 1-2 PM (0)
Jun 23, 2-3 PM (0)
Jun 23, 3-4 PM (0)
Jun 23, 4-5 PM (0)
Jun 23, 5-6 PM (0)
Jun 23, 6-7 PM (0)
Jun 23, 7-8 PM (0)
Jun 23, 8-9 PM (0)
Jun 23, 9-10 PM (0)
Jun 23, 10-11 PM (0)
Jun 23, 11-12 AM (0)
Jun 24, 12-1 AM (0)
Jun 24, 1-2 AM (0)
Jun 24, 2-3 AM (0)
Jun 24, 3-4 AM (0)
Jun 24, 4-5 AM (0)
Jun 24, 5-6 AM (0)
Jun 24, 6-7 AM (0)
Jun 24, 7-8 AM (0)
Jun 24, 8-9 AM (0)
Jun 24, 9-10 AM (0)
Jun 24, 10-11 AM (0)
Jun 24, 11-12 PM (0)
Jun 24, 12-1 PM (0)
Jun 24, 1-2 PM (0)
Jun 24, 2-3 PM (0)
Jun 24, 3-4 PM (0)
Jun 24, 4-5 PM (0)
Jun 24, 5-6 PM (0)
Jun 24, 6-7 PM (0)
Jun 24, 7-8 PM (0)
Jun 24, 8-9 PM (0)
Jun 24, 9-10 PM (0)
Jun 24, 10-11 PM (0)
Jun 24, 11-12 AM (0)
Jun 25, 12-1 AM (0)
Jun 25, 1-2 AM (0)
Jun 25, 2-3 AM (0)
Jun 25, 3-4 AM (0)
Jun 25, 4-5 AM (0)
Jun 25, 5-6 AM (0)
Jun 25, 6-7 AM (0)
Jun 25, 7-8 AM (4)
Jun 25, 8-9 AM (1)
Jun 25, 9-10 AM (2)
Jun 25, 10-11 AM (0)
Jun 25, 11-12 PM (0)
Jun 25, 12-1 PM (0)
Jun 25, 1-2 PM (0)
7 commits this week
Jun 18, 2025
-
Jun 25, 2025
Merge pull request #11 from golddydev/aiken/1.1.0-fix-proof-verification
fix: proof verification on-chain for leaf fork with common prefix
fix: proof verification on-chain for leaf fork with common prefix
- fix: allow childAt to return with sub-tree. - fix: change aiken-lang/fuzz version to v1
Merge branch 'aiken-lang:main' into main
Fix missing imports in on-chain tests.
allow childAt to return with sub-tree.
fix proof verification on-chain for leaf fork with common prefix.
Whoopsie. Turns out that we the proof reconstruction in this scenario has been wrong for a while. We are inserting a key at the following path: -> (2b5b)06b2406eaaf29e74f7973bc3bd96487d0ea4d54d81e386fd3fd21a1a9fbb In a sub-tree (at path 2b5b) that looks like this: ╔═══════════════════════════════════════════════════════════════════╗ ║ #de1e9bd130a42d576d8947f5b263fa9750077aac3e7925878837ca89fa23c426 ║ ╚═══════════════════════════════════════════════════════════════════╝ 0 ├─ 63719..[50 digits]..97ec #0100eb40fd7d { af695b7994d6 → 732c4c96da50 } └─ ba7a9..[50 digits]..eaa4 #863ad418c755 { 3af7c4e2a8ee → be7d559c2cd4 } So, it is a fork with 2 leaves, that have a shared prefix '0'. And we are inserting into one of the leaf, creating another fork: ╔═══════════════════════════════════════════════════════════════════╗ ║ #de7b8765278c66894beb7c9284f9a010bfb679c3fcd8bc45b95689510585d60b ║ ╚═══════════════════════════════════════════════════════════════════╝ 0 ├─ 6 #9e0b32f4ebb3 │ ├─ 3719f..[49 digits]..97ec #65ea2ad69d17 { af695b7994d6 → 732c4c96da50 } │ └─ b2406..[49 digits]..9fbb #7186773ac80c { 198d70e41146 → 9e36f867a374 } └─ ba7a9..[50 digits]..eaa4 #863ad418c755 { 3af7c4e2a8ee → be7d559c2cd4 } When walking back the trie from the proof and when combining the neighbors at nibble 'b' with our current sub-tree, we must select the neighbor's nibble using the position just before the next cursor.