自分を攻略していく記録

自分がやりたいことを達成するには何をすればいいのか、その攻略していく過程をつらつらと

blockchain.tokyo #10で登壇してきた

blockchain.tokyoとは

f:id:ngo275:20180728185557p:plain:w400

blockchain.tokyoは、ブロックチェーン技術の普及や、ナレッジの共有を目的としたコミュニティで、グノシーやメルカリ、DMMが主体となって運営している。毎月100人規模で開催されており、話の内容も技術的なものが非常に多いコミュニティ。

blockchain-tokyo.connpass.com

今回は10回目で「Ethereumの基礎」がテーマだった。

Ethereumで開発を始めるなら知っておきたいこと

自分 @ngo275が発表してきた。対象は、WebエンジニアやアプリエンジニアだがEthereumやDAppsについてはあまり知らないという人を想定した。今までの開発とは技術的にも思想的にも異なる部分が多いので、それについても取り上げて話してみた。

speakerdeck.com

開発者的にはEthereumを使う、となるとDAppsを作りたくなるが、いろいろ整理していくとDAppsで事業を作っていくのはかなり困難が多そうに感じる。たとえば、OmiseGoのようにコミュニティ活動を積極的に行って、Ethereumそのものを良くすることが必要になる、とか。ただ、昨年ではICOが非常に流行ったが、それはICOのようにトークンを確実にセキュアにばらまくことはEthereumですでに可能だったから、という理由がある。最近ではセキュリティトークンが話題になっているが、その方面ではスケーラビリティはそこまで大きな問題ではなく、ICOと同様に、技術的な課題が事業のボトルネックになることはなさそうに感じる。知れば知るほどEthereumの課題の多さに驚いてしまうが(Vitalik氏もオモチャと言っている)、現状のEthereumでできることは少しずつ見えてきているのも事実だ。

Ethereumのデータ構造

グノシーのエンジニア サルバドールさんの発表。マークルパトリシアツリーの説明から入って、Storageがどのように保存されているのか、最後にRLPデコードをする話だった。かなりコアなところまで踏み込んでいった話で面白かった。gethの内部で利用されているLebelDBの扱いが難しかったそう。

speakerdeck.com

Ethereumを支えるネットワークの話

DMMのエンジニア さんの発表。Ethereumのプロトコルは大きくDEVp2pとEthereum Wire Protocolがあるが、その前者(ネットワーク部分)の話で、ノード探索・接続の方法についてわかりやすくまとめてあった。この説明を聞いた後にweb3でJSON-RPCで接続する、と聞くと理解が進むかもしれない。

speakerdeck.com

Gasを誰が払うのか問題について

ゆで卵さんのLTで、Ethereumのガスの扱いについて。これは非常に頭が痛い問題で、この発表にあるようにユーザに負担させないようにする提案(ERC877)、ETH以外のトークンで払えるようにする提案(ERC865)、そういったのをまとめるインターフェースの提案(ERC1077)がある。ここまで普段見ていなかったので勉強になった。

speakerdeck.com

State Channelエコシステムと実用上の課題

グノシーのStateChannelの神こと中村くんのLT。たとえばState Channelをチェスに応用をした時に一つコマを動かすたびに署名を求める必要がでてくるよう。State Channelによるスケーラビリティ解決は、技術的に実現できそうな一方で、まだまだ詰めるべき点があるので今後もウォッチしておいた方が良さそうだ。

speakerdeck.com

以下で詳しく説明されている。

blockchain.gunosy.io

Ethereum fast sync

最後はころさんのLT。ブロックの同期に時間がかかってしまう問題についてわかりやすくまとめてある。ここもあまり知らなかったので勉強になった。

speakerdeck.com

まとめ

「Ethereumの基礎」というテーマだったらしいが、基礎的な話というより低レイヤーな基盤についての話が多かった。勉強になる話が多くてよかった。