よくある質問

Electrumはどのように動作しますか?

Electrumが焦点にあてているのはスピード、少ない計算資源の使用量、Monacoinを簡単にすることです。Monacoinのシステムの最も複雑な部分は高性能なサーバーが操作し、Electrumはこれと連携して動作するので起動時間はわずかです。

Electrumはサーバーを信頼していますか?

そうでもないです;Electrumクライアントは秘密鍵をサーバーに送信しません。さらに、サーバーから受け取った情報は Simple Payment Verification=SPVと呼ばれる技術で検証されます。

デフォルトでは、Electrumは最大10台のサーバへの接続を維持しようとします。 クライアントは、これらのサーバーに対してブロックヘッダ通知をサブスクライブします。 接続されているサーバーのうち、1台を除くすべてのサーバーで使用されます。 複数のソースからブロックヘッダーを取得すると、遅延サーバー、チェーン分割およびフォークの検出に役立ちます。

いずれかのサーバーが「メイン」サーバーとして任意に選択されます。

  • クライアントは、自身のアドレス(詳細:scriptPubKeysのsha256ハッシュ)をサブスクライブし、 そのアドレスへの新しいトランザクションが通知されるようにします。 また、アドレスの既存の履歴も同期されます。 これはクライアントがサーバーのプライバシーを犠牲にすることを意味します。 何故ならサーバ側はこれらのアドレスがすべて同じ相手であると合理的に推測できるからです。
  • 上記のように、確認されたトランザクションはSPVによって検証されます。
  • サーバーは未確認のトランザクションについて一時的に信頼しています。
  • サーバーは手落ちにより嘘をつくことができます。 つまりクライアントの(確認済み、未確認の両方の)トランザクションについて 忘れることができるということです。
  • メインサーバーは手数料計算にもまた使われ、それをクライアントは信用します。 (クライアントには様々なレイヤの健全性チェックが適用されます)
  • メインサーバーはクライアントが作成したトランザクションをブロードキャストすることにも使われます。
  • サーバーのピアリストはクライアントによって要求され、使用できる他のサーバーを記憶します。 (初期動作のための直接ソースコードに書き込まれたサーバーのリストがクライアントにあります。)

更に、接続されている全てのサーバーがクライアントの IPアドレス(これはプロキシ、VPN、Torのアドレスの場合もあります)を認識します。

上記のようなプライバシー損失を犠牲にして、 迅速な始動時間および低いリソース使用が達成されます。 プロトコルとクライアントは、サーバーの信頼性を最小限に抑えるように設計されています。

誰でもサーバーを動かすことは可能です。 もしプライバシーに強い関心があり、SPVによるセキュリティ保証だけでは不十分な場合は 独自のElectrumサーバーの運用を検討してください。

シードとは何ですか?

シードは秘密鍵を生成するために使用されるランダムなフレーズです。

例:

slim sugar lizard predict state cute awkward asset inform blood civil sugar

あなたのウォレットはシードから完全に復元することができます。 そのためには、インストールウィザードで「I already have a seed(既存のシードを使用する)」オプションを選択してください。

シードはどれくらい安全ですか?

Electrumによって作成されたシードフレーズは132bitのエントロピーを持ちます。つまり、Monacoinの秘密鍵(長さ256bit)と同じレベルの セキュリティを提供します。実際、長さnの楕円曲線キーは、n / 2bitのセキュリティを提供します。

パスワードを忘れてしまいました。何ができるでしょう。

パスワードを復元することはできません。ただし、シードフレーズからウォレットを復元し、新しいパスワードを選ぶことができます。 パスワードとシードの両方がわからなくなった場合、あなたの資金を取り戻す方法はありません。これがシードフレーズを紙に書き留めるようにお願いする理由です。

シードフレーズからウォレットを復元するには、create a new walletを選んだのち、「I already have a seed」を選択してシードフレーズを入力してください。

私のトランザクションが長い間承認されていません。何ができますか?

Monacoinトランザクションはマイナーがブロックチェーンに対してその書き込みを許可した時に「承認」されます。一般に承認スピードはあなたがトランザクションに添付した手数料に依存します。マイナーは最も高い手数料を支払うトランザクションを優先します。

Electrumの最近のバージョンでは、トランザクションに支払う手数料を十分にするために「ダイナミックフィー」を使用しています。この機能はElectrumの最近のバージョンではあらかじめ有効になっています。

未承認のトランザクションを作成してしまった場合、次の操作を実行できます。:

  • しばらく待つ。最終的にはあなたのトランザクションは承認されるかキャンセルされます。これには数日かかることがあります。
  • トランザクション手数料を増やす。これは「置き換え可能な(replaceable)」トランザクションでのみ可能です。このタイプのトランザクションを作成するには、トランザクションを送信する前に、[送信(send)]タブで[Replaceable]をチェックしておく必要があります。[send]タブの[Replaceable]オプションが表示されない場合は、[ツール(Tool)]メニュー> [設定(Preference)] > [手数料(Fee)]タブに移動し、[Propose Replace-By-Fee]を[Always]に設定します。置き換え可能なトランザクションの場合、historyタブの日付列に「Replaceable」と表示されます。交換可能な取引の手数料を増額するには、[履歴(history)]タブのエントリを右クリックし、「手数料を増やす(Increase Fee)」を選択します。適切な料金を設定し、「OK」をクリックします。未署名のトランザクションがウィンドウにポップアップ表示されます。「署名(Sign)」をクリックして「発信(Broadcast)」をクリックします。
  • 「親のための子どもの支払い(Child Pays for Parent)」トランザクションの作成をする。CPFPはその親であるトランザクションのわずかな手数料を補うために高い手数料を支払おうとする新しいトランザクションです。これは資金の受領者によってのみ、またはトランザクションがお釣りアウトプットを場合に送信者が行うことができます。CPFPトランザクションを作成するには、[履歴(history)]タブの未承認のトランザクションを右クリックし[Child pays for parent]を選択します。適切な手数料を設定したら[OK]をクリックします。未署名のトランザクションがウィンドウにポップアップ表示されます。「署名(Sign)」をクリックして「発信(Broadcast)」をクリックします。

Electrumのアドレスを「フリーズ」するとはどういう意味ですか?

アドレスをフリーズすると、そのアドレスの資金はMonacoinの送信に使用されません。フリーズされていないアドレスに十分な資金がない場合、Monacoinは送信できません。

ウォレットはどのように暗号化されていますか?

Electrumは、別々の2つのレベルの暗号化を使用しています。

  • シードと秘密鍵はAES-256-CBCを使用して暗号化されます。秘密鍵は、トランザクションに署名する必要がある短かい間だけ復号されます。このためにはあなたはパスワードを入力する必要があります。これは、保護が必要な情報がコンピュータのメモリ内で暗号化されていない時間を最小限に抑えるために行われます。
  • さらに、ウォレットファイルはWalletファイルはディスク上で暗号化されている可能性があります。暗号化されている場合は、ウォレットを開くためにパスワードを求められます。パスワードはメモリには保持されません。Electrumは非対称暗号化(ECIES)をしているため、ウォレットをディスクに保存する際にパスワードは必要ありません。

ウォレットファイルの暗号化は、バージョン2.8以降ではデフォルトで有効になっています。これはあなたのプライバシーを保護することを目的としていますが、あなたが管理していないウォレットにおいてMonacoinを請求できないようにするためでもあります。

Electrumはコールドウォレットをサポートしていますか?

はい、ref: `Cold Storage <coldstorage>`を参照してください。

他のMonacoinクライアントから秘密鍵をインポートできますか?

Electrum 2.0では、シードを持つウォレット内に秘密鍵をインポートすることはできません。代わりにそれらをスイープするしなくてはなりません。

秘密鍵をスイープせずにインポートしたい場合は、シードを持たない特別なウォレットを作成する必要があります。このためには、新しいウォレットを作成し「復元(restore)」を選択し、シードを入力するか、秘密鍵のリストを入力するか、閲覧専用ウォレットを作成する場合はアドレスのリストを入力します。

_images/import_addresses.png

このウォレットはシードから復元できないため、バックアップする必要があります。

他のMonacoinクライアントから秘密鍵をスイープすることはできますか?

秘密鍵のスイープとは、その秘密鍵が管理しているすべてのMonacoinをあなたのウォレットの既存アドレス宛に送信することを意味します。スイープする秘密鍵はウォレットの一部にはなりません。代わりに、その秘密鍵が管理しているすべてのMonacoinはあなたのウォレットのシードから確定的に生成されたアドレスに対して送信されます。

秘密鍵をスイープするには、「ウォレット(wallet)」メニュー -> 「秘密鍵(Private Key)」 -> 「スイープ(Sweep)」に移動します。適切なフィールドに秘密鍵を入力します。「アドレス(Address)」フィールドは変更しないでください。それは宛先アドレスであり、あなたの既存のelectrumウォレットから選ばれています。「スイープ(Sweep)」をクリックします。「送信(send)」タブに移動するので適切な手数料を設定したらコインをウォレットに送信するために「送信(Send)」をクリックします。

Electrumのデータディレクトリはどこにありますか?

Electrumのデータディレクトリには、Walletファイル、設定ファイル、ログ、ブロックチェーンヘッダーなどが保存されます。

Windowsの場合:

  • 隠しファイルを表示する
  • \Users\YourUserName\AppData\Roaming\Electrum(または%APPDATA%\Electrum)に移動

Macの場合:

  • Finderを開く
  • フォルダに移動し(shift + cmd + G)、~/.electrumと入力

Linuxの場合

  • Homeフォルダ
  • ロケーションに移動して ~/.electrumと入力

ウォレットファイルはどこにありますか?

デフォルトのWalletファイルはdefault_walletと呼ばれ、アプリケーションを最初に実行したときに作成され、/walletsフォルダに格納されています。

デバッグログを有効にするにはどうしたらいいですか?

Linux/Macでは, terminalからElectrumを実行する際に -v オプションを付けることでterminal(stderr)にデバッグログが流れます。 このオプションはWindowsでは動きません。

バージョン3.3.5からはディスク上にログが保存されます。これはWindowsもです。

Qt GUIを使用する場合、「ツール(Tools)」メニュー -> 「設定(Preferences)」 ->「Generalタブ(General Tab)」、「ログをファイルに書き込む(Write logs to file)」のチェックを入れます。Electrumの再起動後、デバッグログが /logs フォルダーに書き込まれるようになります。

Electrumで一括支払いができますか?

複数の出力を持つトランザクションを作成することができます。GUIでは各アドレスとその送信額を1行に、カンマで区切ることで入力します。

_images/paytomany.png

金額(Amount)は現在クライアントに設定されている単位で指定します。合計がGUIに表示されます。

また、フォルダアイコンをクリックして[支払(Pay to)]フィールドにCSVファイルをインポートすることもできます。

Electrumは生のトランザクションを作成して署名することはできますか?

Electrumでは、フォームを使用してユーザーインターフェイスから生のトランザクションを作成し署名することができます。

Monacoinを送信しようとするとElectrumがフリーズします。

これは多数のトランザクションアウトプットを費やそうとしている場合(たとえばMonacoinのfaucetから数百もの寄付を集めた場合など)に発生する可能性があります。Monacoinを送信する際に、Electrumは新しいトランザクションを作成するためにウォレット内にある未使用のコインを探します。未使用のコインは、物理的な効果や紙幣と同じように異なった数値を持つことができます。

このような場合は、ウォレットアドレスの1つに少量のMonacoinを送信してトランザクションインプットを統合する必要があります。これはたくさんの5セント硬貨のを1ドル紙幣と交換するのと同じです。

gap limitとは何ですか?

gap limitとは決定性を持つ一連のアドレスのうち連続して使用されていないアドレスの最大数です。アドレスをどこまで検索したのち停止するかを決めるためにElectrumはこれを使用しています。Electrum 2.0では、デフォルトで20に設定されているので、クライアントは20の未使用アドレスが見つかるまですべてのアドレスを取得します。

新しいアドレスを事前に生成するにはどうすればよいですか?

Electrumは、あなたが`gap limit`に達するまで、新しいアドレスを生成してそれらを使用します。

さらに多くのアドレスを事前に生成する必要がある場合は、コンソールにwallet.create_new_address(False)と入力してアドレスを事前に生成することができます。このコマンドは新しいアドレスを1つ生成します。アドレスは、「アドレス(Address)」タブに赤い背景で表示され、gap limitを超えていることを表します。gapが埋まるまで赤色のままです。

警告:gap limitを超えたアドレスは自動的にはシードから回復されません。回復するには、クライアントのgap limitを増やすか、使用されたアドレスが見つかるまで新しいアドレスを生成する必要があります。

複数のアドレスを生成する場合は"for"ループを使用できます。たとえば50個のアドレスを生成する場合には次のようにします。

[wallet.create_new_address(False) for i in range(50)]

Electrumをアップグレードするには?

警告:警告:アップグレードを実行する前に、必ず紙にウォレットのシードを保存してください。

Electrumをアップグレードするには、単に最新バージョンをインストールするだけです。方法はお使いのOSによって異なります。

ウォレットファイルはソフトウェアとは別に保管されるため、OSが行わない場合には自分自身でソフトウェアの古いバージョンを安全に削除できます。

一部のElectrumアップグレードでは、ウォレットファイルの形式が変更されます。

このため、一度新しいバージョンでウォレットファイルを開いてからElectrumを古いバージョンにダウングレードすることはお勧めしません。古いバージョンでは新しいウォレットファイルを常に読み取ることができるとは限りません。

Electrum 1.xのWalletをElectrum 2.xにアップグレードするときは、次の点を考慮する必要があります。

  • Electrum 2.xでは、アップグレード処理中にすべてのアドレスを再生成する必要があります。Electrumが準備完了するまで待ってください。またその際には通常より少し多く時間がかかると考えてください。
  • ウォレットファイルの中身はElectrum2ウォレットに置き換えられます。これは一度アップグレードが完了すると、Electrum 1.xはウォレットを使用できなくなることを意味します。
  • 始めてElectrum2を起動したときは「アドレス(Addresses)」タブにはアドレスは表示されません。これは想定された動作です。アップグレードが完了したらElectrum2を再起動してください。そうすればアドレスは利用可能になります。
  • Electrumのオフラインコピーには、ネットワークと同期できないためアドレスはまったく表示されません。コンソールに次のように入力すると、少数のアドレスをオフライン生成するように強制できます。:wallet.synchronize() 完了したらElectrumを再起動してください、するとあなたのアドレスが再び利用可能になります。

アンチウィルスソフトがElectrumをマルウェアと認識しました!

Electrumバイナリはしばしばアンチウィルスソフトによってマルウェアと認識されます。 私たちにできることは何もないので、報告するのはやめてください。 アンチウイルスソフトは、プログラムがマルウェアかどうかを判断するためにヒューリスティクスを使用します。 これにより、誤検出が発生することがよくあります。

プロジェクトの開発者を信頼できる場合は、 ElectrumバイナリのGPG署名を確認し、ウイルス対策の警告を無視しても問題ありません。

最後に、マルウェアが本当に心配な場合は、 アンチウイルスソフトに依存するオペレーティングシステムを使用しないでください。

Electrumには最新のPythonが必要ですが、私が使っているLinuxディストリビューションはまだ対応していません。どうするべきですか?

これはいくつかの方法で解決可能です。

  1. 私たちが配布しているAppImageを使う。 これは依存している全てのものを含んだ自己解凍型バイナリです。 現在、このバイナリはx86_64(amd64)アーキテクチャ用にのみ配布されています。 ダウンロードして(GPG sigの確認)実行可能にして実行するだけです。 E.g.:

    wget https://download.electrum.org/3.3.4/electrum-3.3.4-x86_64.AppImage
    chmod +x electrum-3.3.4-x86_64.AppImage
    ./electrum-3.3.4-x86_64.AppImage
    
  2. backportsを使う (e.g. Debianでは stable-backports にあるパッケージをチェックしてください)

  3. ディストリビューションをアップグレードする (e.g. 安定版ではなくDebianのテスト版を使う)

  4. 自分でPythonをコンパイルし、pip(配布用のパッケージ・マネージャーには、 それによってパッケージ化されるバージョンのPython用のPyQt5しかないため)を 使用してpyqt5をインストールします。

    python3 -m pip install --user pyqt5
    

    (残念なことに pip の pyqt5 は x86/x86_64 にしかありません。 arch等では、 Qt/PyQt を自分でビルドする必要があるかもしれません。)

  5. より新しいパッケージを持つ別のLinuxディストリビューションを実行する仮想マシンを使用します。

自分でサーバーを動かすかもしれません。クライアント/サーバ接続は認証されていますか。

Electrumは、エンドポイントがElectrumプロトコルを介するクライアントサーバーアーキテクチャを使用します。 ElectrumプロトコルはJSON-RPCベースです。 クライアントがサポートする2つの主なスタックは次のとおりです。

  1. JSON-RPC over SSL/TLS over TCP
  2. JSON-RPC over TCP

どちらのオプションもHTTPを使用しないことに注意してください。

クライアントは、SSL(平文TCPは使われない)を介してのみサーバーに接続します。 Electrum 3.1より前は、これを切り替えるためのチェックボックスがGUIにありましたが、削除されました。

認証に関しては、クライアントはCA署名証明書と自己署名SSL証明書の両方を受け入れます。 サーバに最初に接続するときに、そのサーバーがCA署名または自己署名のどちらの証明書を使用しているかを示します。

  • 自己署名されている場合は、そのサーバー(TOFU)の有効期限が切れるまで、その証明書だけを受け付けます。
  • もしそれがCA署名されているなら、それは永久にそのサーバのCA署名証明書だけを受け入れるでしょう。

サーバーを構築するうえで、CA署名証明書と自己署名証明書の両方に利点があります。

  • 自己署名証明書では、クライアントがTOFUを使用しているため、 最初の接続中にman-in-the-middleが発生する可能性があります。
  • CA署名証明書を使用する場合は、証明機関を信頼する必要があります。