Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
記録の真正性を保つ : ブロックチェーンやその他の証明技術 / Maintain authen...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kenji Saito
PRO
December 17, 2021
Technology
310
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
記録の真正性を保つ : ブロックチェーンやその他の証明技術 / Maintain authenticity of records: blockchain and other proof technologies
2021年12月19日(日)、日本統合医療学会学術大会での講演で用いたスライドです。
Kenji Saito
PRO
December 17, 2021
More Decks by Kenji Saito
See All by Kenji Saito
サイバー戦の現在と未来 / The Present and Future of Cyber Warfare
ks91
PRO
0
14
AI Agentification: Current State and the Changes Ahead
ks91
PRO
0
32
サイバー攻撃・防御とサイバー法 / Cyber Attacks, Defense, and Cyber Law
ks91
PRO
0
93
AI・ロボティクスと自動化社会 / AI, Robotics, and the Automated Society
ks91
PRO
0
96
ロボティクスの技術 / Robotics Technology
ks91
PRO
0
150
インシデントレスポンス演習 I / Incident Response Exercise I
ks91
PRO
0
130
責任 2.0/3.0 ∼ 知的創造過程の脱領土化 / Responsibility 2.0/3.0 - The Deterritorialization of the Intellectual Creative Process
ks91
PRO
0
35
エージェント化するAI:現在地とその先に起きる変化 〜 おかわり / AI as Agents: The Current State and the Changes Ahead - a second helping
ks91
PRO
0
50
金融テクノロジーのガバナンス / Governance of Financial Technology
ks91
PRO
0
110
Other Decks in Technology
See All in Technology
從開發到部署全都交給 AI:實作 AI 驅動的自動化流程
appleboy
0
180
toB プロダクトから見たWAF
tokai235
0
240
【FinOps】データドリブンな意思決定を目指して
z63d
2
480
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
300
トークン最適化のためのユーザーストーリー分析 / User Story Analysis for Token Optimization
oomatomo
0
120
AIをフル活用してオンコール機能のプロトタイプを2日で作った話 / Building an AI-Powered On-Call Prototype in Just Two Days
nari_ex
0
140
From Prompt Engineering to Loop Engineering
shibuiwilliam
1
280
「ビジネスがわかるエンジニア」とは何か?
ryooob
0
350
週末にループ・エンジニアリングの理解を深めるためのスライド
nagatsu
0
560
フルAIで個人開発して学んだあれこれ / yuruai vol.1
isaoshimizu
0
150
そこにあるから地図ができる~位置を示す"モノ"を愉しむ~ - Interface 2026年6月号GPS特集オフ会 / interface_202606_GPS_offline
sakaik
1
110
Amazon Redshift zero-ETL 統合を活用した軽量なマルチプロダクトデータ可視化基盤 / Lightweight Multi-Product Data Visualization with Amazon Redshift Zero-ETL
kaminashi
0
110
Featured
See All Featured
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
160
Evolving SEO for Evolving Search Engines
ryanjones
0
230
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
260
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
310
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
170
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Between Models and Reality
mayunak
4
350
The Limits of Empathy - UXLibs8
cassininazir
1
370
Transcript
( ) : — 2020-12-19 – p.1/17
(一社)日本統合医療学会 CO I (利益相反)開示 発表者名:斉藤 賢爾 演題発表内容に関連し、発表者らに開示すべき CO I 関係にある団体等はありません。
様式1-A (過去3年間に、申告すべきCOI状態がない時)
( ) SFC ( ) CSO (Chief Science Officer) 1993
( ) 2006 ( ) SFC 21 P2P (Peer-to-Peer) 2011 2018 2019 VR 2021.7 VR 2021.8 “ALL THESE WORLDS ARE YOURS” VR 2021.9 & VR 2021.12 ( (VR) ) ( ) → ( ) : — 2020-12-19 – p.2/17
: — 2020-12-19 – p.3/17
(1) ( ) 3 : — 2020-12-19 – p.4/17
(2) ↓ (1) ( ) (2) ( ) (3) (
) bitcoin : — 2020-12-19 – p.5/17
Bitcoin YouTuber ( ) ( ) ( ) ( )
Bitcoin ( ) YouTube, Zoom, etc. ??? YouTube Zoom ( ) : — 2020-12-19 – p.6/17
( ) : — 2020-12-19 – p.7/17
( ) ( ) ( ) ( 16 ) SHA
(Secure Hash Algorithm) ( ) 1bit : — 2020-12-19 – p.8/17
( ) < , > ( ) ← : <
, > : : < , , > : OK NG : — 2020-12-19 – p.9/17
( ) . . . : — 2020-12-19 – p.10/17
ID BBc-1/Ethereum API/ https://github.com/beyond-blockchain/examples/tree/master/certify-web 1. ID ( ) 2. ID
ID . . . ID ( ) : — 2020-12-19 – p.11/17
ID { "id": "4445 4558 1689", "name": "Wednesday Addams", "born":
"1980-02-12", "address": "0001 Cemetery Lane", "public-key": "04d49e0786a37efce8552d6fd1566d7cfd86f110d4d95f1...4edb", "algo": "ecdsa-p256v1", "sig": "609b390f9486110d1ba39fc59cc46f1c2aa31ae8e40d3454c05a42...48e2", "pubkey": "0479c6676de61b41b7d0291b338f3279671d649f0a71bbb495...4bd1", } (Merkle) Ethereum : — 2020-12-19 – p.12/17
*%Χʔυจॻ JEJE OBNF8FEOFTEBZ"EEBNTOBNF 8FEOFTEBZ"EEBNT ͷͷ ࣏ࣗମͷͷ CPSOCPSO BEESFTT$FNFUFSZ-BOFBEESFTT QVCMJDLFZEFDFECQVCMJDLFZ *%
Χʔυจॻ ͷμΠδΣετ ॺ໊͖ *% Χʔυจॻ ͷμΠδΣετ ࿈͔݁ͯ͠Β ܭࢉ͢Δ ॺ໊Λݕূ͠ɺ ޭͨ͠Β ࿈͔݁ͯ͠Β ܭࢉ͢Δ EJHFTU EJHFTU EJHFTU BMHPSJUIN TJHOBUVSF QVCMJDLFZ EJHFTU EJHFTU EJHFTU EJHFTU +40/ σʔλߏɺ෦ॲཧͰ 9.- ʹม͞Ε·͢ ͱͱ 9.- ༻ʹ࡞ͬͯ͋ΔϥΠϒϥϦΛ༻͍ͯ͠·͢ ɻ ෦తʹӅ͞Ε͍ͯͯূ໌Ͱ͖ΔΑ͏ʹɺηΫγϣϯ͝ͱʹμΠδΣετΛܭࢉ͍ͯ͠·͢ɻ ྫ͑ɺ*% ΧʔυͰྸॅॴɺ͋Δ͍ެ։伴Λ֬ೝ͢Δ͚ͩͰ͋Εɺ*% ൪߸ΛݟΔ͜ͱ͕๏Ͱېࢭ͞Ε͍ͯΔͷ߹ɺ *% ൪߸ΛӅͯ͠ ͦͷ෦ΛରԠ͢ΔμΠδΣετͰஔ͖͑ͯ ఏࣔͯ͠࠷ऴతʹॺ໊͖ *% Χʔυจॻͷಉ͡μΠδΣετΛܭࢉͰ͖ΔͷͰɺଘࡏূ໌͕Ͱ͖·͢ɻ ʮμΠδΣετʯͱɺ҉߸ֶతϋογϡؔʢࠓճ 4)"ʣʹΑͬͯܭࢉ͞Εͨͷ͜ͱͰ͢ɻ Θ͔ͣ ϏοτͰݩͷσʔλ͕ҟͳΔͱɺฦͬͯ͘Δ͕શ͘ҟͳΓɺμΠδΣετ͔ΒݩͷσʔλΛ ਪଌ͢Δ͜ͱͰ͖·ͤΜɻ : — 2020-12-19 – p.13/17
API/ Merkle Proof จ ॻ จ ॻ จ
ॻ จ ॻ จ ॻ O μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ حͷ߹ ෳ͢Δ ɾจॻ Λಘͨ" ࢯɺಉ࣌ʹূ໌ཁૉͱͯ͠ɺϒϧʔͰࣔ͞ΕΔμΠδΣετͱ֤ʑ͕ࠨӈͷͲͪΒʹҐஔ͢Δ͔Λड͚औΔɻ ɾ" ࢯจॻ ͷμΠδΣετ͔Β࢝Ίͯɺ࿈͖݁͢Ұ࿈ͷμΠδΣετΛΔ͜ͱʹͳΔͷͰɺϚʔΫϧϧʔτʹࢸΔ·Ͱͷ ɹܭࢉΛ࠶ݱͰ͖ɺಘΒΕͨϚʔΫϧϧʔτ͕ &UIFSFVN εϚʔτίϯτϥΫτʹه͞Ε͍ͯΔͱҰக͢Δ͜ͱΛ֬ೝͰ͖Δɻ ɾͦͷܭࢉΛߦ͢Δͷ͕DFSUJGZXFCͷαʔϏε ݪཧͷཧղͱඞཁͳใ͕͋Ε୭Ͱ࠶ݱͰ͖Δ ূ໌͞ΕΔ ɻ ه͢Δ ಡΈग़ͤΔ ূ໌Λ ඞཁͱ͢Δऀʹ ։ࣔ͞ΕΔใ ˞##Dɺ͜ͷߏΛอଘ ɹ͍ͯ͠Δ͕ɺαϒπϦʔΛ ɹূ໌ཁૉԽͯͨ͠͠ޙɺ ɹূ໌͢Δ্Ͱ##D ෆཁ ެ։͞ΕΔใ ϚʔΫϧϧʔτ Ϛ ồ Ϋ ϧ γ ε ς Ϝ ͕ อ ͠ ֤ Ϣ ồ β ʹ ෦ త ʹ ͑ Δ ʜʜ ʜʜ ʜʜ ʜʜ ʜʜ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ &UIFSFVNϒϩοΫνΣʔϯ ʜ ʜ ##DϥΠϒϥϦ ূ໌ॻΞϓϦͰ࣮ݱ : — 2020-12-19 – p.14/17
Merkle Proof ( ) { "proof": { "spec": { "subsystem":
"ethereum", "network": "ropsten", "contract": "BBcAnchor", "contract_address": "0x609CD0aF4663bbA6c7105fd34BbCBCDd5e75067C", "block": 9186681 }, "subtree": [ { "position": "right", "digest": "bd7d8c62a483e23b8e4713699bec9ff036ead7f3a72a8ff70684cdec1e8b6aeb" }, : # ] } } : — 2020-12-19 – p.15/17
BBcAnchor.sol ( ) contract BBcAnchor { mapping (uint256 => uint)
public _digests; constructor () public { } function getStored(uint256 digest) public view returns (uint block_no) { return (_digests[digest]); } function isStored(uint256 digest) public view returns (bool isStored) { return (_digests[digest] > 0); } function store(uint256 digest) public returns (bool isAlreadyStored) { bool isRes = _digests[digest] > 0; if (!isRes) { _digests[digest] = block.number; } return (isRes); } } / : — 2020-12-19 – p.16/17
: — 2020-12-19 – p.17/17