بلاکچین 101 (جامع ترین مقاله فنی بلاکچین)

بلاکچین چیست؟حتما شما هم از اهمیت این موضوع باخبر شده‌اید و پس از کمی پرس و جو، اطلاعات کافی از اطرافیان بدست نیاورده‌اید و حالا با این مقاله "بلاکچین چیست" می‌خواهید از 0 تا 100 بلاکچین را یاد بگیرید. خیلی هم خوب! چون دقیقا جای درستی آمده‌اید. ما امروز قصد داریم به شما آموزش جامع و کاملی از موضوع بلاکچین ارائه کنیم و اصلا بگوییم این بلاکچین چیست که انقدر این روزها در دنیای دیجیتال سر و صدا به پا کرده! در ادامه توضیحات مفصلی درباره بلاکچین داریم. پس با ما باشید و از این آموزش خوب که قابل فهم و استفاده برای تمامی سنین هست استفاده کنید...بلاکچین چیست؟بلاکچین در اصل از دو کلمه بلوک (Block) و زنجیر (Chain) ساخته شده است. اما واقعا معنی این کلمات چیست؟ اصلا چرا این نام برای آن انتخاب شده است؟در حقیقت، کلمات استفاده شده در این نام مناسب‌ترین کلمات هستند. واقعا گذاشتن نام دیگری برای این تکنولوژی ممکن بود به این سادگی معنی زیبای آن را به ما منتقل نکند.تصور کنید در فضای واقعی (و نه دنیای دیجیتال) یک سری از بلوک‌ها دارید که با زنجیره‌ای به هم متصل شده‌اند. خوب، با جابجا کردن هرکدام از این بلوک‌ها بقیه آنها هم جابجا خواهند شد. یعنی همه این بلوک‌ها تاثیرپذیر از هم هستند.در دنیای دیجیتال هم به همین شکل. یعنی یک سری از بلوک‌ها داریم که با زنجیره‌هایی به هم متصل هستند و هر کدام از بلوک‌ها تاثیرپذیر از دیگری هست. اما خوب طبیعتا در فضای دیجیتال بلوک مد نظر ما یک بلوک چوبی 1 در 1 نیست! بلوک ما یک "چیز" (واقعا واژه بهتری برای توصیفش پیدا نکردم!) دیجیتال هست که از سه قسمت زیر تشکیل شده:1. اطلاعاتی درباره خرید شما از یک وب‌سایت مثلا دیجی‌کالا، به همراه زمان، تاریخ و میزان وجهی که پرداخت کردید. (ما با یک مثال قصد نشان دادن محتویات بلاکچین را داریم. یقینا استفاده بلاکچین فقط محدود به این موضوع نیست.)2. اطلاعاتی در مورد طرفین معامله. مثلا دیجی‌کالا و شما (نام شما به شکلی که هست در بلوک ذخیره نمی‌شه. بجای نام شما از یک امضای دیجیتال (Digital Signature) استفاده می‌شه که در اصل رفرنس و نشان دهنده همان نام شماست.3. اطلاعاتی برای تفکیک هر بلوک از دیگری. دقیقا مشابه من و شما که هر کدام برای خودمان نام و نام خانوادگی داریم و توسط این نام‌ها از یکدیگر تفکیک شده و مجزا هستیم. این اطلاعات که برای تفکیک استفاده می‌شه، همان کد یکتا (هش – Hash) هست. در مثالی که راجع به دیجی‌کالا زدیم، برای مثال شماره شناسه سفارش شما نشان دهنده همین کد یکتاست. یعنی اگر شما سفارش دیگه‌ای داشته باشید کد اون سفارش یک بلوک جدیدی ایجاد خواهد کرد.مثالی که گفتیم بسیار ساده بود و برای یک خرید معمولی از دیجی‌کالا بود. اما واقعیت این هست که این بلوک‌ها توانایی ذخیره سازی تا 1 مگابایت اطلاعات را دارند. یعنی به تعبیری در همان مثالی که زدیم، هر بلوک توانایی ذخیره سازی هزاران معامله را زیر یک سقف (در یک بلوک) دارد.برای درک بهتر بلاکچین ویدیو زیر را مشاهده کنید بلاکچین چگونه کار می‌کند؟زمانی که یک بلوک داده‌های جدیدی را دریافت کرده و ذخیره می‌کند، به بلاکچین اضافه می‌شود. اما چطور؟ چطور یک بلوک به زنجیره‌ای از بلوک‌ها متصل شده و به بلاکچین اضافه می‌شود؟برای یک چنین پیوندی، باید 4 اتفاق صورت بگیرد:1. یک معامله باید صورت بگیرد. (برای مثال، خرید شما از دیجی‌کالا تکمیل شود)2. معامله صورت گرفته باید تایید اعتبار شود. برای مثال، در روش خرید عادی و پرداخت آنلاین دیجی‌کالا، بانک اطلاعیه‌ای برای دیجی‌کالا فرستاده و تکمیل فرآیند پرداخت شما را تایید می‌کند. اما در دنیای بلاکچین، این تاییدها باید توسط شبکه‌ای از کامپیوترها صورت بگیرد. (برای مثال، در مورد بیتکوین بیش از 5 میلیون کامپیوتر متصل به شبکه، در سراسر دنیا در حال تایید تراکنش‌ها هستند)3. معامله باید در یک بلوک ذخیره سازی شود. زمانی که پرداخت شما تایید شد و شما چراغ سبز را گرفتید، اطلاعات میزان پرداخت و دریافت کننده و پرداخت کننده همگی در یک بلوک ذخیره سازی خواهند شد.4. بلاک مورد نظر که این اطلاعات را ذخیره کرده، باید خودش یک هش (Hash) دریافت کند. این بلاک همچنین دارای هش آخرین بلوکی است که به سیستم بلاکچین اضافه شده. بنابراین، این بلوک به ما خواهد گفت که بلوک قبل از آن کدام بلوک بوده است.وقتی که این بلوک به سیستم بلاکچین اضافه شد، به صورت عمومی به نمایش در آمده و همه قادر به مشاهده اطلاعات آن هستند. برای مثال در بلاکچین بیتکوین، شما به راحتی به اطلاعات بلوک اضافه شده از قبیل زمان (Time)، مکان (Height) و توسط چه کسی (Relayed By) دسترسی خواهید داشت.آیا بلاکچین خصوصی است؟هر کسی قادر به مشاهده محتوای بلاکچین است. همچنین، کاربران می‌توانند سیستم کامپیوتر خودشان را به شبکه بلاکچین متصل کنند و هر زمان که بلوک جدیدی اضافه می‌شود، اطلاعات آن را در سیستم خود دریافت کنند. دقیقا چیزی مشابه بروزرسانی خودکار (Live Update) شبکه‌های اجتماعی (فیسبوک، اینستاگرام و ...)هر کامپیوتری که به سیستم بلاکچین متصل است، یک کپی از بلاکچین را برای خودش خواهد داشت. در نتیجه، هزاران کپی از بلاکچین در سیستم‌های مختلف موجود خواهد بود. (برای مثال بیتکوین، میلیون‌ها کپی). بنابراین، اگر کسی (مثلا یک هکر) بخواهد تغییری در بلاکچین ایجاد کند، باید این تغییر را در کل شبکه اعمال کند. چون هر کامپیوتر متصل به شبکه یک نسخه از این بلاکچین را دارد. پس این کار به تعبیری نشدنی و غیرقابل اجراست.در مورد بلاکچین بیتکوین، با کمی تحقیق متوجه خواهید شد که شما دسترسی به اطلاعات کاربرانی که در حال معاملات هستند ندارید. تنها اطلاعاتی که در مورد آنها دارید می‌تواند نهایتا امضای دیجیتال آنها و یا نام کاربریشان باشد.برای آموزش تخصصی تر بهتر است به این دوره آموزشی سر بزنیدامنیت بلاکچینبیایید کمی در رابطه با امنیت تکنولوژی بلاکچین صحبت کنیم.بلوک‌ها در سیستم بلاکچین به صورت خطی اضافه می‌شوند. یعنی، هر زمان که یک بلوک جدید بخواهد به زنجیره بلوک‌ها اضافه شود، به آخرین بلوک متصل شده و بقیه بلاک‌ها نیز بعد از آن اضافه خواهند شد.برای مثال، اگر نگاهی به سیستم بلاکچین بیتکوین کنید، متوجه خواهید شد که هر بلوک، دارای موقعیت خاصی در زنجیره است که به آن ارتفاع (Height) می‌گویند. در فوریه 2019، ارتفاع بلوک‌ها به میزان 562000 رسید. یعنی 562000 بلوک در آن زمان به زنجیره وصل شده بود.زمانی که یک بلوک به انتهای زنجیره اضافه شد، ویرایش اطلاعات داخل بلوک‌های قبلی بسیار مشکل خواهد شد. زیرا هر بلوک دارای هش اختصاصی است که این هش توسط یک فرمول بدست می‌آید که این فرمول، یک متن (آدرس و یا نام) را به دنباله و رشته‌ای از اعداد و حروف تبدیل خواهد کرد. بنابراین، زمانی که کسی بخواهد تغییراتی در اطلاعات بلوک‌ها ایجاد کند، هش آن بلوک نیز به طور کلی تغییر خواهد کرد و این تغییرات باید در بلوک‌های مجاور هم صورت بگیرد که این پروسه تا انتهای زنجیر ادامه خواهد داشت و بنابراین هزینه محاسبات هش‌های مربوط به این بلوک‌ها به شدت بالا رفته و در نتیجه تغییر در کل زنجیره امکان پذیر نیست.تفاوت بلاکچین و بیتکوین چیست؟هدف بلاکچین ذخیره سازی اطلاعات و همچنین پخش آنهاست به صورتی که اطلاعات نباید حذف شوند. شاید این توضیح به اندازه کافی واضح نبود... بیایید از زاویه‌ای دیگر بررسی کنیم.تکنولوژی بلاکچین اولین بار توسط دو محقق به نام‌های Stuart Haber و W. Scott Stornetta در سال 1991 معرفی شد. این دو نفر قصد داشتند تا سیستمی را پیاده سازی کنند تا زمان انتشار اسناد (Document) تغییر پذیر نباشد. اینجا اولین بار سیستم بلاکچین معرفی شد. البته، در حدود 2 دهه از سیستم بلاکچین به طور رسمی و عمومی استفاده‌ای نشد تا اینکه در ژانویه سال 2009، برای اولین بار سیستم بلاکچین توسط بیتکوین استفاده شد.پروتوکل بیتکوین بر اساس سیستم بلاکچین ساخته شده است. ساتوشی ناکاموتو (Satoshi Nakamoto) نخستین کسی بود که از واحد پولی بیتکوین صحبت کرد و آن را معرفی کرد. البته هنوز مشخص نیست که ساتوشی ناکاموتو نام یک شخص است یا یک شرکت ... اما به هر حال، واقعا ایده جذاب و خوبی به میان آورد(ند).بیتکوین به عنوان یک واحد پولی دیجیتال معرفی شد که برای انتقال آن نیازی به یک واسطه (مانند بانک) نیست. هر شخصی به طور مستقیم می‌تواند بیتکوین را به کیف پول شخص دیگر انتقال داده و معاملات به همین سادگی امکان پذیر شد.بیایید کمی مختصر بررسی کنیم که بیتکوین چگونه به عنوان واحد پولی می‌تواند مورد استفاده قرار بگیرد.بر اساس یک تحقیق در سال 2017 در دانشکده اقتصاد دانشگاه کمبریج، تقریبا 5.9 میلیون نفر در سراسر دنیا از واحد پولی بیتکوین استفاده می‌کنند.بیایید فرض کنیم یکی از آن 5.9 میلیون نفر انسان خوشبخت، قصد خرید میوه دارد. اینجا جاییست که بیتکوین وارد کار شده و به کمک او خواهد آمد.زمانی که آن شخص بخواهد از پول اسکناسی استفاده کرده و پرداخت خود را انجام دهد، پشت آن واحد پولی بانک دولتی کشورش ایستاده و آن واحد پولی را حمایت و تایید می‌کند. اما در مورد بیتکوین اینطور نیست. بیتکوین توسط کسی مدیریت نمی‌شود. اما خوب، پس اگر کسی پشت این واحد پولی نیست، پس چطور با این پول دیجیتال معاملات انجام می‌دهند؟در جواب این سوال، باید موضوع ماینرها یا استخراج کننده‌های بیتکوین را مطرح کنیم.زمانی که شخصی به شخصی دیگر وجهی را بابت خرید کالا و یا خدماتی پرداخت می‌کند، کامپیوترهایی که به شبکه بیتکوین متصل هستند برای تایید این تراکنش انجام شده رقابت کرده و تلاش به حل یک مساله پیچیده ریاضی می‌کنند که به آن هش گفته می‌شود.زمانی که یک کامپیوتر، مسئله‌ای را حل کرده (که به آن Hashingیک بلوک گفته می‌شود)، محاسبات الگوریتمی این کامپیوتر همچنین تراکنش را نیز تایید خواهد کرد. اطلاعات تراکنش تکمیل شده، به صورت عمومی در بلوکی در زنجیره بلوک‌ها ذخیره شده که تغییرات در آن نیز امکان پذیر نخواهد بود.در سیستم بیتکوین، کامپیوترهایی که این مسائل را حل می‌کنند، در عوض زحمتی که بابت این کار می‌کشند مقداری بیتکوین دریافت می‌کنند که به این موضوع همان استخراج بیتکوین گفته می‌شود.با اینکه این تراکنش‌ها به صورت عمومی قابل مشاهده هستند، اما اطلاعات کاربران به صورت کامل برای عموم قابل مشاهده نیست.برای انجام معاملات، هر دو طرف که قصد انتقال پول دارند باید یک کیف پول (Wallet) داشته باشند.کیف پول‌ها از دو کلید (Key) رمزنگاری شده تشکیل شده‌اند. یک کلید عمومی (Public Key) و یک کلید خصوصی (Private Key). کلید عمومی جایی هست که مبالغ معاملات به آن آدرس ریخته شده و یا از آن برداشته می‌شود. همچنین، کلید عمومی همان امضای دیجیتال (Digital Signature) ای است که در زنجیره توسط عموم قابل مشاهده است.حتی اگر به حساب کاربری شخصی توسط کلید عمومی مبلغی واریز شود، آنها مجاز به برداشت آن مبلغ از طریق کلید خصوصی نیستند.کلید عمومی یک حساب کاربری، یک ورژن کوتاه شده از کلید خصوصی همان حساب است که توسط یک سری محاسبات پیچیده ریاضی بدست می‌آید که به دلیل پیچیدگی بالای این معادلات ریاضی، مهندسی معکوس و بدست آوردن کلید خصوصی از روی کلید عمومی تقریبا غیر ممکن است. به همین دلیل است که سیستم بلاکچین، سیستمی امن شناخته شده.برای مطالعه جامع مقاله بیتکوین چیست؟ به لینک موجود سر بزنیدچند نمونه کاربرد بلاکچینطی یک تحقیق که توسط شرکت Deloitte صورت گرفت، از 1000 شرکت مختلف در 7 کشور دنیا درباره پیاده سازی سیستم بلاکچین در کسب‌وکار آنها سوال شد. این تحقیقات نشان داد که 34 درصد از این شرکت‌ها، در حال حاضر از سیستم بلاکچین استفاده می‌کنند. 41 درصد از آنها نیز قصد راه اندازی سیستم بلاکچین را در سال پیش رو داشتند. در بین این شرکت‌ها، به صورت میانگین 40 درصد از آنها اعلام کردند که حاضرند بیش از 5 میلیون دلار در صنعت بلاکچین سرمایه‌گذاری کنند.در لیست زیر، به طور خلاصه به چند نمونه از کاربردهای بلاکچین اشاره‌ می‌کنیم:· بانکداری: یقینا بیشترین استفاده از سیستم بلاکچین، برای سیستم‌های بانکداری و نظام‌های مالی خواهد بود.· ارزهای دیجیتال: یکی دیگر از کاربردهای سیستم بلاکچین، استفاده از آن برای راه اندازی ارزهای دیجیتال است که برای نمونه، به بیتکوین اشاره کردیم.· مباحث مربوط به سلامت: بیمارستان‌ها و شرکت‌های بیمه، برای داشتن رکوردهای منظم و زمان‌بندی شده از وضعیت بیماران خود، می‌توانند از سیستم بلاکچین استفاده کنند.· املاک و ثبت اسناد: دولت‌ها برای داشتن اطلاعات دقیق از وضعیت املاک و اسناد آنها، می‌توانند از سیستم بلاکچین استفاده کنند. در این صورت، امکان جعل اسناد هم کاهش پیدا کرده و اسنادی معتبرتر در دسترس عموم خواهد بود.· قراردادهای هوشمند: فرض کنید یخچال شما متصل به سوپرمارکت محله زندگی‌تان باشد. به راحتی با تمام شدن هر خوراکی در یخچال، به صورت اتوماتیک اطلاعیه‌ای برای مغازه دار ارسال شده و از او درخواست می‌کند تا اجناس مورد نظر را برای شما بفرستد. این یک نمونه ساده از کاربردهای وسیع قراردادهای هوشمند است.· انتخابات: یکی دیگر از قابلیت‌های سیستم بلاکچین، استفاده کردن از آن در سیستم انتخاباتی کشورهاست. به صورتی که آراء با یکدیگر زنجیره‌ای را تشکیل داده که هر کدام هش مربوط به خودش را داشته باشد. در این صورت، تقلب کردن در آراء غیر ممکن خواهد شد.جمع بندیدر این مقاله سعی شد تا سیستم بلاکچین به صورت کلی معرفی شود. البته ناگفته نماند که هر کدام از این موضوعاتی که به آنها اشاره شد، می‌تواند به صورت جداگانه و مفصل در مورد آن صحبت شده و بررسی شود.قصد داشتیم موضوع "مزایا و معایب بلاکچین" را هم در این مقاله بررسی کنیم، اما به دلیل حجم بالای مطالب در این زمینه ترجیح بر آن شد تا مقاله‌ای جداگانه برای آن بنویسیم و از این مطلب که به بررسی پایه‌ای تکنولوژی بلاکچین می‌پردازد، آن را جدا کنیم.در صورتی که سوالی برایتان پیش آمده، حتما در بخش نظرات مطرح کنید.