Develop with pleasure!

福岡でCloudとかBlockchainとか。

Geth

Berlinアップグレード前に存在した脅威の開示

Ethereum Foundation Blogで公開された、先月アップグレードされたBerlin以前に存在した脅威に関する開示記事↓ blog.ethereum.org 脅威とは? ↑の記事で取り上げられている脅威というは、処理に時間のかかるトランザクションを作成することでDoS攻撃を可能に…

Geth v1.10.0で導入された新しい同期方法Snap sync

ノードが新しくブロックチェーンネットワークに参加した際、最初にチェーンの初期同期を開始するが、ブロックチェーンの成長と伴にこの初期同期のスピードというのがネックになる。先日リリースされたGeth v1.10.0では、Ethereumのブロックチェーンを同期す…

Merkle Patricia Trieの構造とボトルネック

Ethereumのステートを管理する上で重要な構成要素の1つがMerkle Patricia Trie。ビットコイナーならマークルツリーはお馴染みだが、Merkle Patricia Trieはマークルツリーとはだいぶ勝手が違うデータ構造なので、どんな仕組みで構築されて、特定のアイテム…

EthashのPoWとLight Clientの検証コスト

最近、Geth v1.9.0で導入されたUltra Light ClientがブロックヘッダーのPoWの検証をスキップしているのを知った。Bitcoinとかだと軽量ノードはブロックヘッダーのみダウンロードし有効なPoWのチェックはしてるから何故そういうアプローチなのか、EthereumのP…

Ethereumのノード探索の仕組みとエクリプス攻撃とその対策

EthereumのP2Pネットワークまわりの仕様について、まずノード探索の仕組みについて理解する。 Ethereumのノード探索の仕組み Ethereumは分散ハッシュテーブル(DHT)の一種であるKademliaをベースにしたノード検出プロトコルを実装している(Kademlia自体は…

Ethereum環境のセットアップとPrivate Chainの作成

Bitcoinのブロックチェーンは取引記録を台帳に記録していくプラットフォームなのに対し、Ethereumは独自のブロックチェーンネットワークで分散アプリケーションを実行するプラットフォームを提供している。 今回は、そんなEthereumの動作環境を作ってみた。 …