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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
280
(SCIS2021) Anonify: プライバシーを保護した 検証可能な状態遷移モジュール
osuke
1
480
Rustで実装された AWS Nitro Enclaves CLIを読む
osuke
1
460
Rustのパフォーマンスに関するTips
osuke
4
5.2k
ARM TrustZone入門 / ARM TrustZone intro
osuke
33
11k
Anonify
osuke
3
1.2k
Rustのasync/awaitとスケジューラの話 / rust-async-await
osuke
9
4.2k
Other Decks in Programming
See All in Programming
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
230
Heart of Swift Concurrency
koher
0
1.2k
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
160
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
4.9k
The Rails Doctrine Decade
koic
2
510
GitHubハンズオン講座 — 実務レベルのチーム開発のフローを身につけよう
junhat6
0
120
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
310
R8 の設定見直しでアプリサイズ削減
andpad
0
180
mrbgem 三角測量 開発
ogom
0
200
最近”作らせてる” ローカルAIアプリの話
akit37
0
110
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
340
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
8
5.5k
Featured
See All Featured
The Language of Interfaces
destraynor
162
27k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
76k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Building the Perfect Custom Keyboard
takai
2
890
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
720
Designing Experiences People Love
moore
143
24k
The SEO identity crisis: Don't let AI make you average
varn
0
580
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Abbi's Birthday
coloredviolet
4
10k
Designing for Timeless Needs
cassininazir
1
520
Designing for humans not robots
tammielis
254
26k
HDC tutorial
michielstock
2
940
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 Λ࡞͍ͬͯ͜͏ʂ