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

BBc-1 ハンズオン : さまざまな証明書の登録とその検証(ウェブ版) / BBc-1 Ha...

BBc-1 ハンズオン : さまざまな証明書の登録とその検証(ウェブ版) / BBc-1 Hands on: Registry for Certificates and Verification (on Web)

BBc-1 の開発中の共通ライブラリと汎用レジストリライブラリ、レッジャーサブシステム、および certify-web サンプルアプリケーションを用いたチュートリアルのスライドです。

beyond-blockchain.org

December 02, 2020
Tweet

More Decks by beyond-blockchain.org

Other Decks in Technology

Transcript

  1. BBc-1 BBc-1 ( ) / (1) (2) (3) BBc-1 —

    ( ) — 2021-11-20 – p.3/30
  2. #JUDPJO ##D$PSF ϨοδϟʔαϒγεςϜ ΞϓϦέʔγϣϯ ͦ ͷ ଞ ͞ · ͟

    · ͳ Ξ ϓ Ϧ ͷ Մ ೳ ੑ ڞ௨ϥΠϒϥϦ ##D ։ൃ߲໨ ஍ Ҭ ௨ ՟ Ξ ϓ Ϧ ϙ Π ϯ τ Ξ ϓ Ϧ དྷ ྺ ূ ໌ Ξ ϓ Ϧ ʜ ॳظʹ͓͍ͯଘࡏূ໌Λґଘ ΞϯΧϦϯά ֤ϊʔυʹ͓͚Δه࿥ʹ͸ ֤छσʔλϕʔεΛར༻Մೳ TRMJUF.Z42-ͦͷଞ%# BBc-1 σδλϧ௨՟ϥΠϒϥϦ ͦͷଞͷϥΠϒϥϦ CCDMJC 1ZUIPO (P +4 FUD Bitcoin Ethereum ( ) (Proof of Context) ( ) ( ) BBc-1 — ( ) — 2021-11-20 – p.4/30
  3. GitHub git clone $ git clone -b develop https://github.com/beyond-blockchain/bbc1-lib-std.git $

    cd bbc1-lib-std tar pip (Python ) $ python setup.py sdist $ pip install dist/bbc1-lib-std-0.19.tar.gz dist tar pip install BBc-1 — ( ) — 2021-11-20 – p.6/30
  4. ( SQLite3 ) ( ) ( ) ( ) (

    ) BBc-1 — ( ) — 2021-11-20 – p.7/30
  5. GitHub git clone ( ) $ git clone -b develop

    https://github.com/beyond-blockchain/bbc1-lib-registry.git $ cd bbc1-lib-registry tar pip (Python ) $ python setup.py sdist $ pip install dist/bbc1-lib-registry-0.8.tar.gz dist tar pip install bbc_core.py BBc-1 — ( ) — 2021-11-20 – p.8/30
  6. Certify Web API & Certify Web BBc-1 — ( )

    — 2021-11-20 – p.10/30
  7. Certify Web Certify Web bbc1-lib-registry API & bbc-lib-std API JSON

    ( ) XML ( ) (= ) Certify Web API (API ) BBc-1 — ( ) — 2021-11-20 – p.11/30
  8. Certify Web GitHub git clone $ git clone https://github.com/beyond-blockchain/examples.git $

    cd examples/certify-web GitHub API & index.py BBc-1 $ python index.py (API ) http://localhost:5000 BBc-1 — ( ) — 2021-11-20 – p.12/30
  9. Certify Web / (1) Certify Web JSON { "id": "AR-1838B",

    "title": "I Am the Walrus", "artist": "The Beatles", "writer": "Lennon-McCartney", "year": "1967" } “proof” Merkle Proof ( ) BBc-1 — ( ) — 2021-11-20 – p.13/30
  10. ( ) จ ॻ  จ ॻ  จ ॻ

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

    SHA-256 /api/digest API “_docs”: ( ; ) “proof”: ( ) Merkle Proof “privkey”: ( ) ( ) - /api/keypair API ( ) “pubkey”: ( ) “sig”: (pubkey ) “algo”: algo, sig, pubkey /api/sign API ( ) BBc-1 — ( ) — 2021-11-20 – p.15/30
  12. Certify Web / (3) “proof” "proof": { "spec": { "subsystem":

    "ethereum", "network": "goerli", "contract": "BBcAnchor", "contract_address": "0x8c6DB26Ab0eAaDcB46438DDEEE7baD2271e2df71", "block": 9098749 }, "subtree": [ { "position": "left", "digest": "6578c8c585be7aa25e5619cedfbc02820c223d667a2561b92c9de9656fded793" }, : # ] } BBc-1 — ( ) — 2021-11-20 – p.16/30
  13. (1) ( ) (bbc_core.py ) $ curl -X POST http://localhost:5000/api/setup

    domain id (“certify_web_domain” ) 7bc5dc8c1f3c4dc16e165beac165d73e4cb60530ac0b11bc433f6fba517d67b7 “./.bbc1_app_support” index.py bbc1-lib-registry BBc-1 — ( ) — 2021-11-20 – p.17/30
  14. (2) bbc_core.py $ eth_subsystem_tool.py -w ~/.bbc1 -d config_tree 100 30

    100 30 API/ bbc_core.py $ eth_subsystem_tool.py -w ~/.bbc1 -d enable bbc_core.py index.py BBc-1 — ( ) — 2021-11-20 – p.18/30
  15. URL http://localhost:5000/cert/ (API : /api/register [POST]) (API : /api/proof [GET])

    (API : /api/verify [GET]) (API : /api/verify [GET]) “i-am-the-walrus-cert.json” “ishindenshin-cert.json” ( ) “i-am-the-walrus-cert.json” → Verify Certificate API Ethereum 1 ( ) BBc-1 — ( ) — 2021-11-20 – p.19/30
  16. (1) “beatles-singles-doc.json” → Register Document 30 Ethereum ( ) 1

    → Get Certificate “Download Certificate” proof JSON → Verify Certificate BBc-1 — ( ) — 2021-11-20 – p.21/30
  17. (2) JSON { "id": "5099920311971", "title": "Penny Lane", "artist": "The

    Beatles", "writer": "Lennon-McCartney", "year": "1967" } ( ) Generate Key Pair API Return Values “privkey” ( “pubkey” ) JSON “year” ( ) “privkey” Sign Document API Return Values “algo” “sig” “pubkey” 3 “privkey” 3 (“privkey” ) BBc-1 — ( ) — 2021-11-20 – p.22/30
  18. (1) ( ) “ishindenshin-cert.json” { "id": "YLR-709A", "title": " ",

    "artist": "YMO", "writer": [ {"name": " "}, {"name": " "}, {"name": " "}, {"name": " "} ], "year": "1983", : } BBc-1 — ( ) — 2021-11-20 – p.23/30
  19. (2) ( ) Get Digest { "writer": [ {"name": "

    "}, {"name": " "}, {"name": " "}, {"name": " "} ] } { "name": " " } “digest” “writer” “name” BBc-1 — ( ) — 2021-11-20 – p.24/30
  20. (3) ( ) { "id": "YLR-709A", "title": " ", "artist":

    "YMO", "digest": "bca7d161ae5fce25a55e888e4704f506282b402846132fa9b38d2fb6b72dc405", "year": "1983", : } “writer” BBc-1 — ( ) — 2021-11-20 – p.25/30
  21. (4) ( ) { "id": "YLR-709A", "title": " ", "artist":

    "YMO", "writer": [ {"digest": "5413e837a58878d2b077d14358f7769c8ae791f9deb0475d58d53ff8de1b8973"}, {"name": " "}, : } . . . ( ) ( ) ( ) BBc-1 — ( ) — 2021-11-20 – p.26/30
  22. 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 ID BBc-1 — ( ) — 2021-11-20 – p.27/30
  23. *%Χʔυจॻ JEJE OBNF8FEOFTEBZ"EEBNTOBNF 8FEOFTEBZ"EEBNT ͷ΋ͷ ࣏ࣗମͷ΋ͷ CPSOCPSO BEESFTT$FNFUFSZ-BOFBEESFTT QVCMJDLFZEFDFECQVCMJDLFZ *%

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