LedgerからZECを送金できないエラーの直し方

Ledger から ZEC(Zcash)を送金しようとすると「getVarint called with unexpected parameters」というエラーが出る問題は、対応するZcashのトランザクションバージョンにLedger Liveが未対応なために起こる。ZecWallet Lite など別のソフトウェアウォレットをLedgerと組み合わせれば、秘密鍵はデバイスに保管したまま送金できる。

Ledger からZECが送れない原因

Ledger からZECが送れない原因

このエラーは、Zcashネットワークで使われる新しいトランザクションフォーマット(バージョン4や5)をLedger Live側が適切に解釈できないときに発生する。とくにシールド取引やNU5アップグレード以降の取引で表面化しやすい。

Ledger デバイス自体やZcashアプリは常に最新のトランザクション形式を認識できるが、Ledger Live のZcash統合部分がそれに追いついていない。そのため互換性の不備が生じ、送金時に「getVarint」という内部データ処理のエラーを引き起こす。

要は、Ledger LiveがZcashの最新の取引書式を読めず、変数読み取りに失敗している状態だ。デバイスの故障やアカウントの不具合ではなく、ソフトウェア側の対応待ち問題と理解してよい。

ZecWallet Lite を使ってLedgerからZECを送金する

ZecWallet Lite を使ってLedgerからZECを送金する

最も確実な回避策は、Zcashのトランザクション全バージョンに対応している外部ウォレットにLedgerを接続し、そこから送金を行うことだ。ZecWallet Lite(旧ZecWallet)はオープンソースでLedgerとの親和性も高く、多くのユーザーがこの問題を解決している。

あくまでも秘密鍵はLedger内に保持される。ZecWallet Lite はウォレットを操作するインターフェースとして動くだけなので、新たにシードフレーズを入力する必要は一切ない。セキュリティを落とさずに問題を回避できる。

LedgerをZecWallet Liteに接続する手順

  1. 公式サイトからZecWallet Liteをダウンロードし、インストールする。
  2. Ledger Nano S / XをPCに接続し、デバイスでZcashアプリを開く。
  3. ZecWallet Liteを起動し、「ハードウェアウォレットを使う」または「Ledgerに接続」を選択する。
  4. デバイス上のZcashアプリが自動で認識され、ウォレットが読み込まれる。

実際に送金する流れ

ウォレットが表示されたら、送金タブから送金先アドレスと数量を入力し、手数料を確認する。送金ボタンを押すとLedgerデバイス上で取引内容が表示されるので、正しいアドレス・金額であることを確認して承認ボタンを押す。

ZecWallet Liteは最新のトランザクションバージョンで署名を行うため、getVarintエラーは発生せず、数十秒から数分でネットワークに伝わる。取引状況はZcashのブロックエクスプローラーで確認できる。

エラーが解消しない場合の追加確認

まれに、Ledger Live側でZcashアカウントが正しく同期されておらず、残高が反映されないケースがある。その場合はZecWallet Liteでも残高が見えないことがあるため、まずはLedgerのZcashアプリとファームウェアを最新に更新し、ZecWallet Lite上で「再スキャン」や「ブロックチェーンの再同期」を試す。

それでも送金できないときは、送金先アドレスの形式を確認する。Zcashには透過アドレス(tアドレス)とシールドアドレス(zアドレス)があるが、一部のサービスではシールドアドレスへの直接送金を受け付けないことがある。その場合はいったん自分の透過アドレスに送金し、そこから先方のアドレスへ送るなどの工夫が必要になる。

また、Ledger Live本体のキャッシュが原因でエラーが出ることもあるため、アプリを完全に終了しPCを再起動した上でZecWallet Liteのみを使う環境を作ると、問題が再現しにくくなる。

よくある質問

ZecWallet Liteを使っても安全か

安全だ。秘密鍵はLedgerデバイス内に留まり、ZecWallet Liteは公開鍵情報を読み取るだけ。取引の署名も必ずLedger上の物理ボタンで承認するため、PCがマルウェアに感染していても秘密鍵が漏れることはない。

エラーが出るのは自分の環境だけか

広く報告されている既知の問題であり、特に2022年のNU5アップグレード以後にZcashを使っているユーザーの間で散見される。Ledgerのフォーラムでも度々話題になっており、自分のアカウントやデバイス固有の不具合ではない。

別のウォレットを使わずに待っていれば直るか

将来的にLedger Liveがアップデートされれば解決する可能性はあるが、具体的な修正時期は明らかにされていない。急ぎの送金があるならZecWallet Liteを利用するのが現実的だ。

他の暗号資産でも似たエラーは出るか

getVarintエラーはZcashのトランザクション解析に特有のものだ。ただ、Ledger Liveが対応しきれていないブロックチェーンのアップグレードで同種のエラーが発生することはあり得る。

この記事のポイント

  • エラーの原因はZcashの新しいトランザクション形式にLedger Liveが未対応なため
  • ZecWallet Liteなどの外部ウォレットにLedgerを接続すれば秘密鍵は保護されたまま送金できる
  • デバイスのZcashアプリとファームウェアを最新にしておくことが前提
  • 送金先のアドレス形式にも注意し、必要なら透過アドレスを経由する
  • 修正を待つよりも、今すぐ送金したいなら本記事の手順で回避できる
共有:

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)