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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Osuke
June 29, 2018
Programming
870
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
340
dbtを中心に据えた データ分析とプロダクト開発
osuke
1
1.2k
LayerX Privacy Tech事業部紹介 Tech編
osuke
1
260
(SCIS2021) Anonify: プライバシーを保護した 検証可能な状態遷移モジュール
osuke
1
450
Rustで実装された AWS Nitro Enclaves CLIを読む
osuke
0
430
Rustのパフォーマンスに関するTips
osuke
4
4.8k
ARM TrustZone入門 / ARM TrustZone intro
osuke
21
10k
Anonify
osuke
3
1.2k
Rustのasync/awaitとスケジューラの話 / rust-async-await
osuke
9
4.2k
Other Decks in Programming
See All in Programming
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
560
Vite+ Unified Toolchain for the Web
naokihaba
0
360
Datadog LLM Observabilityで実現する 安全なLLM Usage 管理
3150
0
110
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
620
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
350k
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.5k
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
200
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
150
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.4k
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.8k
JavaDoc 再入門
nagise
1
420
act1-costs.pdf
sumedhbala
0
120
Featured
See All Featured
Balancing Empowerment & Direction
lara
6
1.2k
Chasing Engaging Ingredients in Design
codingconduct
0
230
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
250
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
480
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
My Coaching Mixtape
mlcsv
0
150
Abbi's Birthday
coloredviolet
3
8.2k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
55k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
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 Λ࡞͍ͬͯ͜͏ʂ