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
340
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
4.9k
ARM TrustZone入門 / ARM TrustZone intro
osuke
27
10k
Anonify
osuke
3
1.2k
Rustのasync/awaitとスケジューラの話 / rust-async-await
osuke
9
4.2k
Other Decks in Programming
See All in Programming
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
140
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
160
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
500
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.6k
SlackアプリとLambdaの 連携を構築した話
pawn_4_s
1
120
FDEが実現するAI駆動経営の現在地
gonta
2
280
関東Kaggler会_NVIDIA_Nemotron_コンペ_振り返り
rick_ds
0
560
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
260
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
230
メールのエイリアス機能を履き違えない
isshinfunada
0
240
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
260
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
18k
Featured
See All Featured
Claude Code のすすめ
schroneko
67
230k
Optimizing for Happiness
mojombo
378
71k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
200
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
300
Discover your Explorer Soul
emna__ayadi
2
1.3k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
200
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
480
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
240
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
650
Technical Leadership for Architectural Decision Making
baasie
3
470
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
エンジニアに許された特別な時間の終わり
watany
108
250k
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 Λ࡞͍ͬͯ͜͏ʂ