Upgrade to Pro — share decks privately, control downloads, hide ads and more …

記録の真正性を保つ : ブロックチェーンやその他の証明技術 / Maintain authen...

Kenji Saito
December 17, 2021

記録の真正性を保つ : ブロックチェーンやその他の証明技術 / Maintain authenticity of records: blockchain and other proof technologies

2021年12月19日(日)、日本統合医療学会学術大会での講演で用いたスライドです。

Kenji Saito

December 17, 2021
Tweet

More Decks by Kenji Saito

Other Decks in Technology

Transcript

  1. ( ) 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
  2. (2) ↓ (1) ( ) (2) ( ) (3) (

    ) bitcoin : — 2020-12-19 – p.5/17
  3. Bitcoin YouTuber ( ) ( ) ( ) ( )

    Bitcoin ( ) YouTube, Zoom, etc. ??? YouTube Zoom ( ) : — 2020-12-19 – p.6/17
  4. ( ) ( ) ( ) ( 16 ) SHA

    (Secure Hash Algorithm) ( ) 1bit : — 2020-12-19 – p.8/17
  5. ( ) < , > ( ) ← : <

    , > : : < , , > : OK NG : — 2020-12-19 – p.9/17
  6. 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
  7. *%Χʔυจॻ 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
  8. API/ Merkle Proof จ ॻ  จ ॻ  จ

    ॻ  จ ॻ  จ ॻ O μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ ح਺ͷ৔߹͸ ෳ੡͢Δ ɾจॻ Λಘͨ" ࢯ͸ɺಉ࣌ʹূ໌ཁૉͱͯ͠ɺϒϧʔͰࣔ͞ΕΔμΠδΣετͱ֤ʑ͕ࠨӈͷͲͪΒʹҐஔ͢Δ͔Λड͚औΔɻ ɾ" ࢯ͸จॻ  ͷμΠδΣετ͔Β࢝Ίͯɺ࿈݁͢΂͖Ұ࿈ͷμΠδΣετΛ஌Δ͜ͱʹͳΔͷͰɺϚʔΫϧϧʔτʹࢸΔ·Ͱͷ ɹܭࢉΛ࠶ݱͰ͖ɺಘΒΕͨϚʔΫϧϧʔτ͕ &UIFSFVN εϚʔτίϯτϥΫτʹه࿥͞Ε͍ͯΔ஋ͱҰக͢Δ͜ͱΛ֬ೝͰ͖Δɻ ɾͦͷܭࢉΛ୅ߦ͢Δͷ͕DFSUJGZXFCͷαʔϏε ݪཧͷཧղͱඞཁͳ৘ใ͕͋Ε͹୭Ͱ΋࠶ݱͰ͖Δ  ূ໌͞ΕΔ ɻ ه࿥͢Δ ಡΈग़ͤΔ ূ໌Λ ඞཁͱ͢Δऀʹ ։ࣔ͞ΕΔ৘ใ ˞##D͸ɺ͜ͷߏ଄Λอଘ ɹ͍ͯ͠Δ͕ɺαϒπϦʔΛ ɹূ໌ཁૉԽͯ͠౉ͨ͠ޙ͸ɺ ɹূ໌͢Δ্Ͱ͸##D ͸ෆཁ ެ։͞ΕΔ৘ใ ϚʔΫϧϧʔτ Ϛ ồ Ϋ ϧ ໦  γ ε ς Ϝ ͕ อ ؅ ͠ ֤ Ϣ ồ β ʹ ෦ ෼ త ʹ ఻ ͑ Δ ʜʜ ʜʜ ʜʜ ʜʜ ʜʜ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ μΠδΣετ &UIFSFVNϒϩοΫνΣʔϯ ʜ ʜ ##DϥΠϒϥϦ ূ໌ॻΞϓϦͰ࣮ݱ : — 2020-12-19 – p.14/17
  9. 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
  10. 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