ビットコインの秘密鍵を探索する

こんにちは、@tanapro です。第2のドワンゴ Advent Calendar 2017の23日の記事です。社員じゃないですけど勝手に登録しました 😊

さて、ビットコインの話なのですが、世間では秘密鍵を紛失してしまう人が少なからずいます。最近ではこんなニュースもありました。

jp.wsj.com

つらいですね。

ビットコイン秘密鍵のパターンは2256通りあり、目的のアドレスを総当りで探索することは不可能です。地球上に存在する原子の数よりも遥かに多いです。しかし、誰かが使いそうな秘密鍵だけに絞って探索することはできます。辞書攻撃みたいなやつです。

今回はいろいろな文字列をsha256にかけ、その結果を秘密鍵としてビットコインブロックチェーンを参照したとき何が見えるのかを検証します。

test

"test"という文字列をsha256にかけ16進数にすると "9F86D081884C7D659A2FEAA0C55AD015A3BF4F1B2B0B822CD15D6C15B0F00A08" となります。これを秘密鍵とした場合、公開アドレスは "19eA3hUfKRt7aZymavdQFXg5EZ6KCVKxr8" となります。

Address: 19eA3hUfKRt7aZymavdQFXg5EZ6KCVKxr8 | Blockchain Explorer

取引、ありましたね。残高はゼロですが、資金を入れて引き出した形跡はあります。やはりエンジニアの仕業でしょうか。

こんな感じでそれっぽい文字列をsha256にかけ、どんどん見ていきます。

satoshi

Address: 1xm4vFerV3pSgvBFkyzLgT1Ew3HQYrS1V | Blockchain Explorer

取引履歴が2件あります。

bitcoin

Address: 18VkRiDhFu2Z17AvtpU3vL2LbTXDzCvDVo | Blockchain Explorer

4件ありますね。

hello

Address: 1MmqjDhakEfJd9r5BoDhPApCpA75Em17GA | Blockchain Explorer

またありました。

1

Address: 1Dt8ty59tU9LkrXG2ocWeSzKFAY8fu6jga | Blockchain Explorer

ありますね。

php

Address: 1A8SghdcrWbpvynHYz8XERzeEDTDj3oyaZ | Blockchain Explorer

ありませんでした。

皆さんも探してみてください。 (くれぐれも、こんな弱い秘密鍵は使わないように!)

AmazonDashButtonを押したらビットコインが自動で購入される仕組み作った

作りました。 アタックを押すと成行で0.01BTCの買いが走り、TSUBAKIを押すと成行で0.01BTCの売り注文が走ります。

https://twitter.com/tanapro/status/806375354784944129

使ったもの

dasherっていうすごいやつです。ボタンのMACアドレスを指定すると、そのデバイスからの信号をキャッチして指定したURLにHTTPリクエストを勝手に投げてくれます。

github.com

解説記事はこちらが分かりやすいです。

qiita.com

これでDASHボタンのイベントをフックできるので、あとは適当にhttpリクエストの受け口を作り、ビットコイン取引所のAPIを使って買い注文/売り注文を送るだけです。お手軽でした。

ビットコインを持ってない人は↓とかの有名な国内の取引所で買うと良いと思います。(アフィリンクです)

bitFlyer(ビットフライヤー)- 暗号資産(仮想通貨)の購入/販売所/取引所

The easiest way to buy and sell Bitcoin and cryptocurrency. | Coincheck

応用事例

例えば、社内の壁にこの2つのDASHボタンを貼り付けて、不特定多数の人間があなたのアカウントでビットコインの購入/売却ができるようにすれば面白いと思います。押すタイミングによっては利益になるかもしれません。新しいドラマが生まれる可能性もあります。グッドラック!

Ethereumのコントラクトで学ぶ、ポンジースキームの仕組みについて

お久しぶりです。@tanaproです。この記事はドワンゴアドベントカレンダー2日目の記事です。

Ethereumとは

Ethereumというプロジェクトがあります。世界で一番有名なスマートコントラクトを実行できるプラットフォームです。スマートコントラクトを日本語で表すと「自動執行される契約」となるのですが、ここではエンジニア的な説明をしてみます。

オブジェクト指向言語を想像してみてください。ここにあるクラスがあるとします。このクラスには内部変数と外部から実行できるメソッドが定義されており、メソッドを実行するとコードに記述されたとおりの処理が走り、内部の変数が変化します。

このクラスが誰にでも見える形で公開され、誰にでも自由に実行でき、そしてコードに書かれているとおりに処理されることが保証されている。それを実現しているのがスマートコントラクトです。予め決められた契約(コード)がスマートに自動執行されます。

スマートコントラクトはその新しさゆえ、実際に有効活用されている事例は世界を見渡してもほとんど存在しません。これが本当に使えるものなのか、その検証もできていない段階です。しかし、一部の分野ではこのスマートコントラクトが確実に役に立つという見方があります。それがお金を掛けるゼロサムゲームの分野です。運営者の存在なしに賭博が実現できれば、権力者によって運営を停止に追い込まれることもありません。例えばaugurというプロジェクトは未来に起こる出来事を予想してお金を賭けるプラットフォームを目指しています。まだプロダクト自体はローンチされていませんが、Ethereum上に乗るアプリケーションとしては一番期待されているものの一つです。

また、Ethereumには内部で使えるETHという通貨が存在します。ビットコインのように他のアドレス宛に送金する用途の他、コントラクトを実行するための燃料としても必要になるものです。自動執行されるコントラクト、内部で使えるお金・・・だんだん賭け事に使えそうな雰囲気が見えてきました。今回の記事では参加者どうしてお金の奪い合いをするポンジースキームという仕組みをコントラクトにしたものを例に、Ethereumで使うプログラム言語Solidityのコードを見ていきます。実際のコントラクトを見る前に、まずはポンジースキームについて説明します。

ポンジースキームとは

あるところに悪いおじさんがいました。このおじさんは「数ヶ月で資産が2倍になる投資案件」を顧客に販売しています。

まず、あるお客さんから1万円を出資してもらいました。そしてさらに他のお客さんからも2万円を出資してもらいした。ここで、今受け取った2万円をそのまま最初に出資してくれたお客さんに渡します。最初のお客さんは資金が2倍になり大喜びです。

そこから営業を重ね、ある三人組のお客さんから計4万円を出資してもらうことに成功しました。ここで、今受け取った4万円をそのまま2番目に出資してくれたお客さんに渡します。2番目のお客さんは資金が2倍になり大喜びです。

またまた営業を重ね、あるお客さんのグループから計8万円を出資してもらうことに成功しました、・・・・(以降繰り返し)

そしてついに、新規のお客さんが現れなくなったので、おじさんは闇に消えることを決意しました。

初期にお金を入れた人は資金が2倍になっています。そして、新しいお金が入ってくる限り、このポンジースキームは続きます。しかし、ある時点で必ず破綻します。後からお金を入れてくれる人が現れなくなったとき、最後に資金を入れていた顧客は大損をするのです。

今回は"Doubler"と呼ばれるコントラクトを例にEthereumのコードを見ていきたいと思います。

ポンジースキームのコントラクト

https://etherchain.org/account/0xfe9c69945687539fabbf531133838d9cce522a76#code

自分がお金を入れた後にさらにお金を入れてくれるカモが現れたとき、自分の資金が2倍になるコントラクトです。

まずこのコントラクトがEthereumブロックチェーン上に載ると、コンストラクタが呼ばれowner変数に作成者のアドレスがセットされます。作成者のみが実行できるcollectFees()関数にある通り、集められた手数料はこのownerアドレス宛に送金されます。

参加者が現れてこのコントラクト宛に送金が行われるとenter()が実行されます。この関数の中身が上記で説明したポンジースキームの肝の部分です。送金した人のアドレスと送金額を管理するparticipants変数、送金した人のインデックス管理をするidx変数の処理を見ていけば雰囲気でわかってくるかと思います。

while (balance > participants[payoutIdx].amount / 100 * 188){
  uint transactionAmount = participants[payoutIdx].amount / 50 * 95;
  participants[payoutIdx].etherAddress.send(transactionAmount);
  balance -= participants[payoutIdx].amount / 100 * 188;
  payoutIdx += 1;
} 

まだ支払いが行われてなく、かつ、一番早く送金した人の投入金額の2倍の資金がコントラクト内にあれば支払いが行われる様子です。participants[payoutIdx].etherAddress.send(transactionAmount);の部分でETHの送金が行われます。(正確には2倍ではなく手数料が引かれています)

このようにコントラクトが実行されるとコードで記述されたとおりの処理が実行されます。

Ethereumを使うことのメリット

ビットコインを使ってもこのポンジースキームのようなプロダクトを作ることはできます。しかし、それは必ず誰かが管理しているサーバ上のプログラムを使ってでしか実現できません。つまり、管理者を信用しなければ成り立たないのです。管理者が途中で逃げればお金は返ってこないでしょう。Ethereumを使うと特定の誰かを信用せずともこのような仕組みを実現できるのです。

(今回はポンジースキームが法的にどうなのかという問題には一切触れていません。技術的にこういうことが可能だという点を理解して頂きたいのが目的です。)

まとめ

最近のEthereumは脆弱性があったりスパム攻撃を受けたりDapp上の資金が盗まれてハードフォークしたりと混乱状態にあります。安定してアプリケーションを動かせるようになるのにはまだ数年くらいかかるかもしれません。それ以前に、本当にEthereumを使った有用なアプリケーションが登場するのかどうかも分かりません。しかし、今回挙げたポンジースキームのコントラクトを見て、可能性や将来性を多少なりとも感じた方は少なくないのではないでしょうか。

Ethereumの今後に期待するのであれば、内部通貨であるETHを購入すると将来値上がり益を享受できるかもしれません。ナイストレード目指して頑張ってください!

f:id:dsaki:20161130171252p:plain

ビットコインを盗られた話

結論

秘密鍵は自分だけが知っている状態にしましょう

前置き

ビットコインの公開アドレスは秘密鍵から生成できます。例えばこんな感じ 1tanapkGkoavPdwsyzq8FJWL5ydSCbHYN

Address: 1tanapkGkoavPdwsyzq8FJWL5ydSCbHYN | Blockchain Explorer

秘密鍵をランダムに生成して公開鍵アドレスを作る作業を何度も繰り返せば、自分の欲しい文字列が含まれた鍵ペアが生成できます。上の例では"tanapro"という文字列が一部含まれたアドレスになっていますね。このようにして作られたビットコインアドレスはVanityAddressと呼ばれ、それ生成するWebサービスもあったりします。

例えばこれ ttps://bitcoinvanitygen.com/index.php (先に結末をいうと、こいつが犯人なのでアクセスしないようにしてください)

このサービスを使うと、自分の欲しい文字列を含んだアドレスに紐づく秘密鍵を生成してくれます。私はここで作った秘密鍵をblockchain.infoにインポートしていました。公開アドレスは冒頭に記載した1tanap〜です。数カ月前の話です。

本題

そして先ほど、少し実験がしたかったのでblockchain.infoを開き、1tanap〜に5.001BTCを送金しました。送金した瞬間、何かしらのプログラムが発動したのでしょう、1tanap〜から見に覚えのないアドレスへ5BTCがそっくりそのまま送金されたのです。

f:id:dsaki:20160308184614p:plain

犯人のアドレス: 1NfzDvPDa84AcPZfpc3D5ba4pWW2PTbe6Z

現時点で秘密鍵を知りうる者は、bitcoinvanitygen.comとblockchain.infoと私の3人です。老舗企業であるblockchain.infoがそのようなことをするのは考えられないので、まず間違いなくbitcoinvanitygen.comの仕業でしょう。

bitcoinvanitygen.comで生成したアドレスは今までも使っていました、少額で。今回は5BTCという比較的大きめの量を送金してしまったので犯人のプログラムが発動したのだと思われます。

反省

このサービスを安易に信じてしまった私の責任です。本当にありがとうございました。辛すぎますね。

ビットコインは自分のお金を自分だけが管理できるという素晴らしい側面がある一方、秘密鍵の管理責任はすべてその個人に委ねられるという問題もあります。今回の件で改めて、鍵の管理には十分に気をつけなければならないということを認識しました。皆さんは大丈夫ですか?信頼出来ない取引所に預けっぱなしになってたりしていませんか?

1HU7fC7KsoHMHsAf85T7dLRATd4vNtKQMx

(breadwalletで生成した私のアドレスです)

追記

海外のフォーラムでも同様に事例が報告されてた😭 2年前(笑)

bitcoin stolen from the address generated by bitcoinvanitygen.com

ビットコインを担保にしてレバレッジをかけたハイリスクな取引を実践した結果

 前回の記事では信用三階建てでビットコインを買う方法を紹介しました。今回は諸事情により記事の内容をそのまま実践するのではなく、私が保有しているビットコインを担保にしてレバレッジをかけたトレードを3種類、実際に取引した結果と合わせて紹介します。

 ビットコインを担保にしてビットコインの値上がりに賭けるので、価格が上昇した場合はレバレッジをかけた分に加えて保証金とするビットコインの日本円換算額も増える、逆に値下がりした場合はレバレッジをかけた分の損失に加え保証金の時価も下がってしまうため、これは所謂二階建てという行為です。しかし、コアなビットコイナーは長期的に見てBTC価格が上昇するのは当たり前だと思っているので、これを二階建てとは考えません。トレードのパフォーマンスも日本円換算額ではなくBTC換算でどれだけ増えたかを指標とします。

 普段私は現物のトレードしか行わないのですが、11月の下旬頃に暴騰祭りの始まりを察知したので、レバレッジをかけまくってバイ・アンド・ホールドしていたというのがこの記事を書くことになった経緯です。

 保有期間は2015年の11月26日から12月12日、実践した取引は以下の3種類となります。

先物取引 (OKCoin, 中国)

 先物取引は未来のある時点で売買の約束をする取引のことです。例えば、現在1BTCあたり50,000円として、一ヶ月後に51,000円で10BTC買う約束を売り手と結んだとします。そして一ヶ月後、レートが1BTC=52,000円になったとしましょう。買い手は約束通り売り手から51,000円で10BTCで買い、市場で即売却すると1000*10=1万円が利益となります。実際は差金決済されるだけなので売り手が1万円失い、買い手の残高が1万円増えるだけです。これは保証金を預けて行います。

www.okcoin.com

 今回は5BTC分を保証金として預け、35BTC*1分の先物*2をロングしました。レバレッジは約7倍です。ロングの場合、価格が上昇した時に利益となり、下落した場合は損失となります。

 11月26日に現物価格が約$338のときにロングで入り、その後少し買い増しを行いました。

f:id:dsaki:20151213150037p:plain

 12月12日の昼頃、現物が約$458のときに手仕舞いを行いました。12時間足のチャート上ではこんな具合です。

f:id:dsaki:20151213150407p:plain

f:id:dsaki:20151213150334p:plain

 利益は10.16BTCでした。

信用取引coincheck, 日本)

 日本でもようやくレバレッジを活かした取引を行える取引所が増えてきました。coincheckはその筆頭です。ビットコインを借りて行う信用売りだけでなく、日本円を借りて行う信用買いもできるのが特徴です。

coincheck.jp

f:id:dsaki:20151213152053p:plain

 11月26日に10BTCを預け、1,000,000円を借り入れて購入しました。レバレッジは約3.5倍です。約定価格は1BTCあたり約41,000円でした。

 12月12日、1BTC=56,000円あたりで借入分相当を売却&返済し、16.05BTCが残りました。支払った利息は6,400円、利益は5.05BTCでした。

f:id:dsaki:20151213152754p:plain

FX(bitFlyer, 日本)

 差金決済を前提とした通常のFXと同様に、取引対象をビットコインとしたものがbitFlyerFXです。外国為替のFXの場合、取引の相手方はFX業者となりますが、bitFlyerFXでは相手方は他の参加者なので現物取引同様に板情報があります。

 日本円を保証金にして、レバレッジ最大5倍までの取引を行うことができます。

bitflyer.jp

 これはサービスが開始されたのが11月の下旬でまだまだ参加者が少ないため、少額のみ取引を行いました。

 11月25日に40,000円を保証金として預け、3BTC分のロングポジションを取りました。レバレッジは約3倍で、約定価格は1BTCあたり約40,000円です。

f:id:dsaki:20151213155042p:plain

 12月7日に手仕舞いを行い、約30,000円の利益となりました。

 bitFlyerFXは人が増えれば絶対に面白い遊び場になること間違いないので、参加者が増えることを祈っています。(FX勢はみんな来てくれ🙏)

結果

 3つの取引で15.21BTCと30,000円なので、合計で約15.78BTCの利益になりました。12月13日16時時点で約82万円相当ですね。今回はうまく行き過ぎました。

 ビットコイン価格は2013年から2015年の中盤まで下落基調が続いていたのですが、今年の10月からは上昇傾向にあります。これはスケーラビリティへの懸念が落ちついたことや、各国政府による法整備の進展などが背景にあるからだと考えられています。また、ファンダメンタル的に不安材料は特になく、年末から年始にかけて、さらに来年の半減期に向けて上昇傾向が続くのではないかと思われます。

 もしお金が余っているのなら、ポートフォリオの一部として持っておくというのもアリなのではないでしょうか。

 また、ビットコイン取引所では必ずAPIが提供されていて、とてもプログラマフレンドリーです。自分でプログラムを書けばロジック通りに動いてトレードしてくれるので、さながらポケモンバトルをしているかのような感覚を味わえます。答えのない戦いを他の参加者と競って行うので、競技プログラミングよりもよっぽど面白いスポーツですよ。

*1:132cont. 1cont=$100

*2:Quarter 1225

クレジットカードとビットコインを使った、元手ゼロの信用全力三階建てギャンブルの手法について

投機家 Advent Calendar 2015の一日目です。頑張ります。

 株の世界では、自分の保有する現物株を担保に信用取引で同じ銘柄を購入する行為を「二階建て」と呼んだりします。リスクがその銘柄に一点集中してしまうのでとてもハイリスクな取引です。さらに現物株を買うお金を借金で工面して行なう二階建てのことを「三階建て」と呼んだりもします。これはもう投機ですね。

 投機といえばハイレバレッジのFXやCFD、先物取引などを思い浮かべるかと思いますが、今回は比較的新しい技術であるビットコインを使ってハイリスクな取引を実現する方法を紹介したいと思います。(この記事は紹介だけで、実践編*1は次回の記事に書きます)

登場人物

  • クレジットカード:支払いを一ヶ月先延ばしにしてくれる魔法のカード。便利。
  • ビットコイン:暗号通貨。ボーダレスで個人間の送金ができるので便利。
  • ビットコイン取引所:ビットコインと日本円を交換するための場所。便利。

三階建て概要

まずは結論から。

  1. クレジットカードでキャッシングする(一段目)
  2. ビットコインを買う(二段目)
  3. 買ったビットコインを担保に日本円を借入し、ビットコインを買う(三段目)

1. クレジットカードでキャッシングする

 これは簡単ですね。カードにはキャッシングというすごい機能があるのでカジュアルにお金を借りすことができます*2!怖いですね。自分の銀行口座に振り込んでもらい、それを取引所の指定口座に振り込めば第一段階は完了です。平日の9時〜15時の間ではこの一連の作業に要する時間は5〜10分程度です。

2. ビットコインを買う

 ビットコインの取引所は私の好きなcoincheckを利用します。2015/12/01時点で1BTC=約44,500円ほどなので、4万5000円ほど入金すれば1.0BTC以上買えることになります。

 coincheckクレジットカードで買う機能を使えば、1,2の手順をひとつにまとめることができます。これは提示されたレートでビットコインをカード決済で購入するというものです。これなら銀行振込ができない時間帯でも即購入することができます。一ヶ月後に利益が出てる自信があるのなら、カード枠をフルに活かすこともできます。しかし、提示されるレートは取引所の直近約定価格から8〜10%程の手数料が引かれたレートになっているので、

やばい、今すぐにビットコイン買わなアカン!これは10%以上の暴騰くるで。明日の朝9時とか待ってられへんわ。

みたいな状況の人以外はおすすめしません。

3. 買ったビットコインを担保に日本円を借入し、ビットコインを買う

 coincheckで最近追加された機能として、日本円またはビットコインを証拠金にして日本円またはビットコインを借りることのできる信用取引があります。BTC/JPYの価格が上がると考えているならば日本円を借入してビットコインを購入、価格が下がると思うならばビットコインを借りて売ればいいわけです。レバレッジは最大5倍まで可能なので、10万円入金すれば50万円分購入できます。

シミュレーション

 10万円キャッシング、レバレッジ5倍フルと仮定。 1BTC=50,000円で50万円分購入。10BTC。

〜〜〜 1ヶ月後 〜〜〜

1BTC=45,000円に下落。10BTC分すべて損切り。損失50,000円。

計:54,000円の損失

(返せるかな・・・。。てかカード会社暴利すぎワロタw)

次回予告

 次回は世界にあるいろいろな取引所でビットコインを使ったハイレバレッジな取引を実践した結果を報告したいと思います。

f:id:dsaki:20151202002901p:plain

*1:ここに書かれている全てをそのまま実践したわけではないです...

*2:事前に審査をパスする必要があります

暗号通貨トレードがFXの未来である5つの理由

 日本で利用者の多いFX、外国為替証拠金取引。これは自分のお金を担保にその何倍もの資金を使って通貨を売買することにより為替差益を狙う金融派生商品の一つです。私も何年も前から趣味でFXを嗜んでいました。

 しかし、ここ最近はビットコインを始めとした「暗号通貨」のトレードに熱中しています。暗号通貨はインターネット上で利用できるP2P型の決済システムです。

 ビットコインを手に入れるには今となっては誰かから貰うか買うかしか方法がありません。ここで、ビットコインを売りたい人と買いたい人のマッチングを行なうのが「取引所」です。日本の取引所では主に日本円を介してビットコインのやりとりが行われてます。ここで売買を繰り返すことが暗号通貨のトレーディングとなります。

f:id:dsaki:20150721001759p:plain

 私はここ数ヶ月、国内外問わず様々な取引所で売買してきました。その中で感じた暗号通貨トレードの優位点、可能性を今日は述べていきたいと思います。最終的な未来としては、すべてのFXファンのトレード欲求をFX業界から奪うことになるはずです。

1. 土日も取引できる

 FXのデメリットとして、土日は一切トレードできないことが挙げられます。一方、暗号通貨の取引所では土日関係なく常に開いているため、この部分に関してはかなり大きなアドバンテージであると言えます。基本的に取引所が閉まることはないので、土日明けにレートが大きく動いた状態でスタートするといったFXでよくある現象は起きません。

2. 資金移動が容易

 あるFX業者を利用していたが、操作性に難があるため別の業者に乗り換えたい。このような場合、一度自分の銀行口座へ出金処理をして再度別の業者の口座に振り込むといった作業が必要になります。しかも銀行振込を利用するため、9時から15時の間に行わなければ次の日まで待たなければならず、資金を移動させるだけで最速でも2,3日はかかってしまいます。

 一方、暗号通貨の場合は数十分で業者間の資金移動が可能です。銀行口座を利用する日本円入金/日本円出金の他に、ビットコイン入金/ビットコイン出金といった暗号通貨での入出金機能が提供されているからです。

 取引所では暗号通貨のウォレット機能が提供されており、自分専用のアドレスが割り当てられています。(例えば、私のビットコインアドレスはこんな感じ

1Gbt6mo6zYRsPpSkLi2oiaj9f9JqQHuCf8

 取引所Aから取引所Bに資金を移動させたい場合、取引所Aにあるビットコインを取引所Bで割り当てられたアドレス宛に出金すればよいわけです。取引所にもよりますが、トランザクションは1〜3confirmationくらいで売買に利用可能になるのでだいたい10〜30分くらいというところ。

 また、取引所間での資金移動が簡単なため裁定取引アービトラージ)も容易です。例えば、取引所Aでは1BTC=30000円で1.0BTC分の売り板が出ていて、取引所Bでは1BTC=31000円で1.0BTC分の買い板が出ていたとしましょう。この場合、Aで1.0BTC分を購入し、即そのまま取引所Bへ出金、取引所Bで1.0BTCを売れば1000円の利益が出ます。これが裁定取引です。(取引所間の価格の歪みを是正する行為なので、チャンスがあれば積極的にやっていきましょう)

 日本ではまだ少ないですが、海外では暗号通貨ペアの取引所も多く存在します。例えば、ビットコイン(BTC)を使ってライトコイン(LTC)を売買するというものです。ここで、取引所Xで1LTC=0.013BTCの価格で100LTC分の売り板があり、取引所Yでは1LTC=0.014BTCの価格で100LTC分の買い板が出ていたとしましょう。同様に、Xでライトコインを購入し即Yに送金、Yでライトコインを売却すれば価格差がそのまま利益となります。この例で100LTC分をそのままサヤ取りできたとすると利益は0.1BTCですね。また、Yでライトコインを売却した際に手元に残ったビットコインをXにまた送金することで、価格差が埋まるまで何度でも裁定取引を行うことが可能です。暗号通貨ペアトレードの最大の利点とも言えます。

3. 取引用APIが提供されている

 プログラマにとって一番嬉しい点がこのAPI。どの取引所でもAPIが提供されており、板情報の取得/資産状況の取得/新規注文発注/注文キャンセル/取引履歴取得/外部ウォレットへの送金等、一通りのことはできます。上記の裁定取引を自動で行うプログラムを組んでみるのも面白いかもしれません。

 国内取引所に対応した自作のライブラリをいくつか公開しているので、Scalaを書ける方は是非トレードにチャレンジしてみてください。

https://github.com/dsaki/CoinCheckScala

https://github.com/dsaki/ZaifScala

4. 板情報がある

 取引所は買いたい人と売りたい人のマッチングを行う場所なので板情報があります(この記事の最上部にある画像の左側)。株式取引と同じで、板を出したり板を食ったりといろいろな戦略が考えられます。これはメリットなのですが、同時に初心者には分かりにくいというデメリットでもあります。

 初心者向けに、業者が提示したレートで業者と直接取引する機能を提供している取引所も存在します。しかし、まだまだスプレッドが広くかなり不利な取引を強いられることになります。FX初期の頃もスプレッドは異常な広さでした。これは出来高が増えるに従って狭くなってくるのではないでしょうか。

5. SocialBitcoinTradeがある

 取引所で発行できるAPI-Keyを使い、自分のトレード履歴を公開できるSocialBitcoinTradeというサービスを先日公開しました。トレード成績の良いトレーダーをフォローして自分の取引に活かす、また自分の取引を公開することでコピートレードしてくれるファンを増やす。このようなことが起こることを想定しています。詳細はスライドをご覧ください。

http://socialbitcointrade.tokyo/

今後改善の余地があるところ

まだまだ法整備が進んでない

 FXでは業者に対して信託保全の義務があるので、万が一業者が破綻した場合でも顧客の資産は守られます。しかし暗号通貨取引所に関しては歴史が浅すぎるため、各社が自主規制ルールに則って顧客の資産を分離保管している(と公表している)に過ぎません。取引所が破綻するような事態が万が一起こった場合、顧客の資産がどうなるかは全くわかりません。

 法規制がしっかりしていない時期に破綻してしまった取引所の代表例がMt.GOXです。これはFXも同様で、黎明期の法規制がない時代にはMt.GOXの破綻と同じことがFXの世界でも起こりました。

http://forexpress.com/columns/blog.php?ID=240&uID=sato

 (FX業者が破綻してもドル/円/ユーロ共に問題なく機能しているのと同様、Mt.GOX(取引所)が破綻してもビットコインの機能自体には何の影響もありません。取引所はビットコインと現実通貨との交換をするだけの場所なのです。多くの日本人にビットコインに対するネガティブイメージを植えつけた日本のマスメディアの罪は非常に重いです。)

 この辺りの法に関することはいずれ必ず整備されていくはずなので、利用者としては時が経つのを待つしかないでしょう。

http://www.asahi.com/articles/ASH7862Z3H78ULFA02F.htmlwww.asahi.com

レバレッジを効かせたトレードのできる取引所がまだ少ない

 FXのようにレバレッジ25倍で大きな金額を動かすことのできる取引所はまだまだ少数です。現物の取引量がそこまで大きくはないので、デリバティブを開発するのも難しいのでしょう。

 暗号通貨でFXのように大きな取引をしたいのなら、現時点では中国の取引所で先物取引を行うのが良いと思います。世界最大の取引所である中国のOKCoinでは、暗号通貨を証拠金として最大20倍までのレバレッジを効かせた先物取引が可能です。

Okcoin Cryptocurrency Exchange | Buy Bitcoin, Ethereum & Crypto

結論

 以上のような理由から、FXファンの方は今すぐにでも暗号通貨トレードを始めるべきだと考えています。またFX業者もすぐに取引所事業に参入するべきだと常々思っていました。そんな中、日本のマネーパートナーズ社が米取引所大手のクラーケンと業務提携を発表したことはとても納得できる話でした。

Krakenとの業務提携に係る基本合意に関するお知らせ

http://v4.eir-parts.net/v4Contents/View.aspx?cat=tdnet&sid=1269310

 最後に、日本にある取引所をいくつか紹介しておきます。

coincheck.jp

zaif.jp