توضیح Blockchain به زبان ساده - بخش اول

گردآوری و تالیف : عرفان کاکایی
تاریخ انتشار : 07 مهر 1397
دسته بندی ها : برنامه نویسی

امروزه همه درباره Bitcoin صحبت می‌کنند. نگران نباشید؛ این مقاله درباره راه‌های مختلف کسب درآمد از Bitcoin نیست. گرچه، به شما کمک خواهد کرد تا فناوری اساسی Bitcoin که باعث کار کردن آن می‌شود، و این که چگونه مفهوم Blockchain می‌تواند در دهه‌های پیش رو پر کاربرد باشد را بهتر درک کنید.

بررسی اجمالی تاریخی

۱۳ اکتبر ۲۰۰۸، یک نامه از یک شخص یا سازمان ناشناس به نام Satoshi Nakamoto منتشر شد، که روش جدیدی برای ارسال پول از فرستنده به گیرنده بدون وجود هیچ‌گونه واسطه مالی را توضیح می‌داد. این نامه، یک نام به این مفهوم داد: Bitcoin. از آن موقع، Bitcoin از نوعی مفهوم اساسی رمزنگاری (cryptography) استفاده می‌کند. این روش جدید رد و بدل کردن پول، به عنوان «رمزنگاری ارز» (cryptocurrency) دسته‌بندی شد. تنها هدف Bitcoin تراکنش‌های مالی بود، اما محققان پی بردند که این فناوری بنیادین می‌تواند برای ساخت برنامه‌های امن و بزرگ دیگر استفاده شود و انقلابی در نحوه کار سیستم فعلی باشد. «Blockchain» نامی بود که به این فناوری بنیادین داده شد. آیا کلمات فنی بیش از حدی شنیده‌اید؟ بیایید آن‌ها را ساده‌سازی کنیم.

Blockchain چیست؟ - یک آنالوژی جهانی

فرض کنید که در یک شهر زندگی می‌کنید، و این شهر یک فضای پارکینگ برای ۲۰۰ خودرو به صورت همزمان دارد. (همچنین فرض کنید که این پارکینگ تنها یک طبقه دارد) فضای پارکینگ یک دروازه اصلی دارد که قفل مانده، و فقط وقتی که یک خودرو وارد شده یا خارج می‌شود، باز می‌شود. حال بیایید این ساختمان پارکینگ را از زوایای دید مختلف تجزیه و تحلیل کنیم:

  • قیمت: از آنجایی که یک شرکت خصوصی این فضاری پارکینگ را به خصوص برای هدف پارک کردن ساخت و تمام هزینه‌های نگهداری بر عهده شرکت صاحب هستند، یک هزینه اجاره بالا برای اجازه یک فضای پارک کردن مورد نیاز است.
  • امنیت: اگر دزدها به در اصلی دسترسی پیدا کنند، به راحتی می‌توانند به خودروی شما دسترسی داشته باشند. (چرخ‌ها و سوخت را بدزدند، به ترمزها آسیب برسانند یا هر کار دیگری انجام دهند)
  • محدودیت: اگر تعداد خودروهای موجود در شهر شما از ۲۰۰ به ۳۰۰ افزایش پیدا کند چه؟ فضای پارکینگ، فضای کافی برای تمام خودروها نخواهد داشت و یک آژانس خصوصی دیگر باید یک پارکینگ دیگر بسازد.
  • قابل اعتماد: شما به شرکت پارکینگ اعتماد دارید و آن‌ها مسئولیت امنیت و قابل اعتماد بودن را می‌پذیرند.
  • متمرکز: از آنجایی که تمام خودروها در یک ساختمان هستند، می‌توانیم فرض کنیم که این یک پارکینگ متمرکز است.

حال بیایید سناریو فعلی را تغییر دهیم. فرض کنید که ۲۰۰ خانه در شهر شما وجود دارند و هر کدام از این ۲۰۰ خانه، دو گاراژ دارند. گرچه برای ساده‌سازی توضیحات، بیایید فرض کنیم که هر خانه تنها یک خودرو دارد. (تعداد تمام خودروها، تمام نقاط فضای پارکینگ بزرگ که در بالا توضیح داده شد را پر می‌کند) پس در نتیجه، یکی از دو گاراژ هر خانه خالی است. حال فرض کنید که مردم این شهر تصمیم بگیرند تا گاراژ اضافی را به هر کسی که نیاز به یک پارکینگ دارد اجاره دهند. مدل جداسازی فضای پارکینگ، مشکل ۲۰۰ خودرو یا بیشتر را (در صورتی که مردم از شهر خارج شده یا به آن وارد شوند) بدون نیاز به ساخت یک فضای پارکینگ مرکزی برای کل شهر، حل می‌کند. درست به مانند سناریو قبلی، بیایید این سناریو را نیز تجزیه و تحلیل کنیم:

  • قیمت: از آنجایی که مردم گاراژ دوم را منحصرا برای هدف اجاره نساختند، هزینه نگهداری کم خواهد بود، و هزینه اجاره فضای اضافی هم در مقایسه با فضای پارکینگ مرکزی کمتر خواهد بود.
  • امنیت: هر خودرو در یک گاراژ جداگانه قفل شده است؛ از این رو دزدها باید تمام گاراژها را باز کنند تا به خودروها دسترسی داشته باشند، و در نتیجه امنیت بیشتری وجود خواهد داشت. (امنیت در Blockchain کمی متفاوت است، اما فعلا در جهت ساده‌سازی بیایید این قضیه را به همین صورت فرض کنیم)
  • محدودیت: همانطور که تعداد خانه‌ها افزایش پیدا می‌کند، و با فرض این که هر خانه یک فضای گاراژ اضافی دارد، فضای نگهداری خودروهای بیشتر، همینطور بیشتر خواهد شد. از این رو، شبکه اجاره نشینی و اجاره دهنده هم افزایش خواهد یافت.
  • غیر قابل اعتماد: از آنجایی که هیچ مقام مرکزی‌ای این فضاهای پارکینگ توزیع شده را کنترل نمی‌کند، فرض می‌کنیم که قوانین خاصی برای اجاره دادن پارکینگ خود توسط تمام صاحب‌های شرکت کننده در اجاره‌دهی وجود خواهد داشت.
  • عدم تمرکز: همانطور که در بخش قبلی اشاره شد، این فضاهای پارکینگ در طی شهر توزیع شده‌اند، و می‌توانیم فرض کنیم که یک پارکینگ غیر متمرکز است.

آنالوژی بالا، اساس درک زیرساخت فنی واقعی Blockchain را برای شما فراهم می‌کند.

مدل پارکینگ تا مدل فنی

مدل پارکینگ، یک بررسی اجمالی از Blockchain را به زبان ساده نمایش می‌دهد. حال بیایید سعی کنیم تا کامپوننت‌های نمونه پارکینگ خود را با مدل فنی اصلی مقایسه کنیم:

  • پارکینگ بزرگ مرکزی، یک سیستم متمرکز مانند AWS، Google Cloud یا... است. (این پلتفرم‌های ابری هم در یک سطحی توزیع شده‌اند، اما در جهت ساده‌سازی فرض می‌کنیم که یک موجودیت تکی هستند.
  • خودروها، همان داده‌ها و برنامه‌ها هستند.
  • پارکینگ توزیع شده در میان خانه‌ها، یک سیستم غیر متمرکز است: Blockchain.

صبر کنید! یک مورد را جا انداختیم.

تمام سیستم‌های غیر متمرکز Blockchain نیستند! بله، Blockchain نوع خاصی از سیستم غیر متمرکز است که یک ویژگی خاص دارد. اما کدام ویژگی؟ بیایید درباره آن صحبت کنیم.

«Block»ها Blockchain را می‌سازند

بیایید به مثال پارکینگ توزیع شده خود نگاهی دیگر داشته باشیم و یک تغییر کوچک را ایجاد کنیم. فرض کنید که قفل یک گاراژ به خصوص، وقتی که یک خودرو در آن پارک شده است ایجاد می‌شود. (ما فرض می‌کنیم که یک خودروی ثابت، هر روز به یک پارکینگ ثابت می‌رود) همچنین فرض کنید که ما تمام گاراژ‌های توزیع شده را در یک ترتیب سری‌ای عددگذاری کرده‌ایم. جفت lock-key گاراژ #50، بر پایه جفت lock-key گاراژ #49، و همچنین ویژگی‌های (مانند رنگ، وزن، شماره موتور و...) خودروی پارک شده در گاراژ #50 ایجاد شده است و این روند از گاراژ #1 شروع می‌شود و تا گاراژ #200 یا حتی بیشتر ادامه دارد.

«جفت lock-key‌ هر گاراژ، به ویژگی‌های خودروی داخل گاراژ و جفت lock-key گاراژ قبلی بستگی دارد.»

از این رو، اگر یک دزد سعی کند که به گاراژ #49 وارد شود و ویژگی‌های خودرو، بر فرض رنگ یا شماره ثبت آن را تغییر دهد، ویژگی خودروی گاراژ #49 تغییر خواهد کرد، که یعنی یک جفت lock-key جدید برای گاراژ #49 ایجاد خواهد شد و از آنجایی که جفت lock-key گاراژ #50 به جفت lock-key گاراژ #49 وابسته است، جفت lock-key گاراژ #50 هم تغییر خواهد کرد و همین روند برای گاراژهای بعدی هم ادامه دارد.

حال بیایید یک مسئله نهایی را نیز فرض کنیم. محاسبه یک جفت lock-key نیازمند منابع کامپیوتری زیادی است، که یعنی اگر یک دزد یکی از ویژگی‌های خودرو در یک گاراژ را تغییر دهد و مجبور باشیم که این این جفت‌ها را مجددا محاسبه کنیم، محاسبه مجدد تمام جفت‌ها عملا غیر ممکن خواهد بود.

اگر یک جفت lock-key تغییر کند، چه اتفاقی می‌افتد؟

آیا به یاد دارید که گفتیم صاحبان گاراژها به برخی قوانین پایبند هستند؟ یکی از این قوانین، این است که به دنبال یک گاراژ معتبر بگردیم. اگر بتوانید جفت lock-key یک گاراژ را اعتبارسنجی کنید، این گاراژ معتبر است و اگر جفت lock-key تغییر کند، جفت lock-key‌ تمام گاراژهای بعد از آن هم غیر معتبر خواهند شد؛ زیرا هر جفت به جفت قبلی خود بستگی دارد. (فرایند اعتبارسنجی یک جفت lock-key برای یک گاراژ مشخص، در مقایسه با ساختن یک جفت lock-key برای آن بسیار سریع‌تر است)

وابستگی یک جفت به جفت قبلی، آن را تبدیل به یک زنجیره (chain) گاراژ‌ می‌کند و در دنیای فنی، این گاراژها «block» نام دارند؛ و از این رو نام «Blockchain» را به خود می‌گیرند.

Blockهای موجود در Blockchain، درست به مانند جفت‌های lock-key در مثال ما، با استفاده از hashها به بلوک بعدی متصل شده‌اند. مشابه مثال گاراژ، اگر داده‌های موجود در یک بلوک تغییر یابد، hashها باید برای تمام بلوک‌های بعدی مجددا محاسبه شوند و از آنجایی که محاسبه hash یک عملیات متمرکز بر روی منابع است، انجام این کار عملا غیر ممکن می‌شود و شبکه مورد نظر، Blockهای غیر معتبر را رد می‌کند. محاسبه hash، در واقع «Mining» نام دارد و در قسمت بعدی این مقاله، درباره آن بیشتر صحبت خواهیم کرد.

بلوک‌ها چگونه از تغییرات بهبود پیدا می‌کنند؟

تمام کامپیوترهای موجود در شبکه Blockchain، یک کپی از Blockchain کامل را نگه می‌دارند. پس اگر یک Block یا یک زنجیره کامل در یک یا چند کامپیوتر تغییر داده شود، کل شبکه سعی می‌کند تا آن را با کپی خود از زنجیره کامل مقایسه کند.

اگر اکثریت زنجیره (یا کامپیوترها) بر روی شبکه پی ببرند که این زنجیره غیر معتبر است، زنجیره تغییر داده شده با زنجیره معتبر از زنجیره‌های دیگر جایگزین می‌شود. این باعث می‌شود که Blockchain در مقابل ۵۱ درصد حملات مقاوم باشد. به زبان ساده، اگر ۵۰ درصد زنجیره‌ها بر روی شبکه مخرب باشند، (یا بر فرض یک زنجیره تغییر داده شده داشته باشند) کل شبکه می‌تواند در خطر باشد.

نتیجه گیری

این یک حجم بزرگ از اطلاعات برای درک بود. در اینجا بخش اول راهنما به پایان می‌رسد، که یک اساس پایه درباره Blockchain را برای شما فراهم کرد. در قسمت بعدی این سری درباره اتروم، Smart Contractها و Mining صحبت خواهیم کرد.

منبع

مقالات پیشنهادی

توضیح Blockchain به زبان ساده - بخش دوم

در این مقاله، مثال گاراژ‌های پارکینگ که در بخش اول نمایش داده شد را ادامه خواهیم داد، تا مفهوم رمزنگاری ارز، Mining و Smart Contractها را توضیح دهیم

Laravel-Excel - تبدیل کردن ساده اطلاعات مدل به اکسل

امروز من می خوام به طور خلاصه بررسی اجمالی در مورد پکیج Laravel-Excel داشته باشم . به نظرم احتیاج به این نیست که در مورد این مطلب توضیح خاصی بدم چون ش...

چرا لاراول بهترین فریمورک 2017 است ؟

با تعداد زیاد فریمورک های موجود برای PHP این میتونه گیج‌کننده باشه که بهترین رو انتخاب کنید, مخصوصاً وقتی که بخواید یک اپلیکیشن وب فوق‌العاده برای کسب...

بهینه سازی تصاویر در لاراول

بهینه سازی تصاویر میتونه به شدت کارایی وب سایت رو بالا ببره, و این یکی از معمول ترین چالش های توسعه دهندگان هست. گاهی تصاویر میتونند تا 50 درصد یا حتی...