スマートコントラクトの作成 — 私の個人的なメモと意見

さて、みなさん、本当にスマートコントラクトを書く方法を、インターネットにあふれる誇張や愚かさなしにお話ししましょう。私自身も長い間苦労してきたので、その経験を共有する準備ができています。

最初に言っておくと、スマートコントラクトを書くことは見た目ほど難しくはありませんが、すべての" guru "が高額なコースで約束するほど簡単でもありません。特に、市場の大手プレイヤーがこの知識の分野を独占しようとするのは本当に腹立たしいです。

言語の選択は成功か失敗かの第一歩

スマートコントラクトを書くためには、主にSolidityが使われます — これは業界の標準のようなものです。しかし正直なところ、この言語自体はかなり未成熟で、多くの穴があります。私は数年間それを使ってきましたが、誰も警告してくれない問題に常に直面していました。

例えば、TONのためのFunCのような代替手段があります。しかし、ここには別の問題があります - ドキュメントがほとんどなく、多くの場合、英語で翻訳が曲がっています。

ワークスペースの設定

複雑な指示は忘れてください。Visual Studio Code + Solidity拡張機能+ Remix IDEは、迅速なテストに最適です。公式ガイドがアドバイスしているように、車輪を再発明して大量のプログラムをインストールする必要はありません。

契約書の書き方 – 落とし穴

契約を書くときは、あなたのどんなミスもお金を盗むために利用される可能性があることを常に覚えておくことが重要です。文字通り、どんなミスでも!私自身、ある単純な関数のオーバーフローを確認するのを忘れたときにこの罠に嵌り、大金を失いかけました。

これを言わせていただきます — ドキュメントの例を信頼しないでください。それらはしばしば安全でないコードを含んでおり、プロダクションに投入することは絶対にできません。また、企業のテンプレートは、時にはブロックチェーンの基本的な原則さえ理解していない人々によって書かれています。

テスト — この部分を節約しないでください

すべてを100回テストしてください! "テストは後で行ってもいい"と言う人を信じないでください。暗号の世界では、これはすべてを失う道です。私は通常、契約を書く前にテストを書き、さまざまな攻撃シナリオを考えます。

私は、開発者がすべての境界ケースをテストするのを怠ったり、リリースを急いだりしたために、何百万も失ったプロジェクトを見たことがあります。

ネットワークへのデプロイ

契約をデプロイする際は、手数料を確認するのを忘れないでください。時々、ネットワークが混雑していて、通常の金額の代わりにデプロイに全財産を支払うことがあります。私はかつて、プロジェクト自体のコストよりも高い手数料でトランザクションを送信しそうになったことがあります。

人気のあるウォレットに盲目的に信頼しないでください — それらも間違いを犯すことがあります。hardhatやtruffleのような信頼できるツールを使用する方が良いです。

次は何ですか?

デプロイ後も、コントラクトを監視する必要があります。ハッカーは眠らず、毎日新しい脆弱性を見つけています。この点で、ブロックチェーンは冷酷です - 一度エラーでデプロイされ、それで終わりです。

あの、スマートコントラクトが万能だと思わないでください。ブロックチェーンのプロジェクトの大半は、無駄に投資されたお金です。しかし、価値のあることをするのであれば、質の高いものを提供してください。

覚えておいてください: ブロックチェーンにはトランザクションの取り消しや返金はありません! ここでは、自分のコードに対して全責任を負うことになります。

あなたの契約に幸運を!それと、2週間の経験しかない「専門家」の話は聞かないでください。他人の失敗から学び、自分の失敗ではなく。

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • コメント
  • リポスト
  • 共有
コメント
0/400
コメントなし
  • ピン
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)