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

Developerが陥りやすい3つの罠

 Developerが陥りやすい3つの罠

Hi-Ether #2 LT発表資料

nakajo2011

April 14, 2018
Tweet

More Decks by nakajo2011

Other Decks in Programming

Transcript

  1. Copyright © 2018 HAW International Inc. All rights reserved.
    Developerが陥りやすい3つの罠
    SmartContract以外のセキュリティーにも気をつけてい
    ますか?

    View full-size slide

  2. Copyright © 2018 HAW International Inc. All rights reserved.
    自己紹介
    中城 元臣(Yukishige Nakajo)
    twitter: @nakajo
    github: nakajo2011
    ・福岡の飯塚市でBlockchainの研究開発やってます。
    ・HAW International所属
    ・ethereumは2017/11から始めました。

    View full-size slide

  3. Copyright © 2018 HAW International Inc. All rights reserved.
    今日話すこと
    SmartContract以外のセキュリティーにも気をつけてい
    ますか?
    1. checksum利用してますか?
    2. リプレイアタック意識してますか?
    3. truffle-hdwallet-providerに潜む罠

    View full-size slide

  4. checksum利用してますか?

    View full-size slide

  5. Copyright © 2018 HAW International Inc. All rights reserved.
    1.checksum利用してますか?

    View full-size slide

  6. Copyright © 2018 HAW International Inc. All rights reserved.
    1.checksum利用してますか?
    ● EIP-55で定義
    ● addressのhashをとる
    ● hash値が8 >= 0を大文字にする

    View full-size slide

  7. Copyright © 2018 HAW International Inc. All rights reserved.
    1.checksum利用してますか?

    View full-size slide

  8. Copyright © 2018 HAW International Inc. All rights reserved.
    1.checksum利用してますか?
    ・Walletではchecksumを利用してる。
    ・Dappsでは?利用してない人が実は多いのでは?
    ・ethereum-util.jsなどを使えば簡単にチェック可能
    ・Dappsでもaddressを各必要のある場所は(たとえ静的なデータ
    だとしても)checksumを活用しよう。
    ・ICAPというフォーマットも提案されているけどまだ主流じゃな
    い。。。

    View full-size slide

  9. リプレイアタック意識していますか?

    View full-size slide

  10. Copyright © 2018 HAW International Inc. All rights reserved.
    2.リプレイアタック意識していますか?
    ・EIP-155以前では同一のaddresから生成されたtransactionは
    mainnetとtestnetなど区別なく利用可能

    View full-size slide

  11. Copyright © 2018 HAW International Inc. All rights reserved.
    2.リプレイアタック意識していますか?
    ・EIP-155でsignature生成時にchain idを含めるようにしてリプレ
    イアタックをできなくした。
    ・でも下位互換を持たせるためchain id = 0のtransactionは相変
    わらずリプレイアタックの対象となる

    View full-size slide

  12. Copyright © 2018 HAW International Inc. All rights reserved.
    2.リプレイアタック意識していますか?
    Geth

    View full-size slide

  13. Copyright © 2018 HAW International Inc. All rights reserved.
    2.リプレイアタック意識していますか?

    EIP-155で解決された。でも下位互換として残ってる。

    nodeにsignを依頼する場合は多分大丈夫。ethereumjs-txや
    ganache-cliなどで生成されたtransactionは確認した方がよ
    い。

    meta-transactionなど、代替支払いの仕組みを作る場合は特
    に注意が必要になると思う。

    View full-size slide

  14. truffle-hdwallet-providerに
    潜む罠

    View full-size slide

  15. Copyright © 2018 HAW International Inc. All rights reserved.
    3.truffle-hdwallet-providerに潜む罠
    infura.io利用する時はtruffle-hdwallet-provider使うことが多い
     

    View full-size slide

  16. Copyright © 2018 HAW International Inc. All rights reserved.
    3.truffle-hdwallet-providerに潜む罠
     

    View full-size slide

  17. Copyright © 2018 HAW International Inc. All rights reserved.
    3.truffle-hdwallet-providerに潜む罠
    https://ropsten.etherscan.io/address/0x959fd7ef9089b7142b6b908dc3a8af7aa8ff0fa1

    View full-size slide

  18. Copyright © 2018 HAW International Inc. All rights reserved.
    3.truffle-hdwallet-providerに潜む罠
    ・mnemonicのvalidationをしていない
    ・空文字でも動いちゃう
    ・PR #10を出してるのでそっちを使ってね
    https://github.com/trufflesuite/truffle-hdwallet-provider/pull/10

    View full-size slide

  19. Copyright © 2018 HAW International Inc. All rights reserved.
    おわり
    ブログも宜しく
    http://y-nakajo.hatenablog.com/

    View full-size slide