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

公共とブロックチェーン / Public and Blockchain

公共とブロックチェーン / Public and Blockchain

2020年12月7日(月)、オンラインサロン Beyond Blockchain 第4回「公共とブロックチェーン」にて使用したスライドです。

Kenji Saito

December 07, 2020
Tweet

More Decks by Kenji Saito

Other Decks in Technology

Transcript

  1. ( ) SFC ( ) CSO (Chief Science Officer) 1993

    ( ) 2006 ( ) SFC 20 P2P (Peer-to-Peer) ( 9 ) 2011 2018 2019 2019 2020 2020 → ( ) — Beyond Blockchain — 2020-12-07 – p.3/13
  2. . . . 2009 ↑ 11 . . . —

    Beyond Blockchain — 2020-12-07 – p.5/13
  3. 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 — Beyond Blockchain — 2020-12-07 – p.7/13
  4. *%Χʔυจॻ JEJE OBNF8FEOFTEBZ"EEBNTOBNF 8FEOFTEBZ"EEBNT ͷ΋ͷ ࣏ࣗମͷ΋ͷ CPSOCPSO BEESFTT$FNFUFSZ-BOFBEESFTT QVCMJDLFZEFDFECQVCMJDLFZ *%

    Χʔυจॻ ͷμΠδΣετ ॺ໊෇͖ *% Χʔυจॻ ͷμΠδΣετ ࿈͔݁ͯ͠Β ܭࢉ͢Δ ॺ໊Λݕূ͠ɺ ੒ޭͨ͠Β ࿈͔݁ͯ͠Β ܭࢉ͢Δ EJHFTU EJHFTU EJHFTU BMHPSJUIN TJHOBUVSF QVCMJDLFZ EJHFTU EJHFTU EJHFTU EJHFTU +40/ σʔλߏ଄͸ɺ಺෦ॲཧͰ͸ 9.- ʹม׵͞Ε·͢ ΋ͱ΋ͱ 9.- ༻ʹ࡞ͬͯ͋ΔϥΠϒϥϦΛ࢖༻͍ͯ͠·͢ ɻ ෦෼తʹӅ͞Ε͍ͯͯ΋ূ໌Ͱ͖ΔΑ͏ʹɺηΫγϣϯ͝ͱʹμΠδΣετΛܭࢉ͍ͯ͠·͢ɻ ྫ͑͹ɺ*% ΧʔυͰ೥ྸ΍ॅॴɺ͋Δ͍͸ެ։伴Λ֬ೝ͢Δ͚ͩͰ͋Ε͹ɺ*% ൪߸ΛݟΔ͜ͱ͕๏཯Ͱېࢭ͞Ε͍ͯΔ౳ͷ৔߹ɺ *% ൪߸ΛӅͯ͠ ͦͷ෦෼ΛରԠ͢ΔμΠδΣετͰஔ͖׵͑ͯ ఏࣔͯ͠΋࠷ऴతʹॺ໊෇͖ *% Χʔυจॻͷಉ͡μΠδΣετΛܭࢉͰ͖ΔͷͰɺଘࡏূ໌͕Ͱ͖·͢ɻ  ʮμΠδΣετʯͱ͸ɺ҉߸ֶతϋογϡؔ਺ʢࠓճ͸ 4)"ʣʹΑͬͯܭࢉ͞Εͨ஋ͷ͜ͱͰ͢ɻ Θ͔ͣ  ϏοτͰ΋ݩͷσʔλ͕ҟͳΔͱɺฦͬͯ͘Δ஋͕શ͘ҟͳΓɺμΠδΣετ͔ΒݩͷσʔλΛ ਪଌ͢Δ͜ͱ͸Ͱ͖·ͤΜɻ — Beyond Blockchain — 2020-12-07 – p.8/13
  5. API/ Merkle Proof จ ॻ  จ ॻ  จ

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

    "ethereum", "network": "ropsten", "contract": "BBcAnchor", "contract_address": "0x609CD0aF4663bbA6c7105fd34BbCBCDd5e75067C", "block": 9186681 }, "subtree": [ { "position": "right", "digest": "bd7d8c62a483e23b8e4713699bec9ff036ead7f3a72a8ff70684cdec1e8b6aeb" }, : # ] } } — Beyond Blockchain — 2020-12-07 – p.10/13
  7. 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); } } / — Beyond Blockchain — 2020-12-07 – p.11/13
  8. Token ୅ସ՟ฎ Smart Contract ݕূՄೳͳঢ়ଶϚγϯ Provenance ग़ࣗূ໌  Fungible Non-redeemable

    Fungible Redeemable Non-fungible Redeemable Non-fungible Non-redeemable Certifying Identifying payment ID card security token last will logistics insurance claim Tracking Sensing fiat money crypt pet ൿີ伴Λ࢖͑Δ͔Βຊਓʁ ෛ࠴  Ξηοτͷ ਺஋දݱΛҠసͰ͖Δʁ ొ࿥͞Εͨίʔυͱ ͦͷ࣮ߦϩάͱ݁Ռͷ ਅਖ਼ੑΛ୲อͰ͖Δʁ ݖҖ͕  Կ͔ͷ಺༰Λূ໌͢Δʁ ࣋ଓ͢Δଘࡏʹ͍ͭͯ ه࿥ΛΞοϓσʔτՄʁ ओମ͕͍ͳ͘ͳͬͯ΋ աڈͷσʔλ͸༗ޮʁ Certify Web API — Beyond Blockchain — 2020-12-07 – p.12/13