ارزهای رمزنگاریشده، ICOها، پول اینترنتی جادویی بسیار هیجانانگیز هستند و شما بهعنوان یک توسعهدهنده مشتاق میخواهید وارد این بازار پرهیجان شوید. از کجا شروع میکنید؟ خوشحالم که از این فضا هیجانزده هستید. من هم هیجانزدهام. اما احتمالا دریافتهاید که مشخص نیست از کجا شروع کنید. بلاک چین با سرعت بسیار زیادی در حال حرکت است، اما برای یادگیری آن هیچ راه مشخصی وجود ندارد. از وقتیکه من Airbnb را ترک کردم تا تماموقت در بلاک چین کار کنم، بسیاری از افراد میپرسند که چگونه میتوان بهطور تماموقت وارد فضای بلاک چین شد. این راهنمای معتبر از کوین نیک در مورد نحوه ورود به مهندسی بلاک چین و توسعه بلاک چین را مطالعه کنید.این راهنما در ۱۰ قسمت بیان شده است.
چرا باید توسعه بلاک چین را بیاموزید؟
قبل از اینکه به این سوال پاسخ دهم، اجازه دهید ابتدا نکتهای را تذکر دهم، بلاک چین در حال حاضر یک فضای بسیار ارزشمند است. این قیمتها ناپایدار هستند و قطعا اتفاقاتی در راه است. همه اینها قبلا اتفاق افتاده است و احتمالا دوباره اتفاق خواهد افتاد. اما اگر در این فضا به مدت طولانی کار کرده باشیدیاد گرفتهاید که به این قیمتها بیاعتنا باشید.
به قول امین گان سیرر (Emin Gun Sirer): «قیمتها کماهمیتترین بخش ارزهای رمزنگاریشده هستند. اینها فناوریهای مهمی هستند و قصد دارند جهان را بهصورت برگشتناپذیری تغییر دهند.»
این مطلب راهم مطالعه کنید: تکنولوژی تمرکز زدایی اتریوم چیست؟
اگر مطمئن نیستید، نمیتوانم به شما بگویم که باید وارد این کار شوید یا نه. اما میتوانم ۵ دلیل که من را متقاعد کرد تا شانس خودم را در توسعه بلاک چین امتحان کنم، به شما بگویم:
۱. توسعه بلاک چین هنوز در مراحل اولیه است
بیتکوین ۱۰ سال پیش اختراع شد، اما میزان نوآوری در آن و توسعه بلاک چین تنها در چند سال گذشته بهویژه با شروع به کار اتریوم در سال ۲۰۱۵، جنجالی شده است. بیشتر شرکتها و ایدههای جدید بر مبنای اتریوم ساخته شدهاند که هنوز بسیار نابالغ است.
حتی اگر اکنون شروع کنید، میتوانید طی چند سال واقعا به یک متخصص در سطح جهانی تبدیل شوید. اکثر مردم به مدت طولانی این کار را انجام ندادهاند و سبقت گرفتن در این مسیر، دشوار نخواهد بود. اگر الان شروع کنید شبیه کارشناسان یادگیری عمیق خواهید بود که در اواخر دهه ۲۰۰۰ شروع به مطالعه موضوع توسعه بلاک چین کردند.
۲. توسعه بلاک چین هنوز قیف استعدادی قوی ندارد
اکثر بهترین و درخشانترین دانشجویان در دانشگاهها روی یادگیری ماشین، برنامهنویسی وب یا توسعه بازی تمرکز میکنند. مطمئنا، بلاکچینها در گفتمانهای عمومی جذابتر میشوند، اما آنها هنوز هم موضوعی عجیب و خرابکارانه هستند که حرفه شما را درگیر خود خواهند کرد.
در گذشته، بلاک چین منحصرا قلمرو سایفرپانکها، پارانوئیدها و آدمهای عجیبوغریب بود. تنها در همین اواخر بود که بلاک چین تغییر کرد. فقط کافی است یک توسعهدهنده کنجکاو با فکری آزاد باشید تا ارزش زیادی را به این حوزه وارد کنید و بتوانید به توسعه بلاک چین بپردازید.
۳. بسیاری از نوآوریها در خارج از دانشگاه اتفاق میافتند
ساتوشی ناکاموتو تا آنجا که میدانیم دانشگاهی نبود. هنوز هیچ دانشگاه یا موسسهای وجود ندارد که یک بلاک چین منسجم و متمرکز را ارائه دهد. بیشتر نوآوریها در این حوزه توسط طرفداران، کارآفرینان و محققان مستقل انجام شده است. تقریبا هر چیزی که باید بدانید در گزارشهای رسمی، پست وبلاگها، کانالهای عمومی Slack و نرمافزارهای منبع باز وجود دارد. تمام چیزی که لازم است، این است که آستینهای خود را بالا بزنید و دستبهکار توسعه بلاک چین شوید.
۴. تقاضا برای استعداد بسیار فراتر از عرضه است
در این فضا توسعهدهندگان کافی حضور ندارند و آنها نمیتوانند بهاندازه کافی سریع آموزش ببینند. همه برای استخدام استعدادهای بزرگ بلاک چین در رقابت هستند و پروژهها کمبود این استعداد را احساس میکنند. بسیاری از بهترین شرکتها نمیتوانند بهاندازه کافی به افراد خود برای ماندن حقوق بپردازند، زیرا فرصتهای بسیار زیادی برای آنها وجود دارد. اگر مهارتهایی را در این زمینه بیاموزید، بهراحتی میتوانید کار پیدا کنید.
۵. ارزهای رمزنگاریشده واقعا جالب هستند
از کجا دیگر میتوانید چیزهای علمی تخیلی مانند پولهای غیرمتمرکز و محافظتشده با رمزنگاری پیدا کنید؟ اکنون این غرب وحشی است که خوبوبد را به ارمغان آورده است. این فضا میتواند از شفافیت بیشتری استفاده کند و در نهایت مقررات تنظیم خواهند شد. اما بدون شک ارزهای رمزنگاریشده یکی از خلاقانهترین عرصههایی است که در حال حاضر میتوانید در آن کار کنید.
ناوال راویکانت (Naval Ravikant) در مصاحبه اخیر خود گفت: «موفقیت کلیدی این است که به جامعه چیزهایی را ارائه دهید که میخواهد، اما نمیداند چگونه بهتنهایی در آن پیشرفت کند. مدرسه نمیتواند در این مورد به شما آموزش دهد. اگر میتوانست، قبلا این کار را میکرد.»
بنابراین چیزی را بسازید که هیچکس نمیداند چگونه بسازد. در حال حاضر، بلاکچینها کاملا جدید هستند و موارد زیادی برای درک آن باقیمانده است. اگر موفق شوید به توسعه بلاک چین بپردازید و آینده فناوری غیرمتمرکز را بسازید، دنیا به شما پاداش خیلی خوبی خواهد داد.
خب فرض کنیم شما میخواهید وارد میدان مبارزه شوید. قبل از ورود به این میدان چه چیزهایی را باید بدانید؟
پیشنیازهای توسعه بلاک چین
من توصیه میکنم قبل از اینکه عمیقتر به این موضوع بپردازید، درک خودتان را از اصول اولیه تقویت کنید. بلاکچینها در طول دههها تحقیق در زمینه علوم رایانه، رمزنگاری و اقتصاد ساخته شدهاند. ساتوشی ناکاموتو یک طغیانگر بود، اما او تاریخچه پیش از خود را خوب میدانست. برای اینکه بفهمید چرا بلاک چین موفق عمل میکند، باید بلوکهای ساختاری آن را درک کنید؛چه چیزی قبل از بلاک چین آمد و چرا این موارد موفق عمل نکردند؟
در اینجا پیشنیازهای خوبی برای آشنایی با آنها به ترتیب اهمیت آورده شده است.
توجه داشته باشید، این پیوندها تنها یک نقطه شروع برای توسعه بلاک چین هستند، احتمالا شما به بسیاری از این مباحث عمیقتر میپردازید.
علوم کامپیوتر
ساختارهای داده
شما میخواهید با خصوصیات و ضمانتهای پیچیدگی ساختارهای اصلی دادهها آشنا شوید: فهرستهای پیوند دادهشده، درختان جستجوی باینری، نقشههای هش و نمودارها (بهطور خاص، گرافهای جهتدار غیرمدور که در بلاکچینها بهصورت برجسته نشان داده میشوند). این امر کمک میکند تا آنها را از ابتدا بسازید تا درک بیشتری از نحوه کار و خصوصیات آنها داشته باشید.
رمزنگاری
رمزنگاری همنام و سنگ زیرین ارزهای رمزنگاریشده است. همه ارزهای رمزنگاریشده از رمزنگاری کلید عمومی/ شخصی بهعنوان پایهای برای هویت و تایید اعتبار استفاده میکنند. من مطالعه RSA را توصیه میکنم (یادگیری آن آسان است و نیاز به زمینه ریاضی خیلی قوی ندارد)، سپس به ECDSA نگاهی بیندازید. رمزنگاری منحنی بیضوی به ریاضیات انتزاعی بیشتری نیاز دارد؛ درک همه جزئیات مهم نیست، اما بدانید که این رمزنگاری است که در اکثر ارزهای رمزنگاریشده از جمله بیتکوین استفاده میشود.
مهمترین اصول اولیه رمزنگاری، عملکرد هش رمزنگاری است. اینها میتوانند برای ساختن طرحهای تعهد مورد استفاده قرار گیرند و بلوک ساختمانی درختان مرکل هستند. درختان مرکل، گواهی اثبات مرکل، یکی از بهینهسازیهای کلیدی که بلاکچینها برای مقیاسپذیری استفاده میکنند را فعال میکنند.
سیستمهای توزیعشده
چند کتاب خوب در مورد سیستمهای توزیعشده وجود دارد، اما این یک زمینه بسیار گسترده و دشوار برای مطالعه است. سیستمهای توزیعشده برای استدلال در مورد بلاکچینها کاملا ضروری هستند، بنابراین شما باید قبل از مواجهه با برنامهنویسی بلاک چین، زیربنای آن را بسازید.
هنگامی که دیگر در یک دستگاه واحد زندگی نمیکنید، مجبور به استدلال در مورد انسجام و اجماع هستید. شما میخواهید تفاوت میان مدلهای سازگاری خطی و نهایی را بدانید. همچنین میخواهید ضمانتهای الگوریتمهای اجماع خطاپذیر، مانند Paxos و RAFT را بیاموزید. مشکلات استدلال درباره زمان را در یک سیستم توزیعشده بدانید. ارزش موازنه بین ایمنی و زندگی را بدانید.
با استفاده از این پیشزمینه، شما میتوانید مشکلات پیرامون اجماع خطاپذیر بیزانس، نیازهای اولیه ایمنی بلاکچینهای عمومی را درک کنید. شما میخواهید در مورد PBFT، یکی از اولین الگوریتمهای مقیاسپذیر برای ارائه اجماع خطاپذیر بیزانس، بیاموزید. PBFT اساس بسیاری از الگوریتمهای اجماع بلاک چین غیر اثبات کار است. یک بار دیگر تاکید میکنم، لازم نیست جزئیات چگونگی و دلیل صحیح بودن PBFT را بفهمید، اما ایده کلی و ضمانتهای امنیتی آن را بهدست آورید.
همچنین درک روشهای سنتی توزیع بانکهای اطلاعاتی بسیار مفید است (در اصل، بلاکچینها هر چه باشد بهعنوان یک پایگاه داده هستند). در مورد پارتیشنبندی (sharding) (از جمله از طریق هش مداوم)، تکثیر رهبر-پیرو و تعهدات مبتنی بر حدنصاب بیاموزید. جداول هش توزیعشده (DHTها)، مانند Chord یا Kademlia را بررسی کنید.
شبکهسازی
تمرکززدایی بلاکچینها از بخش عمدهای از توپولوژی شبکه نظیربهنظیر آنها ناشی میشود. به همین ترتیب، بلاکچینها مستقیما نسل بعدی شبکههای P2P سابق هستند.
برای درک مدل ارتباطی بلاک چین، باید اصول اولیه شبکههای کامپیوتری را درک کنید: این یعنی درک TCP در مقابل UDP، مدل بسته، بستههای IP به چه شکل هستند و تقریبا چگونگی کارکرد مسیریابی اینترنت.
بلاکچینهای عمومی تمایل دارند پیامها را از طریق پروتکلهای شایعه با استفاده از flooding پخش کنند. یادگیری تاریخچه طراحی شبکه P2P، از Napster تا Gnutella ، BitTorrent و Tor آموزنده است. بلاکچینها جایگاه خاص خود را دارند، اما آنها به درسهای این شبکهها و نحوه طراحی آنها تکیه میکنند.
این مطلب راهم مطالعه کنید: کیف پول ارز دیجیتال چیست و به چه کار میآید؟
اقتصاد
ارزهای رمزنگاریشده ذاتا وابسته به چند رشته هستند؛ این بخشی از آن چیزی است که آنها را بسیار جذاب و رادیکال جلوه میدهد. آنها علاوه بر علوم رایانه، رمزنگاری و شبکهسازی، با اقتصاد هم کاملا درهمآمیختهاند. ارزهای رمزنگاریشده میتوانند بسیاری از ویژگیهای امنیتی را از طریق ساختارهای اقتصادی خود استخراج کنندکه غالبا آن را علم اقتصاد رمزنگاری مینامند. به همین ترتیب، علم اقتصاد برای درک ارزهای رمزنگاریشده ضروری است.
نظریه بازی
مهمترین شاخه علم اقتصاد که به ارزهای رمزنگاریشده وارد میشود، تئوری بازی، بررسی و مشوقها در میان عوامل مختلف است. لازم نیست به این مورد عمیق بپردازید، اما لازم است که ابزارهای اصلی تجزیهوتحلیل تئوری بازی را درک کنید و اینکه چگونه میتوانید از آنها برای تحلیل مشوقها در بازیهای یکباره و مکرر استفاده کنید.
دو مفهوم اصلی در مجموعه شما باید نقاط تعادل نش (Nash) و شلینگ (Schelling) باشد، زیرا در تحلیل علم اقتصاد رمزنگاری برجسته هستند.
توسعه بلاک چین
اقتصاد کلان
ارزهای رمزنگاریشده تنها پروتکل نیستند، بلکه آنها اشکال پول هستند. به همین ترتیب، این ارزها به قوانین اقتصاد کلان پاسخ میدهند (البته اگر بتوان آنها را قانون خواند). ارزهای رمزنگاریشده در معرض سیاستهای پولی مختلف هستند و طبق پیشبینی به تورم و کاهش قیمتها پاسخ میدهند. شما باید این فرآیندها و تاثیرات آنها بر هزینه، صرفهجویی و غیره را درک کنید.
مفهوم اقتصادی ارزشمند دیگر، سرعت پول است، بهخصوص که مربوط به ارزشگذاری یک ارز است.
اقتصاد خرد
ارزهای رمزنگاریشده هم بهطور گستردهای با بازارها درهم تنیده شدهاندکه به درک اقتصاد خرد نیاز دارند. شما به یک بینش قوی برای منحنیهای عرضه و تقاضا نیاز دارید. شما باید بتوانید در مورد هزینههای رقابت و فرصت استدلال کنید (آنها اغلب در استخراج ارزهای رمزنگاریشده بهکار میروند). برای بسیاری از سیستمهای توزیع سکه و علم اقتصاد رمزنگاری، نظریه حراج برجسته است.
انتظار میرود از قبل با برخی از این مباحث آشنا باشید. اگر با آنها آشنا هستید، میتوانید از این مباحث عبور کنید.
خب، اکنون شما اصول خود را مرور کردهاید، بنابراین اکنون که نظریه خود را بررسی کردهاید، اجازه دهید شروع به توسعه بلاک چین کنیم.
مبانی نظری بیتکوین
در اکتبر سال ۲۰۰۸، ساتوشی ناکاموتو یک گزارش رسمی منتشر کرد که در آن پروتکل ارز دیجیتال غیرمتمرکز را توصیف میکرد. وی این پروتکل را بیتکوین نامید.
قبل از اینکه بتوانید ایدههای بزرگ پشت پرده بلاکچینها را بفهمید، باید از بیتکوین شروع کنید و بینش اصلی ساتوشی را دریابید.
ابتدا، توصیه میکنم درک خود را در مورد گواهی اثبات کار و قانون انتخاب فورک (که بهعنوان اجماع ناکاموتو هم شناخته میشود) شکل دهید.
بسیار عالی. اکنون که شما درک خود را ایجاد کردهاید، این مقاله شرح کاملی از اجزای مهم نحوه کار بیتکوین ارائه میدهد.
ساخت بلاک چین خودتان
اکنون که درک بالایی از بلاک چین دارید، وقت آن است که بلاک چین مبتنی بر گواهی اثبات کار خودتان را بسازید و سپس به توسعه بلاک چین بپردازید. نگران نباشید، سادهتر از آن است که به نظر میرسد.
همچنین امکان پیادهسازیهای دیگر بلاک چین هم وجود دارد که به زبانهای مختلف برنامهنویسی نوشته شدهاند. ادامه دهید و بلاک چین خودتان را بسازید و طوری این کار را انجام دهید که از آن رضایت داشته باشید.
وقتی این کار را انجام دادید، باید درک خوبی از نحوه اجرای یک برنامه پرداخت ساده بر اساس بلاک چین (یعنی بیتکوین) داشته باشید. همچنین باید تا به حال پیشزمینه کافی داشته باشید که بتوانید گزارشهای رسمی اصلی بیتکوین را بخوانید و درک کنید.
برای درک اقتصاد و مکانیک استخراج بیتکوین، توصیه میکنم سخنرانی مربوط به استخراج بیتکوین را در دوره بیتکوین و ارزهای رمزنگاریشده پرینستون مشاهده کنید.
اگر این کارها را انجام داده باشید، باید بیتکوین را بهخوبی درک کنید تا یک هدربلاک (header block) بیتکوین را شرح دهید و بفهمید که هر یک از اجزای آن به چه معنی است. همچنین باید بتوانید با یک کاشف بلوک بیتکوین بازی کنید و معاملات خام بیتکوین را هدایت کنید.
این مطلب راهم مطالعه کنید: سوالات متداول درباره بیت کوین و کیف پول آن
اکنون زمان خوبی برای مطالعه تاریخچه بیتکوین و ارزهای رمزنگاریشده است.
اتریوم و برنامهنویسی هوشمند
اکنون که یک بلاک چین ایجاد کردهاید و پویایی بیتکوین را درک کردهاید، وقت آن است که به اتریوم بپردازید.
شما میدانید که چگونه بلاک چین و گواهی اثبات کار میتوانند به اجماع خطاپذیر بیزانس توزیعشده در یک شبکه نظیربهنظیر برسند. اما یک شبکه پرداخت تنها یک برنامه کاربردی است که میتوانید بر اساس چنین بلاکچینی اجرا کنید. در سال ۲۰۱۳ ویتالیک بوترین (Vitalik Buterin)، خالق اتریوم پرسید: اگر از بلاک چین برای اجرای یک کامپیوتر غیرمتمرکز استفاده کنید، چه میشود؟
در اتریوم، شما برای اجرای برنامههای خود در این دستگاه مجازی توزیعشده، به استخراجکنندهها پول میپردازید. این بدان معنی است که شما میتوانید محاسبات دلخواه را با استفاده از یک زبان برنامهنویسی کامل تورینگ (برخلاف اسکریپت بیتکوین) انجام دهید. بدیهی است که این امر شامل برنامههای مربوط به پرداخت میشود، بنابراین اتریوم یک ابرمجموعه از عملکردهای بیتکوین را فعال میکند و یک تجدید نوآوری را به وجود آورده است.
این امر ما را به سمت قراردادهای هوشمند (نام برنامههایی که با چنین ماشین مجازی اجرا میشوند) سوق میدهد. یک قرارداد هوشمند میتواند مطابق با اجرای یک برنامه، مستقیما با ارزهای رمزنگاریشده بلاک چین تعامل داشته باشد. به عبارت دیگر، شما میتوانید قراردادهای مالی بسازید که بهطور خودکار خودشان را اجرا کنند. این یک ایده خام است و انواع چیزهای آیندهگرایانه علمی تخیلی دیگر که میتوانید پس از پذیرفتن این مدل برنامهنویسی، انجام دهید.
اتریوم موج ICOها و توسعهدهندگان را که بر اساس بلاک چین ساخته شدهاند، فعال کرده است. اتریوم دومین ارز رمزنگاریشده بزرگ در پشت بیتکوین است، بیش از ۱۰ برابر توسعهدهندگان پلتفرم پرطرفدار بعدی را در اختیار دارد، اتریوم دارای قویترین تیم توسعهدهنده است، کاملترین ابزار و اکثر ICOها و پروژههای مربوط به آن را در اختیار دارد. همچنین بیشترین پشتیبانی صنعت را داردکه مسیری طولانی را پیشرو دارد. به احتمال زیاد، اگر شما در حال توسعه بلاک چین هستید، برای قراردادهای هوشمند اتریوم در حال نوشتن کد هستید. (حتی اگر اینطور نیست، درک آنچه در این فضا اتفاق میفتد ضروری است.)
ابتدا، توضیحی سطح بالا با جزئیات بیشتر در مورد اتریوم:
ایدههای اتریوم موجی از نوآوری در علم اقتصاد رمزنگاری را هم به وجود آورده است. شما با دقت ایدههای DAOها و همه رویاهای علمی تخیلی را که به آن اشاره میکنند، بررسی کنید.
خب، رویاپردازی کافی است، بیایید به این فناوری بپردازیم.
در اینجا مرور خوبی از یک مقاله زرد اتریوم و اجزای آن، توسط پرهتی کسیردی (Preethi Kasireddy) ارائه شده است. اتریوم بهجای مدل UTXO بیتکوین از یک مدل حساب کاربری استفاده میکند؛ بهزودی خواهید دید که چرا این امر نوشتن قراردادهای هوشمند را آسانتر میکند.
مانند هر فناوری، بهترین راه برای آشنایی با اتریوم ساختن چند پروژه کوچک است.
زبان برنامهنویسی غالب اتریوم، Solidity است که یک زبان جاوا اسکریپت از نوع استاتیک است. این زبانی است با عیبهای فراوان و گزینههای مختلف طراحی مشکوک و غیرقابلاعتماد. ممکن است زبانهای مستحکمتر مانند Viper جایگزین آن شوند، البته پس از آماده شدن برای تولید، اما در حال حاضر Solidity زبان بینالمللی برنامهنویسی قرارداد هوشمند است. در اصل این زبان، جاوا اسکریپت اتریوم است، بنابراین باید آن را بیاموزید (و مشکلات بالقوه آن را.)
برای اینکه اولین بار در معرض توسعه Solid قرار بگیرید، توصیه میکنم تمام آموزش CryptoZombies را انجام دهید. این یک برنامه آموزشی از نوع آکادمی کد، لذتبخش و با کیفیت بالا است که اصول برنامهنویسی Solidity را به شما آموزش میدهد.
اکنون که تمایل بیشتری به این کار پیدا کردهاید، زمان آن رسیده که بهتنهایی رشد کنید.
«سلام بر جهان» اتریوم در حال ساخت یک توکن سازگار با ERC-20 است. من این راهنما را بهعنوان اولین آموزش توصیه میکنم که در طول فرآیند، شما را راهنمایی میکند.
Remix یک ویرایشگر و کامپایلر Solidity درون مرورگر است که در اصل چرخهای آموزش توسعه اتریوم است، بنابراین توصیه میکنم تا بقیه تمرینات خود را در رمیکس انجام دهید. اما همچنین ارزش این را دارد که یک بلاک چین محلی ایجاد کنید و ابزارهای اتریوم را درک کنید. این خودآموز یک راهنمای خوب برای شما برای توسعه بلاک چین و توضیح در مورد قطعههای مربوط به آن است.
سپس، من ایجاد سیستم رأیگیری را توصیه میکنم. من آن را برنامه Todo اتریوم مینامم. کارل فلورچ (Karl Floersch) دارای یک خودآموز عالی است که در آن در مورد نحوه ساختن یک سیستم رأیگیری مطمئن و متعهد توضیح میدهد.
بسیار خوب، اکنون برای امتحانات میانترم خود: یک بازی امن پرتاب سکه بسازید، جایی که دو بازیکن میتوانند با اطمینان روی شیریاخط سکه شرطبندی کنند. اینبار بدون خودآموز، این کار را خودتان انجام دهید. به حملات احتمالی فکر کنید؛ بازیکنان چگونه میتوانند تقلب کنند؟ آیا میتوانید اطمینان حاصل کنید که آنها صادقانه بازی میکنند؟ در اینجا نکاتی وجود دارد که باید در نظر بگیرید.
امنیت قرارداد هوشمند
امنیت برای توسعه بلاک چین کاملا ضروری است. قراردادهای هوشمند به دلیل هکهای فاجعهبار، از جمله هک DAO، هک Parity Wallet و Parity Wallet hack2 روبهرو شدهاند. اگر قصد دارید قراردادهای هوشمند تولید را بنویسید، باید تحلیلهای مربوط به هر سه این هکها را بخوانید.
حقیقت این است که، درک صحیح قراردادهای هوشمند بسیار سخت است. اگرچه ابزار برنامهنویسی، این حملات را سختتر میکند، اما در نهایت همه این حملات به دلیل خطای برنامهنویسان بودهاند. بسیاری از اشکالات ظریف هم وجود دارد که از برنامهنویسی قرارداد هوشمند ناشی میشوند، مانند پیشدستی یا تولید ایمن تصادفی.
شما بهعنوان یک توسعهدهنده قرارداد هوشمند، باید با امنیت بهعنوان یک امر بسیار مهم رفتار کنید. در برنامهنویسی قرارداد هوشمند «حرکت سریع بدون تفکر» وجود ندارد. این بدان معنی است که هر کدی که جریان قابلتوجهی از پول را در اختیار دارد، باید از طریق تحلیلگران ایستا مانند Oyente یا Securify، کاملا آزمایش شده و سپس توسط یک حسابرس با تجربه هوشمند اجرا شود. همچنین باید سعی کنید به مولفههای پیش حسابرسیشده مانند قراردادهای منبع باز OpenZeppin تکیه کنید.
برای تقویت امنیت، توصیه میکنم از طریق The Ethernaut by OpenZeppelin کار کنید، بازی که در آن آسیبپذیریها را در قراردادهای هوشمند پیدا کرده و به آنها حمله میکنید. در بسیاری از آنها حملات واقعی را علیه قراردادهای هوشمند که در طبیعت اتفاق افتادهاند، تکرار میکنید.
Phil Daian هم مجموعهای عالی از چالشهای هککردن قرارداد هوشمند با نام Hack This Contract دارد.
پس از اتمام این کار، قویا توصیه میکنم که تمام بهترین تمرینهای قرارداد هوشمند، تهیهشده توسط ConsenSys را مطالعه کنید. انتظار میرود در حرفه برنامهنویسی قرارداد هوشمند خود بارهاوبارها از این سند استفاده کنید. این فهرست کتابها برای مطالعه توسط کارشناسان امنیتی هم ارزشمند است.
شروع حرکت چرخهای آموزش
اگر تاکنون این کار را کردهاید، اکنون باید آماده گذر از رمیکس باشید و از توسعه جدی Solidity استفاده کنید.
اکثر توسعهدهندگان، VSCode یا Atom را برای ویرایشگر متن توصیه میکنند، زیرا پلاگینهای Solidity مناسبی دارند. برای تعامل با یک بلاک چین محلی، از Ganache (TestRPC سابق) استفاده میکنید و از چارچوب Truffle برای آزمایشهای (مبتنی بر JS) خود و پیکربندی خط لوله ساخت خود استفاده کنید.
اکنون زمان مناسبی برای بررسی IPFS است که میتوانید بهعنوان یک نگهدارنده فایل کاملا غیرمتمرکز و با هزینه بسیار ارزانتر از بلاک چین اتریوم استفاده کنید. در اینجا توسط خالق آن، خوان بنت (Juan Benet) توضیح مختصری داده شده است:
برای تعامل با گرههای کامل اتریوم و IPFS ، Infura همان چیزی است که اکثر توسعهدهندگان توصیه میکنند. Etherscan و ETH Gas Station آمار واقعی را در شبکه اتریوم ارائه میدهند.
پس از راهاندازی کامل Web3، سعی کنید Dapp کاملی (برنامه غیرمتمرکز) را گسترش دهید. این خودآموز با استفاده از Node و Postgres برای بکاند، یک نمای کلی و کامل را ارائه میدهد و این آموزش نحوه ایجاد یک برنامه کاملا غیرمتمرکز با استفاده از IPFS بهعنوان لایه ماندگار را به شما نشان میدهد.
پروژه خودتان را بسازید
اکنون باید با بیشتر فناوریها راحت باشید، چیزی که باقیمانده این است که شروع به ساختن و عمیقتر شدن در جامعه بلاک چین و نیز توسعه بلاک چین کنید.
ابتدا شروع به ساختن پروژههای خود کنید. اگر یک ایده عالی وجود دارد که از آن هیجانزده هستید، آن را بسازید و دیگران را متقاعد کنید که آن را هک کنند! اگر هنوز ایدهای ندارید یا راحت نمیتوانید وارد این کار دشوار شوید، بسیاری از پروژههای منبع باز با کیفیت بالا وجود دارند که از مشارکت استقبال میکنند. OpenZeppelin میتواند مکان خوبی برای شروع قراردادهای هوشمند باشد.
با این وجود هنوز توصیه میکنم با پیدا کردن یک پروژه فعالانه توسعهیافته که طرفدار آن هستید، شروع کنید. وارد Slack یا Rocketchat شوید، توسعهدهندگان معمولا بهراحتی در دسترس هستند. به آنها بگویید که مایلید مشارکت کنید و برخی کارهای کوچک را تقاضا کنید (یا موارد حلنشده در Github را پیدا کنید).
توجه داشته باشید که در حالی که من روی پروتکلها و توسعه قراردادهای هوشمند تمرکز داشتهام، شرکتهای بلاک چین برای ایجاد قابلیتهای اصلی خود به توسعهدهندگان وب احتیاج دارند. این نقشها غالبا نیاز به تعامل با بلاکچینها دارند، بنابراین داشتن یک مدل ذهنی خوب از نحوه کار بلاک چین ضروری است، اما برای بسیاری از مهندسان در استارتآپهای بلاک چین، بیشتر کارهای شما در ساختن یک وب سرور پایتون یا طراحی یک react فورتاند است و تعامل با بلاک چین ممکن است بخش کوچکی از آن کار باشد. لازم نیست در زمینه توسعه قراردادهای هوشمند تخصص داشته باشید؛ در واقعیت، این تنها یک بخش از کار توسعه بلاک چین است.
گذشته از مشارکتهای منبع آزاد، تعداد زیادی هکاتون بلاک چین هم وجود دارند که مرتبا در حال ظهور هستند. بیشتر پروژهها دارای Slack عمومی رایگان هستند که میتوانید به آنها بپیوندید و یک کانال Gitter بسیار فعال برای اتریوم وجود دارد که تعداد زیادی از توسعهدهندگان در آن حضور دارند. هرچه بیشتر عمیق شوید، سرانجام گروه همتایان خود را پیدا خواهید کرد، خواه در کانال Slack، گروه Telegram یا کانال Gitter باشد. هرکجا که باشد، افراد مورد نظر خود را پیدا کنید و به یادگیری ادامه دهید.
پیمایش در جامعه بلاک چین و توسعه بلاک چین
بهترین راه برای درک واقعی جهان بلاک چین این است که خود را در آن غوطهور کنید. در مورد باهوشترین افراد بخوانید و به حرفهای آنها گوش دهید، بهخصوص چیزهایی که در گذشته نوشتهاند. این کار همیشه استراتژی من در تلاش برای یادگیری دامنه جدید بوده است و برای من سودمند بوده است.
مقدار زیادی از محتوای خوب بلاک چین در آنجا وجود دارد، اما موارد کمارزش هم کم نیستند. در اینجا رژیم اطلاعاتی که من توصیه میکنم، بیان شده است.
رسانه
سه پادکست خارقالعاده که من توصیه میکنم مصاحبههای مهندس نرمافزار Daily Blockchain هستند که در بسیاری از مباحث و ارزهای رمزنگاریشده، معرفی فنی خوبی دارند. پس از آن، Epicenter و Unchained را توصیه میکنم، شما میتوانید به عقب برگردید و به بسیاری از قسمتهای قدیمی گوش دهید. یکی دیگر از پادکستهای جالب و جذاب تکنیکی Conspiratus است. توصیه میکنم در هر یک از این موارد مشترک شوید.
چند کانال خوب یوتیوب وجود دارد (اگرچه موارد بیهوده زیادی هم در آن وجود دارند). در بنیاد اتریوم عضو شوید و نمایشهای Devcon3 را تماشا کنید. بلاک چین در برکلی بسیاری از سخنرانیهای خود را ضبط میکندکه بیشتر آنها مرور کلی و فنی عالی دارند. Decipher Media هم گفتگوها، مرور گزارشهای رسمی و آموزشها را پست میکند. جکسون پالمر یک مرور هفتگی در این زمینه دارد، این موارد جنبه فنی کمتری دارند اما کاملا بهصورت مساوی ارائه میشوند.
مطالعه آنلاین
گفتگو در مورد بلاک چین، بیشتر در دو مکان انجام میشود: Reddit و Twitter . برای Reddit، بیشتر مشترکان کیفیت بسیار پایین و همراه با نویز دارند. r/Ethereum بهطور مداوم از کیفیت مطلوبی برخوردار است. هرچند بیشتر مشترکان در درجه اول تحت نفوذ سوداگران هستند و استفاده خوبی از توجه شما نمیشود. از زیرمجموعههای مربوط به بیتکوین دوری کنید. بیتکوین بهصورت انگشتنما یکی از سمیترین انجمنها را دارد و Reddit فقط آن را بزرگنمایی میکند.
توییتر مخلوطی از همه چیز است. خوب یا بد، بیشتر افراد بلاک چین در توییتر حضور دارند. توییتر بلاک چین در ابتدا برای من پررمزوراز بود، اما در نهایت من یک شخصیتشناسی غیررسمی از افراد بلاک چین توییتر را انجام دادم. طبق تجربه من، پنج نوع شخصیت در بلاک چین وجود دارند: سازندگان، کارآفرینان، روزنامهنگاران، بازرگانان و «رهبران فکر».
از «رهبران فکر» مانند طاعون دوری کنید. کارآفرینان میتوانند خوب باشند، اگرچه بیشتر بهعنوان افراد خودبزرگپندار عمل میکنند یا در مورد پروژههای خود توییت میکنند. سرمایهگذاران بیشتر در مورد قیمتها و پروژههای غلوآمیز خود توییت میکنند، بنابراین انتخاب با شما است. روزنامهنگاران تمایل دارند درباره اخبار مهم روز توییت کنند. توصیه میکنم از این امر دور شوید، مگر اینکه به تحلیل واقعی نیاز داشته باشیدکه احتمالا نیاز نخواهید داشت. اگر یک تاجر فعال هستید ممکن است این موضوع مهم باشد، اما اگر سعی در ساختن بلاک چین دارید، بیشتر این موارد باعث حواسپرتی شما میشوند.
بیشترین توجه را به سازندگان داشته باشید. آنها افرادی هستند که در حال حاضر بیشترین اهمیت را دارند و فناوری را به جلو سوق میدهند.
چند نماینده از هر گروه انتخاب کنید (یک جستجوی عرضی راجع به این افراد انجام دهید، اگر میخواهید فید توییتر خود را پر کنید):
سازندگان
- Vitalik Buterin، اتریوم
- Zooko Wilcox ، ZCash
- Nick Szabo ، مخترع قراردادهای هوشمند
- Vlad Zamfir ، اتریوم
- Marco Santori ، Cooley LLP
- Riccardo “fluffypony” Spagni، مونرو
- Matt Liston ، Gnosis
کارآفرینان
- Balaji Srinivasan، Earn.com
- Erik Voorhees ، Shapeshift
سرمایهگذاران
- Naval Ravikant ، MetaStable
- Ari Paul ، Blocktower Capital
- Linda Xie ، Scalar Capital
- Chris Burniske ، Placeholder
روزنامهنگاران
- Tuur Demeester, ، Adamant Research
- Laura Shin ، فوربز
علاوه بر همه اینها، من توصیه میکنم میزان قرار گرفتن در معرض توییتر و Reddit را کم کنید. اگر شما یک روزنامهنگار یا یک تاجر نیستید، احتمالا نیازی به آنها نداشته باشید. اطلاعات مهم در زمانهای مختلف برای شما آشکار میشوند. چندین خلاصه خبر خوب وجود دارند که مهمترین اخبار روز/هفته را خلاصه میکنند که میتوانید در وقت خود و بدون اینکه وابسته بهجایی باشید، از آنها استفاده کنید.
من توصیه میکنم برای خلاصههای روزانه مهمترین اخبار رمزنگاری در داخل بیتکوین مشترک شوید (که البته بیشتر از تنها خود بیتکوین را پوشش میدهد). برای پروژههای توکن، Token Economy دارای گزارشهای هفتگی عالی است و Week in Ethereum خلاصه خوبی از اتفاقات متمرکز بر توسعهدهنده در اکوسیستم اتریوم دارد.
فراتر از این، شما احتمالا نیازی به نظارت بر اخبار در زمان واقعی خودش ندارید. روی ساخت یادگیری تمرکز کنید.
شما میخواهید بهترین وبلاگها را دنبال کنید. توصیه میکنم موارد زیر را دنبال کنید:
- Vitalik Buterin برای بلاک چین عالی و تجزیهوتحلیل علم اقتصاد رمزنگاری (همه پست وبلاگهای قدیمی او را هم بخوانید، Vitalik بهطور گستردهای بهعنوان یک متفکر که دیگر ظهور نخواهد کرد، در نظر گرفته میشود)
- هککردن، توزیعشده برای تجزیهوتحلیل امنیتی بلاک چین توسط محققان Cornell
- وبلاگ بینظیر Nick Szabo، با مقالههای چالشبرانگیز و انتخابی درباره نقش ارزهای رمزنگاریشده در جامعه
- Money Stuff، سندیکای بلومبرگ Matt Levine، با تجزیهوتحلیل روشنگری که به تقاطع بازارها، امور مالی و اخبار بلاک چین میپردازد.
- Vlad Zamfir برای چشماندازهای معتدل و محتاطانه درباره دولت و بلاکچینهای عمومی
- Chris Burniske برای مجموعهای از پست وبلاگهای عالی در مورد چگونگی ارزشگذاری داراییهای رمزنگاریشده
- Jameson Lopp برای پستهای فنی عالی خود از منظر مهندس نرمافزار ساخت اکوسیستم بلاک چین
- دیوار بزرگ اعداد توسط Tim Swanson، برای تجزیهوتحلیل هوشیار و پایدار از هیجان زیاد ساختارزدایی بلاک چین، بهخصوص در فضای شرکت
کتابها و دورهها
اگر میخواهید رویکرد ساختاریافتهتری برای یادگیری این مطالب داشته باشید، چند کتاب و دوره باکیفیت (و تعداد زیادی کتاب با کیفیت پایین) وجود دارد.
بهترین کتاب آموزشی برای توسعه بلاک چین ، کتاب بیتکوین و فناوریهای ارزهای رمزنگاریشده است (که البته همراه با دوره Princeton Coursera است). تنها کتابهای دیگری که در این زمینه توصیه میکنم عبارتاند از: Mastering Bitcoin توسط آندریاس آنتونوپولوس (Andreas Antonopoulos) و Mastering Ethereum استکه با همکاری کمک بنیانگذار اتریوم گاوین وود (Gavin Wood) (هر دو توسط انتشارات O’Reilly) نوشته شده و بهزودی چاپ خواهد شد. یک کتاب غیرفنی که به شما توصیه میکنم، طلای دیجیتال توسط ناتانائیل پوپر (Nathaniel Popper) است. تقریبا هر چیز دیگری که ارزش خواندن داشته باشد در وبلاگها خواهد بود، نه کتابها- این فضا آنقدر سریع پیش میرود که مهمترین چهرهها بهندرت وقت خود را برای نوشتن کتاب صرف میکنند و کتابها غالبا در زمان انتشار، منسوخشده هستند.
اگر میخواهید رویکرد ساختاریافتهتری برای یادگیری این مطالب داشته باشید، چند دوره با کیفیت بالا (و بسیاری از کلاسهای با کیفیت پایین) وجود دارد. من قبلا به چند دوره سخنرانی در رابطه با دوره Princeton Coursera (فیلمها در یوتیوب هم وجود دارند) و UC Berkelal Decal هم لینک دادهام. همچنین در مورد آکادمی Consensys برای افرادی که مایل به توسعه قرارداد هوشمند هستند، چیزهای خوبی شنیدهام.
من همچنین در حال تدریس یک سمینار ۴ هفتهای در مورد ارزهای رمزنگاریشده برای توسعهدهندگان نرمافزار در دانشکده علوم کامپیوتر برادفیلد در سانفرانسیسکو هستم. این دوره تنها در سانفرانسیسکو حضوری است و صندلیها محدود هستند، زیرا یک کلاس کوچک و به سبک سمینار است. اما اگر یک مهندس نرمافزار در سانفرانسیسکو هستید و میخواهید در مورد نظریه و تمرینهای پشت پرده ارزهای رمزنگاریشده اطلاعات بیشتری کسب کنید، ممکن است این سمینار برای شما مناسب باشد.
این مطلب راهم مطالعه کنید: تفاوت بیت کوین با بلاک چین به زبان ساده
به دستآوردن شغل
همانطور که قبلا گفتم، استارتآپهای بلاک چین بهصورت دیوانهوار در حال استخدام هستند. اگر واقعا به این مرحله رسیدهاید و حتی نیمی از کارهایی را که من پیشنهاد کردم انجام دادهاید، احتمالا در حال حاضر در این فضا موقعیت اشتغال دارید. AngelList یک گزارش عالی در مورد چگونگی یافتن کار در فضای رمزنگاری انجام داده است.
چندین موتور جستجوی خوب برای پستهای کاری مرتبط با بلاک چین وجود دارد:
- استارتآپهای رمزنگاری AngelList
- BlockchainJobz
- Ethereum Jobs
- Be in Crypto
- Blockchain Job Board
- Crypto Jobs List
- Google jobs (جستجوی بلاک چین)
- ConsenSys jobs (استودیوی سرمایهگذاری اتریوم با پروژههای بسیاری در این زمینه)
برخی از استارتآپهای خاص نویددهنده بلاک چین که میدانم در حال استخدام توسعهدهنده هستند:
- Ox
- Dharma Labs
- Civic
همچنین تعدادی از شرکتهای بزرگتر در بازار توسعهدهندگان رمزنگاری وجود دارند:
- Coinbase، همیشه استخدام میکند
- اگر میخواهید مستقیما روی ارزهای رمزنگاریشده بهصورت شرکتپسند کار کنید، Stellar و Ripple را انتخاب کنید
- Square برخی از بلاکچینها را یکپارچه کرده است، اگرچه مطمئن نیستم که آیا نیروی خارجی استخدام میکند یا نه
- IBM ، Visa یا JP Morgan، اگر میخواهید مانند گذشتهها عمل کنید
(توجه داشته باشید که این فهرست خاص شرکتها در حوزه سانفرانسیسکو است، بنابراین برای شما ممکن است متفاوت باشد. هرچند موتورهای جستجوی شغل، جهانی هستند و در هر جای دنیا که باشید میتوانید شغلی در این حوزه پیدا کنید.)
اما به نظر من، بهترین راه برای ورود به یک شرکت یافتن پروژهای است که شما را هیجانزده کند. بیشتر تیمهای بلاک چین مایل به استخدام از راه دور برای استعدادهای مناسب هستند. بسیاری از توسعهدهندگان بهراحتی در توییتر، گیتهاب یا کانالهای عمومی Slack در دسترس هستند. اگر نمونه کار خوبی داشته باشید و بتوانید ریزهکاریهای فنی را نشان دهید، اگر ابتکار عمل داشته باشید، بیشتر مردم تحت تاثیر قرار میگیرند.
و این تمام چیزی است که من به شما یاد دادم. اگر همه موارد فوق را انجام دادهاید، باید خودتان را آماده شوید و احتمالا راه طولانی پیشرو خواهید داشت.
پیچیدگی وضعیت
آنچه من به شما نشان دادهام فقط آغاز راه است. ارزهای رمزنگاریشده هنوز در مراحل ابتدایی خود قرار دارند و من واقعا معتقدم که این حوزه، سریعترین فضای در حال تحول است که میتوانید در آن کار کنید. من مطمئن هستم که این راهنما طی یک سال دیگر بهروز نخواهد بود و بسیاری از پروژههای شگفتانگیز وجود دارند که من فرصت صحبت کردن در مورد آنها را نداشتهام، اما اگر به این فضا وارد شوید، آنها را بهموقع پیدا خواهید کرد.
به کاوش ادامه دهید. بهتر شوید و به یادگیری ادامه دهید. به توسعه بلاک چین بپردازید و امیدوارم ببینم که به ما میپیوندید.
امیدواریم این مطلب برای شما مفید بوده باشد. اگر به دنبال خرید بیت کوین و سایر ارزهای دیجیتال بدون کمترین معطلی هستید، با ما در ارتباط باشید؛ زیرا این دقیقا همان کاری است که ما در «کوین نیک» برای شما انجام میدهیم. اینجا خرید و فروش انواع ارز دیجیتال، در سریعترین زمان ممکن انجام میشود و در اکثر ساعات شبانه روز، هوای شما را داریم!