SocialBlobs — ソーシャル向けブロブ(簡易実装)

Library

概要

SocialBlobsは、Ethereum上で「ソーシャル」用途の小さなブロブ(データ断片)を扱うための極めて簡素なエンコーダ/デコーダとBLS署名検証器の実装です。提案されているBlob Space Segments(BSS)アイデアに基づき、データをオンチェーンで検証できる形に変換するプロトタイプを示します。実装はあえて非圧縮・非効率な設計になっており、研究・検討用の参考実装として、Vyperでのスマートコントラクト実装(decoder.vy)とPythonでのヘルパースクリプト(blob_encoder.py、data_signer.py)およびテストを含みます。オンチェーンでの処理コストや実用性は十分に最適化されていない点が特徴です。

GitHub

リポジトリの統計情報

  • スター数: 2
  • フォーク数: 0
  • ウォッチャー数: 2
  • コミット数: 3
  • ファイル数: 7
  • メインの言語: Vyper

主な特徴

  • BSS(Blob Space Segments)提案に基づく最小限のエンコーダ/デコーダ実装
  • BLS署名の検証ロジックをVyperで実装したスマートコントラクト(概念実証)
  • Pythonスクリプトでエンコードと署名生成を補助し、テストベクトルを作成
  • 非圧縮・非効率な設計で、プロトタイプ/研究目的に最適化

技術的なポイント

このリポジトリは「概念実証(proof-of-concept)」を目的としており、設計と実装にはいくつかの技術的焦点があります。まず、データの表現方法としては非圧縮のシリアライズを採用し、ブロブを分割・連結してオンチェーンで再構築・検証できる形にしています。これにより実装は単純になりますが、ガスコストやストレージ面での効率は重視していません。

署名検証にはBLS(Boneh–Lynn–Shacham)スキームを用いており、スマートコントラクト側の decoder.vy に検証ロジックが含まれます。BLSを用いることで短い署名で多数のメッセージやキーに対する検証が可能になりますが、Vyperでの暗号演算(ハッシュ→曲線点変換、加算、スカラー乗算、ペアリング等)は計算コストが高く、手作業での最適化やプレコンパイルの利用が無ければ実運用では重いのが現実です。本リポジトリはあえて「非常に非効率な」実装を置いてあるため、暗号操作のアルゴリズム的理解やテストベクター作成に向いています。

補助ツールとして blob_encoder.py や data_signer.py があり、オフチェーンでブロブのエンコードと署名生成を行います。hash_to_point_test.py のようなテストは、バイト列から曲線上の点への決定論的なマッピング(hash_to_point)を検証し、オンチェーン実装とオフチェーン実装の整合性を担保します。これにより、クライアント側で生成したデータとスマートコントラクト側で期待されるポイント表現が一致することを確認できます。

総じて、実装は研究的な目的で暗号的処理とフォーマット設計の検討を容易にする構成になっており、実用化前に最適化や圧縮・ガスコスト評価・セキュリティ監査が必要です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: file
  • blob_encoder.py: file
  • data_signer.py: file
  • decoder.vy: file
  • hash_to_point_test.py: file

…他 2 ファイル

まとめ

研究用途に適した概念実証で、実運用前提の最適化は必要です。(約50字)

リポジトリ情報:

READMEの抜粋:

SocialBlobs

An implementation of an encoder/decoder and BLS signature verifier for https://github.com/ethereum/ERCs/pull/1578, a minimalistic “social on Ethereum blobs/calldata” protocol. …