Icap
如何創建具有直接 ICAP 地址的帳戶?
為了使乙太坊賬戶能夠擁有與 IBAN 兼容的“直接”ICAP 地址,其原始地址的最高有效 6 位必須為零。換句話說,它必須適合 154 位。
我知道這樣做的唯一方法是通過蠻力:選擇一個私鑰,從中派生公鑰,然後從中獲得地址 - 並重複直到找到符合標準的一個。每次嘗試都有 64 分之一的機會。
這是唯一的方法嗎?
是的,這是唯一的方法,迭代直到找到適合 154 位的密鑰(地址小於
03ffffffffffffffffffffffffffffffffffffff
)。這意味著它必須以0x00
、0x01
或0x02
開頭0x03
。一些庫已經支持,否則如上所述,使用虛地址生成器應該能夠生成一個。
(虛榮地址是您定義結果地址的標準的地方,通常他們會進行暴力搜尋,直到找到這樣的地址。)
在 Javascript 中,可以使用ethereumjs-wallet和ethereumjs-icap來實現這一點。或者作為命令行工具,helpeth:
$ helpeth keyGenerate raw true Address: 0x0008790cf214419f622db6484f07f73c19b4f546 Address (checksum): 0x0008790cf214419F622dB6484f07F73c19b4F546 ICAP: XE52 50DK T7BM 161X 0KHH RZXW FM60 K243 Q Public key: 0xb146e3092d4177819f52038d26deb203d95c6e18f6c71812b68eafb0db4496366a093607d8e705bd688dedfa68dec9112e0baff256943c90cd221f04565f15eb Private key: 0x413d8a0009d47eca4522d815b961d255a7aaad775bdefb1de29686a372aaa7c4
是的,蠻力,或者它被稱為:虛榮地址。您可以使用 Vanityreum 並蒐索以 . 開頭的原始十六進制地址
00
。$ python2 Vanityreum.py 00 [...] Time spent : 6 seconds Approx global search speed : 42.0 per second Address : 0065845e01aa87635d2d5a3190fa8eee3e8f1954 PrivKey : 6135fcd5...3582b873
花了我6秒。要將其轉換為直接的 ICAP 地址,我曾經
ethkey
將其導入 turboethereum:$ ethkey importbare 6135fcd5...3582b873 Enter a passphrase with which to secure account 0065845e…: Please confirm the passphrase by entering it again: Successfully imported 6135fcd5...3582b873 as b1aef058-9b81-4933-c4ff-25fba80c7faf0 $ ethkey inspectbare b1aef058-9b81-4933-c4ff-25fba80c7faf Enter passphrase for key b1aef058-9b81-4933-c4ff-25fba80c7faf: Key b1aef058-9b81-4933-c4ff-25fba80c7faf: ICAP: XE431O16GX6C39Q1NMBIZ9V2OYJXQIFVX0 Raw hex: 0065845e01aa87635d2d5a3190fa8eee3e8f1954 Secret: 6135fcd51c20ce11...
我的直接 ICAP 可能是:
XE431O16GX6C39Q1NMBIZ9V2OYJXQIFVX0
,我只是不知道如何正確計算校驗和,在這裡:假設它是43
.