Android版Monacoinウォレットは、2015年9月27日以降のMonacoin仕様変更により、それ以降のコインの出し入れが出来なくなっています。
私は、それを知らずにこちらのウォレットをインストールして使い始めました。
2016年の8月に何故か入金に成功しており、それ以降使っていなかったのですが、2016年11月に再度入金したところ、全く反映されないという状況に陥りました。
もしかすると、ブロックのデータベースが壊れている可能性があるという考えからデータベースの再取得を行うと、何度やっても下記の場所で止まる様になってしまいました。
これを見る限り、450000ブロックにて仕様変更があった様です。
この変更により、このウォレットは仕様変更に対応しない限り使えないウォレットになりました。この記事を書いている時点では、未だ対応されておりません。
こうなってしまうと、秘密鍵を取り出して最新の仕様に対応している他のウォレットに入れれば問題は無いのですが、このアプリケーションのバックアップ機能の秘密鍵の書き出しを使用すると、パスワードの入力が必要で何かしらのエンコードが施された出力しか書き出せないという仕様でした。
正確にはパスコードを省略する様にする事もできますが、省略してもエンコードは施されており、純粋な秘密鍵を出力する事は不可能です。
しかしながら、兎にも角にも秘密鍵を書き出すしか方法がありませんので、以下の様にしてエンコードされた秘密鍵を取り出します。
1.左上の縦破線からメニューを出し、バックアップを選択します。
2.秘密鍵のバックアップを選択します。
3.適切なパスワードを付けてバックアップします。
4.バックアップした秘密鍵の場所の表示がされます。
続いて、アーカイブするかと尋ねられますので、アーカイブを選択します。
5.アーカイブを選択すると色々な方法で秘密鍵を転送できるメニューが出ます
ので、好きな方法でPC等に転送を行います。
6.転送されたファイルの中身は、下記の様な実際の秘密鍵よりもかなり長い、
文字の羅列になっています。
この文字列を調べたところ、秘密鍵に対してパスワードを利用したAES 256bit CBC形式のエンコードがかけられているという事が分かりました。
7.openssl を使って文字列をデコードする
まずは、opensslの使える環境にファイルを移動する必要があります。
移動先にて、以下の様にコマンドを実行してください。
$ openssl enc -d -aes-256-cbc -a -in エンコード文字列が書かれているファイル名
enter aes-256-cbc decryption password: test
↑ 秘密鍵をバックアップする時に使用したパスワードを入力しリターンキーを押します
# KEEP YOUR PRIVATE KEYS SAFE! Anyone who can read this can spend your Bitcoins.
TRQpijUnByVMqCxNh9HYb2JBjPc1WESHNdED27rsoC11JegLD5Xq 2016-07-29T00:56:40Z
↑この最後の赤い文字列がデコードされた秘密鍵となります
以下3行追記:2017/4/23
なお、うまく動作しない場合は、先にBase64のデコードを行ない、後からAES 256bit CBC形式のデコードを行う方法もあります。
例) $ base64 -D -in エンコード文字列が書かれているファイル名 | openssl enc -d -aes-256-cbc
8.Monacoin-Qtウォレットを起動して、ヘルプメニューのデバックウインドウを
選択します。
9.デバックウインドウの上の部分でコンソールを選択します。
上記の様に、一番下の空欄に下記の様に文字を入力します。
importprivkey TRQpijUnByVMqCxNh9HYb2JBjPc1WESHNdED27rsoC11JegLD5Xq
↑赤い部分は先程デコードされた秘密鍵です。
正しく入力されている場合には、暫くの間ブロックチェーンを走査する作業が行われ最後にウォレットにそのアドレスにあるべきコインが現れ移行終了となります。
こちらのウォレットは使えなくなってから1年以上経過しており、あきらめてしまわれた方もいらっしゃると思います。もし、現在でもAndroid版のウォレットがある場合は、こちらの方法にてmonaコインを救出してみてはいかがでしょうか。