Skip to content

Commit ad2d5e2

Browse files
committed
fix markdown
1 parent 3e33b19 commit ad2d5e2

File tree

2 files changed

+13
-16
lines changed
  • public/content/translations/fa

2 files changed

+13
-16
lines changed

public/content/translations/fa/developers/docs/smart-contracts/security/index.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ lang: fa
88

99
بلاک چین های عمومی، مانند اتریوم، مسئله ایمن‌سازی قراردادهای هوشمند را پیچیده‌تر و سخت‌تر می کند. _معمولا_ پس از استقرار کد قرارداد در شبکه، نمی‌توان آن را به منظور رفع نقص های امنیتی را تغییر داد، در حالی که ردیابی دارایی های دزدیده شده از قراردادهای هوشمند بسیار دشوار است و عمدتاً به دلیل تغییر ناپذیری قابل بازیابی نیستند.
1010

11-
اگرچه اعداد و ارقام متفاوت است، تخمین زده می شود که کل ارزش سرقت شده یا از دست رفته به دلیل نقص امنیتی در قراردادهای هوشمند به راحتی بیش از یک میلیارد دلار است. این شامل حوادث پرمخاطب، مانند [هک DAO](https://hackingdistributed.com/2016/06/18/analysis-of-the-dao-exploit/) (3.6M اتریوم دزدیده شده، به ارزش بیش از 1 میلیارد دلار در قیمت های امروزی)، [هک کیف پول چند علامتی Parity ](https://www.coindesk.com/30-million-ether-reported-stolen-parity-wallet-breach) (30 میلیون دلار از دست هکرها) و [ مشکل کیف پول منجمد شده](https://www.theguardian.com/technology/2017/nov/08/cryptocurrency-300m-dollars-stolen-bug-ether) (بیش از 300 میلیون دلار ETH برای همیشه قفل شده است).
11+
اگرچه اعداد و ارقام متفاوت است، تخمین زده می شود که کل ارزش سرقت شده یا از دست رفته به دلیل نقص امنیتی در قراردادهای هوشمند به راحتی بیش از یک میلیارد دلار است. این شامل حوادث پرمخاطب، مانند [هک DAO](https://hackingdistributed.com/2016/06/18/analysis-of-the-dao-exploit/) (3.6M اتریوم دزدیده شده، به ارزش بیش از 1 میلیارد دلار در قیمت های امروزی)، [هک کیف پول چند علامتی Parity](https://www.coindesk.com/30-million-ether-reported-stolen-parity-wallet-breach) (30 میلیون دلار از دست هکرها) و [ مشکل کیف پول منجمد شده](https://www.theguardian.com/technology/2017/nov/08/cryptocurrency-300m-dollars-stolen-bug-ether) (بیش از 300 میلیون دلار ETH برای همیشه قفل شده است).
1212

1313
مسائل ذکر شده، توسعه دهندگان را مجبور می‌کند تا تلاش کنند قراردادهای هوشمند ایمن، نبوغ آمیز و منعطف بسازند. امنیت قراردادهای هوشمند یک تجارت جدی است و هر توسعه‌دهنده‌ای باید آن را یاد بگیرد. این راهنما ملاحظات امنیتی برای توسعه دهندگان اتریوم را پوشش می دهد و منابعی را برای بهبود امنیت قراردادهای هوشمند بررسی می کند.
1414

@@ -74,11 +74,11 @@ contract VendingMachine {
7474

7575
تغییرناپذیری کدهای در حال اجرا در [ماشین مجازی اتریوم](/developers/docs/evm/) به این معنی است که قراردادهای هوشمند سطح بالاتری از ارزیابی کیفیت را در مرحله توسعه می طلبد. تست قرارداد خود به طور گسترده و مشاهده آن برای نتایج غیرمنتظره امنیت را تا حد زیادی بهبود می‌بخشد و در دراز مدت از کاربران شما محافظت می‌کند.
7676

77-
روش معمول نوشتن تست‌های واحد کوچک با استفاده از داده‌های ساختگی است که انتظار می‌رود قرارداد را از کاربران دریافت کند. [آزمایش Unit ](/developers/docs/smart-contracts/testing/#unit-testing) برای آزمایش عملکرد عملکردهای خاص و اطمینان از اینکه قرارداد هوشمند مطابق انتظار عمل می کند خوب است.
77+
روش معمول نوشتن تست‌های واحد کوچک با استفاده از داده‌های ساختگی است که انتظار می‌رود قرارداد را از کاربران دریافت کند. [آزمایش Unit](/developers/docs/smart-contracts/testing/#unit-testing) برای آزمایش عملکرد عملکردهای خاص و اطمینان از اینکه قرارداد هوشمند مطابق انتظار عمل می کند خوب است.
7878

7979
متأسفانه، تست واحد برای بهبود امنیت قراردادهای هوشمند زمانی که به صورت مجزا مورد استفاده قرار می‌گیرد، حداقل مؤثر است. یک تست واحد ممکن است ثابت کند که یک تابع برای داده‌های ساختگی به درستی اجرا می‌شود، اما تست‌های واحد فقط به اندازه تست‌های نوشته شده مؤثر هستند. این امر تشخیص موارد لبه از دست رفته و آسیب پذیری هایی را که می تواند ایمنی قرارداد هوشمند شما را به هم بزند، دشوار می کند.
8080

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)، قرارداد را اجرا می‌کنند. کد با مقادیر ورودی تصادفی برای شناسایی عملیاتی که ویژگی‌های امنیتی را نقض می‌کند.
8282

8383
[تأیید رسمی](/developers/docs/smart-contracts/formal-verification) تکنیک دیگری برای تأیید ویژگی‌های امنیتی در قراردادهای هوشمند است. برخلاف تست‌های معمولی، تأیید رسمی می‌تواند به طور قطعی عدم وجود خطا در یک قرارداد هوشمند را ثابت کند. این امر با ایجاد یک مشخصات رسمی که ویژگی‌های امنیتی مورد نظر را نشان می‌دهد و اثبات اینکه مدل رسمی قراردادها به این مشخصات پایبند است، به دست می‌آید.
8484

@@ -93,13 +93,13 @@ contract VendingMachine {
9393
با وجود همه‌ی این موارد، شما نباید با حسابرسی امنیتی مانند پاسخی برای تمام مشکلات برخورد کنید. آدیت قراردادهای هوشمند هر اشکالی را شناسایی نمی‌کند و عمدتاً برای ارائه یک سری بررسی اضافی طراحی شده است که می‌تواند به شناسایی مشکلاتی که توسعه دهندگان در طول توسعه و تست اولیه از قلم انداخته‌اند کمک کند. همچنین باید بهترین روش‌ها را برای کار با حسابرسان، مانند مستندسازی کد به درستی و افزودن نظرات درون خطی، دنبال کنید تا از مزایای حسابرسی قرارداد هوشمند به حداکثر برسانید.
9494

9595
- [نکات حسابرسی قرارداد هوشمند و amp; ترفندها](https://twitter.com/tinchoabbate/status/1400170232904400897) - _@tinchoabbate_
96-
- [از حسابرسی خود حداکثر استفاده را ببرید](https://inference.ag/blog/2023-08-14-tips/) - _</ em></li> </ul>
96+
- [از حسابرسی خود حداکثر استفاده را ببرید](https://inference.ag/blog/2023-08-14-tips/)
9797

9898
#### پاداش‌های باگ {#bug-bounties}
9999

100100
راه اندازی یک برنامه باگ بانتی روش دیگری برای اجرای بررسی کدهای خار‌جی است. جایزه باگ یک پاداش مالی است که به افرادی (معمولاً هکرهای کلاه سفید) که آسیب‌پذیری‌های یک برنامه را کشف می‌کنند، داده می‌شود.
101101

102-
هنگامی که به درستی استفاده می‌شود، پاداش‌های باگ به اعضای جامعه هکر انگیزه می‌دهد تا کد شما را از نظر نقص‌های مهم بررسی کنند. یک مثال واقعی "باگ پول بی‌نهایت" است که به مهاجم اجازه می‌دهد مقدار نامحدودی اتر را در [آپتیمیزم](https://www.optimism.io/) ایجاد کند، یک < یک پروتکل href="/layer-2/">لایه 2</a> که روی اتریوم اجرا می‌شود. خوشبختانه، یک هکر whitehat [این نقص را کشف کرد](https://www.saurik.com/optimism.html) و به تیم اطلاع داد، [کسب پرداختی بزرگ در این فرآیند انجام شد](https://cryptoslate.com/ بحرانی-اشکال-in-ethereum-l2-optimism-2m-bounty-paid/).
102+
هنگامی که به درستی استفاده می‌شود، پاداش‌های باگ به اعضای جامعه هکر انگیزه می‌دهد تا کد شما را از نظر نقص‌های مهم بررسی کنند. یک مثال واقعی "باگ پول بی‌نهایت" است که به مهاجم اجازه می‌دهد مقدار نامحدودی اتر را در [آپتیمیزم](https://www.optimism.io/) ایجاد کند، یک < یک پروتکل href="/layer-2/">لایه 2</a> که روی اتریوم اجرا می‌شود. خوشبختانه، یک هکر whitehat [این نقص را کشف کرد](https://www.saurik.com/optimism.html) و به تیم اطلاع داد، [کسب پرداختی بزرگ در این فرآیند انجام شد](https://cryptoslate.com/in-ethereum-l2-optimism-2m-bounty-paid/) بحرانی-اشکال-.
103103

104104
یک استراتژی مفید این است که پرداخت برنامه پاداش اشکال را متناسب با مقدار وجوه مورد نظر تنظیم کنید. این رویکرد به‌عنوان «[اشکال مقیاس‌گذاری](https://medium.com/immunefi/a-defi-security-standard-the-scaling-bug-bounty-9b83dfdc1ba7) توصیف می‌شود. انگیزه‌های مالی برای افراد برای افشای مسئولانه آسیب پذیری‌ها به جای سوء استفاده از آنها را ایجاد می‌کند.
105105

@@ -113,7 +113,7 @@ contract VendingMachine {
113113

114114
- اطمینان حاصل کنید که درخواست‌های pull حداقل یک بازبین مستقل دارند—اگر به تنهایی روی پروژه‌ای کار می‌کنید، توسعه‌دهندگان دیگر و بررسی‌های کد تجاری را پیدا کنید
115115

116-
- از یک [محیط توسعه](/developers/docs/فریم ورک/) برای آزمایش، کامپایل، استقرار قراردادهای هوشمند استفاده کنید
116+
- از یک [محیط توسعه](/developers/docs/frameworks/) برای آزمایش، کامپایل، استقرار قراردادهای هوشمند استفاده کنید
117117

118118
- کد خود را از طریق ابزارهای اصلی تجزیه و تحلیل کد، مانند [Cyfrin Aaderyn](https://github.com/Cyfrin/aderyn)، Mythril و Slither اجرا کنید. در حالت ایده‌آل، باید این کار را قبل از ادغام هر درخواست pull انجام دهید و تفاوت‌ها را در خروجی مقایسه کنید
119119

@@ -131,7 +131,7 @@ contract VendingMachine {
131131

132132
مکانیسم‌های ارتقای قرارداد متفاوت عمل می‌کنند، اما «الگوی پروکسی» یکی از محبوب‌ترین رویکردها برای ارتقای قراردادهای هوشمند است. [الگوهای پراکسی](https://www.cyfrin.io/blog/upgradeable-proxy-smart-contract-pattern) منطق اجرائی و فضای ذخیره‌سازی داده‌ها را بین _دو_ قرارداد تقسیم می‌کند. قرارداد اول (که "قرارداد پراکسی" نامیده می‌شود) متغیرهای حالت را ذخیره می‌کند (به عنوان مثال، موجودی کاربر)، در حالی که قرارداد دوم (که "منطق قرارداد" نامیده می‌شود) کد اجرای توابع قرارداد را نگه می‌دارد.
133133

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()` تضمین می‌کند که کد در حال اجرا در آدرس قرارداد منطقی در متن قرارداد فراخوانی اجرا می‌شود.
135135

136136
واگذاری تماس‌ها به قرارداد منطقی مستلزم ذخیره آدرس آن در فضای ذخیره‌سازی قرارداد پروکسی است. از این رو، ارتقاء منطق قرارداد فقط به استقرار یک قرارداد منطقی دیگر و ذخیره آدرس جدید در قرارداد پروکسی بستگی دارد. از آنجایی که فراخوانی یا تماس‌های بعدی به قرارداد پروکسی به طور خودکار به قرارداد منطقی جدید هدایت می‌شوند، می‌توانید قرارداد را بدون تغییر واقعی کد «ارتقاء» می‌دادید.
137137

@@ -507,7 +507,7 @@ contract Attack {
507507

508508
- **[Nethermind](https://nethermind.io/smart-contracts-audits)** - _ خدمات حسابرسی سالیدیتی و کایرو، تضمین یکپارچگی قراردادهای هوشمند و ایمنی کاربران در سراسر اتریوم و استارک نت را ارائه می‌دهد._
509509

510-
- **[HashEx](https://hashex.org/)** - _HashEx بر روی بلاکین و حسابرسی قراردادهای هوشمند برای اطمینان از امنیت ارزهای دیجیتال، ارائه خدماتی مانند توسعه قرارداد هوشمند، تست نفوذ، مشاوره بلاکچین تمرکز دارد.</ 2></p></li>
510+
- **[HashEx](https://hashex.org/)** - _HashEx بر روی بلاکین و حسابرسی قراردادهای هوشمند برای اطمینان از امنیت ارزهای دیجیتال، ارائه خدماتی مانند توسعه قرارداد هوشمند، تست نفوذ، مشاوره بلاکچین تمرکز دارد.
511511

512512
- **[Code4rena](https://code4rena.com/)** - _پلتفرم حسابرسی رقابتی که کارشناسان امنیت قراردادهای هوشمند را تشویق می‌کند تا آسیب‌پذیری‌ها را بیابند و به ایمن‌تر شدن Web3 کمک کنند._
513513

@@ -519,7 +519,7 @@ contract Attack {
519519

520520
- **[Oxorio](https://oxor.io/)** - _ممیزی قراردادهای هوشمند و خدمات امنیتی بلاکین با تخصص در EVM، سالیدیتی، ZK، فناوری زنجیره‌ای متقابل برای شرکت‌های رمزنگاری و پروژه‌های دیفای._
521521

522-
- **[Inference](https://inference.ag/)** - _شرکت حسابرسی امنیتی، متخصص در حسابرسی قراردادهای هوشمند برای بلاکچین‌های مبتنی بر EVM. با تشکر از حسابرسان متخصص آن، آنها مشکلات بالقوه را شناسایی کرده و راه‌حل‌های عملی را برای رفع آنها قبل از استقرار پیشنهاد می‌کنند._</ul>
522+
- **[Inference](https://inference.ag/)** - _شرکت حسابرسی امنیتی، متخصص در حسابرسی قراردادهای هوشمند برای بلاکچین‌های مبتنی بر EVM. با تشکر از حسابرسان متخصص آن، آنها مشکلات بالقوه را شناسایی کرده و راه‌حل‌های عملی را برای رفع آنها قبل از استقرار پیشنهاد می‌کنند._
523523

524524
### پلتفرم‌های باگ‌بانتی {#bug-bounty-platforms}
525525

0 commit comments

Comments
 (0)