- Moved all expression-related functions to expressions.rs (621 lines) - Includes: build_expression, build_literal, binary/unary ops - Added missing functions for build_expression completeness: - build_assignment, build_field_assignment - build_new_expression, build_await_expression - expressions.rs now contains 16 functions total - Build verified successfully
133 lines
4.1 KiB
Markdown
133 lines
4.1 KiB
Markdown
# Midnight Network Privacy-First Challenge 戦略
|
||
|
||
## 🎯 チャレンジ概要
|
||
- **主催**: DEV.to × Midnight Network
|
||
- **賞金総額**: $5,000
|
||
- **締切**: 2025年9月7日 11:59 PM PDT
|
||
- **発表**: 2025年9月18日
|
||
|
||
## 🏆 カテゴリーと賞金
|
||
1. **"Protect That Data"** - $3,500
|
||
- プライバシー保護アプリケーション
|
||
- ゼロ知識証明を活用したソリューション
|
||
|
||
2. **"Enhance the Ecosystem"** - $1,000
|
||
- 開発者ツール・SDK
|
||
- Midnight開発体験の改善
|
||
|
||
3. **"Best Tutorial"** - $500
|
||
- 教育コンテンツ
|
||
- Midnight技術の解説
|
||
|
||
## 💡 Nyashでの参加アイデア
|
||
|
||
### 1. **NyashPrivacyBox** - ゼロ知識証明ラッパー(Protect That Data部門)
|
||
```nyash
|
||
// Midnight NetworkのCompact言語をNyashから使いやすくするBox
|
||
box PrivacyBox {
|
||
init { midnightClient, proofs }
|
||
|
||
// プライベートデータの証明生成
|
||
proveAge(actualAge, minimumAge) {
|
||
// ゼロ知識証明で「最低年齢以上」を証明
|
||
// 実際の年齢は公開しない
|
||
return me.midnightClient.generateProof({
|
||
"statement": "age >= " + minimumAge,
|
||
"witness": actualAge
|
||
})
|
||
}
|
||
|
||
// プライベート投票システム
|
||
vote(choice) {
|
||
// 投票内容を秘密にしたまま、有効な投票であることを証明
|
||
local proof = me.midnightClient.proveValidVote(choice)
|
||
return me.submitVote(proof)
|
||
}
|
||
}
|
||
```
|
||
|
||
### 2. **Nyash→Compact トランスパイラー** (Enhance the Ecosystem部門)
|
||
```nyash
|
||
// NyashコードをMidnight Compact言語に変換
|
||
box CompactTranspiler {
|
||
transpile(nyashCode) {
|
||
// Everything is Box → Compact型システム
|
||
// Nyashのプライバシー宣言をCompactに変換
|
||
return me.convertToCompact(nyashCode)
|
||
}
|
||
}
|
||
```
|
||
|
||
### 3. **インタラクティブZKPチュートリアル** (Best Tutorial部門)
|
||
- Nyashで書かれたステップバイステップガイド
|
||
- ブラウザ上で動作するWASM版デモ
|
||
- ゼロ知識証明の概念を視覚的に解説
|
||
|
||
## 🛠️ 技術要件
|
||
- **Midnight Compact言語**: プライバシー保護言語
|
||
- **MidnightJS**: JavaScript SDK
|
||
- **Apache 2.0ライセンス**: オープンソース必須
|
||
- **GitHub公開**: リポジトリ必須
|
||
|
||
## 📅 実装計画(〜9月7日)
|
||
|
||
### Phase 1: 調査(8月24-26日)
|
||
- [ ] Midnight Networkドキュメント熟読
|
||
- [ ] Compact言語の基礎学習
|
||
- [ ] MidnightJSのサンプル実行
|
||
|
||
### Phase 2: プロトタイプ(8月27-31日)
|
||
- [ ] NyashからMidnightJSを呼び出す基本実装
|
||
- [ ] PrivacyBoxの最小実装
|
||
- [ ] 簡単なゼロ知識証明デモ
|
||
|
||
### Phase 3: 本実装(9月1-5日)
|
||
- [ ] 選択したカテゴリーの実装完成
|
||
- [ ] ドキュメント作成
|
||
- [ ] デモアプリケーション
|
||
|
||
### Phase 4: 仕上げ(9月6-7日)
|
||
- [ ] チュートリアル動画作成
|
||
- [ ] 最終テスト
|
||
- [ ] 提出準備
|
||
|
||
## 🎯 戦略的優位性
|
||
|
||
### Nyashの強み
|
||
1. **Everything is Box哲学**
|
||
- プライバシーもBoxとして扱える
|
||
- 直感的なAPIデザイン
|
||
|
||
2. **WASM対応**
|
||
- ブラウザでゼロ知識証明デモ可能
|
||
- インタラクティブな教育コンテンツ
|
||
|
||
3. **独自性**
|
||
- Nyashという新言語での実装は注目を集める
|
||
- 審査員の記憶に残りやすい
|
||
|
||
## 🤔 検討事項
|
||
|
||
### 技術的課題
|
||
- MidnightJSとの統合方法
|
||
- Compact言語の学習曲線
|
||
- ゼロ知識証明の実装複雑性
|
||
|
||
### 時間的制約
|
||
- 約2週間での実装
|
||
- Midnight技術の学習時間
|
||
- ドキュメント・チュートリアル作成
|
||
|
||
## 🎬 次のステップ
|
||
|
||
1. **今すぐ**: Midnight Networkのアカウント作成
|
||
2. **明日**: Compact言語チュートリアル開始
|
||
3. **週末**: 最初のプロトタイプ作成
|
||
|
||
## 📚 参考リンク
|
||
- [Midnight Developer Docs](https://docs.midnight.network/)
|
||
- [Challenge Details](https://dev.to/devteam/join-the-midnight-network-privacy-first-challenge-5000-in-prizes-3l45)
|
||
- [Submission Template](https://dev.to/new/midnightchallenge)
|
||
|
||
---
|
||
最終更新: 2025-08-24 |