はじめに
ブロックチェーン、なんだか難しそうな響きです。
ここは一つ、ブラウザでサクっとコイン1を作ってみましょう。
この記事ではコインの作成から確認までを行います。
コードはコピペ!
ここではICOでよく使われるコインの規格、イーサリアムのERC20に則ったコインを作ります。
作成にはプログラミングが必要ですが、自分で書くのが面倒なので他のコインからコピペしましょう。
今回は私が作成したコインからコードをコピペします。
Etherscan Token Trackerで検索しAnoCoinのページを開きます。
右上の"Contract Address"からプログラムのページに飛びContract Sourceを参照し"Contract Creation Code"をコピーしておきます。
これでコインのプログラムが手に入りました。
ちょっと寄り道: コインのコピー
これはつまり、「既にあるコインとプログラムは同じだがアドレスが違うコイン」は簡単に作れるということでもあります(著作権など法律上の制約はあります)。そもそもアドレスが違ったら、それに紐づくトランザクションや内包するデータも違うので別物じゃんとはなるのですが、面白くないですか。
更に言うと、ICOで使われるようなコインは信用を得るために、コインのソースコードを公開しているものが多いです。ソースコードは公開されて無くとも、バイトコードはブロックチェーン上に必ず乗ります(非公式のデコンパイラなども一応あったりします)。
もちろん攻撃は発生しており、コインに入ってるイーサリアムを引き出されたり、誰にも扱えないイーサリアムが出てきたりと、クラッカーの格好の餌食になっています。末尾に参考書籍を載せているので、気になる方は見てみると面白いです。
コインを作成!
コインの作成には手数料(イーサリアム)が必要です。これはどうにかして用意してください。2
使用するイーサリアムのネットワークは、本番環境でもテスト環境でも構いません。ここでは本番環境を使います。3
MyEtherWalletにアクセスし"契約を展開"をクリックしてください。そして先程のプログラムをペーストしてください。
手数料の入ったお財布(ウォレット)を開きましょう4。すると「トランザクションに署名」というボタンが表示されるのでこれをクリックしてください。その後「契約を展開」というボタンが表示されるので、これもクリックです。
確認が表示されますが「はい」を押して下さい。
コインのデプロイが開始されました。すかさず、Contract Addressをクリックしてください。
少し待ってからページを更新すると、上記のようにToの欄に"Contract Creation"と入っているTransactionが表示されます。
これでコインの作成が完了しましした!
プログラムのアドレスである"Contract Address"は後に使うのでメモしておいてください。
コインの確認!
MyEtherWalletでお財布を開いてください。
右下の"トークン残高"で"カスタムトークンを追加"をクリックし、"Token Contract アドレス"にさっきメモした貴方のプログラムのアドレスを、"トークンシンボル"に"ANO"を"ケタ数"に"18"と入力し、"保存する"をクリックしてください。
貴方の付与したコインが表示されました!
このコインは他のコインと同じく、他人に送りつける5ことも可能です。
YES!
おわりに
こうやってコインを作ってみると、なんだかブロックチェーンを身近に感じられませんか?
しかもコインのソースコードが公開されていて、コピペでコインを作成できるとなると、いろいろ想像が膨らんできます。
コインのセキュリティの部分に興味を持った方は「堅牢なスマートコントラクト開発のためのブロックチェーン[技術]入門」」という良い本が最近発売されたので、こちらを読んでみると楽しめると思います。
この記事より少し丁寧に、かつ一から自分で作ってみたいという方は、私たちが今度発売する合同誌「MISO SKILLS」が参考になるかもです(参照: C93にて技術書を頒布します!)。Boothでも発売予定なので、お知らせが欲しい方はこちらでご登録ください ( _ _)
貴方にブロックチェーンのご加護があらんことを……
-
用語としてはトークンが正しいのではとか、以降でプログラムと書いてるのはコントラクトでしょとかあるとは思うのですが、一般向け同人誌のノリをそのまま引き継いで書いているので、そこらへんの正確性には目をつむっています。 ↩
-
テスト環境 (Ropsten Revival) だとMetaMask Ether Faucetやらあるので、無料で試せます。 ↩
-
高騰しているのですが、このテーマの文章を書くにあたって少しだけですが買っておいたのが功を奏しました。よかったですね。ちなみに本番環境を使うのは、コインを作ったと胸を張って言えるからという小さな理由です(テスト環境の説明をするのが面倒なだけとも言う)。 ↩
-
ICOではよくMyEtherWalletを使って付与したコインを確認してもらうため方法はぐぐれば出てきますが、末尾で紹介している私の同人誌で懇切丁寧に説明もしています(宣伝)。 ↩
-
ちなみ技術的にはコインは送られておらず、コインに実装したプログラムを使って数字の足し引きをしているだけです。 ↩