Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
スマートコントラクトの課題と実サービス応用へのアプローチ
Search
Osuke
June 29, 2018
Programming
880
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
スマートコントラクトの課題と実サービス応用へのアプローチ
Osuke
June 29, 2018
More Decks by Osuke
See All by Osuke
特許データを使ったマルチモーダルAIの検証事例@LLMProd#4
osuke
0
350
dbtを中心に据えた データ分析とプロダクト開発
osuke
1
1.2k
LayerX Privacy Tech事業部紹介 Tech編
osuke
2
270
(SCIS2021) Anonify: プライバシーを保護した 検証可能な状態遷移モジュール
osuke
1
470
Rustで実装された AWS Nitro Enclaves CLIを読む
osuke
1
440
Rustのパフォーマンスに関するTips
osuke
4
5k
ARM TrustZone入門 / ARM TrustZone intro
osuke
28
11k
Anonify
osuke
3
1.2k
Rustのasync/awaitとスケジューラの話 / rust-async-await
osuke
9
4.2k
Other Decks in Programming
See All in Programming
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
110
Webエンジニアなのにブラウザの仕組みがわからないので、Pythonで自作してみた
tatsuki12
4
1.6k
Cloudflare is Agents
chimame
0
190
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.1k
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
130
書籍「プロフェッショナルAI駆動開発」紹介スライド
juntaromatsumoto
0
860
高専キャリア LT 発表内容
crysta1221
6
5.3k
源内ハンズオン概要編
hideg
0
230
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
160
高専、大学編入、そして未踏へ〜プロダクト開発とキャリアの歩み - Technical College, University Transfer, and On to “Mitou” / My Journey in Product Development and Career
pkmiya
0
120
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
2
910
이 함수, 실패하면 어떻게 되나요? null부터 Rich Errors까지, Kotlin 에러 처리 15년
haeti2
0
110
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1369
210k
First, design no harm
axbom
PRO
2
1.3k
Darren the Foodie - Storyboard
khoart
PRO
3
3.8k
Everyday Curiosity
cassininazir
0
300
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
A designer walks into a library…
pauljervisheath
211
24k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
460
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
490
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
430
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
Speed Design
sergeychernyshev
33
2.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Transcript
ΠʔαϦΞϜʹ͓͚Δ εϚʔτίϯτϥΫτͷ՝ͱ ࣮αʔϏεԠ༻ͷΞϓϩʔν 2018/06/29 Gunosy Inc. Osuke(@zoom_zoomzo)
Osuke @zoom_zoomzo - blog - twitter - ϑϦʔϥϯε → Gunosy
(2018/06)
εϚʔτίϯτϥΫτͱ ܖͷࣗಈԽ → ՁͷަΛ͏ܖͷࣗಈԽ - ྫɿ ࣗಈൢചػ → 150ԁͱυϦϯΫͷՁަ ࣗಈվࡳػ
→ 200ԁͱʮ৽॓ޚԓલӺ͔ΒຊӺిंͰߦ͘ݖརʯͷՁަ - ࣗಈൢചػʹ150ԁΛೖΕͯυϦϯΫ͕ग़ͯ͜ͳ͍Մೳੑʁ - ٬͕վࡳػΛແཧΓ௨ͬͯλμΓ͢ΔՄೳੑʁ ϋʔυΣΞʹूݖతͳॊೈੑͷ͍εϚʔτίϯτϥΫτ
ϒϩοΫνΣʔϯ × εϚʔτίϯτϥΫτ ϒϩοΫνΣʔϯʹΑͬͯɺ ɹ- σʔλ͕վ͟Μ͕Ͱ͖ͳ͍ʢվ͟Μ͞Ε͍ͯͳ͍ͱ৴͡ΒΕΔʣ ɹ ͔ͭ ɹ- ͦͷσʔλ͕͍ͭͰͲ͜Ͱ୭ͰݟΕΔΑ͏ʹͳͬͨ
→ ͜ͷσʔλΛʮఆྔతධՁ͕ՄೳͳՁʯͱͯ͠৴͡Δ͜ͱ͕Ͱ͖ͦ͏ ͞ΒʹɺεϚʔτίϯτϥΫτʹΑͬͯՁͷަ݅ΛϓϩάϥϜͰ͖Δ τϥετϨεͰύʔϛογϣϯϨεͰϑϨΩγϒϧͳՁͷަ͕࣮ݱ
ΠʔαϦΞϜͰͷεϚʔτίϯτϥΫτ ΠʔαϦΞϜ͋ΒΏΔՁަͷج൫ͱͳΔ͘ɺ ɹνϡʔϦϯάશͳεϚʔτίϯτϥΫτΛઃܭͰ͖Δ ٯʹɺࣗ༝͕ߴ͗ͯ͢੬ऑੑͷݪҼͱͳΔ͜ͱ - The DAO - Parity Multisig
Wallet - vyperͷఏҊ function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); require(_value <= balances[msg.sender]); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } ERC20.sol
࣮༻ԽʹΉ͚ͨεϚʔτίϯτϥΫτͷ՝
εέʔϥϏϦςΟ 1ϒϩοΫ͋ͨΓͷσʔλαΠζͱϒϩοΫੜεϐʔυͷ্ݶʹΑͬͯ TPS(Transaction Per Seconds)੍͕ݶ͞Εͯ͠·͏ɻ - ྫɿΠʔαϦΞϜ ~15TPS ɹ -
ෳࡶͳॲཧΛߦ͏εϚʔτίϯτϥΫτ΄Ͳɺଟ͘ͷखྉ(gas)Λࢧ͏ඞཁੑ - ϒϩοΫνΣʔϯωοτϫʔΫͷ҆શੑͱࢄੑҡ࣋͠ͳ͚ΕͳΒͳ͍ ʢεέʔϥϏϦςΟɾτϦϨϯϚʣ ҆શੑɿ - ίϯηϯαεΞϧΰϦζϜͷηΩϡϦςΟ - ୯ҰͷϝΠϯνΣʔϯʹର͢Δेͳ߹ҙܗ ࢄੑɿ - ωοτϫʔΫʹগͳ͍ܭࢉϦιʔεͰࢀՃͰ͖Δ - େଟͷΫϥΠΞϯτʹΑΔݕূ࡞ۀ εέʔϥϏϦςΟ ҆શੑ ࢄੑ
ΞοϓάϨʔμϏϦςΟ ҰɺΠʔαϦΞϜωοτϫʔΫʹσϓϩΠ͞ΕͨίϯτϥΫτͷEVMίʔυΛ ॻ͖͢͜ͱ͕Ͱ͖ͳ͍ - ϒϩοΫνΣʔϯͷඇվ͟Μੑͷੑ࣭ʹ༝དྷ - όάͷରॲ & ػೳ֦ॆ͕ࠔ ίϯτϥΫτͷΞοϓάϨʔμϏϦςΟʹؔ͢ΔR&D
- ͞·͟·ͳΞοϓάϨʔμϒϧͳίϯτϥΫτύλʔϯͷఏҊ - ྫɿzeppelin_os ίϯτϥΫτߏͰࢀর͢ΔίϯτϥΫτΛมߋ ver.1 ver.2 ίϯτϥΫτ
ϓϥΠόγʔ ϒϩοΫνΣʔϯͷॏཁͳੑ࣭ͷͻͱͭʹσʔλͷಁ໌ੑ͕͋Δ - σʔλ͕վ͟Μ͞Ε͍ͯͳ͍͔୭Ͱݕূ͢Δ͜ͱ͕Մೳ - σʔλΛ୭Ͱར༻͢Δ͜ͱ͕Մೳ ϓϥΠόγʔੑͷߴ͍σʔλΛѻ͏͜ͱ͕ࠔͳ ྫɿ ݸਓͷి൪߸ɺΧελϚʔσʔλ zk-SNARKsɺEnigma
ΦϥΫϧ ΦϥΫϧͱɺϒϩοΫνΣʔϯωοτϫʔΫʹ ϒϩοΫνΣʔϯ֎෦ͷใΛ࣋ͬͯ͘Δ͜ͱ - ྫɿؾԹɺҐஔใɺαοΧʔͷࢼ߹݁Ռ ΦϥΫϧ֎෦σʔλͷਖ਼ੑʹؔͯ͠ϒϩοΫνΣʔϯωοτϫʔΫͰ ͍͔ʹ߹ҙܗΛͱΔ͔ εϚʔτίϯτϥΫτͷ׆༻ʹ͓͍ͯඇৗʹॏཁʹͳͬͯ͘Δ ΦϥΫϧγεςϜͷྫ -
Oraclize - Witnet - Augur
ΞΠσϯςΟςΟ ύϒϦοΫϒϩοΫνΣʔϯύʔϛογϣϯϨεͰ୭Ͱར༻Ͱ͖Δ - ΞυϨεΛϦΞϧࣾձͱͷΞΠσϯςΟςΟʹ݁ͼ͚ͭΔ͜ͱ͕͍͠ - ٛͷΦϥΫϧ औҾॴ(DEX)ICOͰͷࢿՈอޢɺϚωʔϩϯμϦϯάࢭʹ͏KYC/AMLͷඞཁੑ ಛఆͷݸਓͱϒϩοΫνΣʔϯωοτϫʔΫͰͷධՁΛ݁ͼ͚ͭΔ ྫɿ -
uPort - Civic - ERC725 & ERC735
ʙτʔΫϯઃܭʙ εϚʔτίϯτϥΫτͷ࣮༻ԽΛߟ͑Δ
DAPPSͷτʔΫϯઃܭ ϢʔςΟϦςΟτʔΫϯΛલఏʢαʔϏεͷར༻ݖʣ Ϣʔβʔʹର͢ΔదͳΠϯηϯςΟϒઃܭΛߟ͑Δ - αʔϏεʹରͯ͠ྑ͍ߦಈʹΠϯηϯςΟϒΛ༩͑ɺ ɹѱ͍ߦಈʹϖφϧςΟΛ༩͑Δ - τʔΫϯΤίϊϛʔͷग़ τʔΫϯϗϧμʔʹΠϯηϯςΟϒͷ͋ΔτʔΫϯϞσϧઃܭ -
τʔΫϯΛଟ͘ɺظؒอ࣋ͯ͠Β͏͜ͱʹରͯ͠ΠϯηϯςΟϒઃܭΛߟ ͑Δ ̍छྨͷτʔΫϯͰΓཱͨͤΔ͜ͱʹݶք͕ੜ͡Δ͔ - ྫ͑ɺαʔϏεͷΨόφϯεͷͨΊʹূ݊ੑͷߴ͍τʔΫϯΛ༻ҙ͠ɺ ɹϢʔβʔՁ֨มಈϦεΫͷগͳ͍StableίΠϯΛར༻͢Δ
ʙORIGIN PROTOCOLͷྫʙ ࢄܕγΣΞϦϯάαʔϏεΛߟ͑Δ
ORIGIN PROTOCOLͱ ͋ΒΏΔγΣΞϦϯάαʔϏεͷج൫ͱͳΔࢄܕͷϓϩτίϧΛࢦ͢ - ϢʔβʔͱΦʔφʔ྆ऀͷϚονϯάखྉΛैདྷͱൺֱͯ͠େ෯ʹԼ͛Δ - ΞΠσϯςΟςΟʹ݁ͼͭ͘ϨϐϡςʔγϣϯͳͲͷσʔλΛڞ༗Խ
αʔϏεΛ”ࢄԽ”͢Δҙٛ αʔϏεར༻ͷࢧ͍ํ๏ΛτʔΫϯʹ͢Δ͚ͩͰɺ ɹϒϩοΫνΣʔϯεϚʔτίϯτϥΫτΛ׆༻͢Δҙຯ͕ͳ͍ ΠϯηϯςΟϒઃܭʹΑΔ୯Ұओମʹґଘ͠ͳ͍αʔϏεͷӡӦ - ΠϯηϯςΟϒઃܭʹΑΔΦϥΫϧʢෆਖ਼ใࠂʣ - ΨόφϯεʹΑΔγεςϜͷཧɾΞοϓάϨʔυ ΞΠσϯςΟςΟʹඥͮ͘Ϩϐϡςʔγϣϯͷσʔλڞ༗Խ ORIGINͰ
ΠϯηϯςΟϒઃܭʹΑΔΦϥΫϧ ᶃෆਖ਼ Origin ᶄෆਖ਼ใࠂ ᶅථ - Ͳ͕ͬͪෆਖ਼ʁ τʔΫϯϗϧμʔ ෆਖ਼ใࠂऀ ෆਖ਼ٙͷਓ
γΣΞϦϯάαʔϏεͰʹͳΔͷ͕ɺϦΞϧࣾձͰͷෆਖ਼ߦҝ - γΣΞͨ͠ंʹইΛ͚ͭͨͷʹഛঈۚΛࢧΘͳ͍ - ͓ۚΛࢧͬͨͷʹγΣΞϋεʹೖΕͳ͍ σϙδοτ σϙδοτ
ΠϯηϯςΟϒઃܭʹΑΔΦϥΫϧ γΣΞϦϯάαʔϏεͰʹͳΔͷ͕ɺϦΞϧࣾձͰͷෆਖ਼ߦҝ - γΣΞͨ͠ंʹইΛ͚ͭͨͷʹഛঈۚΛࢧΘͳ͍ - ͓ۚΛࢧͬͨͷʹγΣΞϋεʹೖΕͳ͍ τʔΫϯϗϧμʔ ෆਖ਼ใࠂऀ ෆਖ਼ٙͷਓ τʔΫϯ
τʔΫϯ ෆਖ਼ٙͷਓɿ80ˋ ෆਖ਼ใࠂऀɿ20ˋ Ͳ͕ͬͪෆਖ਼ʁ
ධՁͱΞΠσϯςΟςΟͷ࿈ܞ γΣΞϦϯάαʔϏεͷج൫ͱͳΔϓϩτίϧͰϨϐϡςʔγϣϯΛ ڞ༗Խ͢Δ͜ͱͰɺѱ͍ߦ͍Λ͢Δ͜ͱͷσϝϦοτΛେ͖͘͢Δ - Ϩϐϡςʔγϣϯ͕Լ͕Δ - ͋ΒΏΔγΣΞϦϯάαʔϏε͕͍ʹ͘͘ͳΔ ERC725uPortͳͲΛ༻͍ͯɺSNSͷΞΧϯτݸਓใͱOrigin Protocolͷ ධՁΛ࿈ܞ͍ͯ͘͠
ΨόφϯεʹΑΔγεςϜͷΞοϓάϨʔυ ։ൃνʔϜ͕উखʹγεςϜͷΞοϓάϨʔυΛͰ͖ΔΑ͏ʹͯ͠͠·͏ͱɺ ϢʔβʔʹͱͬͯෆརͳγεςϜʹͳͬͯ͠·͏͜ͱ͕͋Δ - ࢄతʹϓϩτίϧΛΨόφϯε͢Δඞཁੑ τʔΫϯϗϧμʔʹΑΔථͷ݁ՌͰγεςϜͷΞοϓάϨʔυΛՄೳʹ͢Δ ྫ͑ɺτʔΫϯΛଟ͍࣋ͬͯ͘Δ΄Ͳଟ͘ͷථݖΛಘΒΕΔΑ͏ʹ͢Δɻ - ϢʔβʔʹෆརͳΞοϓάϨʔυΛ͢ΔͱτʔΫϯͷՁ͕֨Լམ͠ɺ͕ࣗෆརʹɻ ver.1
ver.2 ίϯτϥΫτ ථ τʔΫϯϗϧμʔ
·ͱΊ ΠʔαϦΞϜͷεϚʔτίϯτϥΫτνϡʔϦϯάશͰɺ ॊೈͳΠϯηϯςΟϒઃܭ͕Մೳ දతͳεϚʔτίϯτϥΫτͷ՝ - εέʔϥϏϦςΟ - ΞοϓάϨʔμϏϦςΟ - ΦϥΫϧ
- ϓϥΠόγʔ - ΞΠσϯςΟςΟ ϒϩοΫνΣʔϯ × εϚʔτίϯτϥΫτͷಛੑΛ׆͔ͨ͠dApps Λ࡞͍ͬͯ͜͏ʂ