スマートコントラクトの中身を確認する方法を調べてみた
スマートコントラクトの契約内容を確認したいと思ったんですが方法がわかりませんでした。
[スマートコントラクト 内容確認]などとgoogle先生に聞いてみてもヒットしません。[スマートコントラクトとは]みたいなサイトばかりヒットします。
なので地道に色々と調べてみました。
スマートコントラクトとは
いろんな定義があって混乱しているようです。
スマートコントラクトとは何か? Smart Contractの定義 - Qiita
ここでは以下の解釈で話を進めます。
- BitcoinはBTCという仮想通貨を送信することができる
- 全ての送信履歴は10分ごとにブロックに記録され、それが連なっていく(チェーン)
- 履歴の内容は[AさんからBさんにxBTCを送った]というようなもの
- スマートコントラクト = 上記の仕組みに契約(または合意)を付与したもの、またはその契約内容
- 契約内容はブロックに記録されており、誰でも確認する事ができる
ICOに見るスマートコントラクト
ICOとは、Initial Coin Offeringの略称であり、新たに仮想通貨(暗号通貨)を発行し、それを世界中の投資家に向けて販売することで資金調達を行うものだ。クラウドファンディングの新たな形態とも言える。
ALISのICOに参加する方法をすっごくカンタンに言うと、以下のようになります。
- ERC20準拠のウォレットからALIS発行者へ(直接)イーサリアム(ETH)を送信する
- 条件に合致すればすぐにALISトークンが送り返されてくる
この条件とは[ICO受付時間中である事]と[ICO申し込み総数が上限に達していない]というくらい。
[ERC20準拠のウォレット]でなければトークンを自動で送り返す機能が実行されない。
つまりこの[条件]に合致すれば[トークンを送り返す]という[契約]が実装されており、それがスマートコントラクトという技術で実現されている。
Solidity
Solidityとはイーサリアムのスマートコントラクトを実装するためのプログラム言語です。
この言語で契約内容が記されています。
なぜ契約内容をプログラム言語で書く必要があるのでしょうか。
これは僕の想像ですが以下のような理由だと思います。
いわゆる契約書に記すように平文テキストで書いたら良さそうなものですが、それではコンピューターが理解できないので自動化できません。
そしてプログラムにすることで内容を厳格化できます。
契約書には曖昧な表現や真偽のわからない表現が入り込みがちですが、プログラムなら重要な項目が真なのか偽なのかハッキリさせることができ、どちらでもないという値はエラーになります。(実装内容による)
プログラムをテストすることで契約内容の書き洩らしを防ぐこともできて、適正な契約内容を記述できるというわけです。
(あくまで想像です)
契約内容を確認する
さて、スマートコントラクトの肝は[誰でも確認できる]という所です。
そこでALISの契約内容を確認してみましょう。
ALIS公式によるとgithubに書いてあるそうです。
https://github.com/AlisProject/contracts
GitHub(ギットハブ)はソフトウェア開発プロジェクトのための共有ウェブサービスであり、Gitバージョン管理システムを使用する。(中略)2009年のユーザー調査によると、GitHubは最もポピュラーなGitホスティングサイトとなった。
githubを簡単に説明すると、プログラマの為の[公開ファイル置き場]です。
ここに[AlisCrowdsale.sol]というファイルがあるので見てみます。(solはSolidityのファイルであることを示す拡張子です)
(21行目から) /* * Token exchange rates of ETH and ALIS. * Could not add to Crowdsale.json because of EVM said stack too deep. */ uint256 constant RATE_PRE_SALE = 20000; uint256 constant RATE_WEEK_1 = 2900; uint256 constant RATE_WEEK_2 = 2600; uint256 constant RATE_WEEK_3 = 2300; (略) uint256 currentRate = rate if (isPresale()) { // before 2017/09/01 02:00 UTC currentRate = RATE_PRE_SALE; } else if (now <= icoStartTime.add(1 weeks)) { // before 2017/09/08 02:00 UTC currentRate = RATE_WEEK_1; } else if (now <= icoStartTime.add(2 weeks)) { // before 2017/09/15 02:00 UTC currentRate = RATE_WEEK_2; } else if (now <= icoStartTime.add(3 weeks)) { // before 2017/09/21 02:00 UTC currentRate = RATE_WEEK_3; } (以下略)
ICO開始後1週目は(1ETH=)2900ALISというレートになるよ、という感じでしょうか。
どうやらこれがスマートコントラクトの内容みたいですね。
と、ここまで調べてふと思いました。これgithubに書いてあるんですよね。
スマートコントラクトの内容はイーサリアム(ETH)に書いてあるはずです。githubに書いててもそれがイーサリアムと紐づけられているという証拠にはなりません。イーサリアムのサーバーにでもこのファイルを置いているのでしょうか。というかブロックチェーンなのでブロックに書いてあるはずですよね。
ブロックを調べるには…どうすればいいのでしょうか。
ALIS公式はICOの手順をこちらにまとめています。
ALISトークンをMyEtherWalletで購入する方法について
この中にICOで送信先となるイーサリアムのアドレスが書いてあります。これを調べてみましょう。
[(通貨名) Explorer]と検索したら仮想通貨のブロックを確認できるサービスがヒットします。
今回はetherscan.ioで調べてみました。サイトの右上にある検索窓にイーサリアムのアドレスを入れると参照できます。
ALISのアドレスを入力して出てきたのがこちらです。
Ethereum Account 0xEA610B1153477720748DC13ED378003941d84fAB Info
[Contract Source Code]の所にsolidityのコードが書いてあります。
「これがスマートコントラクトの実装やー!本丸やー!」と御馳走を前にした彦摩呂のようにテンション高くなったんですが…
RATE_WEEK_1 = 2900
の部分がどこにも見当たりません
[ Contract ABI]も[Contract Creation Code]も探してみたのですが、どこにも[2900]の文字は見当たりません。
あと残るは[Swarm Source]の部分。
bzzr://6632ee91760d9835df23b8f4db74eb3d71b0065f283ecc8bdb9de6ca66e9e3dd
という謎のURLみたいなものが書いてあります。
Swarmとは
結論から言うとわかりませんでした。ただ検索して以下のサイトが見つかりました。
Welcome to the swarm documentation! — swarm 0.2rc5 documentation
どうやらイーサリアムのブロックに入りきらない情報を置く場所のようです。
それがサーバーなのかブロックチェーンなのかはわかりませんが、[bzzr://]で始まるURLのようなもので検索することができ、そこにスマートコントラクトの詳細が書いてある、ということのようです。
このURLみたいなものがイーサリアムのブロックに記録されているので内容を保証する、ということのようです。
(あくまで僕の想像です)
結論
[スマートコントラクトの中身は誰でも見ることができる]ということなのですが、敷居は高いです。
今回は[1ETH=2900ALIS]という[契約]を確認することができませんでした。
しかし逆に考えればこの敷居の高さが現状であり、これからどんどん敷居が下がってくることによって仮想通貨が身近なものになる = 仮想通過の価値が上がる、と解釈(期待)することもできます。
僕は仮想通貨には懐疑的でありますが、今回の調査で少しだけ仮想通貨との距離が近づいたような気がします。
と、謎のポエムを書いたところで終わります。
おまけ
Swarmについて調べてる時に以下のICOを見つけたんだけど、これ関係あるんですかね?
ALISのICOに参加するリスクについて
この記事は少々辛辣な表現になっておりALISが詐欺であるかのように解釈されるかもしれませんが、あくまで可能性の話にすぎません。公式の方がもしご覧になって気分を害されたら申し訳ありません。あくまでも注意喚起が目的でありICOを妨害するものではありません。
ALISのICO開始がいよいよ9月1日に迫っています。
日本語のホワイトペーパーが用意されていて日本国内のサービスを行うためのICOということで注目を集めています。
しかしICOは株式上場とは異なりいろんなリスクがあるので注意喚起としてまとめてみました。
ALISについては以下を参照してください。
目次
- 詐欺リスク
- 上場しないリスク
- ロンチしないリスク
- 法改正リスク
- インフレリスク
- そもそも割高リスク
- ハッキングリスク
詐欺リスク
ホワイトぺーパーを読む限りはとても考え込まれていて夢のあるプロジェクトですが、この全てがICOで資金を集めるためだけに考えられた詐欺プロジェクトである可能性をまず考えなければいけません。
ALISはITMedia等々のメディアに露出しており「詐欺をするなら大々的に宣伝する必要ないじゃないか」と思われるかもしれませんが、逆にその宣伝で大きく資金を集めることができるので詐欺を否定する要因にはなりません。
またALISが詐欺をするつもりがなくてもスタッフの一人が集まった金を持ち逃げしてプロジェクトが頓挫する可能性が無いとも言えません。
ICOは誰が審査したわけでなく、ICOに参加する各々が個別に審査しなければいけないので常に詐欺リスクは考えなければいけません。
上場しないリスク
9月1日のICO開始で申し込み(事実上の入金)を行えばすぐにALISトークンが手に入りますが、その時点ですぐに売ることはできません。
- もちろん仮想通貨なので自身で相手を見つけて個人的な売買を行うことは可能です
公式では現在海外の取引所での上場を目指していますが、国内の取引所への上場は来年以降になるようです。もちろん海外の取引所へ上場してもその取引所に口座を持っていなかったら売買できません。
上場しないことは無いと思いますが、この記事を公開した時点では上場は決まっていませんのでしばらくは取引できないことを忘れてはいけません。
ロンチしないリスク
ロンチ(Launch)とは
ローンチとは、新しい商品やサービスを世に送り出すことである。日本語では「立ち上げ」「公開」「開始」「発進」などの語が相当する。
http://www.weblio.jp/content/%E3%83%AD%E3%83%BC%E3%83%B3%E3%83%81
ICOで資金が集まり本格的な開発がスタートしてもそれがいつ公開されるかは不明です。
公開されない可能性もあります。
開発が進まない、法改正に引っかかる、同様のサービスに先を越される等理由はいくらでも考えられます。
上場後にすぐ売却する予定の人は関係ないのですが、ALISの理念に共感して長期的に保有する予定の方はロンチしない可能性も考えておいたほうがいいです。
法改正リスク
ALISは今まで日本にない[仮想通貨によるインセンティブを付与するサービス]です。
- 仮想通貨と書きましたがトークンと言ったほうが適切かもしれません
VALUでの事件など仮想通貨であることに基づく被害者救済のため急な法改正が行われる可能性があります。その際にALISのインセンティブであるトークンの扱いが違法になる、公式機関の許可が必要になる等の事態になり、その結果ロンチできなくなることがあるかもしれません。
時代の先端を走ると利権を求める輩が現れたりしますからね…
インフレリスク
公式のホワイトペーパーによるとALISトークンは[インフレ率が50%のトークン]とのことです。
私の解釈が間違っていなければ[毎年50%のトークンが新規に発行される]ということになります。
新規発行分は参加ユーザーのインセンティブとして扱われるとのことであり、ALISユーザーが継続的にサービスを利用するモチベーションに繋がりますが、その反面、トークンの価値は減っていきます。
- 公式のホワイトペーパーによる見解ではトークンの価値も上がると試算されていますが、理論的にはトークンの価値は下がるはずです
- 現在の仮想通貨全体の価格上昇が健全なものならばトークンの価値も上がっていくと考えられますが、バブルだとしたらやはり下がるはずです
- 長期的にはリップルのようになだらかな下降トレンドを形成する恐れがあります
- 短期的には上記の理由からすぐに売ってしまったほうが良いという発想に繋がりやすく、(上場したとして)価格が乱高下する恐れがあります
そもそも割高リスク
ALISのICOによる調達金額は公式によると
最低調達金額: 350万ドル( ≒ 11,666 ETH )
最高調達金額: 3000万ドル( ≒ 100,000 ETH )
単純に1ドル100円で計算して最低が3.5億円最高が30億円となります。
今回のEthereumを通じたICOはALISトークンの25%となります※1。
つまりALISトークンの時価総額は最高調達金額の4倍、120億円相当になります。
類似サービスを公開しているはてな株式会社の2017/08/28時点での株式時価総額は約77億円であり、ALISトークン120億円は割高であると感じます。
「はてなどころじゃない、もっと大きくなる可能性を秘めている」といった反論が聞こえてきそうですが、現在はまだICOの段階でプロジェクトの進捗状況は0%です※2。
実際に数億円の売り上げを上げているはてな株式会社の価値を、売り上げどころかに何も始まっていないALISが上回るのは割高と言わざるをえません。
なので上場後ににICOより安く売買される可能性は高いと思います。※3
- ※1 公式ホワイトペーパーの[9. トークンはどのように作成・配布するのか]を参照
- ※2 公式github(https://github.com/AlisProject)を見たところsteemをフォークしただけでリポジトリの作成もまだ行われていない(2017/08/28現在)
- ※3 相場では実体以上の評価を受けて価格が高騰することは珍しくありませんので上場後の価格については一切の保証をしません。自己責任で判断してください。
ハッキングリスク
ハッキングについてのリスクは色々と考えられますが、ここではICO申し込み時のハッキングリスクについてです。
9月1日のICO開始と同時に公式サイト(https://alismedia.jp)での申し込み受付が始まります。
手順に沿って進めていくとイーサリアムのアドレスが表示され、そこに送金をすることで申し込みが完了となります。
しかし、万が一にも公式サイトがハッキングされる可能性も否定はできません。
公式サイトに表示されたイーサリアムのアドレスはハッカーによって書き換えられた偽のアドレスかもしれません。
実際にそのような事件が起こっています。
http://www.bibitpost.com/archives/1138
公式サイトのハッキング(乗っ取り)については参加者には防衛する手段がありません。タイミングとしては9月1日のICO開始直後が一番危ないと思います。(参加者は我先にと申し込みを急着、サイトの確認がおろそかになるので)
もしハッキングされた偽のアドレスに送金してしまったら、それは戻ってこないと考えたほうがいいでしょう。
ICOはまだ歴史が浅く、現在はICOバブルだとも言われています。
そして日本向けのICOは例が無く人気が予想されます。
しかし上記のようなリスクが考えられる上、ICOはIPOのような上場審査が無く誰でも公開できる状況です。
夢の詰まったホワイトペーパーひとつで数十億円、数百億円の資金が調達できるICOはバブルであると言わざるをえません。
今回のALISが成功したとすれば余計に詐欺師が目をつけるはずなので、今後も含めてICOの参加には十分な注意が必要です。
[全額失うリスク]は株式より格段に高いです。
くれぐれも[失っても構わない資金]で参加することを心がけてください。