BitGo


https://bitcoin20xx.xyz/未来を変える暗号通貨を作っていこう

BitGoについて知っていますか?BitGoは暗号通貨を用いないブロックチェーンのサービスです.BitGoはサービスとソリューションを提供し,それらに課金するという伝統的なビジネスモデルを追求しています.

例えば,Webウォレットとしてすべてのサービスを提供するAPIを提供します.それは新しく何かを始めたい人にプラットフォーム,ゲーム,そして電子商取引ソリューションにBitGo APIを用いることができるということです.使ってみてもいいかなぁと思います.

ゲーム会社はそのプラットフォームにBitGo APIを組み込んで,様々な暗号通貨を受け入れることができます.逆に,このAPIはゲームプレーヤーにBitGo APIプラットフォームへのアクセスを提供します.

BitGoは,銀行に似ていますが,成功すれば,BitGoは成長し,世界最大のBitcoin(BTC)の取引ができると主張しています.実際,Bitgoは,Bitcoinの全取引の15%を処理していると主張しています.

さらに,BitGoは1カ月あたり150億ドルの暗号通貨を処理し,20億ドルの暗号通貨資産を保有していると主張しています.ただし,BitGoは暗号通貨の取引所ではありません.

ただし,BitGoは,少なくとも米国で最初の本当の暗号通貨銀行になるための基礎を築きはじめています.そのため,BitGoは金融業界にサービスを広げています.ゴールドマンサックスはその後ろ盾です.

BitGoはブロックチェーンサービスを販売しています.それは,プライベートブロックチェーン,API,および他の組織への暗号通貨の保管を含んでいることによって金融そのものを扱うことができるのです.このようなサービスは日本でもありそうですが,プライベートにしたときに,失われるスケーラビリティに私は疑問を感じます.

Mint Royal Mint GoldもBitGoは支えていきます.このように大規模なブロックチェーン取引インフラストラクチャの基礎を築いているため,BitGoha,暗号通貨とブロックチェーンの将来になる可能性があります.

ブロックチェーンが主流になるには,BitGoの失敗または成功によって明らかになると思いますが,それは私たちの考えている,公平と公正というブロックチェーンと異なります.サーバとクライアントで出来そうですし.

Windowsネイティブなマイニングプールを作ってDockerで動くかな 中止 からの 追記①


https://bitcoin20xx.xyz/未来を変える暗号通貨を作っていこう

これまで,UbuntuでDockerを使って,マイニングプール(mposなど含む)を作っていくことをひたすら試行していたのですが,うっかり忘れていました,本来の趣旨は,Windowsで作るってことでしたので,これだと結局Ubuntuで作っているのと全く変わらないのではないかと.

そこで,Windowsネイティブなマイニングプールを作ってDockerで動かすこと試していきます.まず,普通にマイニングプール動かすところまでいかねば...Dockerもよくわかったし,Windows版はライセンスが問題あるかと思うのですが,やってみてもいいでしょうか...

https://github.com/coinfoundry/miningcore

に,マイニングプールを作ってくれるWindows版あったので,これを使ってみます.やることは,このgitに書いてあります.やってみましょう.公開しながら,書き加えていきます.

https://www.atmarkit.co.jp/ait/articles/1702/02/news039.html

で,自分の環境では無理と判明...でっ

Windows版DockerとUbuntuで製作中です。

FROM ubuntu:latest
MAINTAINER SachiO
RUN rm -rf /usr/sbin/policy-rc.d ADD policy-rc.d /usr/sbin/policy-rc.dRUN chmod +x /usr/sbin/policy-rc.d
ADD bitzenyd /bin/bitzenydRUN chmod +x /bin/bitzenyd
RUN mkdir /root/.bitzenyd \ && mkdir /root/.bitzenyd/testnet
ADD bitzeny.conf /root/.bitzent/bizeny.confADD wallet.dat /root/.bitzeny/testnet/wallet.dat
ENV APACHE_RUN_USER="www-data" \ APACHE_RUN_GROUP="www-data" \ APACHE_PID_FILE="/var/run/apache2.pid" \ APACHE_RUN_DIR="/var/run/apache2" \ APACHE_LOCK_DIR="/var/lock/apache2" \ APACHE_LOG_DIR="/var/log/apache2" \ APACHE_USER_UID="0" \ DEBIAN_FRONTEND="noninteractive"
RUN apt-get update -qq \ && apt-get install -y apt-utils perl --no-install-recommends RUN apt-get install -qqy --force-yes \ build-essential \ apache2 \ cron \# libapache2-mod-php \ supervisor \ curl \ openssh-server \ libboost-all-dev \ libcurl4-openssl-dev \ libdb5.3-dev \ libdb5.3++-dev \ mysql-server \ git
RUN apt-get -y update \ && apt-get -y upgrade \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 4F4EA0AAE5267A6C \ # && gpg -a --export 4F4EA0AAE5267A6C \ # && apt-key add - \ && apt-get install -y python3.6 \ && rm /usr/bin/python \ && ln -s /usr/bin/python3.6 /usr/bin/python
RUN wget https://bootstrap.pypa.io/get-pip.py \ && python get-pip.pyRUN apt-get install -y python3-pip \ && ln -s /usr/bin/pip3 /usr/bin/pip
RUN apt-get -y purge php* \ && apt -y autoremove \ && apt autoclean \ && apt-get -y install software-properties-common \ && add-apt-repository -y ppa:ondrej/php \ && apt-get -y install php5.6 \ && apt-get -y install php5.6 php5.6-cgi libapache2-mod-php5.6 php5.6-common php-pear# && apt-get install -y libapache2-mod-php5
RUN pip -VRUN rm -rf /etc/apache2/apache2.conf
ADD apache2.conf /etc/apache2/apache2.confADD apache_default /etc/apache2/sites-available/000-default.conf

https://github.com/sgs01115/TestingAdockerForBitZeny

にて,公開中ですので,随時,最初からの説明を書いていきます.

ちょっとした嘘


https://bitcoin20xx.xyz/未来を変える暗号通貨を作っていこう

AIについてのちょっとした嘘

AIのブームはいつまで続くでしょうか.AIは確かに,世界を革命的に変化させるような力を持つように見えます.ただし,その技術は誇張されているかもです.
実は,AIを名乗る企業でも本当に革新的なAIテクノロジを駆使しているわけではありません.つまり自称人工知能なのです.彼らは,既存のソフトウェアにAIを付加的に用いて,ソフトウェアをより興味深く見せるための道具としてAIを使用しています.
例えば,チャットボットは,大手企業のライブラリやAPIを使用して対話を作成したり,キーワードの探索して対話します.ここで使われるAIは,大企業で学習済みのデータ・ライブラリを使用しているだけです.時には,単なるデータベースを使うことさえあります.
もっと言えば,AIがこなしているように見せかけても,人が作業している場合もあります.
このようなからくりは,どうしたら見破れるでしょうか?,単純にサービスが,安い,AIの専門家がいない,機械学習に利用できる大きなデータを持っていないことを見ればよいでしょう.

ブロックチェーンのちょっとした嘘

ブロックチェーンは,おそらく人工知能に次いで,ブームになっています.ブロックチェーンを扱う世界は,本当に小さなギークの集団から,何千億もの時価総額を持つ世界的な業界へと急速に成長しました.
ブロックチェーンを用いた暗号通貨の開発がオープンソースであり,この性質により,この業界は一気に世界規模に進出することが可能になりましたが,そこには,少しばかり?!の嘘もあります.
ほとんどのICOは機能していないのが現状です.つまり大多数は成功していないのです.

何が正しいの?

皆さん知りたいですよね.経済的に成功している国の指導者たちを見ると,絶望感があるかもしれません. 嘘はときには.人々が未来に進むのを手助けしているように見えます.技術の進歩は,多くの情報と機会を私たちに与えてくれて,民主化を進めるための最も公正な方法でだと私たちは考えます.少なくとも私たちは,人類の未来を本当に気にかけているのです.それこそ,トラストレスに...

合意形成と障害


https://bitcoin20xx.xyz/未来を変える暗号通貨を作っていこう

分散システムアプローチ

Casper CBCは,分散システム問題として合意形成の問題に取り組んでいます.

まずはじめに,分散システムにおける障害とは,なんでしょうか.

コンセンサスメカニズムの前提は,「障害の数が十分に少なければ,すべて問題ない」ということです.これは,「十分に障害がある場合にのみ,問題が発生する」と言い換えることができます.

コンセンサスメカニズム

さて,わかりにくい専門用語に慣れましょう.

バリデータ:合意を形成するノードのことをバリデータと呼ばれます.
メッセージ:メッセージは、合意に達することを試みる努力の中でバリデータによって生成され伝えられます.

メッセージ

メッセージは,合意形成プロセスに参加している間にバリデータによって生成され,伝えられる情報です.Casper CBC合意形成メカニズムでは,メッセージは以下の構造を持ちます.

メッセージ構造 =(値、バリデータ、正当化)

メッセージ構造を説明します.

値:値は,バリデータが合意に達するようにネットワークに提案する値のことです.
バリデータ:これはメッセージを生成しているバリデータです.
正当化:メッセージの正当化は,バリデータがその特定のメッセージを生成している間に確認および確認した一連のメッセージです.後で見るように,その正当化は提案された値を文字通り「正当化する」ことになっています.

ここで,メッセージに関わる2つの重要な概念を見てみましょう.

後のメッセージ:メッセージAがメッセージBの正当性を説明するものである場合,メッセージBはメッセージAよりも後になります.
推定関数:推定関数は,正当化を入力として,入力によって「正当化された」値を返します.

合意規則

提案された値は,正当化に対する推定関数の適用によって返された合意形成値と同じでなければなりません.
バリデータは2つのメッセージを作ることができないようになっています.

合意規則違反

バリデータが,受け取ったメッセージの時点差により,分離されるかもしれません.

意思決定保証

十分な数のバリデータが提案する有効な値を含むメッセージを作成した後に,多数のバリデータがフォルトを生成することなしに矛盾する値について合意形成することは不可能であることを合意規則は保証します.

したがって,十分な数のバリデータが有効な値を含むメッセージ見た後で,ノードは合意値を決定します.この「十分に高い」数は、そのノードのフォールトトレランス閾値によって異なります(この十分という部分は未定義です).

合意形成プロトコルCBCについて


https://bitcoin20xx.xyz/未来を変える暗号通貨を作っていこう

合意プロトコルは,通信ノード同士が何かに同意することを保証するメカニズムです.ブロックチェーンで新しいブロックをダウンロードするノードは,システムの履歴としてトランザクションに確実に同意することを望みます.作業証明(PoW)では,ノードがあるトランザクションでハッシングを解くと,標準チェーンに含まれることを意味します.

PoWの欠点は,非常に多くのエネルギー消費と,ブロックチェーンを維持するセキュリティとを満たしながら,スループットを増加させることが可能かどうかが定かではないところです.それでは,他の合意プロトコルはあるでしょうか?,作業料分だけ手数料を受け取るのは,理にかなっています.

それでも,Proof of Stake(PoS)という手法もあります.それは,ある量の資本を(例えば暗号通貨)を持つノードを信用して,次のブロックの選択権を得るというものです.

ここでは,合意プロトコルの概念を確認していきましょう.

CBCというプロトコルを説明していきます.

システムを設計するとき,セキュリティは重要です.システムを徹底的にテストすることは,システムが意図したとおりに機能することを確認する1つの方法です.それは予測可能な方法で機能しているでしょうか.与えられた入力は,内部的な矛盾を引き起こしませんか.

ここで,紹介するCBCという手法は,次のようなことも許容します.システムの部分が,未定義のままにされるかもしれません,これはよく言えば仕様が変更できるということです.ある性質Pがある空間Sに存在するメカニズムとして成立することを証明することができれば,Sのサブセット上でのメカニズムS’で,性質P’を証明できるかもしれません.たとえば,Sをブロックチェーン合意メカニズムのSとします.最長のチェーンフォーク選択するというこというメカニズムがS’になるように考えましょう.フォークの選択へある規則制をもちこむことによって一貫性が得らます.それは,S’におけるプロパティP’を得ることでもあります.

ノードがやり取りするメッセージは,可能な合意値を見出し,この値について合意を達するために送信されます.

合意値
検証(送信者)への参照
プロトコルによる状態の参照(正当化)

例えば,AとBという2つの検証があり,常にメッセージに値1を送信します.プロトコルは,最初は何もしません.だれでも送信できるメッセージは,名前,値1、および前の状態への参照,空集合だけです.この時点でネットワークのノードから見えるものは,空集合ø,Aからのメッセージ,Bからのメッセージ、またはAとBからのメッセージです.

私たちは,新たなメッセージが構築される以前のプロトコルによる状態を参照できるようにするために各メッセージを必要とします .プロトコルによって送られのは,単なるメッセージであり,それぞれのメッセージは以前のプロトコルによる状態を参照します.

プロトコルによって,タイミングにより,状態は分岐するかもしれません.

その場合,ノードはどちらが正しいのかを決定できなければなりません.つまり,合意値が0と1の両方であると決定することはできないいうことです.これが安全性の保証となります.

このような安全性を保つことは,2つのノードにとっては簡単です.2つのノードによって決定された合意値はお互いに明白です(常識的には片方が決まれば,もう片方決まります)が,例えば,3つの合意値が一致しないことがあります.
ライトを点灯させるには2つのスイッチをオンにする必要があるとします.2つのノードがスイッチを観察し,3つめのノードはライトを観察します.1つのスイッチがオンになっていても,必ずしもライトが点灯しているとは限りません.つまり,ライトが消えている間は,2つのノードは両方のスイッチがオンになっているのを観察することはできません.これは,両方のスイッチがオンになっていても,ライトが点灯していないことも許します.

このようなことは,ひとつのスイッチとライトの点灯の有無は明白です.

そこでCBCは,メッセージに重みづけ(合意値0のようなメッセージは重みをなくす)をして,重みがある閾値よりも大きい限り一貫した決定を下せるようにします.

これまでのところ,決定はプロトコルによる状態に依って行われて,プロトコルによる状態から合意値に向かう関数を私たちはもっていません.ここで,注目すべきは,推定量という概念の導入です.プロトコルによる状態が与えられると,推定量は合意値を返します.CBCでは,推定量は未定義のままです.

ブロックチェーンのスケーラビリティ 4


https://bitcoin20xx.xyz/未来を変える暗号通貨を作っていこう

先回の続きで,ブロックチェーンのスケーラビリティ解決策を記していきます.

4)シャーディング

ブロックチェーンの分割は,従来のデータベースの分割と似ています.従来のデータベースでは,負荷分散のためサーバーを分割しました.

同様に,ブロックチェーンの分割でも,ブロックチェーンの全体的な状態がさまざまな部分に分割され,各部分はネットワーク内のさまざまなノードによって格納されます.

ネットワーク上で発生するトランザクションは,どのシャードが影響を受けるかに応じて,各ノードに送信されます.各部分は状態のごく一部を並行的に処理します.このとき,シャード間で通信するためには,何らかのメッセージ受け渡しメカニズムになります.

例えば,シャード内のトランザクションが実行されると,ローカルシャードを更新し,同時にレシート(更新した証拠)を生成します.このレシートは,共有メモリに記録されます.

ブロックチェーンを分割するには,高いセキュリティを維持しながら,すべてのノードがすべてのトランザクションのごく一部しか処理しないネットワークを構築する必要があります.これは極めて難しことです.

それは,ブロックチェーンプロトコルでは、ネットワーク内のすべてのノードが互いに信頼し合うとは限らないと想定しています.それでも、トランザクションは異なるコンピューターで処理されるにもかかわらず,共通の状態について合意している必要があるからです.これを解決するには,多くの権限を持つ可能性のある攻撃者に機会を生み出すことなく,どのノードが安全な方法でどの断片を検証するかを決定するメカニズムを見つける必要があります.

分割を実装するのが難しいもう1つの理由は,ブロックチェーン上で実行されるトランザクションがブロックチェーン内の前の状態のどの部分にも依存する可能性があるため,並行して処理するのが困難になるためです.さらに、並列化を使用すると,競合状態などを緩和するための絶対確実な方法が必要になります.

ブロックチェーンのスケーラビリティ 3


https://bitcoin20xx.xyz/未来を変える暗号通貨を作っていこう

ブロックチェーンの大きさを自由に変更できるようにすることは,既知の課題で,数年間にわたって活発に研究されています.

具体的には,

1)SegWitによる解決策です.

Segwit(セグウィット)とは,Segregated Witness(Witness=隔離された署名領域),の略語です.Segwitはトランザクション情報をコンパクトに圧縮することでスケーラビリティ問題の解決が期待される技術のひとつです.

2)ブロックサイズを大きくする.

各ブロックに収まるトランザクション数を増やすことができ,ネットワークは1秒あたりのトランザクション数を増やすことができます.

3)ステートチャネルを使う.

ステートチャネルは次のように機能します.

ブロックチェーンの一部は,マルチシグネチャまたは,ある種のスマートコントラクトを介してロックされています.その場合、チェーンを更新する唯一の方法は,特定の参加者が完全に同意した場合です.

参加者は、トランザクションを直接ブロックチェーンに送信せずにトランザクションを作成して暗号署名することによって,自分自身で更新を行います.新しい更新は以前の更新を上書きします.その後,参加者はブロックチェーンに更新した結果を送り返し,そこでブロックは,ステートチャネルを一旦閉じて,再びステートチャネルを解除します.

ステートチャネルを使うことで,更新を無制限にして,無期限に開いたままにすることができます.このときブロックチェーンは,最終トランザクションを処理するための決済レイヤとして純粋に使用されて,ブロックチェーンの負担を軽減するでしょう.ただし仕組み上トランザクションの透明性は低くなります.

次回に続きます.

ブロックチェーンのスケーラビリティ 2


https://bitcoin20xx.xyz/未来を変える暗号通貨を作っていこう

前回の続きです.

それでは,スケーラビリティは実際どのようになっているのでしょうか.

Ethereumのノードにおける理論上の最大トランザクション処理能力は,毎秒1,000トランザクションを超えます. 残念ながら、これはEthereum手数料を鑑みると実際の処理量ではありません.現在のところ,各ブロックの平均手数料は約670万ガス(手数料の単位)です.

トランザクションには,送信者が購入しても構わないと思っているガスの最大量を指定するための手数料を制限するフィールドがあります.したがって,各ブロック内の各トランザクション数は,手数量の制限値に基づいて,決定されます.

たとえば,スマートコントラクトで使用される手数料の平均値は50Kです,Ethereumの場合は,手数料の制限値より,1秒間に約7トランザクションとなるのです.

Ethereumネットワーク上のトランザクション数が大幅に増加しているという事実と組み合わせると,これがいかに問題になるかがわかります。.手数料の制限値は,トランザクションが増えれば増えるほど,スケーラビリティの足かせになります.同様にこのような例は.Bitcoinでもみられます.

ブロックチェーンを拡大縮小するには,すべてのノードに計算能力を変化させる必要があります.

次回は,どのようにすれば問題を解決できるのかを説明します.

ブロックチェーンのスケーラビリティ 1


https://bitcoin20xx.xyz/未来を変える暗号通貨を作っていこう

サトシナカモトが,2008年に論文を発表して以来,ブロックチェーン技術の可能性について私はとても期待しています.

分散型のデジタル通貨は,かつては非常に難しい問題を含んでいましたが,それは拡大し続けています.

例えば,監視社会に抵抗する社会的プラットフォームとして有効であるようです.

しかし,それを実現するのを妨げる大きな問題,それは,スケーラビリティです.ブロックチェーンは,拡張性に限界があります.

では,ブロックチェーンがスケーラブルではないのはなぜでしょうか.

現在有効な.すべてのブロックチェーンコンセンサスプロトコル(例えば,Bitcoin,Ethereum,Ripple,Tendermint)には,制約があります.ネットワーク内のすべての参加ノードは,すべてのトランザクションを処理する必要があります.ブロックチェーンは,ネットワーク上のすべてのノードがすべてのトランザクションを処理し,状態全体のコピーを維持することを意味します.

分散化コンセンサスメカニズムは,スケーラビリティが犠牲になるのです.実際,ブロックチェーンは,ノードが増えるごとに対数的に増加するノード間レイテンシのため、ネットワークに追加されるノードが増えるにつれて処理は遅くなります.

従来のデータベースシステムでは,スケーラビリティに対する解決策は,追加されたトランザクションを処理するためにサーバを追加すること(すなわち、計算能力)でした.すべてのノードがすべてのトランザクションを処理および検証する必要がある分散型であるブロックチェーンの世界では,ネットワークを高速化するためにすべてのノードの計算能力を上げる必要がありますが,それはできないでしょう.

その結果,ブロックチェーンコンセンサスプロトコルは,低いトランザクションスループットと高度の集中化との間のトレードオフを作ります.言い換えれば,ブロックチェーンのサイズが大きくなるにつれて,ネットワークに完全に参加するために必要なストレージ,帯域幅,および計算能力に対する要件が増大します.ある時点で、いくつかのノードでブロックを処理することが実現可能になるだけでは扱いにくくなり,集中化のリスクにつながります.

スケーラビリティのために,ブロックチェーンプロトコルは,各トランザクションが有効であるというネットワークの信頼を失うことなく,各トランザクションを検証するために必要な参加ノードの数を制限するメカニズムを見つけ出す必要があります.

すべてのノードがすべてのトランザクションを検証することを許可されていないので,他のブロックが安全であることを保証する統計的および経済的手段がノードに必要です.

スケーラビリティを達成するためには,トランザクションは異なるノードによって並列に処理される必要があります.ただし,ブロックチェーンの状態遷移にはいくつかの非並列化な部分もあるため,並列化と実用性のバランスを取らなければなりません.

次回は,この続きを書いていきます.

ブロックチェーンとAI


https://bitcoin20xx.xyz/未来を変える暗号通貨を作っていこう

ブロックチェーンとAIは,分散システムとデータが集中するシステムとして対照的です,短いですが,ここでは,AIとブロックチェーンがどのように相互作用するのか説明します.

AIは,計算速度において,学習データを集中させるという性格から,ブロックチェーンでそのまま実行することはできません.

AIは学習のために膨大な量のデータを必要としますが,素早くコミュニケーションさえできれば分散システムで学習させうことができるでしょう.深層学習では,データを集中的に収集することなくAIに学習を行わせることができるでしょうか?,これは,ブロックチェーンで実行されているAIが直面している課題です.AIに何らかの方法で学習を分散させる必要があります.現在の深層学習は単純にそのような分散性と互換性がないため,ブロックチェーン技術は,データが分散するIoTのデバイスから,AIアプリケーションがデータを集中させるまでの過程で,ブロックチェーン技術は有用ではないでしょうか.

AIは,ブロックチェーン技術を使用して,学習に使用されるデータの出所を確認し,バイアスの原因を特定して修正するのに役立つ可能性があります.ただし,現在のAIシステムでは,学習済みのデータを他のモデルに組み込んだ場合は,素早くデータを追加または削除できません.ただしデータの出所とその出所を追跡する透明なシステムと,その品質と真実性の透明な評価は,偽のニュース,誤ったデータ,低品質の情報が誤ってAIに組み込まれないようにするのに役立ちます.

現在のコンセンサスメカニズム – 主に作業証明に基づいている – は,広範囲に利用するAIにとって大規模に利用するには余りにも作業への要求が高すぎます.計算上無駄があり,エネルギーのかかるプロセスを必要とせずに分散元帳の値に安全に同意する方法があることを達成するには,利害関係の証明や権限の証明(または何らかのハイブリッド)などの代替合意メカニズムに関する作業が必要です.無駄なエネルギーをこれ以上使うことは許されないでしょう.

AIは,ブロックチェーン元帳に含まれる膨大な量のデータをユーザが容易に理解できるようにすることで,またプロセスをより効率的にしてトランザクション全体のコストを削減することで,ブロックチェーンアプリケーションに付加価値をもたらします.スマートコントラクトにおけるAIおよびブロックチェーンは最も魅力的な分野の1つであり,私たちにとって有益な,制御され制限された方法でAIをグローバル経済に統合する新しい方法を切り開らくかもしれません.