You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: public/content/translations/fa/developers/docs/smart-contracts/security/index.md
+8-8Lines changed: 8 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -78,7 +78,7 @@ contract VendingMachine {
78
78
79
79
متأسفانه، تست واحد برای بهبود امنیت قراردادهای هوشمند زمانی که به صورت مجزا مورد استفاده قرار میگیرد، حداقل مؤثر است. یک تست واحد ممکن است ثابت کند که یک تابع برای دادههای ساختگی به درستی اجرا میشود، اما تستهای واحد فقط به اندازه تستهای نوشته شده مؤثر هستند. این امر تشخیص موارد لبه از دست رفته و آسیب پذیری هایی را که می تواند ایمنی قرارداد هوشمند شما را به هم بزند، دشوار می کند.
80
80
81
-
یک رویکرد بهتر ترکیب آزمایش واحد با آزمایش مبتنی بر ویژگی است که با استفاده از [تحلیل استاتیک و پویا](/developers/docs/smart-contracts/testing/#static-dynamic-analysis) انجام میشود. تجزیه و تحلیل استاتیک بر نمایشهای سطح پایین، مانند [گرافهای جریان کنترل](https://en.wikipedia.org/wiki/Control-flow_graph) و[درختهای نحو انتزاعی](https://deepsource.io/glossary/ast/) برای تجزیه و تحلیل وضعیتهای قابل دسترسی برنامه و مسیرهای اجرا. در همین حال، تکنیکهای تحلیل پویا، مانند [فازی قرارداد هوشمند](https://www.cyfrin.io/blog/smart-contract-fuzzing-and-invariants-testing-foundry)، قرارداد را اجرا میکنند. کد با مقادیر ورودی تصادفی برای شناسایی عملیاتی که ویژگیهای امنیتی را نقض میکند.
81
+
یک رویکرد بهتر ترکیب آزمایش واحد با آزمایش مبتنی بر ویژگی است که با استفاده از [تحلیل استاتیک و پویا](/developers/docs/smart-contracts/testing/#static-dynamic-analysis) انجام میشود. تجزیه و تحلیل استاتیک بر نمایشهای سطح پایین، مانند [گرافهای جریان کنترل](https://en.wikipedia.org/wiki/Control-flow_graph) و[درختهای نحو انتزاعی](https://deepsource.io/glossary/ast/) برای تجزیه و تحلیل وضعیتهای قابل دسترسی برنامه و مسیرهای اجرا. در همین حال، تکنیکهای تحلیل پویا، مانند [فازی قرارداد هوشمند](https://www.cyfrin.io/blog/smart-contract-fuzzing-and-invariants-testing-foundry)، قرارداد را اجرا میکنند. کد با مقادیر ورودی تصادفی برای شناسایی عملیاتی که ویژگیهای امنیتی را نقض میکند.
82
82
83
83
[تأیید رسمی](/developers/docs/smart-contracts/formal-verification) تکنیک دیگری برای تأیید ویژگیهای امنیتی در قراردادهای هوشمند است. برخلاف تستهای معمولی، تأیید رسمی میتواند به طور قطعی عدم وجود خطا در یک قرارداد هوشمند را ثابت کند. این امر با ایجاد یک مشخصات رسمی که ویژگیهای امنیتی مورد نظر را نشان میدهد و اثبات اینکه مدل رسمی قراردادها به این مشخصات پایبند است، به دست میآید.
84
84
@@ -93,15 +93,15 @@ contract VendingMachine {
93
93
با وجود همهی این موارد، شما نباید با حسابرسی امنیتی مانند پاسخی برای تمام مشکلات برخورد کنید. آدیت قراردادهای هوشمند هر اشکالی را شناسایی نمیکند و عمدتاً برای ارائه یک سری بررسی اضافی طراحی شده است که میتواند به شناسایی مشکلاتی که توسعه دهندگان در طول توسعه و تست اولیه از قلم انداختهاند کمک کند. همچنین باید بهترین روشها را برای کار با حسابرسان، مانند مستندسازی کد به درستی و افزودن نظرات درون خطی، دنبال کنید تا از مزایای حسابرسی قرارداد هوشمند به حداکثر برسانید.
94
94
95
95
-[نکات حسابرسی قرارداد هوشمند و amp; ترفندها](https://twitter.com/tinchoabbate/status/1400170232904400897) - _@tinchoabbate_
96
-
-[از حسابرسی خود حداکثر استفاده را ببرید](https://inference.ag/blog/2023-08-14-tips/)
96
+
-[از حسابرسی خود حداکثر استفاده را ببرید](https://inference.ag/blog/2023-08-14-tips/) - _Inference_
97
97
98
98
#### پاداشهای باگ {#bug-bounties}
99
99
100
100
راه اندازی یک برنامه باگ بانتی روش دیگری برای اجرای بررسی کدهای خارجی است. جایزه باگ یک پاداش مالی است که به افرادی (معمولاً هکرهای کلاه سفید) که آسیبپذیریهای یک برنامه را کشف میکنند، داده میشود.
101
101
102
-
هنگامی که به درستی استفاده میشود، پاداشهای باگ به اعضای جامعه هکر انگیزه میدهد تا کد شما را از نظر نقصهای مهم بررسی کنند. یک مثال واقعی "باگ پول بینهایت" است که به مهاجم اجازه میدهد مقدار نامحدودی اتر را در [آپتیمیزم](https://www.optimism.io/) ایجاد کند، یک < یک پروتکل لایه که روی اتریوم اجرا میشود. خوشبختانه، یک هکر whitehat [این نقص را کشف کرد](https://www.saurik.com/optimism.html) و به تیم اطلاع داد، [کسب پرداختی بزرگ در این فرآیند انجام شد](https://cryptoslate.com/in-ethereum-l2-optimism-2m-bounty-paid/) بحرانی-اشکال-.
102
+
هنگامی که به درستی استفاده میشود، پاداشهای باگ به اعضای جامعه هکر انگیزه میدهد تا کد شما را از نظر نقصهای مهم بررسی کنند. یک مثال واقعی "باگ پول بینهایت" است که به مهاجم اجازه میدهد مقدار نامحدودی اتر را در [آپتیمیزم](https://www.optimism.io/) ایجاد کند، یک یک پروتکل [لایه 2](/layer-2/)که روی اتریوم اجرا میشود. خوشبختانه، یک هکر whitehat [این نقص را کشف کرد](https://www.saurik.com/optimism.html) و به تیم اطلاع داد، [کسب پرداختی بزرگ در این فرآیند انجام شد](https://cryptoslate.com/critical-bug-in-ethereum-l2-optimism-2m-bounty-paid/).
103
103
104
-
یک استراتژی مفید این است که پرداخت برنامه پاداش اشکال را متناسب با مقدار وجوه مورد نظر تنظیم کنید. این رویکرد بهعنوان «[اشکال مقیاسگذاری](https://medium.com/immunefi/a-defi-security-standard-the-scaling-bug-bounty-9b83dfdc1ba7) توصیف میشود. انگیزههای مالی برای افراد برای افشای مسئولانه آسیب پذیریها به جای سوء استفاده از آنها را ایجاد میکند.
104
+
یک استراتژی مفید این است که پرداخت برنامه پاداش اشکال را متناسب با مقدار وجوه مورد نظر تنظیم کنید. این رویکرد بهعنوان «[اشکال مقیاسگذاری](https://medium.com/immunefi/a-defi-security-standard-the-scaling-bug-bounty-9b83dfdc1ba7)» توصیف میشود. انگیزههای مالی برای افراد برای افشای مسئولانه آسیب پذیریها به جای سوء استفاده از آنها را ایجاد میکند.
105
105
106
106
### 5. در هنگام توسعه قراردادهای هوشمند بهترین رویه های موجود را دنبال کنید {#follow-smart-contract-development-best-practices}
107
107
@@ -131,7 +131,7 @@ contract VendingMachine {
131
131
132
132
مکانیسمهای ارتقای قرارداد متفاوت عمل میکنند، اما «الگوی پروکسی» یکی از محبوبترین رویکردها برای ارتقای قراردادهای هوشمند است. [الگوهای پراکسی](https://www.cyfrin.io/blog/upgradeable-proxy-smart-contract-pattern) منطق اجرائی و فضای ذخیرهسازی دادهها را بین _دو_ قرارداد تقسیم میکند. قرارداد اول (که "قرارداد پراکسی" نامیده میشود) متغیرهای حالت را ذخیره میکند (به عنوان مثال، موجودی کاربر)، در حالی که قرارداد دوم (که "منطق قرارداد" نامیده میشود) کد اجرای توابع قرارداد را نگه میدارد.
133
133
134
-
حسابها با قرارداد پروکسی تعامل دارند، که همه فراخوانیهای تابع را با استفاده از [`delegatecall()`](https://docs.soliditylang.org/en/v0.8.16/introduction-to-smart-contracts.html?highlight=delegatecall#delegatecall-callcode-and-libraries)به قرارداد منطقی ارسال میکند. تماس سطح پایین. برخلاف یک تماس پیامی معمولی، `delegatecall()` تضمین میکند که کد در حال اجرا در آدرس قرارداد منطقی در متن قرارداد فراخوانی اجرا میشود. یک تماس پیامی معمولی، `delegatecall()` تضمین میکند که کد در حال اجرا در آدرس قرارداد منطقی در متن قرارداد فراخوانی اجرا میشود.
134
+
حسابها با قرارداد پروکسی تعامل دارند، که همه فراخوانیهای تابع را با استفاده از [`delegatecall()`](https://docs.soliditylang.org/en/v0.8.16/introduction-to-smart-contracts.html?highlight=delegatecall#delegatecall-callcode-and-libraries) تماس سطح پایین. برخلاف یک تماس پیامی معمولی، `delegatecall()` تضمین میکند که کد در حال اجرا در آدرس قرارداد منطقی در متن قرارداد فراخوانی اجرا میشود. یک تماس پیامی معمولی، `delegatecall()` تضمین میکند که کد در حال اجرا در آدرس قرارداد منطقی در متن قرارداد فراخوانی اجرا میشود.
135
135
136
136
واگذاری تماسها به قرارداد منطقی مستلزم ذخیره آدرس آن در فضای ذخیرهسازی قرارداد پروکسی است. از این رو، ارتقاء منطق قرارداد فقط به استقرار یک قرارداد منطقی دیگر و ذخیره آدرس جدید در قرارداد پروکسی بستگی دارد. از آنجایی که فراخوانی یا تماسهای بعدی به قرارداد پروکسی به طور خودکار به قرارداد منطقی جدید هدایت میشوند، میتوانید قرارداد را بدون تغییر واقعی کد «ارتقاء» میدادید.
137
137
@@ -459,11 +459,11 @@ contract Attack {
459
459
460
460
### ابزارهایی برای تجزیه و تحلیل قراردادهای هوشمند و تأیید صحت کد {#code-analysis-tools}
461
461
462
-
-**[ابزارها و کتابخانههای تست](/developers/docs/smart-contracts/testing/#testing-tools-and-libraries)** - مجموعه ای از ابزارها و کتابخانههای استاندارد صنعتی برای انجام تستهای واحد، تجزیه و تحلیل استاتیک و تجزیه و تحلیل پویا در قراردادهای هوشمند است
462
+
-**[ابزارها و کتابخانههای تست](/developers/docs/smart-contracts/testing/#testing-tools-and-libraries)** - _مجموعه ای از ابزارها و کتابخانههای استاندارد صنعتی برای انجام تستهای واحد، تجزیه و تحلیل استاتیک و تجزیه و تحلیل پویا در قراردادهای هوشمند است_
463
463
464
464
-**[ابزارهای تأیید رسمی](/developers/docs/smart-contracts/formal-verification/#formal-verification-tools)** - _ابزارهایی برای تأیید صحت عملکرد در قراردادهای هوشمند و بررسی متغیرها هستند._
465
465
466
-
-**[خدمات حسابرسی قراردادهای هوشمند](/developers/docs/smart-contracts/testing/#smart-contract-auditing-services)** - فهرست هایی که خدمات حسابرسی قرارداد هوشمند برای پروژههای توسعه اتریوم ارائه میکنند.
466
+
-**[خدمات حسابرسی قراردادهای هوشمند](/developers/docs/smart-contracts/testing/#smart-contract-auditing-services)** - _فهرست هایی که خدمات حسابرسی قرارداد هوشمند برای پروژههای توسعه اتریوم ارائه میکنند._
467
467
468
468
-**[پلتفرمهای پاداش باگ](/developers/docs/smart-contracts/testing/#bug-bounty-platforms)** - _پلتفرمهایی برای هماهنگی پاداشهای اشکال و پاداش افشای مسئولانه آسیبپذیریهای مهم در قراردادهای هوشمند هستند_
469
469
@@ -507,7 +507,7 @@ contract Attack {
507
507
508
508
-**[Nethermind](https://nethermind.io/smart-contracts-audits)** - _ خدمات حسابرسی سالیدیتی و کایرو، تضمین یکپارچگی قراردادهای هوشمند و ایمنی کاربران در سراسر اتریوم و استارک نت را ارائه میدهد._
509
509
510
-
-**[HashEx](https://hashex.org/)** - _HashEx بر روی بلاکین و حسابرسی قراردادهای هوشمند برای اطمینان از امنیت ارزهای دیجیتال، ارائه خدماتی مانند توسعه قرارداد هوشمند، تست نفوذ، مشاوره بلاکچین تمرکز دارد.
510
+
-**[HashEx](https://hashex.org/)** - _HashEx بر روی بلاکین و حسابرسی قراردادهای هوشمند برای اطمینان از امنیت ارزهای دیجیتال، ارائه خدماتی مانند توسعه قرارداد هوشمند، تست نفوذ، مشاوره بلاکچین تمرکز دارد._
511
511
512
512
-**[Code4rena](https://code4rena.com/)** - _پلتفرم حسابرسی رقابتی که کارشناسان امنیت قراردادهای هوشمند را تشویق میکند تا آسیبپذیریها را بیابند و به ایمنتر شدن Web3 کمک کنند._
0 commit comments