コピペとブラウザ"だけ"で作る、イーサリアムの仮想通貨

## はじめに
ブロックチェーン、なんだか難しそうな響きです。

ここは一つ、ブラウザでサクっとコイン[^99]を作ってみましょう。

[^99]: 用語としてはトークンが正しいのではとか、以降でプログラムと書いてるのはコントラクトでしょとかあるとは思うのですが、一般向け同人誌のノリをそのまま引き継いで書いているので、そこらへんの正確性には目をつむっています。

この記事ではコインの作成から確認までを行います。

## コードはコピペ！
ここではICOでよく使われるコインの規格、イーサリアムのERC20に則ったコインを作ります。

作成にはプログラミングが必要ですが、自分で書くのが面倒なので他のコインからコピペしましょう。

<img width="780" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/18606/8dde3b97-ab67-e29b-67c2-f4d26b4da822.png">

今回は私が作成したコインからコードをコピペします。

[Etherscan Token Tracker](https://etherscan.io/tokens)で検索し[AnoCoinのページ](https://etherscan.io/token/0xb5cda9ee65fff807dde105df34ab8e771c0d1ed8)を開きます。

<img width="930" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/18606/1aa87984-0c62-8772-018f-7cb8a06d0b24.png">

右上の"Contract Address"からプログラムのページに飛び[Contract Source](https://etherscan.io/address/0xb5cda9ee65fff807dde105df34ab8e771c0d1ed8#code)を参照し"Contract Creation Code"をコピーしておきます。

これでコインのプログラムが手に入りました。

### ちょっと寄り道: コインのコピー
これはつまり、「既にあるコインとプログラムは同じだがアドレスが違うコイン」は簡単に作れるということでもあります（著作権など法律上の制約はあります）。そもそもアドレスが違ったら、それに紐づくトランザクションや内包するデータも違うので別物じゃんとはなるのですが、面白くないですか。

更に言うと、ICOで使われるようなコインは信用を得るために、コインのソースコードを公開しているものが多いです。ソースコードは公開されて無くとも、バイトコードはブロックチェーン上に必ず乗ります（非公式のデコンパイラなども一応あったりします）。
もちろん攻撃は発生しており、コインに入ってるイーサリアムを引き出されたり、誰にも扱えないイーサリアムが出てきたりと、クラッカーの格好の餌食になっています。末尾に参考書籍を載せているので、気になる方は見てみると面白いです。

## コインを作成！
コインの作成には手数料（イーサリアム）が必要です。これはどうにかして用意してください。[^1]

[^1]: テスト環境 (Ropsten Revival) だと[MetaMask Ether Faucet](https://faucet.metamask.io/)やらあるので、無料で試せます。

使用するイーサリアムのネットワークは、本番環境でもテスト環境でも構いません。ここでは本番環境を使います。[^11]

[^11]: 高騰しているのですが、このテーマの文章を書くにあたって少しだけですが買っておいたのが功を奏しました。よかったですね。ちなみに本番環境を使うのは、コインを作ったと胸を張って言えるからという小さな理由です（テスト環境の説明をするのが面倒なだけとも言う）。

<img width="1031" alt="スクリーンショット 2017-12-13 15.31.53.png" src="https://qiita-image-store.s3.amazonaws.com/0/18606/550ef296-8b08-b98c-5c94-656cb4354506.png">

[MyEtherWallet](https://www.myetherwallet.com/#contracts)にアクセスし"契約を展開"をクリックしてください。そして先程のプログラムをペーストしてください。

<img width="1025" alt="スクリーンショット 2017-12-13 15.31.08.png" src="https://qiita-image-store.s3.amazonaws.com/0/18606/b7cfa47f-9942-3a2d-da26-fa01cf35e0cd.png">

手数料の入ったお財布（ウォレット）を開きましょう[^55]。すると「トランザクションに署名」というボタンが表示されるのでこれをクリックしてください。その後「契約を展開」というボタンが表示されるので、これもクリックです。

[^55]: ICOではよくMyEtherWalletを使って付与したコインを確認してもらうため方法はぐぐれば出てきますが、末尾で紹介している私の同人誌で懇切丁寧に説明もしています（宣伝）。

<img width="493" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/18606/d7b22824-f7d2-3035-872b-3fe660d27b17.png">

確認が表示されますが「はい」を押して下さい。

<img width="1022" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/18606/49c9c9cf-ddf3-14a2-3103-efdb2bbc115a.png">

コインのデプロイが開始されました。すかさず、Contract Addressをクリックしてください。

<img width="1173" alt="スクリーンショット 2017-12-14 18.59.53.png" src="https://qiita-image-store.s3.amazonaws.com/0/18606/679178c8-091a-0c66-1da7-75bce983ebef.png">

少し待ってからページを更新すると、上記のようにToの欄に"Contract Creation"と入っているTransactionが表示されます。

これでコインの作成が完了しましした！

プログラムのアドレスである"Contract Address"は後に使うのでメモしておいてください。

## コインの確認！
[MyEtherWallet](https://www.myetherwallet.com/#view-wallet-info)でお財布を開いてください。

<img width="422" alt="スクリーンショット 2017-12-14 19.02.44.png" src="https://qiita-image-store.s3.amazonaws.com/0/18606/eef8d82d-9051-9c94-6f60-7dda35f091de.png">

右下の"トークン残高"で"カスタムトークンを追加"をクリックし、"Token Contract アドレス"にさっきメモした貴方のプログラムのアドレスを、"トークンシンボル"に"ANO"を"ケタ数"に"18"と入力し、"保存する"をクリックしてください。

<img width="423" alt="スクリーンショット 2017-12-14 19.03.46.png" src="https://qiita-image-store.s3.amazonaws.com/0/18606/3ef16858-d1ab-66b8-9b66-d0480302efda.png">

貴方の付与したコインが表示されました！

このコインは他のコインと同じく、他人に送りつける[^88]ことも可能です。

[^88]: ちなみ技術的にはコインは送られておらず、コインに実装したプログラムを使って数字の足し引きをしているだけです。

<img width="568" alt="スクリーンショット 2017-12-14 19.10.17.png" src="https://qiita-image-store.s3.amazonaws.com/0/18606/b392853c-64da-1899-c7e1-e161ec7c9e00.png">


YES!

## おわりに
こうやってコインを作ってみると、なんだかブロックチェーンを身近に感じられませんか？

しかもコインのソースコードが公開されていて、コピペでコインを作成できるとなると、いろいろ想像が膨らんできます。

コインのセキュリティの部分に興味を持った方は「[堅牢なスマートコントラクト開発のためのブロックチェーン［技術］入門」](http://gihyo.jp/book/2017/978-4-7741-9353-3)」という良い本が最近発売されたので、こちらを読んでみると楽しめると思います。

この記事より少し丁寧に、かつ一から自分で作ってみたいという方は、私たちが今度発売する合同誌「MISO SKILLS」が参考になるかもです（参照: [C93にて技術書を頒布します！](https://medium.com/@henteko07/miso-lab-c93-pre-89d0ca5dfb25)）。Boothでも発売予定なので、お知らせが欲しい方は[こちら](https://mailchi.mp/6ed365c6481a/miso-lab-c93)でご登録ください ( _ _)

貴方にブロックチェーンのご加護があらんことを……