ジオマーリン

仕様を公開してアドバイスを受けながら geomerlin.com を構築していくスタイル。このシステムではデータサイエンスと人工知能技術により地政学リスクを算出しています。

機械学習の精度をスマートコントラクトで上げる

機械学習の精度をスマートコントラクトで上げるためにはどうすれば良いか?

 

これは漠然とした疑問ではなく、将来我々geomerlin.comや多くのモデル作成者にとっては切実な問題になると考えられる。

 

「AIとブロックチェーンの組み合わせ」というとバズワードが2つ並んだだけであるように思えるが、「分散合意で機械学習モデルの性能を相互補完できるか?」について次のポイントを少し考えて頂きたい。

 

①人事評価や顔の美しさ、地政学リスクなど曖昧な結果を出すための機械学習モデルをどうやって信頼性の高いものにするか?

 

②性能の高くない機械学習モデルを組み合わせて性能の高いものにできるか?

 

これはディープラーニングに関する割と重要な問題だと思う。なぜならデータ不足も過学習もどのモデルにも起こるからである。データにないようなパターンにモデルは対応できないが、他のモデルにそのパターンが学習されていれば、性能が低いものであっても、相互補完ができるはずだ。

 

では、沢山モデルが存在するとして、単純に出力の平均をとれば相互補完ができるか?*1多くのモデルが間違えていて、少数のモデルが正しいことも多いだろうと考えられるので、そう単純な話ではなさそうだ。

 

 選択肢A,Bのうち、多くのモデルを合意させてAを選択することを考えよう。判断に際して、甲・乙どちらを選ぶかの割合(softmax)の平均を単純に取ると、上記*1の問題が発生する。

 平均ではなく加算平均すべきであることは明らかであるが、加算するべき項目が2つ出てきてしまう。

 (1)甲を選んだモデルの性能・信頼度

 (2)甲を選ぶモデルの集合同士の合理性

 

 これらがシンプルに加味される分散合意評価の方法として次のものを考案した。

sugeno_integral.pdf - Google ドライブ

 

 簡単に説明すると、

 ある判断を肯定するノードの共通点が多く、否定するノードの共通点がすくなければ、その判断の合理性が多いとするシステムである。

 

 前提:各モデルは判断対象の優劣と判断材料の重要度をソートする

 (判断対象と判断材料は全モデルが共有している)

 

 つまり上の例で言えば、判断(甲)の評価は

 D*Pos - d*Neg

 D=甲のポジティブ判断の人気度を信頼性(ブロックチェーン上のstake)で加重平均したもの

 Pos=甲のポジティブ判断を行うモデル同士が同じ判断材料を重要とソートしているか

 d=甲のネガティブ判断の人気度を信頼性(ブロックチェーン上のstake)で加重平均したもの

 Neg=甲のネガティブ判断を行うモデル同士が同じ判断材料を重要とソートしているか

 

 ファジー測度にして菅野積分を取り入れたのはMin-Max演算を行うことでリスクを減らしたかったからである。

 

 

 

 

iEx.ec RLCのホワイトペーパー 徹底解説

iEx.ecの将来性について数週間前に記事を書きました。

 

 

その際、システムの目的や将来性を中心に書いたため、技術的なポイントをおさえることを怠ったように思います。何故そのポイントが重要かといいますと、iEx.ecに投資するにあたってはslackに入ることを強く勧めますが、技術的なニュースが分からないと投資のタイミングが分からないと思います。

 

iExecは一言で言えば、「ブロックチェーンクラウドコンピューティングを安くする。そのためにはオフチェーン処理とデスクトップグリッドを使う」です。 

 

iExecの技術におけるキーワードは

「オフチェーン」、「Proof of Contribution」、「Domain-Specific Blockchain」、「デスクトップグリッド」の4つです。

では一つずつ解説を書かせてもらいます。

 

①オフチェーン

 最近のビットコイン分裂騒動でもお馴染みの単語です。「スモールブロック」とも近い話ですが、メインブロックチェーンに全てを記録すると、パフォーマンスがありとあらゆる点で低下すると考えられるのです。だから、ビットコインの時には、ブロック以外に記録しよう=Segwitが支持されました。オフチェーンというのは、iExecの場合、Ethereumにプロセスを記録しないで、結果のみを記録することを言います。

オフチェーンで重要なのは、メインブロックチェーンに記録していない=合意のないデータ・トランザクションに関する合意をどのようなプロトコルで行うかです。それがおそらく次の項目です。

 

 ちなみに、オフチェーンの実証実験は2016年のソルトレークシティのイベントで発表したとおり、もう済んでいるそうです。


②Proof of Contribution 

 ホワイトペーパーで「PoCo、これはオフチェーンでのコンセンサスを可能にする」と書いてあります。ここでひとつ?がつきますね。オフチェーンでコンセンサスとは?
これを理解するために他のプロジェクトを参照しましょう。

http://businessblockchain.org/about-aeternity

Aeternityはオフチェーンでスマートコントラクト=コンセンサス生成を行うプロジェクトです。主なオフチェーン処理にOraclizeが挙げられています。

 

[Oraclizeとは]

 例えば明日の天気で賭けをEthereumで行う際に,明日の天気のデータはブロックチェーン内から生まれないため、外部のAPIやURLを参照し天下り的に受け入れる必要があります。Oracle=神託です。

 

 ここで重要なことですが、信用のあるAPIの元(天下り元)で複雑な処理が出来たらどうでしょう?これは、Ethereumへの負荷・手数料を減らす上、システム全体の速度を上げてくれます。これがオフチェーン処理の意義であり、オフチェーンへの移行=オラクル側ノードの増加と言えるでしょう。

medium.com

 さて、オフチェーンでのオラクル側の仕事にいくら報酬をあげましょうか?この決定方法がProof of Contributionらしいです。細かい仕様はおそらく11月にオープンソースが出るまで分かりませんが、ブロックチェーンをどのくらい正しく変更させたかで報酬が決まるようです。

 

 ここで疑問として残るのは、この報酬がクライアント側が出したEthereumスマートコントラクトに記述されているかどうかですね。個人的な予想ですが、クライアント側のスマートコントラクトに適切に報酬を記述するガイドラインがなければ、iExecは機能しないでしょう。11月のドキュメントを注意深く見守る必要があります。

 

③Domain-Specific Blockchain

 スマートコントラクトではセキュリティ問題が発生しやすいことから考案されたものらしいです。iExec特製のバーチャルマシンとセットとなるブロックチェーンです。さっきまでオフチェーンオフチェーンってたくさん言いましたが、iExecはたぶん、Ethereumに書かない処理をこのサイドチェーンに書くと思われます。

 この項目を考慮すると、オフチェーンというより、どちらかというとクロスチェーンと考えてもよいのではと思います。正直最初読んだ時にはオフチェーンって書いておきながら、サイドチェーンのこの話が出てきて???ってなりました。Whitepaperはみんなが知ってる単語書かないといけないので大変ですねっていう感想です。

 

④デスクトップグリッド

 これは分散コンピューティングの種類ですね。ブロックチェーンで分散コンピューティングする際にもタスクの割当は非常に重要なので、下のリンクのような既存の技術は必要です。

Berkeley Open Infrastructure for Network Computing - Wikipedia

 iExecにおけるタスクの割当の仕様は以下のリンクに解説されている通り

medium.com

 

総論

 Ethereumの技術的な観点を中心に考えると、iExecは

「かなり凝ったOraclizeの手法」あるいは「Oracleのスマートコントラクト化」というのが適切かもしれません。

 Proof of Contirbutionは、ライトニングネットワークやライデンネットワークのようなオフチェーンのコンセンサス案が暗号学的に有効だと考えられていることから、信じてもよいものだとも思えますが、本当にちゃんと報酬を計算できるのか少し心配です。

 次のようなケースを考えて下さい。

 僕が数学者らしきノードSATOSHIに難しい計算100+200を頼むとします。SATOSHIは怠け者なので101とかいうテキトーな答えを返してきます。そして僕に報酬を請求するのです。iExec側はそういった悪意のあるノードを排除できるのがPoCoだと言いますが、ではどうやって排除するのでしょう?他のノードVITALIK,ASAYAMAが100+200を計算し、間違いを指摘するのでしょうか?それでは、大量の二重計算を行ってしまうので、低コスト計算を行える気がしません。おそらく計算するのは1ノードでしょう。

 

 ホワイトペーパーには、PoSやテスト期間を設けることでこの問題を解決すると書いてあります。つまりこのシステムはある程度看板を背負っている企業か、既に信用を築いたノードが、余った計算量を使うことを指向しているのです。信用をある程度もつIT企業同士の協業システムです。ただ、これはデスクトップグリッド自体がそういう性質を持つので許容されるものですが。

 このケースを考えることで得られるのは、スマートコントラクトを最初に書く側が報酬を設定しない限り、モラルハザードは簡単に起こるということです。もし、計算過程をサイドチェーン上で追えるなら話は全く別になりますが

 

地政学リスクとトークンエコノミー

今日伝えたいことは「地政学リスク」の将来性についてです。

 

 地政学リスクは金融市場で使われている、軍事による市場・商品への危険性を表す言葉ですが。この「地政学リスク」には懐疑的な方が多いということです。極限までリスク同士が複雑に絡み合うであろうトークンエコノミー社会で地政学リスクは重要なのかどうかです。

 

 1991年、金融市場で働いていた人たちはいきなりトレードが大きくマイナスに転じたり、積み上げてきた協業の交渉が全てまっさらに戻るという悪夢を経験しました。湾岸戦争の勃発は、複雑に絡み合った現代金融市場に初めてオイルショックのトラウマを投げかけ、大パニックが起こったのです。このとき、戦争への悲観で全てを投げ売った人と、戦局を楽観し買い戻した人の間ではさらに明暗が別れました。勝敗が数日で決まるという、異例の戦局になったからです。このとき、市場に隕石のように落ちる、「地政学リスク」を読めるかどうかが、最も重要な要素の一つだという認識が金融関係者に広がったのです。

 

 月日は経ち、2017年では地政学リスクはまるで定期イベントのようになりました。地政学的に危ないことが明らかに増えたのです。

 中東や東アジアでは、大きな戦争リスクが連日ニュースでほのめかされ、ヨーロッパでは2ヶ月に一度はテロのニュースが舞い込んできます。多すぎる地政学リスクにも市場は敏感に反応し、本当に全てをひっくり返すようなリスクでなければ価格はバネのように戻ることを繰り返します。

情報のリアルタイム化と市場の精緻化が、地政学リスクを日常にしているのです。

 

 

 これに対して、懐疑派が当然生まれてきます。地政学リスクは売りポジションを入れるタイミングを伺うプレイヤーの都合の良いイベントに過ぎないと。

これが本当かはGPRの表を見れば、すぐに分かります。

①本当に危険な事態は少なく、極のように偏在していること

②近年では、極の数が増えていること。

f:id:geomerlin-com:20170512153705j:plain

 

 さて、これからはグローバル投資が日常になるという話を前にさせて頂きました。

 

 グローバル投資が日常になるということは地政学リスクが日常になるということです。そして増え続けていくGPRの極の数。まるで、沖縄の人が台風を気にして天気予報を見るように、地政学リスクは市場の予報で頻繁に見られ、家計を気にする人は皆気にするようになるのです。

 

 地政学リスク=GPR-Indexの価値はこれから確実に上がっていきます。

 これからのトークンエコノミーによる想像を絶する価値の相互作用で、どこまでも日常に波及していくことでしょう。

経済・政治ニュースのソートはそろそろ「価格への影響」をベースにされるべき

今日はgeomerlin.comのニュースソートの方針転換の話です

f:id:geomerlin-com:20170512150223j:plain

geomerlin.comは地政学リスクを中心としたリスク評価が中心のニュースサイトです。

 

この「地政学リスク評価」を現在GPRを用いて表示しています。 

geomerlin-com.hatenablog.com

GPR Indexは原油価格と強い相関関係を持っており、グローバル市場のリスクとしては申し分ない指標です。

 

ついこの間ですが北朝鮮のミサイル発射予告により、米国のハイテク株が売り相場に転じました。

www.mag2.com

ハイテク株が中心に地政学リスクの影響を受けた・・・おそらく売ろうと考えていた人たちからするとピストルの合図のようなものです。

 

考えなければならないのは、一番リスクを知っているのは誰でしょう?

多くの人がソーシャルメディアやニュースのコメント欄でリスクを論じます。しかし、多くの人たちは日常から行動を変えないのです。

変える人たちが一部にいます。もっとも顕著なのがトレーダーの方たちです。

このニュースをもとにハイテク株まで影響すると考え、大きな額を動かすのですから。

 

彼らはロイターの高額高級エディションで、無料でのニュース配信よりはるかに詳しく速く正確な情報を得ています。彼らが作る集合知である「市場」はもっともリスクを知っていると言えるでしょう。

 

故に我々は、市場価格に影響するかどうかを、もっとも支配的な基準としてニュースのソートと推薦を行うことにします。

つまり、ニュースがクリックされやすいか・話題にされやすいかは二の次の基準と考え、リスクの概念を市場を通して再構築したいと考えています。その際、GPRはより重要なニューラルネットへの入力の一つとなるでしょう。

 

これで多くのニュース検索エンジン・キュレーションサイトより、geomerlin.comのコミュニティをグローバル投資に役に立つようにできると考えています。

グローバル投資への僕たちの考えはこちらです。

 

geomerlin-com.hatenablog.com

 

 

仮想通貨のアービトラージ(裁定取引)コードを公開します

Krakenでドル→仮想通貨→ユーロの変換が為替レートと大きく違う(多い時で7%ほど)ことがあったのでこの差分を抜き取るコードを書きました。実験済みです。

 

結果なんですが、

上げ相場のときのみ儲かりました。1回commit_plan関数を実行すると300円くらい儲かりました。

下げ相場の時は仮想通貨ホールド中に暴落するため損失をだしてしまいました。あとやはり実行中に相場が動いてしまいますね。

ぼくのコンセプトに間違いがあった可能性等ふくめ、改良案を募るためにコードを公開します。

 

コードの概要は、まず取引値でシミュレートし、変換候補(USD→ETH→EURなど)に目星をつけた後、板の厚さも込でシミュレートし、実行します。

USD→ETH→EUR→BTC→USDのような循環をおこない増やしていくイメージです。

エディタで見てくださいね。ソッチのほうが見やすいですから。

 

個人的にはKrakenの出来高が少ないのがかなり不利だと感じたので、Krakenが盛り上がったらもう一度試してみようと考えています。

 


import krakenex
import fx
iimport time 
import urllib.request
import urllib.parse
import json
from pprint import pprint

##Kraken パブリックapiのキー
apikey = 
apisec = 
##Kraken シークレットAPIのキーです
zako = 
zako2 = 

CANDIDATE = {"EUR":["XBT","REP","ETH","LTC","XLM","XRP","DASH","ETC","XMR","ZEC"],"JPY":["XBT","ETH","XRP"],"GBP":["XBT","ETH"],"CAD":["XBT","ETH","XRP"],"USD":["XBT","REP","ETH","LTC","XLM","XRP","DASH","ETC","XMR","ZEC"]}

#ALTS = ["DASH/XBT","ETC/XBT","ETH/XBT","GNO/XBT","ICN/XBT","LTC/XBT","MLN/XBT","REP/XBT","XDG/XBT","XLM/XBT","XMR/XBT","XRP/XBT","ZEC/XBT",]

k = krakenex.API(apikey, apisec)
k2 = krakenex.API(zako, zako2)

#####通貨コードの雑用的操作です######
def initialX(d):
    if len(d)<4:
        return "X"+d
    else:
        return d

def lastZ(d):
    if len(d)<4:
        return "Z"
    else:
        return ""

###APIでオーダーを出す関数です
def order(pair,buy_or_sell,v,price):
    v = str(v)
    price = str(price)
    if price=="MARKET":
        res = k2.query_private("AddOrder",{"pair":pair,"ordertype":"market","type":buy_or_sell,"volume":v})
    else:
        res = k2.query_private("AddOrder",{"pair":pair,"ordertype":"limit","type":buy_or_sell,"volume":v,"price":price})

    return res.get("result"),pair

###オーダーがまだあることを確認しています
def check_order_done():
    for i in range(5):
        try:
            orders = k2.query_private("OpenOrders")
            return  orders["result"]["open"]
        except:
            pass
            
###売り板・買い板のデータを取得します
def check_depth(pair):
    for i in range(5):
        try:
            h = k2.query_public("Depth",{"pair":pair})
            return h["result"]
        except:
            pass

###オーダーキャンセルします
def cancel_order(txid):
    k2.query_private("CancelOrder",{"txid":txid})

def cancel_all():
    for key in check_order_done():
        cancel_order(key)

###今の資産状況を取得します
def check_balance():
    
    for i in range(5):
        try:
            orders = k2.query_private("Balance").get("result")
        except:
            orders = False
        if orders:
            return orders

def check_history():
    orders = k2.query_private("TradesHistory")["result"]
    return orders

def check_asset():
    orders = k2.query_private("Ledgers",{"ofs":"1"})["result"]
    return orders

def check_position():

    positions = k2.query_private("OpenPositions")["result"] 
    return positions


### vフィアットのボリューム)と買い板データを入れるといくらコインをもらえるか返します
def sum_orders_market(v,lst):

    sum_m = 0
    sum_p = 0
    for i in lst:
        i0 = float(i[0])#price
        i1 = float(i[1])#amount
        p = i0*i1
        if v<sum_p+p:
            res = sum_m + (v-sum_p)/i0
            print(res)
            return res
        else:
            sum_m += i1
            sum_p += p

### vの通貨が一体いくらのフィアットになるか計算します
def sum_sell_market(v,lst):

    sum_m = 0
    sum_p = 0
    for i in lst:
        i0 = float(i[0])#price
        i1 = float(i[1])#amount
        p = i0*i1
        if v<sum_m+i1:
            res = sum_p + (v-sum_m)*i0
            print(res)
            return res
        else:
            sum_m += i1
            sum_p += p
            

### どの変換ルートが利益になるか判別します
###(元の法廷通貨、変換先の法廷通貨、いくら動かすか、最低何%儲かって欲しいか)が引数です
def chose(currency,currency0,DOLLAR,limitrate):

    
    first = currency0[0]
    common_coin = list(set(CANDIDATE[currency])&set(CANDIDATE[currency0]))
    print(common_coin)
    sell_list = [i+currency for i in common_coin]
    buy_list=[i+currency0 for i in common_coin]
    pairs = ",".join(sell_list+buy_list)
    print("通信中")
    ticks = k.query_public('Ticker',{'pair':pairs})['result']
    print("終了")

    go_score = []#USD to EUR
    ###fxのレートを取得します
    fx_rate = float(return_rate(currency+currency0))
   
    print(fx_rate)
    candidate = CANDIDATE[currency]
    for i in common_coin:
        pair1 = initialX(i)+lastZ(i)+currency0
        pair2 = initialX(i)+lastZ(i)+currency

        step1 = float(ticks[pair1]["a"][0])
        dic1 = ticks[pair1]["a"]

        step1c = float(ticks[pair1]["c"][0])
        step1d = float(ticks[pair1]["b"][0])
        step1d = (step1*4+step1d*6)/10
        if step1d<step1c:
            step1c = step1d

        step2 = float(ticks[pair2]["b"][0])
        dic2 = ticks[pair2]["b"]

        step2c = float(ticks[pair2]["c"][0])
        step2d = float(ticks[pair2]["a"][0])
        step2d = (step2*4+step2d*6)/10
        if step2d>step2c:
            step2c = step2d

        ###ここの部分は重要です
        ###フィアットに売り抜けないといけないので売りは成り行きを想定します 
        go_score.append((i+":なりゆき なりゆき",step2/step1,step1,step2,pair1,pair2,2))
        go_score.append((i+":指値 なりゆき",step2/step1c,step1,step2,pair1,pair2,4))

    #スコアをソートします
    go_score.sort(key=lambda x:-float(x[1]))
    
    print("ランキング")
    for i in go_score[:30]:
        print(currency0+"→ "+i[0]+"→ "+currency+": 利益"+str((i[1]*fx_rate-1)*100)+"%"+"   "+str(i[2])+"   "+str(i[3]))
    
    
    ###ここからが本番です
    ###板の厚さを無視したシュミレーション結果であるgo_scoreを板の厚さ込でシュミレーションします
    ###Krakenは板がすごく薄いので300ドルか300ユーロの入力を想定します
    all_dic = {}
    for i in go_score[:5]:

        if not all_dic.get(i[4]):
            dic1 = check_depth(i[4])[i[4]]["asks"]
            all_dic[i[4]] = dic1
        else:
            dic1 = all_dic[i[4]]
            
        if not all_dic.get(i[5]):
            dic2 = check_depth(i[5])[i[5]]["bids"]
            all_dic[i[5]] = dic2
        else:
            dic2 = all_dic[i[5]]
        
        if i[-1]==2:
            first = sum_orders_market(DOLLAR,dic1)
            second = sum_sell_market(first,dic2)
            if not (first and second):
                continue

            rate = 100*(second*fx_rate-DOLLAR)/DOLLAR
            print(currency0+"→ "+i[0]+"→ "+currency+": 利益"+str(rate)+"%"+"   "+str(i[2])+"   "+str(i[3]))
            if rate>limitrate:
                return {"pair":i[4],"buy_or_sell":"buy","v":DOLLAR/i[2],"price":"MARKET"},{"pair":i[5],"buy_or_sell":"sell","v":False,"price":"MARKET"} 

        elif i[-1]==3:
            first = sum_orders_market(DOLLAR,dic1)
            if not first:
                continue
            rate = 100*(first*i[3]*fx_rate-DOLLAR)/DOLLAR
            print(currency0+"→ "+i[0]+"→ "+currency+": 利益"+str(rate)+"%"+"   "+str(i[2])+"   "+str(i[3]))
            if rate>limitrate:
                return {"pair":i[4],"buy_or_sell":"buy","v":DOLLAR/i[2],"price":"MARKET"},{"pair":i[5],"buy_or_sell":"sell","v":False,"price":i[3]} 
            
        elif i[-1]==4:
            
            second = sum_sell_market(DOLLAR/i[2],dic2)
            if not second:
                continue
            rate = 100*(second*fx_rate-DOLLAR)/DOLLAR
            print(currency0+"→ "+i[0]+"→ "+currency+": 利益"+str(rate)+"%"+"   "+str(i[2])+"   "+str(i[3]))
            if rate>limitrate:
                return {"pair":i[4],"buy_or_sell":"buy","v":DOLLAR,"price":i[2]},{"pair":i[5],"buy_or_sell":"sell","v":False,"price":"MARKET"} 

    print("まだダメです")
    return False,False

###シュミレーションを利用して、実際に取引を行うコードです
###法廷通貨→ 仮想通貨 → もうひとつの法廷通貨 の変換を行います
def commit_plan(cur0,cur1,rate,amount="All"):
    timeout1=10;timeout2=100
    if amount=="All":
        amount = float(check_balance()["Z"+cur0])
    print([cur0,cur1,rate,amount])
    print("====発射====")
    timeout = 0
    quest1,quest2 = chose(cur1,cur0,amount,rate)
    if quest1==False:
        return False
     
    while True:
        o1 = order(**quest1)
        
        if o1[0]:
            o1id = o1[0].get("txid")
            print(o1)
            print("is ordered")
            break
        print(o1)
        time.sleep(0.5)

    flag = True        
    while flag:
        if timeout>timeout1:
            cancel_order(o1id)
            print("キャンセルしました"+o1[1])
            return "DONE"

        res= check_order_done()
        if res !={}:
            flag=True
            time.sleep(1)
            timeout +=1

        else:
            flag=False
        
    b = check_balance()
    b = b[o1[1][:4]]  
    print("途中経過") 
    print(b)

    quest2["v"]=b
    timeout =0
    while True:
        o2 = order(**quest2)
        if o2[0]:
            o2id = o2[0].get("txid")
            break
        time.sleep(0.5)
        print(o2)

    flag = True
    while flag:
        res= check_order_done()
        if res !={}:
            flag=True
            time.sleep(1)
            timeout += 1
        else:
            flag=False

    b = check_balance()
    b = b[o2[1][-4:]]  
    print("結果") 
    print(b)

    return "DONE"


###最高位の関数です。資産状況をみながらcommit_planを実行します
def operation():

    balance = check_balance()
    eur = float(balance["ZEUR"])
    usd = float(balance["ZUSD"])

    result = False
    if eur>usd:
        if eur>270 :
            result = commit_plan("EUR","USD",3,270)
        elif usd>300:
            result = commit_plan("USD","EUR",3,300)
    elif usd>eur:
        if usd>300:
            result = commit_plan("USD","EUR",3,300)
        elif eur>270:
            result = commit_plan("EUR","USD",3,270)

    return result


def return_rate(pair="EURUSD"):
    url = "https://query.yahooapis.com/v1/public/yql"
    params = {
        "q": 'select * from yahoo.finance.xchange where pair in ("{0}")'.format(pair),
        "format": "json",
        "env": "store://datatables.org/alltableswithkeys"
    }
    url += "?" + urllib.parse.urlencode(params)
    res = urllib.request.urlopen(url)

    # 結果はJSON形式で受け取ることができます
    result = json.loads(res.read().decode('utf-8'))
    #pprint(result)
    rate = result["query"]["results"]["rate"]["Rate"]
    return rate



if __name__=="__main__":
    while True:
   
        res = False 
        try:
            res = operation()
        except Exception as exp:
            print(exp)
            
        if res == "DONE":
            print("オペレーションが完了しました")

IEx.ec RLC の現状と将来

今日はマイナーコインの紹介です。

 

IEx.ec RLCというコインがBittrexだけに上場しています。

このプロジェクトは

クラウドコンピューティングのサービスをブロックチェーンで行うことでコストを下げること

を目指しています。簡単にいえば、中小企業が集まってAWS作ってしまおう」ということです。

 

クラウドプラットフォームの複雑さを知っている人も知らない人も「難しそうなことしそうだけど出来るの?それ」と考えるかもしれません。

 

背景

提案者のHaiwu He教授はついこの間、最も創造的な中国人100人に選ばれました。

 

もともとクラウドコンピューティングの分野では著名な方で、

Haiwu He : Main / Haiwu He, Ph.D : browse

フランスのINRIA(フランス国立情報学自動制御研究所 - Wikipedia)の協力のもと、このIEX.exプロジェクトを立ち上げたそうです。

そのせいか、フランスの外務省も協賛に入るようになり、フランスの国家のプライドがかかったプロジェクトになっています。

 

事業内容について

さて、このプロジェクトの具体的な未来図はなにかと言えば、Amazon Web ServerやMicrosoft Azureのようなサービスをもっと低コストで実現することだと言えます。

実はこのクラウドコンピューティングはここ最近で巨大化している市場であり、

f:id:geomerlin-com:20170814091338j:plain

amazon資料出展)

AWSだけでもこれほどのサービスがあるのです。

簡単に言えば「自社にコンピューターなくてもAWSに来ればなんでもできる」みたいな状況なので、Amazon社の売上の6割を占めるまでになっています。SE・PGで無い方からすると、かなり意外かもしれないですね。しかし、これなしではAmazonは赤字なのです。

 

IEx.ex提供のこの図を見て下さい。よく知らない中小企業が集まっていると思うのですが、おそらくコレが狙いです。

中小企業が集まってAWS作ってしまおう」ということです。

f:id:geomerlin-com:20170814092655j:plain

(iexec rlc whitepaper 出展 http://iex.ec/wp-content/uploads/2017/04/iExec-WPv2.0-English.pdf

ブロックチェーンは「知らないコンピューター同士が約束する」ことができるので、利益分配も正確にできますし、新規参入による協業もブロックチェーンに入るだけです。やりたいことはかなり明確で、ポエムICOとは一線を画すと考えられます。割と厳しめの評価を下すこのシリーズでもRLCは好意的でした。

iEx.ec — Ethereum-based distributed cloud – Crypto Judgement – Medium

 

時価総額について

さて、肝心の時価総額ですが、8月14日付で約60億円です。これを大きいととるか、小さいととるかは分かりませんが、比較対象として

 

クラウドサービスが現時点で市場規模10兆円があり、伸び続けていること

japan.techrepublic.com

 

②ライバルのGolemの時価総額が現時点で300億円あること

 

を多くの投資家が指標にしています。

 

RLCへの投資の性質について

他と違った性質がいくつかあります。

①投資家の心理よりも事業の進展の影響が大きい

 これは”今のところ”という注釈がつきますが、先ほどの説明通り、中小企業が集まってBtoBのためのシステムを構築するブロックチェーンなので、個人投資家にとって馴染みがないトークンです。ゲームに使うGamecreditやエロサイトに使うDecentみたいな接点がないので自然と知名度も低いです。これはAWSが巨大な事業なのに、普通のAmazonサービスより全然知名度が低いのと同じ理由ですが。

つまり「みんなが集まって値段が上がる!」みたいな仮想通貨のテンプレではなく、今のところ「どの大企業と契約がとれて、それがどの大手投資企業に評価されるか」のほうが値動きに関わっていると思われます。

7月にIexecはEthereum Enterprize Aliance(イーサリアム企業連合)のメンバー入りをしました。

これは、多くの企業と協業することにとって決定的な効果があると考えられます。

 

②広告をあまりしない

 これはSlackでも怒り狂っているひとがいたのですが(笑)、大企業との協業がベースの事業戦略である以上、個人に対する広告・メディア露出でコインの値段を釣り上げるメリットが今のところあまりないことに理由があります。IEX.ex使うのにRLCコインが必要ですが、その値段が高かったら企業側も協業しにくいので、おそらく彼らはコインの値段は適性価格であって欲しいと思っていることでしょう。長い目でみての利益がチームの狙いで、バブルに乗ることではなさそうです。

 あと、これは個人的な勘ですが、プライドの高いチームなので、プロダクトが出ていない状況でコインの値段がやたら上がったり、過大広告をしたり、メディアに持ち上げられるのを嫌いそうな印象です。11月にプロダクトリリースですから、その後にチームがマーケッティングに力を入れることを期待しています。

 

次はUbiqかAuger・Gnosisあたりの調査を公開しようかな。

 

ブロックチェーンでグローバル投資はすべての人間の日常になる

知っての通り、暗号通貨(仮想通貨)市場が大きくなっています。

 

今日伝えたいことは、

まず、はじめに暗号通貨はグローバル投資だと言うことです。なぜなら国内投資ではないから。

そして、今まで英語ペラペラの40歳にも難しかったグローバル投資は、これからは高校生も参加してTwitterで自慢するようになるということです。

 

現に今、多くの高校生や大学生が仮想通貨に入ってきています。有名な暗号通貨女子も今夏のリア充期間のちょっと前までは、学校のテストが終わった後に、アメリカ発のリップルや中国のAntsharesのチャートを見ていたりしたわけです。

 

グローバル投資家のジム・ロジャーズの本を読んだ方は、その壮大な世界観に引きこまれたことだろうと思います

www.amazon.co.jp

 

車とバイクで世界一周をし、世界中の国々を投資判断する。作中で、中国の急成長と日韓の停滞を規制・保護主義という観点から予想していました。

経済に対して規制と保護主義は摩擦として働き、停滞させる。もし海外投資ともなると、規制だらけであり、それが多くの人を遠ざけている理由です。

 

具体的には、たとえばデンマーク風力発電の会社に投資したい場合を考えましょう。

日本の松井証券などに申し込む

松井証券デンマークの証券会社のシステムに発注

デンマークの証券会社が取引する

この間に何回手数料を抜かれていることでしょう。また、これほど法律で定められた証券を得るのに、何回身分証明が必要でしょうか。

 

ではスコットランドのStorj社に投資するためにはどうしたらいいでしょうか?

①StorjトークンのクラウドセールにEthereumを送る(以上)

あるいは

②メアドだけでBittrexのアカウントをつくり、btc送金→Storjトークンを得る(以上)

トークンとは暗号通貨のことです。目的が限定されている時こう呼ばれることが多いです。

 

異常なほど簡単です。英語でドキュメント出している会社なら、株式よりもトークンを出そうと言う動きになることは明白ですね。

 

昔NewsPicksでこんな記事とコメント欄がありました。

newspicks.com

ここについていたコメント。

「で、どうやってタンザニアに投資するの?」

 

僕はこれはすごく象徴的だと思いました。日本人ほど世界中の地理や歴史を勉強する国も珍しいようで、アメリカ人がグローバル投資に手を出せるのなら、日本人にも明らかにどこに投資すればいいか分かっているひとは結構いると思うのです。

投資しない理由は、今まで規制だらけで、全てが面倒だったから。

 

さてここで、タンザニアの観光企業がトークンを出したり、タンザニアのIndexにベッグ(連動)したトークンが現れたらどうでしょう?

 

ブロックチェーンプロトコルが世界のネットを覆うことは、本格的なグローバル投資の加速の幕開けを意味します。

僕たちの開発チームでは、どうにかしてこの流れで成功する人間を多数輩出できるコミュニティを作ろうと全力で活動しています。

 

情報をお求めなら、

geomerlin.com

までどうぞ。