Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
スマートコントラクトの課題と実サービス応用へのアプローチ
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
360
dbtを中心に据えた データ分析とプロダクト開発
osuke
1
1.2k
LayerX Privacy Tech事業部紹介 Tech編
osuke
2
280
(SCIS2021) Anonify: プライバシーを保護した 検証可能な状態遷移モジュール
osuke
1
480
Rustで実装された AWS Nitro Enclaves CLIを読む
osuke
1
470
Rustのパフォーマンスに関するTips
osuke
4
5.2k
ARM TrustZone入門 / ARM TrustZone intro
osuke
34
11k
Anonify
osuke
3
1.2k
Rustのasync/awaitとスケジューラの話 / rust-async-await
osuke
9
4.2k
Other Decks in Programming
See All in Programming
dotNET_vulnclicker_intro.pdf
deka_morita
0
150
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.2k
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.3k
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
340
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
390
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
480
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
170
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
380
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
150
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
220
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
12
4.9k
Featured
See All Featured
Navigating Team Friction
lara
192
16k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
860
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Balancing Empowerment & Direction
lara
6
1.3k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
The browser strikes back
jonoalderson
0
1.9k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
How to make the Groovebox
asonas
2
2.5k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
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 Λ࡞͍ͬͯ͜͏ʂ