Ethereum(イーサリアム、エセリウム、イサリアム)が昨日無事リリースされた。ここでもう一度イーサリアムとは何かについて、まとめておく。 続きを読む イーサリアム(Ethereum)とはなにか?(2015年版)
タグ別アーカイブ: イーサリアム
Ethereum(イーサリアム)が本日リリース。マイニング、取引方法、今後の見通しについて。
Ethereum(イーサリアム、エセリウム)が本日リリースされた。
Versionが1.0となり、最初のブロックが生成されて、ネットワークが稼働した。Kraken, Gatecoin他、いくつかの取引所で、取引が開始された。 続きを読む Ethereum(イーサリアム)が本日リリース。マイニング、取引方法、今後の見通しについて。
Ethereumは今週金曜日午前中くらいにリリース
公式ブログによれば、Ethereumは、金曜日にリリースされる。
どのようにしてリリースされるのかについて、簡単なまとめを行う。
すでにソフトウェアは用意されており、あとは、ジェネシスブロック、つまり、ブロックナンバー1、最初のブロックを全員が読み込んで、そこからマイニングをスタートさせれば、Ethereumはローンチする。 続きを読む Ethereumは今週金曜日午前中くらいにリリース
Etherumが数日中にローンチ
Etherumが数日中にローンチする。長らく待った。この日を待ち望んでいた。
We are only days away from launching ‘Frontier’
(数日中に”フロンティア”をローンチする) 続きを読む Etherumが数日中にローンチ
イーサリアム はどのように動作するのか?
Ethereum(エセリウム、エセリアム、イーサリアム)の動作について、踏み込んで、動作についての、解説を行う。
Etherum自体は、ブロックチェーン型の仮想マシンだとか、分散型アプリケーションの基盤だとか、スマートコントラクトプラットフォームだとか、いろいろな見方があるが、実際何ができるのか概要を解説したい。
すこしコンピュータがわかるひと向けに書く。
簡単にいうと、
・コントラクト(オブジェクト)が作れて
・メッセージを送れて
・値が保持できる
といった感じだ。まあ、要するにコンピュータなわけである。
試しに、こういうコードを作ってみよう。アルトコインのOhCoinだ。これは、ビットコインなどと同じく、アドレスごとにコイン残高が保持されていて、残高の送金が可能だ。
このコントラクトには、
・アドレスごとのOh Coinの値を保持する領域があり
・コイン残高をアドレスAからBに移動するというメソッドがある
・アドレスごとに残高を返すメソッドがある
コントラクトは、オブジェクトと読み替えていただいて問題ない。オブジェクトと一緒で、メソッドがあり、メソッド毎のデータがある。
なおコントラクトには、それを識別する固有のアドレス(コントラクトアドレス)が付与される。
このコントラクトは、ネットワークに手数料を払うことで、Ethereumブロックチェーン上に登録される。基本的に、コントラクトはブロックエクスプローラーなどで参照でき、メソッドも公開される。
さて、このoh coin コントラクトは、アルトコインを模したものであった。Aさんが、Bさんにこれをつかってコインを送金することを考えてみよう。
Etherumでは、ユーザーはそれぞれ、Etherum addressという固有のアドレスを取得できる。これが唯一の識別子となる。Etherum上のお金である、Etherの残高もこれに紐づく。
ユーザーAさんが、BさんのEthereumアドレスを指定し、oh Coinをおくりたいと考える。
(※ユーザーAさんは予めohコインをいくらか持っていると考える)
この場合は、oh coin のコントラクトのアドレスを指定し、そのコントラクトの「送金」メソッドを叩く。引数は、送り先のアドレスと、送りたいコインの量の2つだ。
Ethereumにおけるトランザクションとは、メソッドへのメッセージ送信と捉えていただいてOKだ。
・ネットワーク上にトランザクションを流す=メソッドへのメッセージの送信
このとき、ユーザーAさんは、コントラクトを実行するための手数料として少額のEtherを支払わなければならない。Etherはコントラクト実行のために必要で、コードの複雑さや長さによって、必要量が異なる。これにより乱用が防げる。
メッセージをうけとったコントラクトは、それを実行する。このとき、コントラクト内の状態は、次のように変化する。
・ブロック100の時点で、ユーザーAの残高は30
・コインの移動メソッド(Bへ10)が実行される
・この結果、ブロック101では、ユーザーAの残高がへり、ユーザーBの残高が増える
Ethereumでは、コントラクトとその変数の値を常に保持し、それらはすべての分散ノード上で合意された値でなくてはならない。そこで合意のための、マイニングが発生する。
このとき、Ethereumのマイナーは何をしているのだろうか。概念はビットコインほかのブロックチェーンと一緒だ。ビットコインではハッシュと署名を検証していたが、Ethereumでは、ハッシュと、コントラクトの実行結果を検証する。
1) マイナーは、最初に、トランザクション(メッセージ)を受ける。
2) 実際にコントラクトのコードにそって、メソッドを実行してみる。実行結果の状態を記録する。
3) いわゆるマイニングを行う。これは競争であり、最初にnonceをみつけたマイナーが、ブロックを生成できる。このとき、ブロックには、メソッドの実行結果の状態を書き込む
4) ブロックをブロードキャストする。
これを受け取ったその他のノードは、ブロックを検証する
1) ブロックのハッシュが正しいかどうかを検証する
2) コントラクトにしたがい、メソッドを実行してみて、実行結果が、正しいかどうか、送られてきたブロックで正しいとされている結果と同じかを検証する
3) 問題なければ、ブロックチェーンの末尾にブロックを追加。すべてのコントラクトとデータの状態を最新にする。
ということである。ブロックチェーンを保持するフルノードは、すべて同じコントラクトを実行して、結果の正しさを検証することになる。
Ethereumでは、ブロックの生成間隔は仕様上12.7秒だ。
12.7秒の間に発せられたメソッドを実行し、正しい結果をマイニングして記録する。12.7秒ごとに、コントラクトと、その保持するデータ(変数)の値が、実行結果にあわせて書き換えられる。
こういうことが、ずっと続くという、一連の処理マシンだと捉えていただくと理解できよう。
・ブロックチェーン方式なので、メソッドの実行結果については、不正はできない。取消も、逆戻りもできない。
・コントラクトはチューリング完全な言語仕様であり、いかなる処理も記述可能
・コントラクトのコードは、ブロックチェーン上に格納されて、検証でき、改ざんができない。
・コントラクトが保持するデータの値も、ブロックチェーン上に格納され、保持される。
・コントラクトが保持出来るデータには上限はないようだ。いかなるデータも記録できるが、大きさに応じてEtherを支払う必要がある
・コントラクト自体が、他のコントラクトにたいしてメッセージを送りメソッドを実行することができる
これ以上の解説は、追って理解が進み次第書こうと思う。
Ethereumが15億円の調達を完了、時価総額は19億円。
Ethereum(エセリウム、イサリアム)が、資金調達を終えた。1週間ほどまえに終えていたが忙しくて書けなかったが、まだ誰もちゃんと書いてないので書いておく。
Ethereumは、サービス内のトークンとなるEther(イーサー)を発行し、これを初期の投資家兼利用者に販売した。 続きを読む Ethereumが15億円の調達を完了、時価総額は19億円。
これで理解できる Ethereum(イーサリアム)とはなにか?
Ethereum(エセリアム、エセリウム、イーサリウム、イサリアム)とはなにか?
Ethereumについては、ほんの少しだけ広まってきて、一部の人が話題にあげるようになってきた。おそらく、このブロクがEtherumについてはじめて言及したブログだと思うのでその後の話をしておこう。 続きを読む これで理解できる Ethereum(イーサリアム)とはなにか?