Icap

如何創建具有直接 ICAP 地址的帳戶?

  • March 19, 2016

為了使乙太坊賬戶能夠擁有與 IBAN 兼容的“直接”ICAP 地址,其原始地址的最高有效 6 位必須為零。換句話說,它必須適合 154 位。

我知道這樣做的唯一方法是通過蠻力:選擇一個私鑰,從中派生公鑰,然後從中獲得地址 - 並重複直到找到符合標準的一個。每次嘗試都有 64 分之一的機會。

這是唯一的方法嗎?

是的,這是唯一的方法,迭代直到找到適合 154 位的密鑰(地址小於03ffffffffffffffffffffffffffffffffffffff)。這意味著它必須以0x000x010x02開頭0x03

一些庫已經支持,否則如上所述,使用虛地址生成器應該能夠生成一個。

(虛榮地址是您定義結果地址的標準的地方,通常他們會進行暴力搜尋,直到找到這樣的地址。)

在 Javascript 中,可以使用ethereumjs-walletethereumjs-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.

引用自:https://ethereum.stackexchange.com/questions/1780