Upgrade to Pro — share decks privately, control downloads, hide ads and more …

スマートコントラクトの課題と実サービス応用へのアプローチ

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Osuke Osuke
June 29, 2018

 スマートコントラクトの課題と実サービス応用へのアプローチ

Avatar for Osuke

Osuke

June 29, 2018
Tweet

More Decks by Osuke

Other Decks in Programming

Transcript

  1. εϚʔτίϯτϥΫτͱ͸ ܖ໿ͷࣗಈԽ → Ձ஋ͷަ׵Λ൐͏ܖ໿ͷࣗಈԽ - ྫɿ ࣗಈൢചػ → 150ԁͱυϦϯΫͷՁ஋ަ׵ ࣗಈվࡳػ

    → 200ԁͱʮ৽॓ޚԓલӺ͔Β࿡ຊ໦Ӻ΁ిंͰߦ͘ݖརʯͷՁ஋ަ׵ - ࣗಈൢചػʹ150ԁΛೖΕͯυϦϯΫ͕ग़ͯ͜ͳ͍Մೳੑ͸ʁ - ৐٬͕վࡳػΛແཧ΍Γ௨ͬͯλμ৐Γ͢ΔՄೳੑ͸ʁ ϋʔυ΢ΣΞʹूݖతͳॊೈੑͷ௿͍εϚʔτίϯτϥΫτ
  2. ϒϩοΫνΣʔϯ × εϚʔτίϯτϥΫτ ϒϩοΫνΣʔϯʹΑͬͯɺ ɹ- σʔλ͕վ͟Μ͕Ͱ͖ͳ͍ʢվ͟Μ͞Ε͍ͯͳ͍ͱ৴͡ΒΕΔʣ ɹ ͔ͭ ɹ- ͦͷσʔλ͕͍ͭͰ΋Ͳ͜Ͱ΋୭Ͱ΋ݟΕΔΑ͏ʹͳͬͨ

    → ͜ͷσʔλΛʮఆྔతධՁ͕ՄೳͳՁ஋ʯͱͯ͠৴͡Δ͜ͱ͕Ͱ͖ͦ͏ ͞ΒʹɺεϚʔτίϯτϥΫτʹΑͬͯՁ஋ͷަ׵৚݅ΛϓϩάϥϜͰ͖Δ τϥετϨεͰύʔϛογϣϯϨεͰϑϨΩγϒϧͳՁ஋ͷަ׵͕࣮ݱ
  3. ΠʔαϦΞϜͰͷεϚʔτίϯτϥΫτ ΠʔαϦΞϜ͸͋ΒΏΔՁ஋ަ׵ͷج൫ͱͳΔ΂͘ɺ ɹνϡʔϦϯά׬શͳεϚʔτίϯτϥΫτΛઃܭͰ͖Δ ٯʹɺࣗ༝౓͕ߴ͗ͯ͢੬ऑੑͷݪҼͱͳΔ͜ͱ΋
 - 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
  4. εέʔϥϏϦςΟ໰୊ 1ϒϩοΫ͋ͨΓͷσʔλαΠζͱϒϩοΫੜ੒εϐʔυͷ্ݶʹΑͬͯ TPS(Transaction Per Seconds)੍͕ݶ͞Εͯ͠·͏ɻ - ྫɿΠʔαϦΞϜ ~15TPS
 ɹ -

    ෳࡶͳॲཧΛߦ͏εϚʔτίϯτϥΫτ΄Ͳɺଟ͘ͷख਺ྉ(gas)Λࢧ෷͏ඞཁੑ - ϒϩοΫνΣʔϯωοτϫʔΫͷ҆શੑͱ෼ࢄੑ΋ҡ࣋͠ͳ͚Ε͹ͳΒͳ͍
 ʢεέʔϥϏϦςΟɾτϦϨϯϚʣ ҆શੑɿ - ίϯηϯαεΞϧΰϦζϜͷηΩϡϦςΟ - ୯ҰͷϝΠϯνΣʔϯʹର͢Δे෼ͳ߹ҙܗ੒ ෼ࢄੑɿ - ωοτϫʔΫʹগͳ͍ܭࢉϦιʔεͰࢀՃͰ͖Δ - େଟ਺ͷΫϥΠΞϯτʹΑΔݕূ࡞ۀ εέʔϥϏϦςΟ ҆શੑ ෼ࢄੑ
  5. DAPPSͷτʔΫϯઃܭ ϢʔςΟϦςΟτʔΫϯΛલఏʢαʔϏεͷར༻ݖʣ Ϣʔβʔʹର͢Δద੾ͳΠϯηϯςΟϒઃܭΛߟ͑Δ - αʔϏεʹରͯ͠ྑ͍ߦಈʹΠϯηϯςΟϒΛ༩͑ɺ
 ɹѱ͍ߦಈʹϖφϧςΟΛ༩͑Δ - τʔΫϯΤίϊϛʔͷ૑ग़ τʔΫϯϗϧμʔʹΠϯηϯςΟϒͷ͋ΔτʔΫϯϞσϧઃܭ -

    τʔΫϯΛଟ͘ɺ௕ظؒอ࣋ͯ͠΋Β͏͜ͱʹରͯ͠ΠϯηϯςΟϒઃܭΛߟ ͑Δ ̍छྨͷτʔΫϯͰ੒ΓཱͨͤΔ͜ͱʹݶք͕ੜ͡Δ͔΋ - ྫ͑͹ɺαʔϏεͷΨόφϯεͷͨΊʹূ݊ੑͷߴ͍τʔΫϯΛ༻ҙ͠ɺ
 ɹϢʔβʔ͸Ձ֨มಈϦεΫͷগͳ͍StableίΠϯΛར༻͢Δ
  6. ΠϯηϯςΟϒઃܭʹΑΔΦϥΫϧ ᶃෆਖ਼ Origin ᶄෆਖ਼ใࠂ ᶅ౤ථ - Ͳ͕ͬͪෆਖ਼ʁ τʔΫϯϗϧμʔ ෆਖ਼ใࠂऀ ෆਖ਼ٙ࿭ͷਓ

    γΣΞϦϯάαʔϏεͰ໰୊ʹͳΔͷ͕ɺϦΞϧࣾձͰͷෆਖ਼ߦҝ - γΣΞͨ͠ंʹইΛ͚ͭͨͷʹഛঈۚΛࢧ෷Θͳ͍ - ͓ۚΛࢧ෷ͬͨͷʹγΣΞϋ΢εʹೖΕͳ͍ σϙδοτ σϙδοτ