Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

目的と「契約」(小さく定義) 入力: 既存のブロック/トランザクション基礎コード(あなたの repo)とローカル実行環境(Python)。 出力: 学習用に実装できる、段階的で検証可能な機能セット(上の todo の個別実装案)。 エラー/失敗モード: 実装が複雑になったときの破壊的変更、テスト不足による整合性崩壊。小さく実装・テストして戻せることを優先。 優先度付き提案(短期 -> 中期 -> 長期) 短期(1〜2日で試せる、小さく学べる)

Merkle Tree とマークルルートを実装(学び: データ整合性、証明方法)。 目的: トランザクション改ざん検出を学ぶ。 実験: いくつかのトランザクションで Merkle proof を生成・検証するスクリプトを書く。 ウォレット/鍵管理(鍵の生成・署名・検証)の導入(学び: 公開鍵暗号、署名) 目的: トランザクションの署名と所有権を学ぶ。 実験: 1つの鍵でトランザクションに署名し、検証ロジックを追加。 メモリプール(mempool)を作る(学び: トランザクション処理の流れ、優先度付け) 目的: 未承認トランザクションの管理と簡易な手数料ルールを理解。 中期(数日〜2週間) 4. 簡易 PoW + 難易度調整(学び: コンセンサス、ナンス、ハッシュパワー)

実験: 難易度を変えてブロック生成時間を観察、難易度調整アルゴリズムを実装。 P2P ネットワーク(ローカル複数ノード間で同期) 目的: ノード間ブロック/トランザクション配布と同期の基本概念を理解。 実験: 2〜3 ノードをローカルで起動してチェーン同期を試す。 テスト群の整備(ユニット + 統合) 学び: 再現性のある検証、変更が安全かの確認。 長期(2週間〜それ以上、研究的・発展的) 7. SPV(Merkle proof ベースの軽量クライアント) 8. ブロックエクスプローラ(簡易Web UI) 9. 別のコンセンサス(PoS の簡易シミュレーション、BFT 系の理解) 10. セキュリティ評価(51%攻撃、分岐やリオーグ、防御法)やパフォーマンス改善(ストレージ・プルーニング)

各提案の「学べること」と優先度理由(短め) Merkle Tree(高優先): トランザクション整合性はブロックチェーンの基礎。小さい実装で理解しやすい。 鍵と署名(高優先): トランザクションの正統性に直結。セキュリティの肝。 Mempool(中): 実際のネットワーク挙動に近づく。手数料ルールの設計が学びどころ。 PoW(中): コンセンサスの実験に最適。計算負荷は調整可能で観察しやすい。 P2P(中〜高): ノード間の同期、フォーク解決など分散システムを学べる。実装は少し大きめ。 SPV/Light client(長期): 実運用で使われる最適化。Merkle 概念との組合せで理解が深まる。 ブロックエクスプローラ(低〜中): 見える化で学びが加速。フロントエンドの練習にもなる。 小さな実験案(すぐやれる) Merkle Tree: 手元の 5 トランザクションで Merkle root と proof を作り、検証コードを対話的スクリプトで動かす。 署名: Python の ecdsa(または標準ライブラリで代替)で鍵作成→メッセージ署名→検証。 PoW のミニマイナー: 難易度を 2^n の代わりにプレフィックス0の長さで制御して数秒で動くようにする。 P2P(簡易): localhost 上で複数プロセスを起動し、HTTP で /block, /tx を POST/GET するだけの同期を試す。 エッジケースと検証すべき点 二重支出(double-spend): mempool とチェーンの検証で扱えるか。 フォーク処理: 最長チェーン選択ルールを実験して挙動を観察。 不正なトランザクション・署名: 署名検証が正しく拒否するか。 ネットワーク分断と再接続: フォークが発生した後の再同期挙動。 リソース(メモリ/ディスク): 大量トランザクションでの動作。 品質ゲート(実装前チェックリスト) ユニットテスト: マークルルート、署名検証、ブロック検証の主要関数にテストを追加。 一貫したデータシリアライズ(JSON/バイナリ): 署名やハッシュの仕様を固定する。 小さくて可逆な変更: 機能は小さいコミット単位で実装・検証する。 ログと観察性: 動作を観測するためにログを出す(ブロック受信、採掘成功など)。 リスクと回避策 「一度に大きく作りすぎる」 → 小さい機能単位で試す(上の短期タスク)。 秘密鍵の漏洩 → 学習用ならファイルに平文保存も可だが、実運用でない旨を明示。鍵を安全に扱う練習は別タスクに分ける。 長時間実行の負荷 → PoW の難易度は実験用に下げる。 次に私ができること(選べます) A) 優先度上位から実装手順(ステップ毎)を文章で作る(コード編集なし)。 B) 最初の短期タスク(Merkle Tree or ウォレット)について具体的な設計(入出力・関数シグネチャ・テスト案)を作る。 C) 上のいずれかを実装してリポジトリにパッチを適用(コードを書く)。

About

for learning block chain and pow

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages