メインコンテンツへスキップ

Rubyで新しいイーサリアムアドレスを生成する方法

更新日:
2025年11月26日

読了時間:4分

概要

Webアプリケーションでの利用が広く、構文もシンプルなRubyは、非常に多くの人々に利用されています。このガイドでは、ruby-ethgem/パッケージを使用して、Rubyでイーサリアムアドレスを作成する方法について解説します。

前提条件

  • お使いのシステムにRubyがインストールされていること(Ruby 2.x 以上)
  • Ruby環境マネージャー (RBEnv)
  • テキストエディタ

イーサリアムアドレスとは何ですか?

インターネット上のどのプラットフォームにログインする際も、認証情報を使って本人確認を行う必要があります。イーサリアムアドレスをユーザー名、それに対応する秘密鍵をパスワードと見なしてください。イーサリアムアドレスは公開されており、他人と共有することも可能ですが、秘密鍵は常に秘密にしておく必要があります。この組み合わせを使用することで、イーサリアムブロックチェーンとやり取りを行うことができます。 イーサリアムアドレスはブロックチェーン上でのあなたのIDであり、次のような形式になります。「0x6E0d01A76C3Cf4288372a29124A26D4353EE51BE」。有効なイーサリアムアドレスは、以下の目的で必要となります:

  • イーサリアムの送受信
  • 取引の署名・送信
  • 分散型アプリケーションへの接続

イーサリアムアドレスの生成方法:

  • まず、64文字(16進数)のランダムな秘密鍵(256ビット/32バイト)が生成されます。
    例:
0xf4a2b939592564feb35ab10a8e04f6f2fe0943579fb3c9c33505298978b74893
  • その後、生成された秘密鍵を用いて、楕円曲線デジタル署名アルゴリズム(ECDSA)により、128(16進数)文字(64バイト)の公開鍵が導出されます。
    例:
0x04345f1a86ebf24a6dbeff80f6a2a574d46efaa3ad3988de94aa68b695f09db9ddca37439f99548da0a1fe4acf4721a945a599a5d789c18a06b20349e803fdbbe
  • 次に、公開鍵(128文字/64バイト)にKeccak-256ハッシュ関数を適用し、64文字(32バイト)のハッシュ文字列を生成します。この文字列の最後の40文字/20バイトに0xを接頭辞として付加したものが、最終的なイーサリアムアドレスとなります。
    例:
0xd5e099c71b797516c10ed0f0d895f429c2781142

:コーディングにおける「0x」は、その数値または文字列が16進数で表記されていることを示します。

Rubyとは何ですか?

Rubyは、オープンソースのインタプリタ型高水準言語です。Rubyは、松本行弘(通称「Matz」)氏のお気に入りの言語であるPerl、Smalltalk、Eiffel、Ada、Lispを融合させて作られました。Rubyは完全にオブジェクト指向であり、整数のような最も基本的なデータ型でさえ、メソッドやインスタンス変数を備えています。これにより、メソッドチェーンが可能となり、多くのコード行を1行にまとめることができます。 RubyのフレームワークであるRuby on Railsは、この言語がWebプログラミング分野で人気を博す一助となりました。その最大の魅力は、プログラマーがファイルの作成に多くの時間を費やす必要がない点にあります。

イーサリアムアドレスを作成するという目標を達成するために、ruby-eth という Ruby Gem を使用します。

ruby-ethとは何ですか?

Ruby-ethは、トランザクションの署名や鍵の生成を支援するライブラリです。Ruby-ethを使用すれば、任意のノードを利用してイーサリアムのトランザクションを作成・送信することができます。このgemにより、鍵とノードを分離することが可能です。Rubyを実行できる環境であればどこでもトランザクションに署名し、鍵を管理でき、任意のノードのエンドポイントを通じてトランザクションを送信できます。

依存関係のインストール

gem をインストールする前に、Ruby がインストールされていることを確認しましょう。ターミナルを開き、次のコマンドを実行してください:

$ ruby -v

Linux/UNIXの場合:こちらのガイドに従って、お使いのディストリビューションのパッケージ管理システムを利用するか、rbenvRVM などのサードパーティ製ツールを使用することができます。

macOSの場合:rbenvRVM などのサードパーティ製ツールを使用できます。

Windowsの場合:RubyInstallerを使用できます。

このプロジェクトでは、rbenvを使って Ruby のバージョンを管理します。まず、rbenv がインストールされているかどうかを確認するには、次のように入力してください:

$ rbenv -v

これにより、お使いのシステムにインストールされている rbenv の現在のバージョンが表示されるはずです。表示されない場合は、こちらの情報を参照してダウンロードしてください。その後、ターミナルを開き、以下のコマンドを入力して、そのディレクトリで特定の Ruby バージョンを有効にしてください。

$ rbenv install 2.6.5
$ rbenv local 2.6.5

Rubyがインストールされており、正しいバージョン(この場合は2.6.5)であることを確認したら、次に必要なgemをインストールしましょう。RubyのパッケージマネージャーであるRubyGemsを使用して、コマンドラインからインストールできます:

$ gem install eth

macOS をお使いの場合、gem のインストール中に権限関連の問題が発生することがあります。これは、macOS に標準で付属する Ruby のバージョンが通常、Apple 独自の用途向けであるためです。そのため、rbenvRVM(Ruby Version Manager)を使用して別の Ruby バージョンを管理することをお勧めします。これにより、ホームディレクトリ内のサンドボックスに Ruby がインストールされるため、システムの Ruby を破損する心配なく変更を加えることができます。 

イーサリアムアドレスの生成。

テキストエディタを開き、新しいRubyファイル「address.rb」を作成して、以下のコードをコピーして貼り付けてください。

require "eth"
key = Eth::Key.new
key.public_hex
puts "SAVE BUT DO NOT SHARE THIS (Private Key): 0x#{key.private_hex}"
puts "Address: #{key.address}"

上記のコードの説明

1行目:eth gem/パッケージをインポートします。

2行目:Ethオブジェクトをインスタンス化し、新しいキーを作成して、それをkey変数に格納します。

3行目:public_hex メソッドを使用して、key から16進数の公開鍵を生成します。

4行目:private_key メソッドを使用して key から16進数の秘密鍵を生成し、その先頭に 0x を付加します。その後、警告メッセージを添えてそれを出力します。

5行目:アドレスを生成し、「Address:」という文字列とともに表示する

ファイルを保存し、以下の手順で実行してください。

$ ruby address.rb

すべてが順調に進み、コードが正常に実行されれば、次のような表示になるはずです。

結論

おめでとうございます。これで、あなた専用のイーサリアムアドレスが取得できました。このアドレスを使って、トランザクションへの署名や送信、イーサリアムネットワークとのやり取りを行うことができます。Ruby(ethereum.rb)を使ってイーサリアムに接続する方法に関するガイドをご覧ください。

イーサリアムに関する記事やガイドをもっと読みたい方は、ぜひニュースレターにご登録ください。ご意見やご感想がございましたら、Twitterからお気軽にお寄せください。また、Discordコミュニティサーバーでは、これまで出会った中で最もクールな開発者たちが集まっていますので、いつでもお気軽にチャットで交流してください :)

このガイドをシェアする