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

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

Osuke
June 29, 2018

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

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 ᶄෆਖ਼ใࠂ ᶅ౤ථ - Ͳ͕ͬͪෆਖ਼ʁ τʔΫϯϗϧμʔ ෆਖ਼ใࠂऀ ෆਖ਼ٙ࿭ͷਓ

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