Gunosy Blockchain Blog

Gunosyの開発メンバーが知見を共有するブログです。

blockchain.tokyo #10 が開催されました!

はじめに

こんにちは!LayerXの榎本@mosa_siruです。

先日DMMさんの会場でblockchain.tokyoの第10回(!)が行われたので、復習もかねて当日の内容をこちらにまとめたいと思います。当日の様子はTwitterでハッシュタグ #blockchaintokyo でツイートされているので、興味のある方はぜひそちらもご覧ください。

blockchain-tokyo.connpass.com

blockchain.tokyoは去年の10月から毎月行われているエンジニア向けのイベントで、ブロックチェーン技術の濃ゆい話を扱ってきました。 主にブロックチェーンのプロトコルレイヤーにフォーカスを当てた発表が多かったように思われます。

今回は第10回ということで、Ethereumの基礎技術(基盤技術)がテーマでした。かゆいところに手が届く発表ばかりで、当日ずっと興奮していました…!

会場はDMMさんの大きい会議室をお借りしました。草が茂っていて毎回圧倒されます!

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

speakerdeck.com

まずはAnypayの永尾さん。最初の発表ということで、おさらいも兼ねてアプリケーション開発者が知っておくべきベースレイヤーの知識、また従来の開発と異なるところをまとめていただきました。開発に必要なフレームワークやツール群もきれいにまとまっていて、これから開発を始める方には非常に良い資料かと思います!

いくつかの点で従来のアプリケーションと異なる点があり、特にトランザクションの反映まで時間がかかり、またそれが確率的である等の辛みにも触れていただきました。

Ethereumのデータ構造 @moonty_sal

speakerdeck.com 次は弊社の三ツ澤(サルバ)。マークルパトリシアツリーとRLPエンコーディングについて。

名前は見るけどあんまりちゃんと把握してないところでしたので、非常に参考になりました。独自のエンコーディング形式を用意するこだわり。全然関係ないですが、パトリシア(Patricia)って誰かの名前じゃないんですね…

「web3からだと生のバイトデータが返って来ない、コレジャナイ」「RLP 目デコードできるようになりたい」等、なかなか変態感ある発表でした。

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

speakerdeck.com

次はDMMの金さん。まさにブロックチェーンを支える、P2Pネットワーク技術について。

このレイヤーの解説はほとんど見かけないので、かなり参考になりました。。まさにレイヤー0といったかんじ。

ÐΞVp2pはUDPを用いたノード探索と、TCPを用いたRLPxからなるプロトコルで、Ethereum wire protocolはRLPxに乗っかったアプリケーション層。Ethereumのwikiも合わせて読むと捗りそうです。

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

speakerdeck.com

ここからはLTパートで、まずはゆで卵さんのLT。

Dapps開発にあたってユーザービリティを考えると頭が痛い問題を扱っています。dapps上で書き込み動作をするにはgasが必須になるのだけど、ユーザーがMetamaskやウォレットをインストールしている前提はあまりにも間口を狭めてしまう。

そのために考えられているのがmeta transactionで、ユーザーは署名のみ行い、transactionの発行はDapps側などの第三者が行うというもの。これをもとに、以下の仕様が提案されているとのことです!

  • ERC865: gasをETHではなくtokenで払えるように
  • ERC877: signerとdeployerの分離 ※ethereum自体に変更必要
  • ERC1077 上記2つを統一的に行う

まさに僕らも直面していた問題で、非常に参考になりました…!

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

speakerdeck.com

弊社におけるState Channelの神である中村のLT。 State channelとそのエコシステムについて平易にまとめた上で、現実的な適用例と、現状の問題点を簡潔にまとめられています。payment以外の用途に汎用的に使える状況ではなく、またLightning Networkと同様にエコシステムの成熟も必須。さらにLNと異なり、ICO前提の垂直型な開発文化がプロトコルの標準化を阻害している可能性があるとのこと。とはいえ一部のユースケースでの検討や実験は面白いかもと感じさせる発表でした。

State channelについて詳しい内容は、中村の以下の記事をご参照ください!

blockchain.gunosy.io

blockchain.gunosy.io

Ethereum fast sync @koropicot

speakerdeck.com

ノードの初期同期が遅い問題に対する、Fast synchronization やそれ以前の手法について。 - ブロックはヘッダとbodyに分けて、複数ノードから並列で取得する - ASIC耐性により重いEthashが用いられるnonce計算は省略して、確率的に担保する - 全Txの再生が必要であるStateやRecipeは、途中地点までは計算省略してまるっと取得してしまう(帯域は犠牲になる) - ただし、悪意のあるノードがsybil attackで蔓延した場合、改竄されたstateを得てしまう可能性はある

このPull requestにより、時間にして8倍、ストレージにして5倍の効率化ができたとのこと(!)

懇親会

DMMさんの会場で、ピザをたべながら技術的な話に花を咲かせていました。

最後に

LayerXではブロックチェーン技術の研究や実際の開発を進めており、メンバーを募集しています。

少し話を聞いてみたい!という方も歓迎していますので、下記のリンクからの応募お待ちしております。

www.wantedly.com

また弊社では、blockchain.tokyo を主催しています。

イベントグループへメンバー登録をしていただくとイベント参加者募集の通知が来るので、こちらもぜひ登録してみてください。

blockchain-tokyo.connpass.com