Knowledge (XXG)

Merkle tree

Source đź“ť

354:, in most cases the top hash is acquired from a trusted source, for instance a friend or a web site that is known to have good recommendations of files to download. When the top hash is available, the hash tree can be received from any non-trusted source, like any peer in the P2P network. Then, the received hash tree is checked against the trusted top hash, and if the hash tree is damaged or fake, another hash tree from another source will be tried until the program finds one that matches the top hash. 841:
exchange Merkle trees to identify parts of their replicated key ranges which are out of sync. A Merkle tree is a hierarchical hash verification: if the hash over the entire keyspace is not the same between two replicas, they will exchange hashes of smaller and smaller portions of the replicated keyspace until the out-of-sync keys are identified. This approach reduces unnecessary data transfer between replicas which contain mostly similar data.
2327: 512: 398:. This can be an advantage since it is efficient to split files up in very small data blocks so that only small blocks have to be re-downloaded if they get damaged. If the hashed file is big, such a hash list or hash chain becomes fairly big. But if it is a tree, one small branch can be downloaded quickly, the integrity of the branch can be checked, and then the downloading of data blocks can start. 1209: 31: 670: 840:
When a replica is down for an extended period of time, or the machine storing hinted handoffs for an unavailable replica goes down as well, replicas must synchronize from one another. In this case, Cassandra and Riak implement a Dynamo-inspired process called anti-entropy. In anti-entropy, replicas
438:, and helps in making some proofs tighter. Some implementations limit the tree depth using hash tree depth prefixes before hashes, so any extracted hash chain is defined to be valid only if the prefix decreases at each step and is still positive when the leaf is reached. 361:
is that one branch of the hash tree can be downloaded at a time and the integrity of each branch can be checked immediately, even though the whole tree is not available yet. For example, in the picture, the integrity of
410:
in which an attacker creates a document other than the original that has the same Merkle hash root. For the example above, an attacker can create a new document containing two data blocks, where the first is
959:
Elena Andreeva; Charles Bouillaguet; Pierre-Alain Fouque; Jonathan J. Hoch; John Kelsey; Adi Shamir; Sebastien Zimmer (2008). "Second Preimage Attacks on Dithered Hash Functions". In Smart, Nigel (ed.).
434:: when computing leaf node hashes, a 0x00 byte is prepended to the hash data, while 0x01 is prepended when computing internal node hashes. Limiting the hash tree size is a prerequisite of some 97:
of the number of leaf nodes in the tree. Conversely, in a hash list, the number is proportional to the number of leaf nodes itself. A Merkle tree is therefore an efficient example of a
2307: 2137: 34:
An example of a binary hash tree. Hashes 0-0 and 0-1 are the hash values of data blocks L1 and L2, respectively, and hash 0 is the hash of the concatenation of hashes 0-0 and 0-1.
668:, Ralph Merkle, "Method of providing digital signatures", published Jan 5, 1982, assigned to The Board of Trustees of the Leland Stanford Junior University 1001: 1990: 1059: 1910: 926:
Elena Andreeva; Charles Bouillaguet; Orr Dunkelman; John Kelsey (January 2009). "Herding, Second Preimage and Trojan Message Attacks beyond Merkle-DamgĂĄrd".
446:
The Tiger tree hash is a widely used form of hash tree. It uses a binary hash tree (two child nodes under each node), usually has a data block size of 1024
78:) is labelled with the cryptographic hash of the labels of its child nodes. A hash tree allows efficient and secure verification of the contents of a large 1298: 1327: 576: 281:
in, for instance, a file or set of files. Nodes farther up in the tree are the hashes of their respective children. For example, in the above picture
2879: 316:
Most hash tree implementations are binary (two child nodes under each node) but they can just as well use many more child nodes under each node.
733: 1199: 2884: 2616: 1169: 977: 943: 649: 2823: 116:
Hash trees can be used to verify any kind of data stored, handled and transferred in and between computers. They can help ensure that data
1016: 101:, in which the root of the tree is seen as a commitment and leaf nodes may be revealed and proven to be part of the original commitment. 693: 1854: 2367: 1687: 1198: 1983: 817: 2894: 2483: 1291: 93:
Demonstrating that a leaf node is a part of a given binary hash tree requires computing a number of hashes proportional to the
2186: 1895: 1380: 1332: 1682: 466: 261:
applies the compression step of the hash function to an excessive degree, which is mitigated by using Fast Merkle Trees.
1976: 1900: 1233: 2302: 2257: 2070: 1669: 1311: 1307: 517: 320: 63: 1067: 2448: 2181: 1284: 137: 1251: 2833: 2297: 1926: 1565: 2389: 2287: 2277: 2132: 1905: 1741: 1440: 1435: 431: 213: 98: 583: 124:
are received undamaged and unaltered, and even to check that the other peers do not lie and send fake blocks.
1166: – explains both the hash tree structure and the use of it to handle many one-time signatures 2282: 2272: 2075: 2035: 2028: 2018: 2013: 1828: 1648: 1214: 332: 243: 131: 1229: 2360: 2023: 1936: 1322: 771: 535: 407: 182: 715: 2527: 2376: 2330: 2176: 2122: 1951: 1601: 1555: 1445: 1403: 1388: 1370: 451: 327:
is used for the hashing. If the hash tree only needs to protect against unintentional damage, unsecured
59: 55: 762:
Koblitz, Neal; Menezes, Alfred J. (January 2016). "Cryptocash, cryptocurrencies, and cryptocontracts".
665: 2517: 2472: 2292: 2216: 1621: 1525: 1475: 1450: 854: 741: 776: 2631: 2407: 2055: 1946: 1823: 1772: 1711: 1530: 1490: 1470: 550: 435: 220: 2487: 2798: 2757: 2583: 2573: 2452: 2161: 2145: 2092: 1880: 1864: 1813: 1398: 995: 983: 884: 789: 1034: 2692: 2393: 2353: 2221: 2211: 2082: 1757: 1020: 973: 939: 813: 645: 251: 685: 2889: 2783: 2156: 1844: 1798: 1560: 965: 931: 908: 865: 781: 637: 258: 235: 156: 43: 2727: 2477: 1859: 1808: 1803: 1591: 964:. Lecture Notes in Computer Science. Vol. 4965. Istanbul, Turkey. pp. 270–288. 632:
Merkle, R. C. (1988). "A Digital Signature Based on a Conventional Encryption Function".
277:
in which the leaves (i.e., leaf nodes, sometimes also called "leafs") are hashes of data
2680: 2675: 2558: 2492: 2231: 2151: 2112: 2060: 2045: 1849: 1577: 174: 162: 79: 1242:
A C implementation of a dynamically re-sizeable binary SHA-256 hash tree (Merkle tree)
807: 2873: 2828: 2808: 2651: 2540: 2467: 2312: 2267: 2226: 2206: 2102: 2065: 2040: 1941: 1818: 1520: 1265:, an open source command-line tool, which can calculate TTH and magnet links with TTH 1133: 286: 274: 2402: 987: 793: 2788: 2752: 2568: 2563: 2545: 2457: 2262: 2107: 2097: 2087: 2050: 1999: 497: 473: 469: 121: 105: 39: 1115: 1197: 969: 935: 2803: 2793: 2707: 2641: 2636: 2626: 2535: 2384: 2241: 1777: 1706: 1702: 1611: 525: 511: 351: 270: 168: 1090: 2848: 2818: 2778: 2621: 2550: 2497: 2417: 2201: 2171: 2166: 2127: 1162: 785: 555: 540: 530: 507: 493: 278: 189: 143: 117: 87: 1257: 1217:
was created from a revision of this article dated 17 September 2013
870: 812:
PhD thesis, Faculty of Science, Utrecht, The Netherlands. January 2006. p.21
641: 2853: 2813: 2660: 2588: 2578: 2191: 1606: 930:. Lecture Notes in Computer Science. Vol. 5867. SAC. pp. 393–414. 545: 481: 462: 358: 181:
distributed revision control systems (although, strictly speaking, they use
178: 94: 83: 17: 1393: 2742: 2432: 900: 2858: 2732: 2712: 2685: 2670: 2422: 2236: 2196: 1885: 1782: 1767: 1762: 1752: 1716: 1636: 1550: 1430: 489: 485: 458: 328: 224: 206: 831: 2843: 2747: 2722: 2665: 2512: 2442: 2437: 2412: 2345: 1721: 1677: 1455: 1246: 202: 195: 1241: 636:. Lecture Notes in Computer Science. Vol. 293. pp. 369–378. 30: 2762: 2737: 2717: 2702: 2611: 2502: 2427: 2117: 1890: 1631: 1626: 1596: 1586: 1545: 1540: 1535: 1515: 1510: 1485: 1480: 1465: 1425: 912: 374:
by hashing the data block and iteratively combining the result with
2606: 2507: 2462: 1616: 1505: 1460: 1408: 1365: 1360: 1354: 406:
The Merkle hash root does not indicate the tree depth, enabling a
324: 231: 148: 29: 607: 2598: 1731: 1726: 1697: 1692: 1656: 1262: 577:"Merkle Signature Schemes, Merkle Trees and Their Cryptanalysis" 477: 447: 239: 2349: 1972: 1280: 1500: 1495: 1348: 152: 66:
of a data block, and every node that is not a leaf (called a
1195: 366:
can be verified immediately if the tree already contains
1172: – a detailed description of Tiger trees 2138:
Cryptographically secure pseudorandom number generator
257:
The initial Bitcoin implementation of Merkle trees by
582:. Ruhr-Universität Bochum. p. 16. Archived from 1268: 855:"Improved efficient arguments (preliminary version)" 2771: 2650: 2597: 2526: 2383: 2250: 2006: 1919: 1873: 1837: 1791: 1740: 1668: 1645: 1574: 1418: 1379: 1341: 1258:
Tiger Tree Hash (TTH) implementations in C and Java
899:Laurie, B.; Langley, A.; Kasper, E. (June 2013). 809:The Purely Functional Software Deployment Model. 250:Suggestions have been made to use hash trees in 1208: 2361: 1984: 1292: 8: 2368: 2354: 2346: 1991: 1977: 1969: 1299: 1285: 1277: 1273: 1269: 1000:: CS1 maint: location missing publisher ( 382:and finally comparing the result with the 104:The concept of a hash tree is named after 1015:Chapweske, J.; Mohr, G. (March 4, 2003). 869: 775: 1225:, and does not reflect subsequent edits. 390:can be verified if the tree already has 1252:Tiger Tree Hash (TTH) source code in C# 962:Advances in Cryptology – EUROCRYPT 2008 567: 82:. A hash tree is a generalization of a 1060:"Audit: P2P DirectConnect Application" 993: 894: 892: 716:"Bitrot Resistance on a Single Drive" 338:In the top of a hash tree there is a 7: 1089:Arne Babenhauserheide (7 Jan 2007). 885:Mark Friedenbach: Fast Merkle Trees 634:Advances in Cryptology – CRYPTO '87 313:) where "+" denotes concatenation. 1247:Merkle tree implementation in Java 1017:"Tree Hash EXchange format (THEX)" 696:from the original on April 3, 2012 608:"Handbook of Applied Cryptography" 350:). Before downloading a file on a 25: 2326: 2325: 1207: 1170:Tree Hash EXchange format (THEX) 510: 764:Designs, Codes and Cryptography 734:"General Verifiable Federation" 686:"ZFS End-to-End Data Integrity" 120:received from other peers in a 99:cryptographic commitment scheme 2880:Error detection and correction 2187:Information-theoretic security 1896:NIST hash function competition 928:Selected Areas in Cryptography 472:file sharing protocols and in 457:Tiger tree hashes are used in 386:. Similarly, the integrity of 1: 430:One simple fix is defined in 285:is the result of hashing the 2885:Cryptographic hash functions 1901:Password Hashing Competition 1312:message authentication codes 1308:Cryptographic hash functions 1163:Merkle tree patent 4,309,569 1035:"tigertree.c File Reference" 970:10.1007/978-3-540-78967-3_16 936:10.1007/978-3-642-05445-7_25 684:Bonwick, Jeff (2005-12-08). 575:Becker, Georg (2008-07-18). 2303:Message authentication code 2258:Cryptographic hash function 2071:Cryptographic hash function 1855:Merkle–DamgĂĄrd construction 518:Computer programming portal 357:The main difference from a 321:cryptographic hash function 108:, who patented it in 1979. 2913: 2182:Harvest now, decrypt later 1120:dcplusplus.sourceforge.net 901:"Certificate Transparency" 138:InterPlanetary File System 2321: 2298:Post-quantum cryptography 1968: 1318: 1276: 1272: 786:10.1007/s10623-015-0148-5 155:file systems (to counter 127:Hash trees are used in: 2824:Left-child right-sibling 2288:Quantum key distribution 2278:Authenticated encryption 2133:Random number generation 1649:key derivation functions 871:10.1007/3-540-44750-4_25 642:10.1007/3-540-48184-2_32 432:Certificate Transparency 214:Certificate Transparency 2895:Trees (data structures) 2654:data partitioning trees 2612:C-trie (compressed ADT) 2283:Public-key cryptography 2273:Symmetric-key algorithm 2076:Key derivation function 2036:Cryptographic primitive 2029:Authentication protocol 2019:Outline of cryptography 2014:History of cryptography 1927:Hash-based cryptography 1829:Length extension attack 183:directed acyclic graphs 132:hash-based cryptography 2024:Cryptographic protocol 1937:Message authentication 1203: 1183:Listen to this article 536:Distributed hash table 436:formal security proofs 408:second-preimage attack 402:Second preimage attack 209:peer-to-peer networks; 58:in which every "leaf" 35: 27:Type of data structure 2177:End-to-end encryption 2123:Cryptojacking malware 1202: 1116:"DC++'s feature list" 1091:"Phex 3.0.0 released" 832:"The NoSQL Ecosystem" 666:US patent 4309569 476:applications such as 223:and descendants like 62:is labelled with the 33: 2834:Log-structured merge 2377:Tree data structures 2293:Quantum cryptography 2217:Trusted timestamping 1234:More spoken articles 738:Google Wave Protocol 419:, and the second is 122:peer-to-peer network 2056:Cryptographic nonce 1824:Side-channel attack 1070:on January 29, 2015 853:Kilian, J. (1995). 551:Linked timestamping 221:Nix package manager 2799:Fractal tree index 2394:associative arrays 2162:Subliminal channel 2146:Pseudorandom noise 2093:Key (cryptography) 1881:CAESAR Competition 1865:HAIFA construction 1814:Brute-force attack 1204: 64:cryptographic hash 36: 2867: 2866: 2343: 2342: 2339: 2338: 2222:Key-based routing 2212:Trapdoor function 2083:Digital signature 1964: 1963: 1960: 1959: 1758:ChaCha20-Poly1305 1575:Password hashing/ 1200: 979:978-3-540-78966-6 945:978-3-642-05443-3 651:978-3-540-18796-7 612:cacr.uwaterloo.ca 269:A hash tree is a 252:trusted computing 16:(Redirected from 2902: 2370: 2363: 2356: 2347: 2329: 2328: 2157:Insecure channel 1993: 1986: 1979: 1970: 1845:Avalanche effect 1799:Collision attack 1342:Common functions 1301: 1294: 1287: 1278: 1274: 1270: 1254:, by Gil Schmidt 1224: 1222: 1211: 1210: 1201: 1191: 1189: 1184: 1165: 1149: 1148: 1146: 1144: 1130: 1124: 1123: 1112: 1106: 1105: 1103: 1101: 1086: 1080: 1079: 1077: 1075: 1066:. Archived from 1056: 1050: 1049: 1047: 1045: 1031: 1025: 1024: 1019:. Archived from 1012: 1006: 1005: 999: 991: 956: 950: 949: 923: 917: 916: 913:10.17487/rfc6962 896: 887: 882: 876: 875: 873: 859: 850: 844: 843: 827: 821: 804: 798: 797: 779: 759: 753: 752: 750: 749: 740:. Archived from 730: 724: 723: 711: 705: 704: 702: 701: 690:blogs.oracle.com 681: 675: 674: 673: 669: 662: 656: 655: 629: 623: 622: 620: 619: 614:. Section 13.4.1 604: 598: 597: 595: 594: 588: 581: 572: 520: 515: 514: 259:Satoshi Nakamoto 236:Apache Cassandra 234:systems such as 157:data degradation 44:computer science 21: 2912: 2911: 2905: 2904: 2903: 2901: 2900: 2899: 2870: 2869: 2868: 2863: 2767: 2646: 2593: 2522: 2518:Weight-balanced 2473:Order statistic 2387: 2379: 2374: 2344: 2335: 2317: 2246: 2002: 1997: 1956: 1915: 1874:Standardization 1869: 1860:Sponge function 1833: 1809:Birthday attack 1804:Preimage attack 1787: 1743: 1736: 1664: 1647: 1646:General purpose 1641: 1576: 1570: 1419:Other functions 1414: 1381:SHA-3 finalists 1375: 1337: 1314: 1305: 1238: 1237: 1226: 1220: 1218: 1215:This audio file 1212: 1205: 1196: 1193: 1187: 1186: 1182: 1179: 1161: 1158: 1156:Further reading 1153: 1152: 1142: 1140: 1132: 1131: 1127: 1114: 1113: 1109: 1099: 1097: 1088: 1087: 1083: 1073: 1071: 1058: 1057: 1053: 1043: 1041: 1033: 1032: 1028: 1014: 1013: 1009: 992: 980: 958: 957: 953: 946: 925: 924: 920: 898: 897: 890: 883: 879: 857: 852: 851: 847: 829: 828: 824: 805: 801: 777:10.1.1.701.8721 761: 760: 756: 747: 745: 732: 731: 727: 713: 712: 708: 699: 697: 683: 682: 678: 671: 664: 663: 659: 652: 631: 630: 626: 617: 615: 606: 605: 601: 592: 590: 586: 579: 574: 573: 569: 564: 516: 509: 506: 444: 442:Tiger tree hash 404: 267: 114: 28: 23: 22: 15: 12: 11: 5: 2910: 2909: 2906: 2898: 2897: 2892: 2887: 2882: 2872: 2871: 2865: 2864: 2862: 2861: 2856: 2851: 2846: 2841: 2836: 2831: 2826: 2821: 2816: 2811: 2806: 2801: 2796: 2791: 2786: 2781: 2775: 2773: 2769: 2768: 2766: 2765: 2760: 2755: 2750: 2745: 2740: 2735: 2730: 2725: 2720: 2715: 2710: 2705: 2700: 2683: 2678: 2673: 2668: 2663: 2657: 2655: 2648: 2647: 2645: 2644: 2639: 2634: 2632:Ternary search 2629: 2624: 2619: 2614: 2609: 2603: 2601: 2595: 2594: 2592: 2591: 2586: 2581: 2576: 2571: 2566: 2561: 2556: 2548: 2543: 2538: 2532: 2530: 2524: 2523: 2521: 2520: 2515: 2510: 2505: 2500: 2495: 2490: 2480: 2475: 2470: 2465: 2460: 2455: 2445: 2440: 2435: 2430: 2425: 2420: 2415: 2410: 2405: 2399: 2397: 2381: 2380: 2375: 2373: 2372: 2365: 2358: 2350: 2341: 2340: 2337: 2336: 2334: 2333: 2322: 2319: 2318: 2316: 2315: 2310: 2308:Random numbers 2305: 2300: 2295: 2290: 2285: 2280: 2275: 2270: 2265: 2260: 2254: 2252: 2248: 2247: 2245: 2244: 2239: 2234: 2232:Garlic routing 2229: 2224: 2219: 2214: 2209: 2204: 2199: 2194: 2189: 2184: 2179: 2174: 2169: 2164: 2159: 2154: 2152:Secure channel 2149: 2143: 2142: 2141: 2130: 2125: 2120: 2115: 2113:Key stretching 2110: 2105: 2100: 2095: 2090: 2085: 2080: 2079: 2078: 2073: 2063: 2061:Cryptovirology 2058: 2053: 2048: 2046:Cryptocurrency 2043: 2038: 2033: 2032: 2031: 2021: 2016: 2010: 2008: 2004: 2003: 1998: 1996: 1995: 1988: 1981: 1973: 1966: 1965: 1962: 1961: 1958: 1957: 1955: 1954: 1949: 1944: 1939: 1934: 1929: 1923: 1921: 1917: 1916: 1914: 1913: 1908: 1903: 1898: 1893: 1888: 1883: 1877: 1875: 1871: 1870: 1868: 1867: 1862: 1857: 1852: 1850:Hash collision 1847: 1841: 1839: 1835: 1834: 1832: 1831: 1826: 1821: 1816: 1811: 1806: 1801: 1795: 1793: 1789: 1788: 1786: 1785: 1780: 1775: 1770: 1765: 1760: 1755: 1749: 1747: 1738: 1737: 1735: 1734: 1729: 1724: 1719: 1714: 1709: 1700: 1695: 1690: 1685: 1680: 1674: 1672: 1666: 1665: 1663: 1662: 1659: 1653: 1651: 1643: 1642: 1640: 1639: 1634: 1629: 1624: 1619: 1614: 1609: 1604: 1599: 1594: 1589: 1583: 1581: 1578:key stretching 1572: 1571: 1569: 1568: 1563: 1558: 1553: 1548: 1543: 1538: 1533: 1528: 1523: 1518: 1513: 1508: 1503: 1498: 1493: 1488: 1483: 1478: 1473: 1468: 1463: 1458: 1453: 1448: 1443: 1438: 1433: 1428: 1422: 1420: 1416: 1415: 1413: 1412: 1406: 1401: 1396: 1391: 1385: 1383: 1377: 1376: 1374: 1373: 1368: 1363: 1358: 1352: 1345: 1343: 1339: 1338: 1336: 1335: 1330: 1325: 1319: 1316: 1315: 1306: 1304: 1303: 1296: 1289: 1281: 1267: 1266: 1260: 1255: 1249: 1244: 1227: 1213: 1206: 1194: 1181: 1180: 1178: 1177:External links 1175: 1174: 1173: 1167: 1157: 1154: 1151: 1150: 1125: 1107: 1081: 1051: 1026: 1023:on 2009-08-03. 1007: 978: 951: 944: 918: 888: 877: 845: 822: 799: 754: 725: 706: 676: 657: 650: 624: 599: 566: 565: 563: 560: 559: 558: 553: 548: 543: 538: 533: 528: 522: 521: 505: 502: 467:Direct Connect 443: 440: 403: 400: 266: 263: 248: 247: 228: 217: 210: 199: 193: 192:backup system; 186: 172: 166: 160: 146: 141: 135: 113: 110: 80:data structure 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 2908: 2907: 2896: 2893: 2891: 2888: 2886: 2883: 2881: 2878: 2877: 2875: 2860: 2857: 2855: 2852: 2850: 2847: 2845: 2842: 2840: 2837: 2835: 2832: 2830: 2827: 2825: 2822: 2820: 2817: 2815: 2812: 2810: 2809:Hash calendar 2807: 2805: 2802: 2800: 2797: 2795: 2792: 2790: 2787: 2785: 2782: 2780: 2777: 2776: 2774: 2770: 2764: 2761: 2759: 2756: 2754: 2751: 2749: 2746: 2744: 2741: 2739: 2736: 2734: 2731: 2729: 2726: 2724: 2721: 2719: 2716: 2714: 2711: 2709: 2706: 2704: 2701: 2698: 2696: 2690: 2688: 2684: 2682: 2679: 2677: 2674: 2672: 2669: 2667: 2664: 2662: 2659: 2658: 2656: 2653: 2649: 2643: 2640: 2638: 2635: 2633: 2630: 2628: 2625: 2623: 2620: 2618: 2615: 2613: 2610: 2608: 2605: 2604: 2602: 2600: 2596: 2590: 2587: 2585: 2584:van Emde Boas 2582: 2580: 2577: 2575: 2574:Skew binomial 2572: 2570: 2567: 2565: 2562: 2560: 2557: 2555: 2553: 2549: 2547: 2544: 2542: 2539: 2537: 2534: 2533: 2531: 2529: 2525: 2519: 2516: 2514: 2511: 2509: 2506: 2504: 2501: 2499: 2496: 2494: 2491: 2489: 2485: 2481: 2479: 2476: 2474: 2471: 2469: 2466: 2464: 2461: 2459: 2456: 2454: 2453:Binary search 2450: 2446: 2444: 2441: 2439: 2436: 2434: 2431: 2429: 2426: 2424: 2421: 2419: 2416: 2414: 2411: 2409: 2406: 2404: 2401: 2400: 2398: 2395: 2391: 2386: 2382: 2378: 2371: 2366: 2364: 2359: 2357: 2352: 2351: 2348: 2332: 2324: 2323: 2320: 2314: 2313:Steganography 2311: 2309: 2306: 2304: 2301: 2299: 2296: 2294: 2291: 2289: 2286: 2284: 2281: 2279: 2276: 2274: 2271: 2269: 2268:Stream cipher 2266: 2264: 2261: 2259: 2256: 2255: 2253: 2249: 2243: 2240: 2238: 2235: 2233: 2230: 2228: 2227:Onion routing 2225: 2223: 2220: 2218: 2215: 2213: 2210: 2208: 2207:Shared secret 2205: 2203: 2200: 2198: 2195: 2193: 2190: 2188: 2185: 2183: 2180: 2178: 2175: 2173: 2170: 2168: 2165: 2163: 2160: 2158: 2155: 2153: 2150: 2147: 2144: 2139: 2136: 2135: 2134: 2131: 2129: 2126: 2124: 2121: 2119: 2116: 2114: 2111: 2109: 2106: 2104: 2103:Key generator 2101: 2099: 2096: 2094: 2091: 2089: 2086: 2084: 2081: 2077: 2074: 2072: 2069: 2068: 2067: 2066:Hash function 2064: 2062: 2059: 2057: 2054: 2052: 2049: 2047: 2044: 2042: 2041:Cryptanalysis 2039: 2037: 2034: 2030: 2027: 2026: 2025: 2022: 2020: 2017: 2015: 2012: 2011: 2009: 2005: 2001: 1994: 1989: 1987: 1982: 1980: 1975: 1974: 1971: 1967: 1953: 1950: 1948: 1945: 1943: 1942:Proof of work 1940: 1938: 1935: 1933: 1930: 1928: 1925: 1924: 1922: 1918: 1912: 1909: 1907: 1904: 1902: 1899: 1897: 1894: 1892: 1889: 1887: 1884: 1882: 1879: 1878: 1876: 1872: 1866: 1863: 1861: 1858: 1856: 1853: 1851: 1848: 1846: 1843: 1842: 1840: 1836: 1830: 1827: 1825: 1822: 1820: 1819:Rainbow table 1817: 1815: 1812: 1810: 1807: 1805: 1802: 1800: 1797: 1796: 1794: 1790: 1784: 1781: 1779: 1776: 1774: 1771: 1769: 1766: 1764: 1761: 1759: 1756: 1754: 1751: 1750: 1748: 1745: 1742:Authenticated 1739: 1733: 1730: 1728: 1725: 1723: 1720: 1718: 1715: 1713: 1710: 1708: 1704: 1701: 1699: 1696: 1694: 1691: 1689: 1686: 1684: 1681: 1679: 1676: 1675: 1673: 1671: 1670:MAC functions 1667: 1660: 1658: 1655: 1654: 1652: 1650: 1644: 1638: 1635: 1633: 1630: 1628: 1625: 1623: 1620: 1618: 1615: 1613: 1610: 1608: 1605: 1603: 1600: 1598: 1595: 1593: 1590: 1588: 1585: 1584: 1582: 1579: 1573: 1567: 1564: 1562: 1559: 1557: 1554: 1552: 1549: 1547: 1544: 1542: 1539: 1537: 1534: 1532: 1529: 1527: 1524: 1522: 1519: 1517: 1514: 1512: 1509: 1507: 1504: 1502: 1499: 1497: 1494: 1492: 1489: 1487: 1484: 1482: 1479: 1477: 1474: 1472: 1469: 1467: 1464: 1462: 1459: 1457: 1454: 1452: 1449: 1447: 1444: 1442: 1439: 1437: 1434: 1432: 1429: 1427: 1424: 1423: 1421: 1417: 1410: 1407: 1405: 1402: 1400: 1397: 1395: 1392: 1390: 1387: 1386: 1384: 1382: 1378: 1372: 1369: 1367: 1364: 1362: 1359: 1357:(compromised) 1356: 1353: 1351:(compromised) 1350: 1347: 1346: 1344: 1340: 1334: 1333:Known attacks 1331: 1329: 1326: 1324: 1321: 1320: 1317: 1313: 1309: 1302: 1297: 1295: 1290: 1288: 1283: 1282: 1279: 1275: 1271: 1264: 1261: 1259: 1256: 1253: 1250: 1248: 1245: 1243: 1240: 1239: 1235: 1231: 1216: 1176: 1171: 1168: 1164: 1160: 1159: 1155: 1139: 1135: 1134:"Development" 1129: 1126: 1121: 1117: 1111: 1108: 1096: 1092: 1085: 1082: 1069: 1065: 1061: 1055: 1052: 1040: 1036: 1030: 1027: 1022: 1018: 1011: 1008: 1003: 997: 989: 985: 981: 975: 971: 967: 963: 955: 952: 947: 941: 937: 933: 929: 922: 919: 914: 910: 906: 902: 895: 893: 889: 886: 881: 878: 872: 867: 863: 856: 849: 846: 842: 837: 833: 830:Adam Marcus. 826: 823: 819: 818:90-393-4130-3 815: 811: 810: 803: 800: 795: 791: 787: 783: 778: 773: 770:(1): 87–102. 769: 765: 758: 755: 744:on 2018-04-08 743: 739: 735: 729: 726: 721: 717: 710: 707: 695: 691: 687: 680: 677: 667: 661: 658: 653: 647: 643: 639: 635: 628: 625: 613: 609: 603: 600: 589:on 2014-12-22 585: 578: 571: 568: 561: 557: 554: 552: 549: 547: 544: 542: 539: 537: 534: 532: 529: 527: 524: 523: 519: 513: 508: 503: 501: 499: 495: 491: 487: 483: 479: 475: 471: 468: 464: 460: 455: 453: 450:and uses the 449: 441: 439: 437: 433: 428: 426: 422: 418: 414: 409: 401: 399: 397: 393: 389: 388:data block L3 385: 381: 377: 373: 369: 365: 364:data block L2 360: 355: 353: 349: 345: 341: 336: 335:can be used. 334: 330: 326: 322: 317: 314: 312: 308: 304: 300: 296: 292: 288: 287:concatenation 284: 280: 276: 272: 264: 262: 260: 255: 253: 245: 241: 237: 233: 229: 226: 222: 218: 215: 211: 208: 204: 200: 197: 194: 191: 187: 185:, not trees); 184: 180: 176: 173: 170: 167: 164: 161: 158: 154: 150: 147: 145: 142: 139: 136: 133: 130: 129: 128: 125: 123: 119: 111: 109: 107: 102: 100: 96: 91: 89: 85: 81: 77: 73: 69: 65: 61: 57: 53: 49: 45: 41: 32: 19: 2838: 2694: 2686: 2551: 2484:Left-leaning 2390:dynamic sets 2385:Search trees 2263:Block cipher 2108:Key schedule 2098:Key exchange 2088:Kleptography 2051:Cryptosystem 2000:Cryptography 1931: 1143:23 September 1141:. Retrieved 1138:GTK-Gnutella 1137: 1128: 1119: 1110: 1100:23 September 1098:. Retrieved 1094: 1084: 1074:23 September 1072:. Retrieved 1068:the original 1063: 1054: 1044:23 September 1042:. Retrieved 1039:Gtk-Gnutella 1038: 1029: 1021:the original 1010: 961: 954: 927: 921: 904: 880: 861: 848: 839: 836:aosabook.org 835: 825: 808: 806:Dolstra, E. 802: 767: 763: 757: 746:. Retrieved 742:the original 737: 728: 719: 709: 698:. Retrieved 689: 679: 660: 633: 627: 616:. Retrieved 611: 602: 591:. Retrieved 584:the original 570: 498:gtk-gnutella 474:file sharing 456: 445: 429: 424: 420: 416: 412: 405: 395: 391: 387: 383: 379: 375: 371: 367: 363: 356: 347: 343: 339: 337: 318: 315: 310: 306: 302: 298: 294: 290: 282: 268: 256: 249: 126: 115: 106:Ralph Merkle 103: 92: 75: 71: 67: 51: 47: 40:cryptography 37: 18:Merkle trees 2784:Exponential 2772:Other trees 2251:Mathematics 2242:Mix network 1932:Merkle tree 1920:Utilization 1906:NSA Suite B 907:: RFC6962. 714:Likai Liu. 526:Binary tree 352:P2P network 348:master hash 319:Usually, a 297:. That is, 169:Apache Wave 52:Merkle tree 2874:Categories 2728:Priority R 2478:Palindrome 2202:Ciphertext 2172:Decryption 2167:Encryption 2128:Ransomware 1744:encryption 1521:RadioGatĂşn 1328:Comparison 1230:Audio help 1221:2013-09-17 748:2017-03-09 700:2013-09-19 618:2024-03-07 593:2013-11-20 562:References 556:Radix tree 541:Hash table 531:Blockchain 452:Tiger hash 230:number of 216:framework; 190:Tahoe-LAFS 144:BitTorrent 88:hash chain 72:inner node 2814:iDistance 2693:implicit 2681:Hilbert R 2676:Cartesian 2559:Fibonacci 2493:Scapegoat 2488:Red–black 2192:Plaintext 1661:KDF1/KDF2 1580:functions 1566:Whirlpool 996:cite book 772:CiteSeerX 720:likai.org 546:Hash trie 482:BearShare 463:Gnutella2 378:and then 359:hash list 344:root hash 329:checksums 254:systems. 179:Mercurial 171:protocol; 165:protocol; 95:logarithm 84:hash list 48:hash tree 2829:Link/cut 2541:Binomial 2468:Interval 2331:Category 2237:Kademlia 2197:Codetext 2140:(CSPRNG) 1886:CRYPTREC 1717:Poly1305 1637:yescrypt 1551:Streebog 1431:CubeHash 1411:(winner) 1232: Â· 1064:Symantec 988:12844017 794:16594958 694:Archived 504:See also 490:Shareaza 486:LimeWire 459:Gnutella 425:hash 1-1 421:hash 1-0 417:hash 0-1 413:hash 0-0 392:hash 1-1 384:top hash 376:hash 0-0 368:hash 0-0 340:top hash 331:such as 323:such as 311:hash 0-1 307:hash 0-0 295:hash 0-1 291:hash 0-0 265:Overview 225:GNU Guix 207:Ethereum 2890:Hashing 2789:Fenwick 2753:Segment 2652:Spatial 2569:Pairing 2564:Leftist 2486:)  2458:Dancing 2451:)  2449:Optimal 2007:General 1792:Attacks 1722:SipHash 1678:CBC-MAC 1612:LM hash 1592:Balloon 1456:HAS-160 1219: ( 1190:minutes 203:Bitcoin 196:Zeronet 140:(IPFS), 2839:Merkle 2804:Fusion 2794:Finger 2718:Octree 2708:Metric 2642:Y-fast 2637:X-fast 2627:Suffix 2546:Brodal 2536:Binary 2118:Keygen 1952:Pepper 1891:NESSIE 1838:Design 1632:scrypt 1627:PBKDF2 1602:Catena 1597:bcrypt 1587:Argon2 1546:Snefru 1541:Shabal 1536:SWIFFT 1516:RIPEMD 1511:N-hash 1486:MASH-2 1481:MASH-1 1466:Kupyna 1426:BLAKE3 1409:Keccak 1394:Grøstl 1371:BLAKE2 986:  976:  942:  862:CRYPTO 816:  792:  774:  672:  648:  465:, and 396:hash 0 380:hash 1 372:hash 1 299:hash 0 283:hash 0 279:blocks 275:hashes 244:Dynamo 242:, and 118:blocks 86:and a 68:branch 2849:Range 2819:K-ary 2779:Cover 2622:Radix 2607:Ctrie 2599:Tries 2528:Heaps 2508:Treap 2498:Splay 2463:HTree 2418:(a,b) 2408:2–3–4 2148:(PRN) 1746:modes 1622:Makwa 1617:Lyra2 1607:crypt 1556:Tiger 1506:MDC-2 1461:HAVAL 1446:Fugue 1404:Skein 1389:BLAKE 1366:SHA-3 1361:SHA-2 1355:SHA-1 1263:RHash 984:S2CID 858:(PDF) 790:S2CID 587:(PDF) 580:(PDF) 448:bytes 325:SHA-2 232:NoSQL 149:Btrfs 76:inode 74:, or 54:is a 2854:SPQR 2733:Quad 2661:Ball 2617:Hash 2589:Weak 2579:Skew 2554:-ary 1947:Salt 1911:CNSA 1778:IAPM 1732:VMAC 1727:UMAC 1712:PMAC 1707:CMAC 1703:OMAC 1698:NMAC 1693:HMAC 1688:GMAC 1657:HKDF 1526:SIMD 1476:Lane 1451:GOST 1436:ECOH 1323:List 1310:and 1145:2018 1102:2018 1095:Phex 1076:2018 1046:2018 1002:link 974:ISBN 940:ISBN 905:IETF 814:ISBN 646:ISBN 496:and 494:DC++ 478:Phex 394:and 370:and 342:(or 333:CRCs 303:hash 293:and 271:tree 240:Riak 219:the 212:the 205:and 201:the 188:the 177:and 151:and 112:Uses 60:node 56:tree 46:, a 42:and 2859:Top 2713:MVP 2671:BSP 2423:AVL 2403:2–3 1783:OCB 1773:GCM 1768:EAX 1763:CWC 1753:CCM 1683:DAA 1561:VSH 1531:SM3 1501:MD6 1496:MD4 1491:MD2 1471:LSH 1441:FSB 1349:MD5 966:doi 932:doi 909:doi 866:doi 782:doi 638:doi 470:P2P 346:or 289:of 273:of 175:Git 163:Dat 153:ZFS 50:or 38:In 2876:: 2844:PQ 2758:VP 2748:R* 2743:R+ 2723:PH 2697:-d 2689:-d 2666:BK 2513:UB 2438:B* 2433:B+ 2413:AA 1399:JH 1136:. 1118:. 1093:. 1062:. 1037:. 998:}} 994:{{ 982:. 972:. 938:. 903:. 891:^ 864:. 860:. 838:. 834:. 788:. 780:. 768:78 766:. 736:. 718:. 692:. 688:. 644:. 610:. 500:. 492:, 488:, 484:, 480:, 461:, 454:. 427:. 423:+ 415:+ 309:+ 305:( 301:= 238:, 159:); 90:. 70:, 2763:X 2738:R 2703:M 2699:) 2695:k 2691:( 2687:k 2552:d 2503:T 2482:( 2447:( 2443:B 2428:B 2396:) 2392:/ 2388:( 2369:e 2362:t 2355:v 1992:e 1985:t 1978:v 1705:/ 1300:e 1293:t 1286:v 1236:) 1228:( 1223:) 1192:) 1188:5 1185:( 1147:. 1122:. 1104:. 1078:. 1048:. 1004:) 990:. 968:: 948:. 934:: 915:. 911:: 874:. 868:: 820:. 796:. 784:: 751:. 722:. 703:. 654:. 640:: 621:. 596:. 246:. 227:; 198:; 134:. 20:)

Index

Merkle trees

cryptography
computer science
tree
node
cryptographic hash
data structure
hash list
hash chain
logarithm
cryptographic commitment scheme
Ralph Merkle
blocks
peer-to-peer network
hash-based cryptography
InterPlanetary File System
BitTorrent
Btrfs
ZFS
data degradation
Dat
Apache Wave
Git
Mercurial
directed acyclic graphs
Tahoe-LAFS
Zeronet
Bitcoin
Ethereum

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑