https://medium.com/feed/milkomeda%E6%97%A5%E6%9C%AC
top of page

Rekey(リキー、再キー化、鍵の付け替え・再生成)に関して



Rekey(リキー、再キー化、鍵の付け替え・再生成)に関して、いまいち理解できていない方々からの問い合わせが多数ありますので、噛み砕いて説明します。


基本的なポイント

1)「アカウント」は「公開鍵(いわゆるアドレス:Algoなどを受信するための長い文字列)」と「秘密鍵(25語のニーモニックフレーズ)」からなる。

2)アカウントを操作(アクセス)出来るのは「秘密鍵」を知っている人のみ。

3)「ウォレット」はこれら「アカウント」にアクセスするためのインターフェイスにすぎず、「秘密鍵」があれば複数のウォレットや異なる種類のウォレットに「同一のアカウント」を登録し利用できる。

4)ウォレットにアクセスするためのいわゆる「パスワード」や「顔認識(Face ID)」などは各スマホやブラウザで設定するもので、ブロックチェーンやアカウントには関係ない。

5)秘密鍵があれば、スマホからでもブラウザからでもそのアカウントを登録してアクセスできる。


以上を踏まえた上で、MyAlgoで起きたケースでは、

1)「MyAlgoで作成したアカウント」及び、「他のウォレットで作成したもののMyAlgoにインポートして使ったことがあるアカウント」の両方の秘密鍵が犯人の手元にある。つまり秘密鍵(25語のニーモニックフレーズ)が犯人に知られてしまっている。

2)秘密鍵を知っている人(=犯人)はアカウントにアクセスし、その中にある資産(AlgoのみではなくNFTなども含めて全て)を動かせる。

3)犯人に資産を動かせなくするためには、a) 資産を上記1)に当てはまらないアカウント(秘密鍵が犯人に知られていないアカウント)に移す、b) 秘密鍵が犯人に知られていないアカウントに「リキー」する、必要がある。


ここで改めて「リキー」の役目とは、

1)アカウントA(秘密鍵が犯人に知られている)の管理権限をアカウントB(秘密鍵が犯人に知られていない)に移管すること

2)言い換えると、アカウントBの秘密鍵(=犯人に知られていない)でアカウントAを管理する設定にすることで、アカウントAの秘密鍵を無効にすること(=犯人はアカウントAにアクセスできなくなる)


さらに仕組みとしては、

1)アカウントBの秘密鍵は、アカウントA及びBの2つの管理権限を持つことになる。

2)これを機能させるためには、同一ウォレット内にアカウントAとBの両方が登録されている必要がある。


ですので、

1)MyAlgoからアカウントを削除してなんの解決にもならない

  ⇒ニーモニックフレーズがあれば犯人はどのウォレットからでもアカウントにアクセスできてしまう。

2)MyAlgoのアカウントをPeraウォレットなどに移しただけではなんの解決にもならない

  ⇒1)と同様の理由

3)MyAlgoを利用したことのないPeraウォレットのアカウントをリキーする必要はない

  ⇒そもそも秘密鍵が犯人に知られていない


要するに、

MyAlgoで利用したことのあるアカウントの秘密鍵はすべて犯人に知られているという認識のもとで、その秘密鍵を無効にするために「MyAlgoで利用したことのないアカウント」の秘密鍵で管理するようにすることが本件に係る「リキー」の約目です。


ただし、一般的には「MyAlgoで利用したことのないアカウント」に資産を移すだけで問題なありません。

そうせずに「リキー」する理由は、

1)ガバナンスに参加していた場合、資産を移すと資格を失うので、そのアカウントの残高は変更したくない

2)Algo以外に多くのトークンをオプトインして保管しているので、移すのがたいへん

3)そのアカウントで流動性提供などDeFiにポジションを持っているので、そのままにしておきたい

4)クリエイターとしてそのアカウントでNFTを発行しているので、変更が難しい

5)その他の理由で、そのアカウントのアドレスを維持しておきたい

などがあります。

これらに当てはまらない場合は、「リキー」ではなく安全なアカウントに資産を移すだけのほうが効率的に問題解決となります。


そもそも「リキー」機能があるのは、たとえば組織でアカウントを運用する場合、担当者が代わる(部署異動や転職など)際に、外部からの支払先として利用している「公開鍵(送金先アドレス)」をそのままにして「秘密鍵」を変更する必要性が生じるというケースを想定したものです。これにより、前の担当者がそのアカウントにアクセスできなくするとともに、そのアカウントへの送金はこれまで通り行えるようにすることで、運用の効率性を確保しています。


以上で、だいたい理解できたと思いますが、いかがでしょうか?

一般的な、たとえばメールやサイトへのログインのためのパスワード変更などとはちょっと仕組みが違うので、わかりにくい点はありますが、役目を理解すれば腑に落ちると思います。



bottom of page