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

「Verify with Wallet API」を アプリに導入するために

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →
Avatar for hinakko hinakko
October 01, 2025

「Verify with Wallet API」を アプリに導入するために

Avatar for hinakko

hinakko

October 01, 2025

More Decks by hinakko

Other Decks in Technology

Transcript

  1. ൜ࡑऩӹҠస๷ࢭ๏ͷൺֱ ݱߦ ϫํࣜ ެతݸਓೝূαʔϏε ψํࣜ ϗํࣜ ຊਓ֬ೝॻྨ ϚΠφϯόʔΧʔυ ϚΠφϯόʔΧʔυ/ ӡస໔ڐূ

    ϚΠφϯόʔΧʔυ/ ӡస໔ڐূ ICಡऔ ඞཁ ෆཁ ෆཁ ॻྨࡱӨΞοϓ ෆཁ ඞཁ ॻྨͷද/ཪ ඞཁ ॻྨͷද/ཪ/ްΈ ༰๴ࡱӨ ෆཁ ෆཁ ඞཁ ؆қॻཹ ෆཁ ඞཁ ॻཹΛड͚औΔ·ͰऔҾෆՄ ෆཁ ൜ऩ๏Ұྫ
  2. ൜ࡑऩӹҠస๷ࢭ๏ͷվਖ਼ޙൺֱ ϫํࣜ(৽ ϧํࣜ) iPhoneͷϚΠφϯόʔΧʔυ ϫํࣜ(৽ ϧํࣜ) ެతݸਓೝূαʔϏε ψํࣜ(৽ νํࣜ) ϗํࣜ(৽

    ഇࢭ) ຊਓ֬ೝॻྨ Walletͷ ϚΠφϯόʔΧʔυ ϚΠφϯόʔΧʔυ PW΋ඞཁ ϚΠφϯόʔΧʔυ/ ӡస໔ڐূ ϚΠφϯόʔΧʔυ/ ӡస໔ڐূ ICಡऔ ෆཁ ඞཁ ෆཁ ෆཁ ॻྨࡱӨΞο ϓ ෆཁ ෆཁ ඞཁ ॻྨͷද/ཪ ඞཁ ॻྨͷද/ཪ/ްΈ ༰๴ࡱӨ ෆཁ ෆཁ ෆཁ ඞཁ ؆қॻཹ ෆཁ ෆཁ ඞཁ ॻཹΛड͚औΔ·ͰऔҾ ෆՄ ෆཁ
  3. 7FSJGZ XJUI 8BMMFU "1* ֓ཁ ຊਓ֬ೝϓϩηεΛޮ཰Խ w 8BMMFUͰೝূ͢Δͱɺ"QQMF8BMMFUͰ*%Χʔυͷ৘ใΛڞ༗͢Δ͜ͱͰɺΞϓϦ಺ͰΑΓ؆୯͔ͭਝ଎ ʹೝূΛߦ͏͜ͱ͕Ͱ͖Δɻ ݕূ͓Αͼೝূ͞Εͨຊਓ৘ใ

    w ΞϓϦ͕ड͚औΔຊਓ৘ใ͸ɺ੓෎ͷൃߦػؔʹΑͬͯೝূ͞Εͨ΋ͷɻ w ূ໌ϓϩηεͷதͰɺൃߦػؔ͸*%Χʔυ͕ຊ෺Ͱ͋ΓɺϢʔβʔຊਓͷ΋ͷͰ͋Δ͜ͱΛ֬ೝ͢Δɻ ϓϥΠόγʔอޢ w ΞϓϦ͕ཁٻ͢Δ਎෼ূ໌৘ใͷछྨͱར༻ظؒΛϢʔβʔʹ໌֬ʹఏࣔ͠ɺΞϓϦ͸औҾ׬ྃʹඞཁͳ ಛఆσʔλͷΈΛཁٻ͢ΔݖݶΛ࣋ͭɻϢʔβʔ͕਎෼ূ໌৘ใΛա৒ʹڞ༗͢Δ͜ͱΛ๷͙͜ͱ͕Մೳɻ
  4. 7FSJGZ XJUI 8BMMFU "1* ೔ຊͷϚΠφϯόʔΧʔυϦΫΤετՄೳͳσʔλ ೥ྸ֬ೝσʔλɿ w ೥ྸ͖͍͠஋ϑϥάʢ"HF0WFS/'MBHʣ w ೥ྸʢ೥୯Ґʣ

    w ਎෼ূ໌ॻ༻ࣸਅ ຊਓ֬ೝσʔλɿ w ໊ʢ(JWFO/BNFʣ੏ʢ'BNJMZ/BNFʣ w ॅॴ w ੜ೥݄೔ w ϚΠφϯόʔʢ˞ϚΠφϯόʔͷ࢖༻͸ɺద༻͞ΕΔ๏཯͓Αͼن੍ʹ४ڌ͠·͢ʣ w ੑผ
  5. 7FSJGZ XJUI 8BMMFU "1* ར༻ਃ੥ ར༻͢Δʹ͸ɺ։ൃऀΞΧ΢ϯτʹΤϯλΠτϧϝϯτͷׂΓ౰͕ͯඞཁ ର৅ͱͳΔΞϓϦɿ w ೥ྸ·ͨ͸ຊਓ֬ೝϓϩηεΛཁٻ͢Δɹ͔ͭ w

    ҎԼͷΧςΰϦͷ͍ͣΕ͔ʹ֘౰͢ΔΞϓϦ ΞΫηεɾߤཱྀۭߦɾΞϧίʔϧߪೖʢࣄલ஫จɾ഑ୡʣɾϨϯλΧʔɾۚ༥αʔϏεɾΪ άΤίϊϛʔɾ੓෎αʔϏεɾҩྍɾϗεϐλϦςΟɾอݥɾεΫʔλʔϨϯλϧɾνέο τൢചFUD
  6. ΞδΣϯμ w എܠ ຊਓ֬ೝʹؔ͢Δ๏཯  w J1IPOFͷϚΠφϯόʔΧʔυಋೖͷϝϦοτ w *%7FSJGFS"1*ͱ7FSJGZXJUI8BMMFU"1*ͷൺֱ w

    7FSJGZXJUI8BMMFU"1*౳ͷਃ੥ํ๏ w7FSJGZXJUI8BMMFU"1*ͷυΩϡϝϯτΛݟͯΈΔ w 7FSJGZXJUI8BMMFU"1*՝୊ͱఏҊ
  7. 7FSJGZ XJUI 8BMMFU "1*υΩϡϝϯτ *OTUBODF.FUIPEBEE&MFNFOUT @JOUFOU5P4UPSF _ elements: [PKIdentityElement]: Ϣʔβʔ͔Βऔಘ͍߲ͨ͠໨Λࢦఆ

    intentToStore: PKIdentityIntentToStore:ΞϓϦ·ͨ͸ͦͷαʔόʔ͕ཁૉΛอଘ ͢Δํ๏Λࢦఆ IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOQBTTLJUQLJEFOUJUZEPDVNFOUEFTDSJQUPSBEEFMFNFOUT @JOUFOUUPTUPSF
  8. 7FSJGZ XJUI 8BMMFU "1*υΩϡϝϯτ $MBTT1,*EFOUJUZ&MFNFOU Ϣʔβʔ͔Βऔಘ͍߲ͨ͠໨Λࢦఆ •ॅॴ •ੜ೥݄೔ •ϚΠφϯόʔݸਓ൪߸ •ࢯ໊

    •Ϣʔβʔͷࣸਅ •೥ྸ etc.. IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOQBTTLJUQLJEFOUJUZFMFNFOU
  9. 7FSJGZ XJUI 8BMMFU "1*υΩϡϝϯτ $MBTT1,*EFOUJUZ*OUFOU5P4UPSF ΞϓϦ·ͨ͸ͦͷαʔόʔ͕ཁૉΛอଘ͢Δํ๏Λࢦఆ 1. maystore(days: Int) ࢦఆͨ͠ظؒɺΞϓϦ͕σʔλཁૉΛอଘ͢ΔՄೳੑ͕͋Δ

    2. maystore ΞϓϦ͕σʔλཁૉΛແظݶʹอଘ͢ΔՄೳੑ͕͋Δ 3. willnotstore ϦΫΤετΛ׬ྃ͢ΔͨΊʹඞཁͳظؒΛ௒͑ͯσʔλཁૉΛอଘ͠ͳ͍ IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOQBTTLJUQLJEFOUJUZJOUFOUUPTUPSF
  10. 7FSJGZ XJUI 8BMMFU "1*υΩϡϝϯτ $MBTT1,*EFOUJUZ3FRVFTU ΢ΥϨοτύε͔Βͷ ID ৘ใͷϦΫΤετ͢ΔͨΊͷΦϒδΣΫτ var descriptor:

    (any PKIdentityDocumentDescriptor)? ΞϓϦ͕ཁٻ͢ΔυΩϡϝϯτͷઆ໌ var nonce: Data? ϦΫΤετ͕Ұ౓͚ͩߦΘΕΔ͜ͱΛݕূ͢ΔͨΊͷ࢖͍ࣺͯτʔΫϯΛੜ੒ var merchantIdenti fi er: String? ࣄલʹ։ൃऀϙʔλϧͰઃఆͨ͠Merchant IDࣝผࢠΛද͢஋ IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOQBTTLJUQLJEFOUJUZSFRVFTU
  11. ΞδΣϯμ w എܠ ຊਓ֬ೝʹؔ͢Δ๏཯  w J1IPOFͷϚΠφϯόʔΧʔυಋೖͷϝϦοτ w *%7FSJGFS"1*ͱ7FSJGZXJUI8BMMFU"1*ͷൺֱ w

    7FSJGZXJUI8BMMFU"1*౳ͷਃ੥ํ๏ w 7FSJGZXJUI8BMMFU"1*ͷυΩϡϝϯτΛݟͯΈΔ w7FSJGZXJUI8BMMFU"1*ಋೖͷ՝୊ͱఏҊ
  12. ࢀߟจݙ ʮJ1IPOFͷϚΠφϯόʔΧʔυʯͷ͢΂ͯCZ%BJLJ.BUTVEBUF IUUQTGPSUFFKQJPTEDKBQBOQSPQPTBMGECDBFCCGB 8BMMFU"1* 7FSJ fi FS"1*Ͱ࣮ݱ͢Δ*%ΧʔυPOJ1IPOFͷੈքCZԼ৿पฏ IUUQTGPSUFFKQJPTEDKBQBOQSPQPTBMCDEBDBEBCDGE IUUQTEFWFMPQFSBQQMFDPNKQXBMMFUJEWFSJ fi

    FS IUUQTEFWFMPQFSBQQMFDPNXBMMFUHFUTUBSUFEXJUIWFSJGZXJUIXBMMFU IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOQBTTLJUWFSJGZJOHXBMMFUJEFOUJUZSFRVFTUT IUUQTXXXEJHJUBMHPKQQPMJDJFTNZOVNCFSNZOVNCFSDBSENEPD fl PXPGQSPDFEVSFT IUUQTCJ[USVTUEPDLJPDPMVNOBGUFSBNMDGU IUUQTFLZDTIPXDBTFUWDPNDPMVNOIBOTIVIPV