Slide 1

Slide 1 text

ϏοτίΠϯͱ͔ษڧձ PQFOBTTFUTSVCZͰֶͿ 0QFO"TTFUT1SPUPDPMೖ໳ খᔹपʢ4IV,PCVDIJʣ

Slide 2

Slide 2 text

ࣗݾ঺հ w খᔹप 4IV,PCVDIJ w ೥ྸɿY'ࡀʢࠓ೥ͰYࡀʂʂʣ w ࠷ऴֶྺɿϒϩοΫνΣʔϯେֶߍΤϯδχΞ ϒϩϯζίʔε ̐ظੜ w ΩϡʔϒγεςϜͷاը෦໳ w ϒϩοΫνΣʔϯਪਐڠձ #$$$ ձһ w #$$$Ծ૝௨՟;&/ࣾձ࣮ݧʹࢀՃ w ϒϩοΫνΣʔϯϋϒίʔϙϨʔτձһ w ϏϤϯυϒϩοΫνΣʔϯਖ਼ձһ

Slide 3

Slide 3 text

$PMPSFE$PJOT w #JUDPJOτϥϯβΫγϣϯʹσʔλΛॻ͖ࠐΉ͜ͱͰ#5$Ҏ֎ͷτʔΫ ϯΛදݱ͢Δٕज़ͷ૯শ w ओʹͭͷن֨ʢ0QFO"TTFUT1SPUPDPM $PMV $PJO4QBSL $ISPNB8BMMFU $ISPNBXBZ ʣ͕͋ΓɺͦΕͧΕޓ׵ੑ͸ͳ͍ w ಠࣗ௨՟͕ඞཁͳ$PVOUFS1BSUZ 9$1 ɺ0NOJͱ͸ҟͳΓɺ#5$ͷΈ ͰτʔΫϯൃߦ͕Մೳ w ޿ٛͷҙຯͰɺϒϩοΫνΣʔϯϓϥοτϑΥʔϜ্ʹൃߦ͢Δಠࣗτʔ ΫϯΛ$PMPSFE$PJOͱݺͿ͜ͱ͕͋Δʢ&UIFSFVN্ͷτʔΫϯͳͲʣ w ࢀߟʣIUUQTKQCJUDPJODPNCJUDPJODPMPSFEDPJO

Slide 4

Slide 4 text

0QFO"TTFUT1SPUPDPM w 8IJUFQFQBSʣIUUQTHJUIVCDPN0QFO"TTFUTPQFOBTTFUT QSPUPDPMCMPCNBTUFSBEESFTTGPSNBUNFEJBXJLJ w ҆౔ໜږࢯʹΑΔ೔ຊޠ༁ʣIUUQUFDINFEJBUIJOLIBUFOBCMPHDPN FOUSZ w $PMPSFE$PJOTͷதͰ୅දతͳ࣮૷ن֨ w #JUDPJOωοτϫʔΫ্ʹ୭Ͱ΋ಠࣗτʔΫϯΛൃߦɾҠసͰ͖Δ w /BTEBR͕ະެ։גऔҾͷ࣮ݧʹ࢖༻ w 7"-6ͷτʔΫϯʹར༻ʢͨͩ͠ɺϒϩοΫνΣʔϯ্ͰൃߦͷΈͰҠస͠ ͍ͯͳ͍ʣ

Slide 5

Slide 5 text

0QFO"TTFUTͷϥΠϒϥϦ w #JUDPJO$PSF CJUDPJOE ʹ͸0QFO"TTFUTΛѻ͏ػೳ͸ͳ͍ͷͰϥΠϒϥϦΛ༻͍Δ w IUUQTHJUIVCDPN0QFO"TTFUTPQFOBTTFUTQSPUPDPM w PQFOBTTFUT 1ZUIPONPEVMF ϦϑΝϨϯε࣮૷ w $PMPSDPSF 1ZUIPO 31$JOUFSGBDF w /#JUDPJO $/&5 5SBOTBDUJPO#VJMEFS w #5$3VCZ SVCZ 5SBOTBDUJPO#VJMEFS w $PSF#JUDPJO 0CKFDUJWF$ w PQFOBTTFUTSVCZ SVCZ 31$JOUFSGBDF

Slide 6

Slide 6 text

PQFOBTTFUTSVCZ w IUUQTHJUIVCDPNIBXJUOPQFOBTTFUTSVCZ w גࣜձࣾϋ΢Πϯλʔφγϣφϧऔక໾҆౔ໜږࢯ͕ɹ։ ൃ w #JUDPJO$PSF CJUDPJOE ͱซ༻ͯ͠0QFO"TTFUTΛऔΓѻ ͏ w ϒϩοΫνΣʔϯɾϓϩάϥϛϯάԾ૝௨՟ೖ໳ɹɹʢࢁ ࡚ॏҰ࿠ɾ҆౔ໜږɾాதढ़ଠ࿠ஶɹߨஊࣾग़൛ʣʹ࢖༻ ๏͕هࡌ

Slide 7

Slide 7 text

ϒϩοΫνΣʔϯɾϓϩάϥϛϯά Ծ૝௨՟ೖ໳ w ॻ੶൛ɺ,JOEMF൛΋͋Γ

Slide 8

Slide 8 text

PQFOBTTFUTSVCZͷઃఆ w 1PSU͸.BJOOFU͕ 5FTUOFUͱ3FH5FTU͕ require ‘openassets' Bitcoin.network = :testnet3 api = OpenAssets::Api.new({ network: ‘testnet', rpc: { user: ‘user', password: ‘password’, schema: ‘http', port: 18332, host: ‘localhost' } })

Slide 9

Slide 9 text

ൃߦՄೳͳΞυϨεͷ֬ೝ w ΢ΥϨοτ಺ͷ6590ͷ֬ೝ utxo_list = api.list_unspent puts JSON.pretty_generate(utxo_list) w ൃߦͰ͖Δ#5$Λ͍࣋ͬͯΔΞυϨεͷऔಘ $ ruby utxo_list.rb [ { "txid": "6737e6d435a2a1066c7b0800175aa94c756e4c0757b60e86c52d199fd5009cce", "vout": 0, "confirmations": 1, "address": "mkdPS159HV6Jfuk7nUH7aKTh4hqmFPqY4n", "oa_address": "bWvbGgAtUkxyzY9uUq6PJEBNGQK1wH3Dqt2", "script": "76a91438101ba7d5652130645bce0d73da9a86b10309da88ac", "script_type": "pubkeyhash", "amount": "1.30000000", "asset_id": null, "asset_quantity": "0", "asset_amount": "0", "account": "openassets", "asset_definition_url": "", "proof_of_authenticity": false, "output_type": "uncolored", "solvable": true, "spendable": true } ]

Slide 10

Slide 10 text

5FTUOFU#5$͕ͳ͍৔߹ w 'BVDFUͰ΋Β͏ʢ'BVDFU͸͍͔ͭ͋͘Δʣ w IUUQTUFTUOFUNBOVCBDLFOEIBNCVSHGBVDFU w IUUQUQGBVDFUBQQTQPUDPN

Slide 11

Slide 11 text

"TTFU*%ͷऔಘ w "TTFU*%ΛಘΔͨΊͷ3VCZϓϩάϥϜΛ࡞੒ # Bitcoin Address btc_address = 'mkdPS159HV6Jfuk7nUH7aKTh4hqmFPqY4n' # Bitcoin Address͔Βެ։伴ͷHash160Λܭࢉ hash160 = Bitcoin.hash160_from_address(btc_address) # ެ։伴ͷHash160͔ΒAsset IDΛܭࢉ asset_id = OpenAssets.pubkey_hash_to_asset_id(hash160) puts asset_id w ࣮ߦ݁Ռʢ"TTFU*%ΛಘΒΕͨʣ $ ruby get_assetid.rb ogCpkuknNNnusz8CN817QNkEezBNAT5qgL

Slide 12

Slide 12 text

#5$͸ൃߦओମ͕ͳ͍ w #5$ʹ͸ൃߦओମ͕ͳ͍ */ 065 59 */ 065 59 */ 065 59 */ 065 59 */ 065 59 DPJOCBTF 065 $PJOCBTF59 ϚΠφʔใुͰ৽نੜ੒ ೖྗͷిࢠॺ໊͕ͳ͍

Slide 13

Slide 13 text

τʔΫϯͷൃߦओମ w #5$ʹ͸ൃߦओମ͕ͳ͍͕ɺ0QFO"TTFUT1SPUPDPMʹ͸ ൃߦओମ͕ଘࡏ͢Δ */ 065 59 */ 065 59 */ 065 59 */ 065 59 065 59 ൃߦ࣌ʹ59࡞੒ऀ ૹۚऀ ͷ ిࢠॺ໊͕ඞཁ */ */ 065 59 */ 065 59 .BSLFS 0VUQVU

Slide 14

Slide 14 text

"TTFU*% w ϏοτίΠϯΞυϨεͱ"TTFU*%͸̍ର̍ͰରԠ w ಉ͡ϏοτίΠϯΞυϨε͔Β࠶ൃߦ͢Ε͹૿ൃߦ w ϏοτίΠϯͷൿີ伴㱺ެ։伴 w 㱺11,)εΫϦϓτੜ੒㱺ϋογϡੜ੒ w 㱺#BTFͰΤϯίʔυ͢Δͱ"TTFU*%͕ಘΒΕΔ

Slide 15

Slide 15 text

"TTFU*% w ެ։伴͔Βϋογϡ ෆՄٯ ͯ͠"TTFU*%ΛಘΔͨΊɺ "TTFU*%͔ΒൃߦऀͷΞυϨεΛ஌Δ͜ͱ͸Ͱ͖ͳ͍ w ൃߦऀͷΞυϨεΛ஌Δʹ͸ɺΞηοτͷ59Λલʹḷͬ ͯߦ͖ɺൃߦ࣌ͷ59Λݟ͚ͭΔ͔͠ͳ͍ w ͦͷͨΊʹ͸417ϊʔυͰ͸ແཧͰɺϑϧϊʔυͰͳ͍ͱ ൃߦ࣌ͷ59·ͰḷΕͳ͍

Slide 16

Slide 16 text

0QFO"TTFUT"EESFTT w 0QFO"TTFUT͸#JUDPJOඪ४ػೳͰ͸ͳ͍ w 0QFO"TTFUTΛؚΉ6590ΛϏοτίΠϯͱͯ͠ૹ෇͢ ΔͱΞηοτ͸ফ٫͞ΕΔ w ૬ख͕0QFO"TTFUTʹରԠͨ͠΢ΥϨοτͰͳ͍ͱ͍͚ ͳ͍ w ޡͬͨૹ෇Λ๷͙ͨΊʹɺ0QFO"TTFUTಠࣗͷΞυϨε ͕༻ҙ͞Ε͍ͯΔ

Slide 17

Slide 17 text

0QFO"TTFUT"EESFTT w ެ։伴ϋογϡBGCɹΛCBTFΤϯίʔυ ͰϏοτίΠϯΞυϨε w ެ։伴ϋογϡEFFDBɹΛCBTFΤϯί ʔυͰ0QFO"TTFUT"EESFTT w 0QFO"TTFUT"EESFTT͔Β#JUDPJO"EESFTT͸ٻΊΒΕ ΔʢՄٯʣ

Slide 18

Slide 18 text

"TTFUͷఆٛ w BTTFU@EFpOJUJPOKTPO { "asset_ids": [ “ogCpkuknNNnusz8CN817QNkEezBNAT5qgL" ], "contract_url": “", "name_short": “ORB", "name": “ORANGEBEAM", "issuer": "Shu Kobuchi”, "description": "Lightning NetworkϊʔυՔಇه೦”, "description_mime": "text/x-markdown; charset=UTF-8", "type": “Currency", "divisibility": 1, "link_to_website": false, "image_url": “", "version": “1.0" }

Slide 19

Slide 19 text

EJWJTJCJMJUZ w EJWJTJCJMJUZɿখ਺఺ΛͲ͜ʹ࣋ͬͯ͘Δ͔ w "TTFU2VBOUJUZʢ੔਺ʣʹରͯ͠ɺEJWJTJCJMJUZͷ਺͚ͩখ ਺఺Λࠨʹಈ͔͢͠ɺ"TTFU"NPVOUͱ͢Δ w "TTFU2VBOUJUZ͕ͰɺEJWJTJCJMJUZ͕̎ͩͱɺ "TTFU"NPVOU͸ͱͳΔ w "TTFU%FpOJUJPO'JMF͕ͳ͍ͳͲΞηοτͷఆ͕ٛͳ͍৔ ߹͸ɺ"TTFU2VBOUJUZͱ"TTFU"NPVOU͸ಉ஋

Slide 20

Slide 20 text

Ξηοτఆٛͷొ࿥ w BTTFU@EFpOJUJPOKTPOΛ(JU)VC(JTUͳͲʹొ࿥͠ɺ3BXΛԡ ͢ɻ63-Λίϐʔ͠ɺ(PPHMF63-4IPSUFOFSͳͲͰ୹ॖ w IUUQTHPPHM#%C,+P

Slide 21

Slide 21 text

Ξηοτͷൃߦ w Ξηοτൃߦͷ3VCZϓϩάϥϜ ઃఆΛॻ͔͘ݺͼग़͢ # Bitcoin Address btc_address = ‘mkdPS159HV6Jfuk7nUH7aKTh4hqmFPqY4n' # Bitcoin Address͔Βެ։伴ͷHash160Λܭࢉ hash160 = Bitcoin.hash160_from_address(btc_address) # ެ։伴ͷHash160͔ΒAsset IDΛܭࢉ asset_id = OpenAssets.pubkey_hash_to_asset_id(hash160) # Bitcoin Address͔ΒOpen Assets Addressʹม׵ oa_address = OpenAssets.address_to_oa_address(btc_address) puts "oa_address: " + oa_address # metadata metadata = 'u=https://goo.gl/BDbKJo' tx = api.issue_asset(oa_address, 100000000, metadata) w ࣮ߦ݁Ռʢߦ໨͕τϥϯβΫγϣϯ*%ʣ $ ruby issue.rb oa_address: bWvbGgAtUkxyzY9uUq6PJEBNGQK1wH3Dqt2 f110ec2d5511bbbe0b38f77a72cdb49ef152b15ed2c7b2d5c02904c681c08c94

Slide 22

Slide 22 text

#MPDLDIBJO&YQMPSFSͰ֬ೝ w GFDECCCFCGBDECFGCFE DCEDDDD w IUUQTMJWFCMPDLDZQIFSDPNCUDUFTUOFU

Slide 23

Slide 23 text

ൃߦ࣌ͷτϥϯβΫγϣϯ w %VTU0QFO"TTFUTΛૹ৴͢Δͷʹඞཁͳ࠷௿ݶͷ #JUDPJO #5$4BUPTIJ w /VMM%BUB5SBOTBDUJPOͷதʹ0QFO"TTFUTͷ৘ใ͕ೖ͍ͬͯΔ

Slide 24

Slide 24 text

0QFO"TTFUT&YQMPSFS w 0QFO"TTFUT͸̍ঝೝܦͳ͍ͱݕࡧͰ͖ͳ͍ w IUUQTUFTUOFUPBFYQMPSFSDPNUFTUOFUͷΈ w IUUQTXXXDPJOQSJTNJOGPNBJOOFU

Slide 25

Slide 25 text

%VTU w 0QFO"TTFUTΛૹ৴͢Δͷʹඞཁͳ࠷௿ݶͷ #JUDPJO #5$4BUPTIJ

Slide 26

Slide 26 text

"TTFU%FpOJUJPOͷ֬ೝ w "TTFU%FpOFJUJPO΋ܝࡌ͞Ε͍ͯΔ

Slide 27

Slide 27 text

.BSLFS0VUQVUͷத਎ w GDEGEBGGGGFDG CBG w G0"1ϚʔΧʔʢ̎όΠτৗʹYGʣ w 7FSTJPOʢ̎όΠτʣ w ΞηοτͷΞΠςϜ਺ʢՄม௕੔਺ɿ̍ʙ̕όΠτʣ w ΞηοτRVBOUJUZɹ -Ͱදݱ ʢՄมʣ w ϝλσʔλͷ௕͞ʢՄม௕੔਺ɿ̍ʙ̕όΠτʣ w ϝλσʔλʢՄมʣ

Slide 28

Slide 28 text

- -JUUMF&OEJBO#BTF w ˣ̎ਐ਺ w ˣԼͷҐ͔ΒCJUͣͭ۠੾Γɺ಄͸ͰຒΊΔ w w ˣઌ಄ͷΈ಄ʹ̌Λ͚ͭɺଞ͸಄ʹ̍Λ͚ͭΔ w ˣਐ਺ w YGYEYDYˣϦτϧΤϯσΟΞϯ w YYDYEYGʢ࠷ޙҎ֎ͷόΠτ͸಄͕ʙGɺ࠷ޙͷόΠτ͸಄͕ʙʣ w DEGʢ%FDPEF͸͜ͷٯΛߦ͏ʣ

Slide 29

Slide 29 text

Մม௕σʔλͷ෼͚ํ w G DEGEBGGGGFDG CBG w DEGՄม௕Ͱͷ෼ׂՕॴ͕Θ͔Δʂ EBGGGGFDGCBG w όΠτ͋Γɺ࠷ॳͷόΠτͰ۠੾ΔͱY ਐ਺Ͱ ࢒Γ όΠτɹϝλσʔλͷ௕͞͸YͰɺ࢒Γ͸ϝλσʔλ EBGGGGFDGCBG w ϝλσʔλ͸ɹVIUUQTHPPHM#%C,+PΛ"4$**ม׵ͨ͠΋ͷ

Slide 30

Slide 30 text

ΞηοτͷҠస w ΞηοτҠసͷ3VCZϓϩάϥϜ oa_address = 'bWvbGgAtUkxyzY9uUq6PJEBNGQK1wH3Dqt2' asset_id = 'ogCpkuknNNnusz8CN817QNkEezBNAT5qgL' # ૹ෇ઌͷAddress to_oa_address = OpenAssets.address_to_oa_address(‘mgQE57qY9Wg1VC1RLrAZ26iFpyvXiEhB8b') tx = api.send_asset(oa_address, asset_id, 10000000, to_oa_address) w ࣮ߦ݁Ռʢ໭Γ஋ɿτϥϯβΫγϣϯ*%ʣ $ ruby send_asset.rb dba232a49167eba5dadf5369d1b1db3e45b2c8810508f773763dc6a238e41173

Slide 31

Slide 31 text

&YQMPSFSͰૹۚΛ֬ೝ w ૹۚͷ֬ೝ

Slide 32

Slide 32 text

Ҡస࣌ͷ.BSLFS0VUQVU w ଞऀ΁ͷૹ৴ͱࣗ෼΁ͷ͓௼Γૹ৴Ͱ̎ͭͷ6590͕Ξη οτΛ΋ͭ w 01@3&563/GBEFGB w Gɹɹ0"1ϚʔΧʔͱ7FSTJPOʢݻఆʣ w ɹ̎ͭͷ6590͕ΞηοτΛ͍࣋ͬͯΔ w BEFGBɹ"TTFU2VBOUJUZ w ɹ.FUBEBUBͷ௕͞ɹˠɹ.FUBEBUB͸/VMM

Slide 33

Slide 33 text

-%FDPEF w BEFʗGBɹˣϏοάΤϯσΟΞϯ w FBEɹʗɹBGɹˣ̎ਐ਺ w ɹʗ w ɹˣ্ҐCJUআ͘ w ɹʗ w ɹˣਐ਺ w ɹʗɹ

Slide 34

Slide 34 text

डऔਓ͕࠶ૹ෇ w ৽඼ΞυϨεͰड͚औΔͳͲ%VTU4BUPTIJ͚ͩͩ ͱɺૹ෇͕Ͱ͖ͳ͍ w ૹ෇͢ΔͨΊʹ͸ɺख਺ྉͱͳΔ#5$͕ඞཁ %VTU 4BUPTIJ ख਺ྉ༻

Slide 35

Slide 35 text

Ξηοτͷম٫ w Ξηοτম٫ͷ3VCZϓϩάϥϜ # ઃఆΛ͓ͯ͘͠ oa_address = OpenAssets.address_to_oa_address(‘mstcr1gSQ49ZdCj3VjLZiwFMT3T95eqkov') asset_id = ‘ogCpkuknNNnusz8CN817QNkEezBNAT5qgL' tx = api.burn_asset(oa_address, asset_id) w ࣮ߦ݁Ռ $ ruby burn_asset.rb fe4f4538999ebefc579cc79d321e476d8b7bd53bb0ec5f92237e18429f41851d

Slide 36

Slide 36 text

&YQMPSFSͰম٫Λ֬ೝ w %VTUͷ4BUPTIJ͕ख਺ྉ෼ͷ6590ͱ݁߹͞Εɺ#JUDPJOͱͯ͠ૹ෇͞Ε ͍ͯΔ w .BSLFS0VUQVU͸ͳ͍

Slide 37

Slide 37 text

#JUDPJOΛૹ෇ w 0QFO"TTFUT͕ഁյ͞Εͳ͍Α͏#5$ͷΈૹ෇͢Δػೳ from = 'mruWvfPAMh7nECKY7FaKXeSxyNZXfw9uFi' to = 'n3J6twDtdGH2F5KUbA8uMXDSogQAmv2YAL' api.send_bitcoin(from, 5000000, to) w ࣮ߦ݁Ռ $ ruby send_bitcoin.rb c7ed3e6d46321f249f16d4aca3048ce3f64c163aab1cf3fc9f2163c487f46b0d

Slide 38

Slide 38 text

04$౦ژʹߦ͜͏ʂ w ݄೔ ۚ ೔ ౔ 04$౦ژ!໌੕େֶ w ೔ຊ҉߸௨՟Ϣʔβձ͕ϒʔεग़ల w 04$ͱ͍͑͹ɺϥζϕϦʔύΠʂϥζϕϦʔύΠͰ#JUDPJOϊʔυ ಈ͔͢σϞ΍Γ·͢ʂ w -JHIUOJOH/FUXPSLͷσϞ΋ʂ

Slide 39

Slide 39 text

04$ηϛφʔ৘ใ w ݄೔ ౔ ʙ೔ຊ҉߸௨՟Ϣʔβձηϛφʔ w #JUDPJO$PSFͰֶͿϒϩοΫνΣʔϯɾϓϩάϥϛϯάೖ ໳ʢ୲౰ɿখᔹʣ w IUUQTXXXPTQOKQPTDTQSJOHNPEVMFT FHVJEFFWFOUQIQ FJE w ʙͷ͏ͪͲ͔͜෼ؒ౦ւಓΒ͙-5େձ ϥΠτχϯάωοτϫʔΫɾϥΠτχϯάτʔΫ