この前後くらいで待ち時間がありますが、しばらくすると無事に追加されます。Chromeを開いてURLに「chrome://apps/」と入れれば行けます。ファームウェアアップデートこのパート、画像撮っといてあとでまとめようと思ったら、ところどころ記憶があいまいなので細かいところは多少飛ばしたりしてるかもしれません。そのへんは他のページも参考にまとめておきますので、基本はこの手順で大丈夫かと思います。PCにつなげた状態で出発します。Chromeで起動します。すると、アプリ一覧が出てきます。このままファームウェアのインストールをするとうまくいかなかったので、まずすでに入っているアプリを消してやります。画面にある通貨のアプリをすべて消します。消してもあとで入れなおせるので問題ありません。アプリ一覧の画面で、各通貨の右の方にあるごみ箱マークをクリックしてやります。画面から、ごみ箱マークを押した通貨のマークが消えます。アプリをすべて消したら、アプリ一覧で[FIRMWARES]を選択します。次のページで、右上の[INSTALL]をクリックします。待ち状態の画面の下にある[IDENTIFIER]を確認します。本体の液晶の「IDENTIFIER」を確認できたら、チェックマークがある右側のボタンを押します。PINコードを要求されるので、入力してやります。firmware(ファームウェアをアップデートする)の画面で、チェックマークがある右側のボタンを押します。バージョンを確認し、、チェックマークがある右側のボタンを押します。(MCUファームウェアが古いよ)ここからしばらく、両方のボタン同時押しでページ送りします。restart.(もう一度やるなら両方のボタンを押してね)アップデートするために、言われた通りUSB側(左側)のボタンを押しながら抜き差し。5秒のカウントがよくわからなかったので、しばらく押しっぱなしでやりました。うまくいったっぽい・・・?再起動してまたPINコードを求められたので入力します。うまくいったみたいです。途中でアプリの削除をしましたが、これをしないとファームウェアで[INSTALL]を押した後にエラーになります。調べてみると、アプリを消す必要があるみたいでした。どのアプリを消すのが正解かわからなかったです。今回は全部消す方針でやりましたが、とりあえずうまくいきました。とどいたよ!(前編)どうも、ぺろりんです。先日届いたのでセットアップしていこうかと思います。各項目で参考にしたサイトを列挙しておきますので、わかりやすいと思うところをご参考ください。初期セットアップ→ファームウェアアップデート→アプリインストール→ペアリングです。アプリインストールまでで普通に使えるようになりますが、バックアップ用に2つ目も一緒に購入したのでペアリングってのもしておきます。写真を載せまくっていたら結構長くなってしまったので、内容を分割してアップすることにしました。今回の前編では、開封と初期セットアップの様子をご紹介します。とどいたよ!(後編)開封の儀さっそく開けていきましょう!まず、箱はこんな感じです。フタを開けると...きれいに収まってますね。一つずつ開けていきます。説明書的なのが出てきました。説明書的なののうち、1つはリカバリーフレーズを書くためのシートでした。付属品はケーブル、紐、ストラップとリング。全体的にiPhone的スマートさを感じました。初期セットアップさて、開封できたのでまずは初期セットアップをやっていきましょう。自体は通電しないと動かないので、こんな感じでUSBケーブルをさしてPCにつなげて通電させます。ボタンは赤丸をつけたこの2つのみ。操作としては(1)左を押す(2)右を押す(3)両方押すという3択です。通電するとこんな感じでWelcomeとか言われます。device?(新しいデバイスとして構成する?)YESならチェックマークのある右側のボタン、NOなら×マークのある左ボタンを押します。今回は初期セットアップで、新しいデバイスを構成したいので右のボタンを押します。ちなみに、左を押すとリストアのメニューへ進みます。code(PINコードを選んでね)両方のボタンを押してやると、自分で決めたPINコードを入力する次の画面にすすめます。ここでは左のボタンを押すと数が減り、右のボタンを押すと数が増えます。左右のボタンで数を選んだら、両方のボタンを同時押しで決定。いうのを繰り返して最低4桁のPINコードを設定します。code(PINコードを確認してね)次の画面でもう一度PINコードを入力して、正しいか確認します。この画面は飛ばしてその次。phrase(リカバリーフレーズを書き留めてね)次の画面から24個のリカバリーフレーズが出てくるので、すべての単語を付属のシートに記入していきます。phrase(リカバリーフレーズを確認してね)次の画面で、〇〇番目のリカバリーフレーズは?って感じで質問されるので、記入したシートをもとに回答します。その問題に合格できたら終了です。ready(あなたのデバイスは準備完了です)ページを送ると、こんな感じで仮想通貨のマークが出てきます。:Pagetopブロックチェーンの本質ってなんだろう?どうも、ぺろりんです。ブロックチェーンの本質的なことってなんでしょうか?あたらしく出現した概念ですが、より本質的な特徴を残して抽象化しておくことは今後応用するにあたって非常に重要だと考えています。ブロックチェーンの起源がBitcoinという仮想通貨(暗号通貨)であったことから、すぐに思いつく類題として種々の通貨という応用がなされてきました。今はまだまだ黎明期ですが、ちょくちょく通貨以外のものにも応用されていたりします。応用するにしても、どんな応用先なら「ブロックチェーンであること」が活きるのでしょうか?「ブロックチェーンだからこそ」できること、「ブロックチェーンでないと」できないことってなんでしょうか?ブロックチェーンの応用についての考えとして、イケダハヤトさんが「『価値のある何か』の価値を可視化し、売買できるようにする。」ということについて解説しておられ、これもなるほどなと思いました。このようにブロックチェーンの応用を考えるうえで、「ブロックチェーン」という概念をより抽象化して特徴づけておくことが助けになったりします。今回はこれについて考えてみようと思います。ブロックチェーンの特徴づけ以下のようなデータの集合を「ブロックチェーン」と呼ぶ。(1)分散型ネットワークの中で(2)データに順序がつけられていて、(3)その順序はネットワーク参加者のみによって保証されている。いうのが、しばらく考えてみてわたしが至った結論です。実はブロックチェーンの定義は、日本ブロックチェーン協会(JBA)という団体によって提案されています。ここでは以下のように定義しています。1)「ビザンチン障害を含む不特定多数のノードを用い、時間の経過とともにその時点の合意が覆る確率が0へ収束するプロトコル、またはその実装をブロックチェーンと呼ぶ。」2)「電子署名とハッシュポインタを使用し改竄検出が容易なデータ構造を持ち、且つ、当該データをネットワーク上に分散する多数のノードに保持させることで、高可用性及びデータ同一性等を実現する技術を広義のブロックチェーンと呼ぶ。」この定義ではデータ構造の他にも、合意が覆る可能性の収束性だったりいくつかのポイントを含めつつビザンチン障害やハッシュだとか具体的な言葉もいくつか入れられています。個人的にはこれはまだ不満がありまして、できる限り少ない要素に言及することで本質的な部分を明らかにし、より応用範囲を広げるようなブロックチェーンのとらえ方をしたいところです。この考えのもと要素を削ってみた結果として上記を提案したいわけです。いくつかのHPだったり本だったりを参考に考えてみましたが、やはり(1)分散型ネットワーク(2)データの順序付け(3)合意というポイントははずせないかな、と感じました。上に挙げたわたしの考えでは、データが順序付けられている必要はありますが、それが時系列である必要はないですし(何の順番でもいい)、並べ方はハッシュを必ずしも使う必要はないと考えています。データもべつに取引のようなやり取りのトランザクションである必要もないと考えています。これくらい情報を落として抽象化しておくと、もっといろんな応用先が見つかるんじゃないかなと考えています。あとはこのような特徴があるものは何か、このような特徴のデータを使う/使えるものは何か、ブロックチェーン技術により実装できるか、という観点から考えることで応用を考えていきたいところです。個人的には先ほどの議論をさらにすすめて、数学的な定式化をしておきたいと考えています。現状わたしがたどり着いているのは以下のような内容です。「データの集合Dと順序Hから成る全順序集合(D,H)をブロックチェーンと呼び、全順序Hにより順序を構成する手続きをコンセンサス・アルゴリズムと呼ぶ。」このへんがブロックチェーンの数学的定式化になるのではないかなぁ、という感じです。不満はあって、分散型ネットワークの参加者により合意される(第三者を必要としない)ことをなんとか取り入れたい。ブロックチェーンにより改ざんが難しいことの数学的根拠なんかはググると出てくるんですが、ブロックチェーンを集合論的に、ちゃんと数学的に定義している議論がなかなか見つからない!これを読んでいる方(が居るかわかりませんが)で、数学的な定義や定式化を見つけた方、ご存知の方がいらっしゃればぜひとも教えていただけると歓喜します。ちなみに、数学的に定式化できると何がいいか?もしブロックチェーンをきちんと数学的に定義できてこの定義が既知の定義に当てはまるものであれば、それはこれまで数学の研究の中で得られた(この定義から導かれる)既知の一見非自明な定理がすべて適用できるわけです。これはブロックチェーンを応用する強力な助けになるはずです。数学というのは考えの枠組みを作っているわけで、例えるなら、チャートシートを作っているわけです。「あなたのいう〇〇は、定義Aにあてはまりますか?」→yes/noみたいなことを続けることで、最終的に「ではあなたのいう〇〇は、定理X、Y、Zという性質があります」ということが一瞬でわかってしまいます。このようなことから、わたしとしてはより応用範囲を広げられるような数学的なとらえ方をしておくことが重要だと考えています。これができれば非自明な応用先が瞬時にわかるかも知れません。まとめ応用範囲を広げるために、ブロックチェーンをより抽象化してとらえ、(1)分散型ネットワークの中で(2)データに順序がつけられていて、(3)その順序はネットワーク参加者のみによって保証されているようなデータの集合、というくらいに考えるのがよいのではとわたしは考えています。進めて、数学という武器を使うためにもブロックチェーンという概念を数学的に定式化しておきたくて以下のように考えてみました。「データの集合Dと順序Hから成る全順序集合(D,H)をブロックチェーンと呼び、全順序Hにより順序を構成する手続きをコンセンサス・アルゴリズムと呼ぶ。」が、まだこの定義では不満が残る。0Pagetopブロックチェーンってどんなもの?どうも、ぺろりんです。本でまったりとブロックチェーンのお勉強をしていこうかなと思います。得た知識を自分なりにまとめてここにメモしておきます。ブロックチェーンって何?ブロックチェーンは、「ハッシュ関数を用いた、分散ネットワークにおける合意形成の仕組み」です。以下ではこの内容をご説明していきます。ブロックチェーンのはじまり2008年11月、有名な仮想通貨ビットコインに関する一報の論文が、正体不明の人物(または団体)サトシ・ナカモトにより暗号技術のメーリングリストで発表されました。ここに含まれていたのが、ブロックチェーンの概念でした。2009年1月には、上記の論文をもとにしたビットコインのソフトウェアが配布され、運用がはじまりました。ブロックチェーンのはじまりは仮想通貨ビットコインを可能とする技術の一要素でした。理解がすすむにつれ、仮想通貨(もしくは暗号通貨)以外にも「ブロックチェーン」という技術が有用であることがわかり、「ブロックチェーン」そのものが研究されるようになりました。分散ネットワークでの合意形成ってどうすればうまくいくだろう?という疑問への一つの回答がブロックチェーンという考え方です。分散ネットワークでは、ネットワークに参加する全員が同じデータを持っていて同期します。AさんからBさんにXというデータを送ると、この情報がネットワークの参加者全員に共有(同期)されます。これ、同じデータを持っているはずのCさんとDさんで、先ほどのデータ転送の情報が違っていたらどうでしょう?Cさんの持つ情報:AさんからBさんにXというデータを送りました。Dさんの持つ情報:AさんからBさんにYというデータを送りました。これではどちらが正しいかわからなくて困ってしまいます。いうことは、ネットワーク内で同期するときに失敗したり、誰かが情報を改ざんすることで起こり得ることです。このように同期すべき情報の食い違いが起きたとき、どの情報が正しいかを合意するにはどうすれば良いでしょうか?これに対し、ブロックチェーンという技術ではハッシュ関数というものを用いて解決します。関数というのは、何かしらの入力を一定のルールに基づいて加工して出力するための、「一定のルール」の部分のことを言います。ハッシュ関数がどんなルールかというと、以下の条件を満たすようなルールです。(このような条件を満たせば、具体的なルールは何でも良いです)(1)入力に対し、ランダムな(ランダムっぽい)値を出力する。(2)入力aと入力bが少しでも異なると、出力の値は大きく異なるものになる。(3)入力がどんなものでも、出力は一定の長さのデータ列になる。(4)入力と出力が1対1対応する。(入力aの出力cと入力bの出力dがあったとき、どんなa,bに対してもc≠dとなる)ただし(4)については、現実的には“概ね”1対1となる関数が採用されています。(入力a,bに対して出力c=dとなる確率が非常に小さいものが使われています)実用されているハッシュ関数はいくつかありますが、たとえばSHA-1というものでやると、こんな感じになります。今回は、「perorin」と書いたテキストファイルを入力として、この「テキストファイル」に対してSHA-1という規格のルールで加工した出力(ハッシュ値)を見てみます。「7b64a8408882dc4c5c54de8e8d9d2a86e1347e58」という値が出力として生成されました。Windowsの標準機能でできますので、ご興味のある方は参考に挙げておいたリンク先あたりを参照しながらお試しあれ。xTECH)・windows標準でMD5などのハッシュ値を出力(Qiita)ブロックチェーンによる問題の解決さて、問題にもどると、ブロックチェーンでは「同期すべき情報はどれが正しいか?」という合意形成のために、先ほどご説明したハッシュ関数を使用します。ブロックチェーンによる合意形成の仕組みを理解するためには、「ブロックチェーン」と「コンセンサス・アルゴリズム」を理解する必要があります。この書き方だと紛らわしいのですが、一般的に「ブロックチェーン」と言ったときにはその技術に付随する「コンセンサス・アルゴリズム」まで含めて「ブロックチェーン」と呼んでいる気がしますが、次にご説明する(狭義の)「ブロックチェーン」が本来のブロックチェーンという理解で良いはず。狭義のブロックチェーンのことを「ブロックチェーン」、コンセンサス・アルゴリズムまで含めた広義のブロックチェーンのことを「ブロックチェーン技術」と呼ぶ方が良いのかな...?(狭義の)ブロックチェーンハッシュ関数による出力は、入力が少しでも異なると大きく異なるというものでした。これを利用すると、データの改ざんが検知できます。AさんからBさんへ送ったデータXが途中で改ざんされた場合、AさんがXから作成したハッシュ値とBさんが受け取ったX'から作成したハッシュ値はまったく違う値となり、XとX'を比較することでBさんは間違ったデータを受け取ったことがわかります。ブロックチェーンではこのことを利用します。(1)AさんからBさんにXというデータを送ったあとに、(2)AさんからBさんにYというデータを送ることを考えましょう。ネットワークの参加者は「(1)のあとに(2)があった」ということを合意して、この情報を同期する必要があります。「AさんからBさんにXを送りました」という情報が記載されたデータ(たとえばテキストファイル)のハッシュ値を計算し、これを次の「AさんからBさんにYを送りました」という情報が記載されたデータに一緒に記載しておきます。すると、もし(1)の情報がXからX'に改ざんされていたとすると、(2)の情報と一緒に記載されたハッシュ値は、まったく違う値になっています。このように、「(1)のあとに(2)があった」=「(2)の前は(1)だった」という事実は、「(2)の情報+(1)のハッシュ値」という組を考えることで、(1)のハッシュ値によって正誤が判断できます。同じことを続けて、いくつかのデータ転送を記載したデータをひとまとまりとして扱い、各まとまりには1つ前のまとまりのハッシュ値も一緒に記載していきます。することで、過去のある時点で改ざんがあれば、ハッシュ値の違いによりそれは不正なデータであることが判断できます。このひとまとまりのことを「ブロック」と呼び、ブロックがハッシュ値によって鎖(チェーン)のように連なることから、このブロックの連なったデータ群のことを(狭義の)「ブロックチェーン」と呼びます。過去のある時点でブロックの内容を改ざんすると、そのあとに続くブロックに記載された(すでに正しいと合意された)ハッシュ値が、そしてその次のブロックに記載された(すでに正しいと合意された)ハッシュ値が、...とどんどんハッシュ値が変わっていきます。どこかの時点でブロックの内容を改ざんするとすれば、そのあとのすべてのブロックを改ざんする必要が出てきます。ブロックの生成が簡単であればこのような改ざんも可能なのですが、そうは問屋がおろさないというのが次の「コンセンサス・アルゴリズム」です。Work:計算量による証明)がどんなものか見ていきましょう。生成されたブロックが正しいかどうか、ネットワーク参加者が計算により判断するというのがPoWというコンセンサス・アルゴリズムです。具体的には次のような流れで、あるブロックの次のブロック生成が承認されます。(1)ネットワーク内のマイナー(採掘者)と呼ばれる参加者が、ブロックに記載されたハッシュ値から、次ブロック生成のための条件を満たすパラメータ(「ナンス」という)を計算で見つけ出す。(2)マイナーは見つけたナンスを含む新しいブロックを、ネットワークの参加者全員に知らせる。(3)新しいブロックを受け取った各ネットワーク参加者は、自分の持つブロックに記載された情報から受け取った新ブロックに含まれるナンスが正当か判断する。(4)各ネットワーク参加者は、(3)のナンスが正当であれば自分のローカルディスクにあるブロックチェーンに、受け取った新ブロックを追加する。このように、条件を満たす計算問題を解き、その結果の正誤によってネットワーク参加者が合意形成します。ブロック生成の条件は、計算に一定時間(たとえば10分間)かかるように動的に調整されています。このことにより、「過去のある時点でブロック内容を改ざんするために、それ以降のブロックすべてを改ざんする」というのは膨大な時間がかかり現実的にはほぼ不可能となります。この計算(マイニング)には膨大なCPUパワーが必要となるので、ブロックを生成すると報酬(仮想通貨ならその通貨のコイン)をマイナーに与える仕組みになっています。ただ働きだとこんな計算は誰もしませんが、この報酬制度によりマイナーがちゃんと存在するように考えられています。Biz)まとめブロックチェーンが何ものかというのをまとめると、分散ネットワークにおける合意形成の仕組みのひとつで、(1)ひとまとまりのデータ集合である「ブロック」がハッシュ値によりつながったものを(狭義の)「ブロックチェーン」と呼ぶ。(2)ハッシュ値のチェーンでつながる次ブロックは、PoWなどの「コンセンサス・アルゴリズム」により合意されたものが採用される。:PagetopホームPagetopプロフィールAuthor:ぺろりんまだ始まってもいない暗号資産(仮想通貨)、今後が楽しみです。基本的な技術をちゃんと知りたいなぁと思いつつ、まったりお勉強していこうかと思います。Reserved.|プライバシーポリシ。