Entiendo que Merkle tree son Hashes de Hashes, tienen la ventaja de que solo puedes verificar un subárbol. Pero ¿y Patricia ? ¿Qué significa un trio ? ¿Y cómo se usa en Ethereum?
Trie (también llamado árbol digital, prefijo trie o radix trie)
Una estructura de datos de árbol ordenada que se utiliza para almacenar un conjunto dinámico o una matriz asociativa donde las claves suelen ser cadenas. La posición de un nodo en el árbol define la clave con la que está asociado. https://en.wikipedia.org/wiki/Trie
Un trie para las teclas "A","to", "tea", "ted", "ten", "i", "in" y "inn".
Patricia - Algoritmo práctico para recuperar información codificada en alfanumérico ( fuente ) ( artículo original de Donald R. Morrison ). Un trie de Patricia es un trie de base binaria: elección binaria en cada nodo al atravesar el trie; esto se modifica en Ethereum.
Fuente: https://en.wikipedia.org/wiki/File:An_example_of_how_to_find_a_string_in_a_Patricia_trie.png
En ethereum, se usa hexadecimal: X caracteres de un "alfabeto" de 16 caracteres. Por lo tanto, los nodos en el trie tienen 16 nodos secundarios (el "alfabeto" hexadecimal de 16 caracteres) y una profundidad máxima de X. Tenga en cuenta que un carácter hexadecimal se denomina "mordisco".
Merkle Patricia Trie
Como se describe aquí , el término Merkle implica que
el nodo raíz se convierte en una huella digital criptográfica de toda la estructura de datos
Ethereum modificado Merkle Patricia Trie
El papel amarillo describe un merkle patricia trie modificado. Esto define tres tipos de nodos diferentes; extensión, rama y hoja. Estos se describen, utilizando un estado mundial simplificado, en el siguiente diagrama:
world-state
contener 8 nibble (32 bytes)? En su ejemplo (última imagen) contiene 7 nibbles, que son 28 bytes. @atomh33ls'Trie' viene de la palabra recuperación, ya que solo usa el prefijo de una palabra para encontrarla en un diccionario. Es un árbol ordenado donde las claves suelen ser cadenas que terminan con un símbolo de terminal, y cada vértice representa un prefijo. La raíz de un trie suele ser una cadena vacía, como podemos ver en el diagrama tomado de wikipedia.
Para obtener más información sobre la diferencia entre un árbol trie y radix (Patricia).
Se pueden encontrar más especificaciones del árbol Merkle Patricia que usa Ethereum en el blog de ethereum
Sotavento