Auszug aus Seite 6 des gelben Whitepapers:
Die ersten drei Definitionen kann ich nachvollziehen, die vierte ist problematisch. Wie funktioniert die m
Funktion eigentlich? Vielleicht bin ich mit formaler Spezifikation nicht allzu vertraut, aber ich bin in diesem [i,i+1]
Teil besonders verwirrt. Nimmt es die Bits an Position i
und i+1
vom Hash, summiert sie und wendet dann Modulo 2048 an?
Betrachten Sie die folgende Eingabe
Ethereum gelbes Papier
Betrachten Sie es als Keccak-256
Hash gemäß dieser Website:
7f110dc4c0a897ea5187a67e2c3a7db3a43410df8d1754fbdf28351c7e58400f
Die ersten drei Bytepaare einer Keccak-256
Eingabezeichenfolge-
{7,f},{f,1},{1,0}
1) {7,f}
11 Bits niedriger Ordnung von jedem der ersten drei Bytepaare , die unter Verwendung dieser Website berechnet werden
00110111011
Sein Dezimaläquivalent, das mithilfe dieser Website berechnet wurde, ist 443. 443 % 2048 = 443
Der Bloom-Filter setzt ein 443-tes Bit einer 2048-Bit-Sequenz.
2) {f,1}
11 Bits niedriger Ordnung von jedem der ersten drei Bytepaare , die unter Verwendung dieser Website berechnet werden
01100110001
Sein Dezimaläquivalent, das mithilfe dieser Website berechnet wird, ist 817. 817 % 2048 = 817
Der Bloom-Filter setzt ein 817-tes Bit der 2048-Bit-Sequenz.
3) {1,0}
00110001001
11 Bits niedriger Ordnung von jedem der ersten drei Bytepaare , die unter Verwendung dieser Website berechnet werden
Sein Dezimaläquivalent, das mithilfe dieser Website berechnet wurde, ist 393. 393 % 2048 = 393
Der Bloom-Filter setzt ein 393-tes Bit einer 2048-Bit-Sequenz.
[i,i+1]
bezeichnet Bytes an Position i
undi+1
Ich hoffe es hilft!