Sebagai penutup dari thread Challenge Custom Address, maka saya akan melakukan breakdown dengan tujuan bisa menjadi informasi buat member-member lain yang sekiranya membutuhkannya.
Breakdown Challenge Custom Address- Jalankan Command Prompt (CMD) sebagai admistrator
- Arahkan ke Directory dimana VanitySearch.exe tersimpan
- Generate Custom address menggunakan perintah
VanitySearch.exe -gpu -stop "prefix"VanitySearch.exe -gpu -stop 1contoh
result :
PubAddress: 1contohYJuH2TAs6tUf41zDSrj38kf2nx
Priv (WIF): p2pkh:L4RjgktgBJFHXu9wThe8JZk3MagAnJr5udqgUGbtCri6mfSZb7Bh
Priv (HEX): 0xD70C60AEE73DD97576F42953AE2F9766250397F8BECCCF19C179D5E5F67B9A95
- Cari Pubkey (Hex) menggunakan perintah
VanitySearch.exe -gpu -cp "PrivKey Hex"VanitySearch.exe -gpu -cp L4RjgktgBJFHXu9wThe8JZk3MagAnJr5udqgUGbtCri6mfSZb7Bh
result :
PrivAddr: p2pkh:L4RjgktgBJFHXu9wThe8JZk3MagAnJr5udqgUGbtCri6mfSZb7Bh
PubKey: 03B1EF814CE5EBE130CD1EF8C75FFD5E20AF6B30B10A19B2DCB6C51844050C2047
Addr (P2PKH): 1contohYJuH2TAs6tUf41zDSrj38kf2nx
Salah satu ketentuan yang ada di Challenge ini adalah menyertakan Public Key (HEX) sebagai proof jika Custom address yang dibuat memang turunan dari public key terkait, maka saya melakukan hash function secara personal (menggunakan program Python 3.12) sampai didapatkan hasil dari custom address yang diposting oleh masing-masing partisipan. Oleh karena itu untuk memastikan semua function dari module-module pyhton (yang diperlukan dalam proses ini), bisa berjalan tanpa kendala, maka harus dilakukan beberapa konfigurasi terlebih dahulu.
- Jalankan program Python 3.12
>>> import hashlib
>>> from hashlib import sha256
>>> import base58
- Diketahui PubKey 03B1EF814CE5EBE130CD1EF8C75FFD5E20AF6B30B10A19B2DCB6C51844050C2047
- Eksekusi SHA256 pada PubKey
>>> hash_PubKey = sha256(bytes.fromhex('03B1EF814CE5EBE130CD1EF8C75FFD5E20AF6B30B10A19B2DCB6C51844050C2047'))
>>> print(hash_PubKey.hexdigest())
hash_sha256_PubKey = 1bdecda75ca9c4253ef8145331eee032d2a4ecebfece033123ad71f26da99b4e- Eksekusi RIPEMD160 pada hash_sha256_PubKey
>>> hash_160 = (bytes.fromhex('1bdecda75ca9c4253ef8145331eee032d2a4ecebfece033123ad71f26da99b4e'))
>>> hashlib.new('ripemd160', hash_160).hexdigest()
hash_160 = 06c59e37f0922f24f466e70ce7b56f43bbc56a6f- Tambahkan Network Version Byte (Mainnet 0x00) ke front line hash_160
hash_01 = 0006c59e37f0922f24f466e70ce7b56f43bbc56a6f- Eksekusi SHA256 pada hash_01
>>> hash_02 = sha256(bytes.fromhex('0006c59e37f0922f24f466e70ce7b56f43bbc56a6f'))
>>> print(hash_02.hexdigest())
hash_02 = ec00420b82841d274e33398c6540beeaa3ad325b47c281ac906ae4ab08de3d1c- Eksekusi SHA256 pada hash_02
>>> hash_03 = sha256(bytes.fromhex('ec00420b82841d274e33398c6540beeaa3ad325b47c281ac906ae4ab08de3d1c'))
>>> print(hash_03.hexdigest())
hash_03 = c7183b0d33a59da9d5e14c58919cd3a4d839d75aa267617bc5ae8a85cfbdaf2b- Gunakan 4 bytes pertama dari hash_03 sebagai checksum
checksum = c7183b0d- Tambahkan checksum di endpoint hash_01
hash_final = 0006c59e37f0922f24f466e70ce7b56f43bbc56a6fc7183b0d- Eksekusi Base85 encode pada hash_final
>>> address = base58.b58encode(bytes.fromhex('0006c59e37f0922f24f466e70ce7b56f43bbc56a6fc7183b0d'))
>>> print(address)
address = 1contohYJuH2TAs6tUf41zDSrj38kf2nxaddress yang didapatkan dari proses hash function di Python 3.12 sama dengan custom address yang dibuat di VanitySearch