@@ -90,7 +90,10 @@ contract VendingMachine {
90
90
91
91
スマートコントラクトの監査を委託することは、第三者コードレビューを実施する一つの方法です。 監査人は、スマートコントラクトが安全で、品質不良や設計ミスがないようにする重要な役割を担っています。
92
92
93
- それでも、監査を特効薬のように受け止めるのは避けるべきです。 スマートコントラクト監査は、すべてのバグを発見できるわけではなく、主に追加のレビューを提供するためのものです。これは、初回の開発とテストでデベロッパーが見逃した問題を検出するのに役立ちます。 スマートコントラクト監査のメリットを最大限に活かすには、コードを適切に文書化し、インラインコメントを追加するなどの[ 監査人と協業するための最善の方法] ( https://twitter.com/tinchoabbate/status/1400170232904400897 ) も実践する必要があります。
93
+ それでも、監査を特効薬のように受け止めるのは避けるべきです。 スマートコントラクト監査は、すべてのバグを発見できるわけではなく、主に追加のレビューを提供するためのものです。これは、初回の開発とテストでデベロッパーが見逃した問題を検出するのに役立ちます。 スマートコントラクト監査のメリットを最大限に活かすには、コードを適切に文書化し、インラインコメントを追加するなどの監査人と協業するための最善の方法も実践する必要があります。
94
+
95
+ - [ スマートコントラクト監査のヒントとコツ] ( https://twitter.com/tinchoabbate/status/1400170232904400897 ) - _ @tinchoabbate_
96
+ - [ 監査を最大限に活用する] ( https://inference.ag/blog/2023-08-14-tips/ ) - _ Inference_
94
97
95
98
#### バグ報奨金 {#bug-bounties}
96
99
@@ -214,7 +217,7 @@ contract EmergencyStop {
214
217
215
218
オンチェーンガバナンスに関連する問題を防ぐ方法の一つとして、[ タイムロックの使用] ( https://blog.openzeppelin.com/protect-your-users-with-smart-contract-timelocks/ ) が挙げられます。 タイムロックは、特定の時間が経過するまでスマートコントラクトが特定のアクションを実行できないようにするものです。 その他の戦略としては、各トークンがロックされている期間に応じて「投票の重み」を割り当てることや、現在のブロックの代わりに過去の期間 (例: 2~3ブロック前) でアドレスの投票力を測定することなどがあります。 どちらの方法も、オンチェーンの投票を思い通りに動かす投票力を短期間で獲得する可能性を減らすことができます。
216
219
217
- 詳細は、 [ 安全なガバナンスシステムの設計] ( https://blog.openzeppelin.com/smart-contract-security-guidelines-4-strategies-for-safer-governance-systems/ ) と [ DAOにおけるさまざまな投票メカニズム ] ( https://hackernoon.com/governance-is-the-holy-grail-for-daos ) をご覧ください 。
220
+ [ 安全なガバナンスシステムの設計] ( https://blog.openzeppelin.com/smart-contract-security-guidelines-4-strategies-for-safer-governance-systems/ ) 、 [ DAOのさまざまな投票メカニズム ] ( https://hackernoon.com/governance-is-the-holy-grail-for-daos ) 、 [ DeFiを悪用した一般的なDAOの攻撃ベクトル ] ( https://dacian.me/dao-governance-defi-attacks ) の詳細については、共有のリンクをご覧ください 。
218
221
219
222
### 8. コードの複雑さの最小化 {#reduce-code-complexity}
220
223
@@ -235,7 +238,7 @@ EVMは同時実行を許可していません。つまり、メッセージ呼
235
238
誰でもイーサ (Ether) を入出金できるシンプルなスマートコントラクト (「Victim」) を考えてみましょう。
236
239
237
240
``` solidity
238
- // This contract is vulnerable. Do not use in production
241
+ // このコントラクトには、脆弱性があります。 プロダクションでは使用しないでください。
239
242
240
243
contract Victim {
241
244
mapping (address => uint256) public balances;
@@ -338,7 +341,7 @@ contract MutexPattern {
338
341
locked = false;
339
342
}
340
343
// This function is protected by a mutex, so reentrant calls from within `msg.sender.call` cannot call `withdraw` again.
341
- // The `return` statement evaluates to `true` but still evaluates the `locked = false` statement in the modifier
344
+ // `return`ステートメントは、 `true`と評価しますが、まだmodifierのステートメントでは `locked = false`と評価します。
342
345
function withdraw(uint _amount) public payable noReentrancy returns(bool) {
343
346
require(balances[msg.sender] >= _amount, "No balance to withdraw.");
344
347
@@ -414,7 +417,7 @@ contract Attack {
414
417
function attack() public payable {
415
418
timeLock.deposit{value: msg.value}();
416
419
/*
417
- if t = current lock time then we need to find x such that
420
+ 「 t = 現在のロック時間」ならば、xを以下のようにして求める必要があります。
418
421
x + t = 2**256 = 0
419
422
so x = -t
420
423
2**256 = type(uint).max + 1
@@ -466,6 +469,8 @@ DEXの価格は正確であることが多く、これは市場の均衡を取
466
469
467
470
- ** [ ABI Encoder] ( https://abi.hashex.org/ ) ** - _ Solidityコントラクトの関数とコンストラクタの引数をエンコードするための無料のオンラインサービス。_
468
471
472
+ - ** [ Aderyn] ( https://github.com/Cyfrin/aderyn ) ** - _ Solidity静的アナライザーです。抽象構文木 (AST) を横断し、疑わしい脆弱性を正確に特定し、問題を扱いやすいマークダウン形式で出力します。_
473
+
469
474
### スマートコントラクト監視ツール {#smart-contract-monitoring-tools}
470
475
471
476
- ** [ OpenZeppelin Defender Sentinels] ( https://docs.openzeppelin.com/defender/v1/sentinel ) ** - _ スマートコントラクト上のイベント、関数、トランザクションパラメータの自動的な監視と応答を行うツール。_
@@ -506,10 +511,14 @@ DEXの価格は正確であることが多く、これは市場の均衡を取
506
511
507
512
- ** [ CodeHawks] ( https://codehawks.com/ ) ** - _ 優位性のある監査プラットフォームで、セキュリティリサーチャーのスマートコントラクト監査コンペを主催している。_
508
513
509
- - ** [ Cyfrin] ( https://www. cyfrin.io/ ) ** - _ ブロックチェーンセキュリティおよびweb3の教育企業で、EVMやVYperベースのプロトコルに注力している 。_
514
+ - ** [ Cyfrin] ( https://cyfrin.io ) ** - _ Web3セキュリティの有力企業であり、製品やスマート コントラクト監査サービスを通じて暗号セキュリティを推進している 。_
510
515
511
516
- ** [ ImmuneBytes] ( https://www.immunebytes.com//smart-contract-audit/ ) ** - _ Web3セキュリティファームで、経験豊富な監査人と最高クラスのツールを通じてブロックチェーンシステムのセキュリティ監査を提供している。_
512
517
518
+ - ** [ Oxorio] ( https://oxor.io/ ) ** - _ クリプト会社およびDeFiプロジェクト向けのEVM、Solidity、ゼロ知識、クロスチェーン技術を専門としたスマートコントラクト監査およびブロックチェーンセキュリティサービス。_
519
+
520
+ - ** [ Inference] ( https://inference.ag/ ) ** - _ EVMベースのブロックチェーンのスマートコントラクト監査に特化したセキュリティ監査会社。 専門的な監査人が、潜在的な問題を特定し、実行可能なソリューションを提案してデプロイ前に修正することが可能。_
521
+
513
522
### バグ報奨プログラムプラットフォーム {#bug-bounty-platforms}
514
523
515
524
- ** [ Immunefi] ( https://immunefi.com/ ) ** - _ スマートコントラクトとDeFiプロジェクトのバグ報奨プログラムのプラットフォーム。セキュリティ研究者がコードをレビューし、脆弱性を開示し、報酬を得て、暗号資産の安全性を強化。_
@@ -518,6 +527,10 @@ DEXの価格は正確であることが多く、これは市場の均衡を取
518
527
519
528
- ** [ HackenProof] ( https://hackenproof.com/ ) ** - _ 暗号プロジェクト(DeFi、スマート コントラクト、ウォレット、CEXなど)のエキスパートのバグ報奨金プラットフォーム。セキュリティプロフェッショナルはトリアージサービスを提供し、研究者は検証済みの関連バグレポートに対して報酬を獲得。_
520
529
530
+ - ** [ Sherlock] ( https://www.sherlock.xyz/ ) ** - _ スマートコントラクトセキュリティのためのWeb3の引受人。監査人への支払いはスマートコントラクトを介して管理され、バグの関連性に応じて公平に支払われることを保証。_
531
+
532
+ - ** [ CodeHawks] ( https://www.codehawks.com/ ) ** - _ 競争力のあるバグ報奨金プラットフォームで、監査人がセキュリティコンテストやチャレンジに参加できる。また、独自のプライベート監査も(間もなく)開催する予定。_
533
+
521
534
### 既知のスマートコントラクトの脆弱性とエクスプロイトの公開 {#common-smart-contract-vulnerabilities-and-exploits}
522
535
523
536
- ** [ ConsenSys: スマートコントラクトの既知の攻撃] ( https://consensys.github.io/smart-contract-best-practices/attacks/ ) ** - _ コントラクトの最も重要な脆弱性を、ほとんどのケースでサンプルコード付きで初心者にもわかりやすく解説。_
@@ -534,6 +547,8 @@ DEXの価格は正確であることが多く、これは市場の均衡を取
534
547
535
548
- ** [ Ethernaut] ( https://ethernaut.openzeppelin.com/ ) ** - _ 各レベルでスマートコントラクトのハッキングが必要なWeb3/Solidityベースの机上演習_
536
549
550
+ - ** [ HackenProof x HackTheBox] ( https://app.hackthebox.com/tracks/HackenProof-Track ) ** - _ ファンタジーアドベンチャーを舞台にしたスマートコントラクトハッキングチャレンジ。 チャレンジに成功すれば、非公開のバグ報奨金プログラムにアクセスできる。_
551
+
537
552
### スマートコントラクトのセキュリティのベストプラクティス {#smart-contract-security-best-practices}
538
553
539
554
- ** [ ConsenSys: イーサリアムスマートコントラクトのセキュリティのベストプラクティス] ( https://consensys.github.io/smart-contract-best-practices/ ) ** - _ イーサリアムスマートコントラクトのセキュリティのガイドラインの包括的リスト。_
@@ -546,6 +561,8 @@ DEXの価格は正確であることが多く、これは市場の均衡を取
546
561
547
562
- ** [ スマートコントラクトセキュリティ検証スタンダード] ( https://github.com/securing/SCSVS ) ** - _ デベロッパー、アーキテクト、セキュリティ評価者、ベンダー向けにスマートコントラクトのセキュリティを標準化するために作成された14部構成のチェックリスト。_
548
563
564
+ - ** [ スマートコントラクトセキュリティと監査の学習] ( https://updraft.cyfrin.io/courses/security ) ** - _ 究極のスマート コントラクトセキュリティと監査コース。セキュリティのベストプラクティスのレベルアップおよびセキュリティ研究者になりたいと考えているスマートコントラクトデベロッパー向け。_
565
+
549
566
### スマートコントラクトのセキュリティに関するチュートリアル {#tutorials-on-smart-contract-security}
550
567
551
568
- [ 安全なスマートコントラクトコードの記述方法] ( /developers/tutorials/secure-development-workflow/ )
0 commit comments