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
0
300
記録の真正性を保つ : ブロックチェーンやその他の証明技術 / Maintain authenticity of records: blockchain and other proof technologies
2021年12月19日(日)、日本統合医療学会学術大会での講演で用いたスライドです。
Kenji Saito
PRO
December 17, 2021
Tweet
Share
More Decks by Kenji Saito
See All by Kenji Saito
民主主義というアナログAI と、逃走の線の描き方 / Democracy as an Analogue AI and How to Draw the Line of Escape
ks91
PRO
0
30
アカデミーキャンプ2026 冬「ウチらとヤツらのフューチャー・デザイン」DAY3 / Acadmy Camp 2026 Winter - Future Design by Us and Them DAY3
ks91
PRO
0
62
アカデミーキャンプ2026 冬「ウチらとヤツらのフューチャー・デザイン」DAY1 / Acadmy Camp 2026 Winter - Future Design by Us and Them
ks91
PRO
0
90
アカデミーキャンプ2026 冬「ウチらとヤツらのフューチャー・デザイン」DAY2 / Acadmy Camp 2026 Winter - Future Design by Us and Them DAY2
ks91
PRO
0
77
アナログAI からの逃走とメタ・ネイチャーポジティブ / Escape from Analog AI, and Meta-Nature Positive
ks91
PRO
0
44
AI 前提社会におけるトラスト / Trust in an AI-Driven Society
ks91
PRO
0
68
非営利組織の起業/発表と総括 / Starting up a Nonprofit Organization, Presentation and Summary
ks91
PRO
0
72
自己開発 / Self-Development
ks91
PRO
1
38
あなたは何によって憶えられたいですか? / What Do You Want to be Remembered for?
ks91
PRO
0
43
Other Decks in Technology
See All in Technology
ソフトバンク流!プラットフォームエンジニアリング実現へのアプローチ
sbtechnight
1
190
(Test) ai-meetup slide creation
oikon48
3
450
わからなくて良いなら、わからなきゃだめなの?
kotaoue
1
370
"作る"から"使われる"へ:Backstage 活用の現在地
sbtechnight
0
190
OCHaCafe S11 #2 コンテナ時代の次の一手:Wasm 最前線
oracle4engineer
PRO
2
150
決済サービスを支えるElastic Cloud - Elastic Cloudの導入と推進、決済サービスのObservability
suzukij
2
660
Agent ServerはWeb Serverではない。ADKで考えるAgentOps
akiratameto
0
120
OSC仙台プレ勉強会 AlmaLinuxとは
koedoyoshida
0
190
2026年もソフトウェアサプライチェーンのリスクに立ち向かうために / Product Security Square #3
flatt_security
1
660
コンテキスト・ハーネスエンジニアリングの現在
hirosatogamo
PRO
3
480
Scrumは歪む — 組織設計の原理原則
dashi
0
200
ガバメントクラウドにおけるAWSの長期継続割引について
takeda_h
2
5.3k
Featured
See All Featured
How to Ace a Technical Interview
jacobian
281
24k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
230
Designing for Timeless Needs
cassininazir
0
170
Context Engineering - Making Every Token Count
addyosmani
9
760
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
130
Thoughts on Productivity
jonyablonski
75
5.1k
The untapped power of vector embeddings
frankvandijk
2
1.6k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
140
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
150
Art, The Web, and Tiny UX
lynnandtonic
304
21k
[SF Ruby Conf 2025] Rails X
palkan
2
840
Evolving SEO for Evolving Search Engines
ryanjones
0
160
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