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
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ lang: fa
8
8
9
9
بلاک چین های عمومی، مانند اتریوم، مسئله ایمنسازی قراردادهای هوشمند را پیچیدهتر و سختتر می کند. _معمولا_ پس از استقرار کد قرارداد در شبکه، نمیتوان آن را به منظور رفع نقص های امنیتی را تغییر داد، در حالی که ردیابی دارایی های دزدیده شده از قراردادهای هوشمند بسیار دشوار است و عمدتاً به دلیل تغییر ناپذیری قابل بازیابی نیستند.
10
10
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 برای همیشه قفل شده است).
12
12
13
13
مسائل ذکر شده، توسعه دهندگان را مجبور میکند تا تلاش کنند قراردادهای هوشمند ایمن، نبوغ آمیز و منعطف بسازند. امنیت قراردادهای هوشمند یک تجارت جدی است و هر توسعهدهندهای باید آن را یاد بگیرد. این راهنما ملاحظات امنیتی برای توسعه دهندگان اتریوم را پوشش می دهد و منابعی را برای بهبود امنیت قراردادهای هوشمند بررسی می کند.
14
14
@@ -74,11 +74,11 @@ contract VendingMachine {
74
74
75
75
تغییرناپذیری کدهای در حال اجرا در [ماشین مجازی اتریوم](/developers/docs/evm/) به این معنی است که قراردادهای هوشمند سطح بالاتری از ارزیابی کیفیت را در مرحله توسعه می طلبد. تست قرارداد خود به طور گسترده و مشاهده آن برای نتایج غیرمنتظره امنیت را تا حد زیادی بهبود میبخشد و در دراز مدت از کاربران شما محافظت میکند.
76
76
77
-
روش معمول نوشتن تستهای واحد کوچک با استفاده از دادههای ساختگی است که انتظار میرود قرارداد را از کاربران دریافت کند. [آزمایش Unit](/developers/docs/smart-contracts/testing/#unit-testing) برای آزمایش عملکرد عملکردهای خاص و اطمینان از اینکه قرارداد هوشمند مطابق انتظار عمل می کند خوب است.
77
+
روش معمول نوشتن تستهای واحد کوچک با استفاده از دادههای ساختگی است که انتظار میرود قرارداد را از کاربران دریافت کند. [آزمایش Unit](/developers/docs/smart-contracts/testing/#unit-testing) برای آزمایش عملکرد عملکردهای خاص و اطمینان از اینکه قرارداد هوشمند مطابق انتظار عمل می کند خوب است.
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,13 +93,13 @@ 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/) - _</ em></li> </ul>
96
+
-[از حسابرسی خود حداکثر استفاده را ببرید](https://inference.ag/blog/2023-08-14-tips/)
97
97
98
98
#### پاداشهای باگ {#bug-bounties}
99
99
100
100
راه اندازی یک برنامه باگ بانتی روش دیگری برای اجرای بررسی کدهای خارجی است. جایزه باگ یک پاداش مالی است که به افرادی (معمولاً هکرهای کلاه سفید) که آسیبپذیریهای یک برنامه را کشف میکنند، داده میشود.
101
101
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/) بحرانی-اشکال-.
103
103
104
104
یک استراتژی مفید این است که پرداخت برنامه پاداش اشکال را متناسب با مقدار وجوه مورد نظر تنظیم کنید. این رویکرد بهعنوان «[اشکال مقیاسگذاری](https://medium.com/immunefi/a-defi-security-standard-the-scaling-bug-bounty-9b83dfdc1ba7) توصیف میشود. انگیزههای مالی برای افراد برای افشای مسئولانه آسیب پذیریها به جای سوء استفاده از آنها را ایجاد میکند.
105
105
@@ -113,7 +113,7 @@ contract VendingMachine {
113
113
114
114
- اطمینان حاصل کنید که درخواستهای pull حداقل یک بازبین مستقل دارند—اگر به تنهایی روی پروژهای کار میکنید، توسعهدهندگان دیگر و بررسیهای کد تجاری را پیدا کنید
115
115
116
-
- از یک [محیط توسعه](/developers/docs/فریم ورک/) برای آزمایش، کامپایل، استقرار قراردادهای هوشمند استفاده کنید
116
+
- از یک [محیط توسعه](/developers/docs/frameworks/) برای آزمایش، کامپایل، استقرار قراردادهای هوشمند استفاده کنید
117
117
118
118
- کد خود را از طریق ابزارهای اصلی تجزیه و تحلیل کد، مانند [Cyfrin Aaderyn](https://github.com/Cyfrin/aderyn)، Mythril و Slither اجرا کنید. در حالت ایدهآل، باید این کار را قبل از ادغام هر درخواست pull انجام دهید و تفاوتها را در خروجی مقایسه کنید
119
119
@@ -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
@@ -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 بر روی بلاکین و حسابرسی قراردادهای هوشمند برای اطمینان از امنیت ارزهای دیجیتال، ارائه خدماتی مانند توسعه قرارداد هوشمند، تست نفوذ، مشاوره بلاکچین تمرکز دارد.</ 2></p></li>
510
+
-**[HashEx](https://hashex.org/)** - _HashEx بر روی بلاکین و حسابرسی قراردادهای هوشمند برای اطمینان از امنیت ارزهای دیجیتال، ارائه خدماتی مانند توسعه قرارداد هوشمند، تست نفوذ، مشاوره بلاکچین تمرکز دارد.
511
511
512
512
-**[Code4rena](https://code4rena.com/)** - _پلتفرم حسابرسی رقابتی که کارشناسان امنیت قراردادهای هوشمند را تشویق میکند تا آسیبپذیریها را بیابند و به ایمنتر شدن Web3 کمک کنند._
513
513
@@ -519,7 +519,7 @@ contract Attack {
519
519
520
520
-**[Oxorio](https://oxor.io/)** - _ممیزی قراردادهای هوشمند و خدمات امنیتی بلاکین با تخصص در EVM، سالیدیتی، ZK، فناوری زنجیرهای متقابل برای شرکتهای رمزنگاری و پروژههای دیفای._
521
521
522
-
-**[Inference](https://inference.ag/)** - _شرکت حسابرسی امنیتی، متخصص در حسابرسی قراردادهای هوشمند برای بلاکچینهای مبتنی بر EVM. با تشکر از حسابرسان متخصص آن، آنها مشکلات بالقوه را شناسایی کرده و راهحلهای عملی را برای رفع آنها قبل از استقرار پیشنهاد میکنند._</ul>
522
+
-**[Inference](https://inference.ag/)** - _شرکت حسابرسی امنیتی، متخصص در حسابرسی قراردادهای هوشمند برای بلاکچینهای مبتنی بر EVM. با تشکر از حسابرسان متخصص آن، آنها مشکلات بالقوه را شناسایی کرده و راهحلهای عملی را برای رفع آنها قبل از استقرار پیشنهاد میکنند._
0 commit comments