BIP32 version byte secret
As a blockchain developer, you are probably familiar with the Bip32 encoding scheme used to represent Ethereum addresses. However, have you ever wondered how these byte versions (x04\x88\xad\xe4) are converted from Base256 to Base58? In this article, we will dive into the world of bip32 and consider the conversion process.
Bip32 coding scheme
Before diving into the conversion process, let’s briefly review the Bip32 encoding scheme. The scheme consists of two components:
- xprv: represents a private key
- mkey: represents a public key
xprv and mkey are combined into one byte string, which is then Base256 encoded.
Version byte conversion
Now let’s convert the bytes of the x04\x88\xad\xe4 version from Base256 to Base58. The conversion process consists of several stages:
- Decoding: we take the Base256 byte representation of the version (x04\x88\xad\xe4) and decode it into a string of bytes.
- Split: split the decoded string of bytes into two parts: prefix (
x) and remainder (04\x88\xad\xe4).
- Convert to Base58

: Converts each part of the byte string to Base58 using the following rules:
x: represents a hexadecimal prefix
02...: represents a short Base58 value (eg 1000 ->irr)
...: represents a long value in Base58 (egX->1kz713TZjju)
Conversion Process
Let’s apply these rules to the bytes in the example version:
x04\x88\xad\xe4
- Decoding: decoded byte string: 0000 02 880A AD E4
- Split: Splits a string of bytes into two parts:
- Prefix (x): 0000 02
- Remainder: 880A AD E4
- Transformation Base58:
x: represents a hexadecimal prefix, so we must convert it to Base58 using the above rules.
+ 0x00: 1
+ 0x02: irr
- Other: represents a long value in Base58 encoding. We convert it too.
The rest of the conversion process involves converting each hexadecimal digit to its corresponding Base58 character followed by leading zeros.
Conclusion
In conclusion, it should be noted that the version bytes (x04\x88\xad\xe4) represent xprv and mkey in the Bip32 encoding scheme. Converting these Base256 bytes to Base58 requires a series of steps, including decoding, splitting, and applying base58 conversion rules. By understanding how this process works, you will become more experienced in converting and working with Bip32-encoded addresses on Ethereum.
I hope this explanation will help clarify the process! Do you have any specific questions or examples you’d like me to answer?
