0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

スマートコントラクトのセキュリティ〜【スマートコントラクト≠普通のプログラミング】

Posted at

#スマートコントラクトは普通のプログラミングでは無い
イーサリウムのコントラクトは、普通のプログラミングではありません。
一度公開されたものは書き換えはできません。
完全な状態まで完成させてから公開しなくてはならないのです。
また、コードに欠陥があった時、必ず悪意を持った人間に攻撃されます。そして、そのプログラムによって起こったことは取り消すことができません。
以上の特徴を踏まえた上で、以下の項目がスマートコントラクトのベストプラクティスです。

##コードは最小限に、機能はシンプルに
プログラムの複雑性が増すと、バグや予期せぬ挙動が増えます。
できるだけコードは短く、できるだけ機能は限定的に、最小限のコードを書く。
##独自の発明をしない
広く用いられているライブラリーやコードを再利用する。広く用いられている手法は、より安全である。
独自の手法の発明は、常にリスクが伴う。
求めている機能を持つライブラリーやコードがないか、まず探すことを優先する。
##最大限の安全性への配慮
スマートコントラクトは、一度公開されると修正が効かない。よって、可能な限り最も厳しい基準で安全性を管理する必要がある。
##可読性、理解しやすいコード
見やすいコードを書くことを心がける。そうすることで、コードの評価がしやすくなる。
イーサリウムのスマートコントラクトは、全て誰もが見れる状態で公開される。このような性質から、スマートコントラクトはオープンソースと相性がいい。その際も、可読性を高めることでより多くの人から評価されることが期待できる。

##できる限りのテストをする
イーサリウム上で公開されるコードは、誰もが利用することができる。その際、開発者が意図した方法でそのが利用されるとは限らない。そのような不確定性があるので、思いつく限りの全てのテストを行い、挙動を確認する。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?