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
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.