katonobo’s blog

プログラミング中心の雑記ブログ

【Solidity】OppenZeppelinとは?

OppenZeppelinとは、イーサリアムのスマートコントラクトに使うSolidity言語を安全に記述するためのフレームワークです。

 

openzeppelin.org

 

 

 Reduce the risk of vulnerabilities in your applications by using standard, tested and community-reviewed code

テスト済みのコミュニティレビューコードを使用して、アプリケーションの脆弱性のリスクを軽減しよう

OpenZeppelin

 

 イーサリアムのブロックチェーン自体は非常に堅牢ですが、そのイーサリアムを利用して作成するスマートコントラクトアプリのコードの脆弱性が突かれて多額の資金がハッキングされる事件が起きています。「The DAO事件」などが有名です。

 

The DAOとは何だったのか - とってもやさしいビットコイン

 

スマートコントラクトのコードは基本的には誰でも閲覧ができます。そのため、普通のアプリケーション以上にコードが堅牢で安全である必要があり、OppenZeppelinは、コミニュティで検証された安全なコードライブラリを提供します。

 

スマートコントラクトでアプリを作るような解説記事を見ると、ほとんどがこのフレームワークに触れているってくらいOppenZeppelinのフレームワークを使うことが様々な書籍やサイトで勧められています。

 

OppenZeppelinのOwnableコントラクト

有名なのは、OppenZeppelinのライブラリ、Ownableコントラクトです。

 

github.com

 

 Ownableコントラクトは、オーナー(所有者)だけがそのアクションを実行できるようにするコードです。ほとんどのスマートコントラクトのアプリでは、こういった機能が必要です。そのため、多くのトークンプロジェクトが、このOwnableコントラクトを継承(コードの効果を受け継ぐ)して作成しています。

 

もしスマートコントラクトを使ったアプリ作成の際には、OppenZeppelinのフレームワークを活用して作っていく必要があるでしょう。