見出し画像

Liskで使用していたパスフレーズからEthereumのアドレスとか取得してみる

こんにちは万博おじです。
LiskのL2移行まで2週間切りましたね。
Liskホルダーの皆さん、MetaMaskなどのEthereumウォレットの準備できてますか?

このnoteはLiskのパスフレーズ(12ワード or 24ワード)がMetaMaskとかで使えたらいいのになーという人向けのnoteです。
新規でアドレスつくるよって人は気にしなくてもいいですw


Ethereum用のアドレスやプライベートキーを取得

お手製ツールを起動

ソースは補足1参照

パスフレーズを入力

このパスフレーズはよわよわパスフレーズです。
ググると開発関連のブログ等々がヒットするくらいよわよわなものなので、隠してませんが、パスフレーズは本来めっちゃ大事なものなので絶対に公開しないでください。

Enterを押すとアドレスなどが表示

内容確認

基本的に、Ethereumウォレットではリカバリーフレーズではなくプライベートキーを使用してアカウントを追加することになります。
なので、プライベートキーはめっちゃ大事です。
誰かに教えたり公開したりしないようにしましょう。

MetaMaskの場合、初めて使う場合はリカバリーフレーズを使用します。
さらにアカウントをインポートする場合はプライベートキーを使用します。
※補足2参照

本題終わり!


使用したツール

GoogleDrive:lisknonanika - lisk2ethereum.zip

使い方

  1. 任意の場所にダウンロードしてzipファイルを展開

  2. 展開されたフォルダ内にある lisk2ethereum.bat をダブルクリック

  3. パスフレーズの入力を求められたらパスフレーズを入力してEnter

  4. 終了確認でYと入力してEnterで終了、Nと入力してEnterで続行

MetaMaskで表示されるアドレスと同じにするためにDelivationPathをm/44'/60'/0'/0/0にしてます。

パスフレーズを盗むようなことはしてませんがなんかあっても責任は取りません。
不安な人はネットワークを切った状態で使用してください。
ネットワーク接続は一切してないので使用できます。
使う際は入力したパスフレーズを盗み見られないように周りに誰もいない時に使ってください。

Google Drive
展開後


補足1

ツールのソース(めっちゃ手抜き)

lisk2ethereum.bat

ECHO OFF
CD ./src/

:EXEC_PROC
node ./index.js

SET INSTR=
SET /P INSTR="終了しますか? (Y/n): "
IF "%INSTR%"=="n" GOTO :EXEC_PROC
IF "%INSTR%"=="N" GOTO :EXEC_PROC

src/index.js

const bip39 = require('bip39');
const ethereumjs = require('ethereumjs-wallet');
const readline = require('readline').createInterface({ input: process.stdin, output: process.stdout });

readline.question('パスフレーズを入力してください: ', (mnemonic) => {
  try {
    if (!mnemonic || !bip39.validateMnemonic(mnemonic)) {
      console.log('ERROR: パスフレーズがが不正です');
      return;
    }
  
    const wallet = ethereumjs.hdkey.fromMasterSeed(bip39.mnemonicToSeedSync(mnemonic)).derivePath("m/44'/60'/0'/0/0").getWallet();
    console.log({
        Address: `0x${wallet.getAddress().toString('hex')}`,
        PrivateKey: `0x${wallet.privateKey.toString('hex')}`,
        RecoveryPhrase: mnemonic
    });
  } finally {
    readline.close();
  }
});


補足2

MetaMaskにアカウントを追加 - 新規

既存のウォレットをインポートをクリック

MetaMaskの改善は協力しなくてもいい

リカバリーフレーズ(Liskのパスフレーズ)を入力

あとは画面に従って進めばOK

MetaMaskにアカウントを追加 - 追加

アカウント名(赤枠部分)をクリック

誰かが使った形跡があるwww

Add account or ~ をクリック

アカウントをインポートをクリック

秘密鍵(プライベートキー)を入力

あとは画面に従って進めばOK


おしまい

おしまい
基本的にはLiskのパスフレーズを使わずに1から新規で作るのがいいと思いますが、思い入れがある人はEthereumウォレットのリカバリーフレーズとしてLiskで使用していたパスフレーズを使ってみるのもいいかもしれません。

なお、Liskのパスフレーズと書いてますが、LiskのパスフレーズがBIP39に則ってるので使えるというだけで、Lisk限定のもんでもありません。


いいなと思ったら応援しよう!