$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cryptography 101 for Understanding Nostr
Search
jiftechnify
August 04, 2023
Technology
0
370
Cryptography 101 for Understanding Nostr
jiftechnify
August 04, 2023
Tweet
Share
More Decks by jiftechnify
See All by jiftechnify
Functional Programming in Scala 第2版 読書のすゝめ
jiftechnify
0
70
Start Nostr Indie Dev for Great Good
jiftechnify
0
200
Thinking about Feasibility of Scheduled Posts on Nostr
jiftechnify
0
290
Nostrのリレーから漏れなくすべてのイベントを取ってくる技術
jiftechnify
0
680
Other Decks in Technology
See All in Technology
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
9.7k
.NET 10のEntity Framework Coreの新機能
htkym
0
140
Master Dataグループ紹介資料
sansan33
PRO
1
4k
Modern Data Stack大好きマンが語るSnowflakeの魅力
sagara
0
110
ローカルLLM基礎知識 / local LLM basics 2025
kishida
25
11k
Data Hubグループ 紹介資料
sansan33
PRO
0
2.3k
履歴テーブル、今回はこう作りました 〜 Delegated Types編 〜 / How We Built Our History Table This Time — With Delegated Types
moznion
13
8.1k
Kill the Vibe?Architecture in the age of AI
stoth
1
120
【保存版】「ガチャ」からの脱却:Gemini × Veoで作る、意図を反映するAI動画制作ワークフロー
nekoailab
0
120
AI エージェント活用のベストプラクティスと今後の課題
asei
2
400
AWS re:Invent 2025 で頻出の 生成 AI サービスをおさらい
komakichi
3
260
Android Studio Otter の最新 Gemini 機能 / Latest Gemini features in Android Studio Otter
yanzm
0
490
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Rails Girls Zürich Keynote
gr2m
95
14k
Done Done
chrislema
186
16k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
Code Review Best Practice
trishagee
73
19k
Code Reviewing Like a Champion
maltzj
527
40k
Practical Orchestrator
shlominoach
190
11k
Automating Front-end Workflow
addyosmani
1371
200k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Transcript
None
自己紹介 NIP-05:
[email protected]
Nostr上での主な活動: 作ったもの Nosaray(のさらい): 過去のTLを見るツール nosdump: 複数リレーからイベントを一気に取得できるCLIツール nostr-fetch:
過去のイベント取得を楽にするライブラリ 詳しい話は勉強会#1をみてね リレー運営 wss://nrelay.c-stellar.net: フォロワーのみ書き込み可能 wss://nrelay-jp.c-stellar.net: 日本国内からのみアクセス可能 NIP日本語訳、たまにプルリク投げたり
おしながき Nostrの基礎となる暗号技術について解説します デジタル署名 共通鍵暗号 次のような疑問を解消します Nostrではどうやって投稿者の本人確認・投稿の改ざん防止を実現しているの? どうして秘密鍵を漏らしてはいけないの? 秘密鍵を漏らすと何が起こるの? NostrのDMはどんなしくみになっているの?
序. 通常のWebサービスとNostrの違い
いつもの図
本人確認
1. デジタル署名の話
アナログ世界の署名
デジタル署名 = デジタル世界で 署名と同じしくみを実現するもの
舞台設定
準備: 鍵生成
署名
検証鍵を公開しても大丈夫?
署名検証
署名が正しいと何が証明できる?
閑話休題: ハッシュのお話
2. Nostrにおけるデジタル署名の利用
Nostrのイベントの中身
解剖: Nostrイベント
イベントに署名する
イベントの署名を検証する
公開鍵 = アカウント (秘密鍵が漏れていない限り、) 特定の公開鍵のもとで正しい署名を持つイベントを作れるのは、1人だけのはず → 公開鍵を、その人の「アカウントID」とみなせる
秘密鍵を漏らすと…
本当に本人証明になってるの? 以下のことを証明する、究極的な方法はない! ある公開鍵が本当に「◦◦さん」のものなのか? ある公開鍵が信用に足る人間のものなのか? 部分的に解決するしくみはあるが… NIP-05: ドメイン(例: c-stellar.net)に公開鍵を紐付ける NIP-39: 他のSNSアカウントに公開鍵を紐付ける
結局、最後に信用を生むのは「日々の行動の積み重ね」
3. NostrのDMのしくみ
いかにして秘密の通信を成立させるか
秘密を漏らさず鍵を共有する、たった一つの冴えた方法
DMを送信する: 暗号化
受信したDMを解読する: 復号
現在のDMの仕様(NIP-04)の問題点 誰が誰にDMを送ったか・いつ送られたかなど、本文以外の情報が外部に筒抜け 暗号化方式が固定 暗号化方式が古くなるにつれ、攻撃者に解読される危険性は高まっていく 時代の変化に合わせ、新方式に乗り換えられるしくみにしておく必要があるが… 改善のため、さまざまな提案がなされている
参考文献 暗号技術のすべて / IPUSIRON 著 プログラミング・ビットコイン / Jimmy Song 著
None