بلاک چین (Blockchain) فناوریای میباشد که نحوهی کارکردن پایگاههای دادهی توزیع شده را از نو تعریف میکند. در این فناوری همه اطلاعات ذخیره شده روی سیستم بین همه اعضای شبکه به اشتراک گذاشته میگردد. در این مقاله شما را با فناوری بلاک چین، نحوه کار تکنولوژی بلاک چین، کدهای بلاک و توابع هش و پروتکل اجماع و ضمناً انواع بلاک چین و ویژگیهای آنها آشنا خواهیم کرد.
بلاک چین چه زمانی متولد شد؟
بد نیست از نخست شروع کنیم. از وقتی که اینترنت به وجود آمد، تلاشهای زیادی وجود داشت تا روش پرداخت آنلاین امنی تشکیل شود. این تلاشها باعث تولد طرحی ارز مجازی شد. کلید موفقیت این کار توسط «اس. هابر» و «ابلیو. اس. استورنتا» در سال ۱۹۹۱ به دنیا معرفی شد. این «کلید» بلاک چین است، طرحای هوشمندانه و کاملا ساده که برای آدمهایی غیرقابلاعتماد (و حتی گمنام!) این امکان را فراهم میکند تا بر اشتراکگذاری و ذخیرهسازی اطلاعات (مثل تراکنشهای مالی) به توافق برسند.
هدف اصلی تکنولوژی بلاک چین، فراهمکردن امضای دیجیتالی بود که امکانِ ثبت منظم اسناد دیجیتالی را فراهم میکند. این اتفاق تا سال ۲۰۰۸ نیفتاد و آن موقع فردی با اسم مستعار «ساتوشی ناکاموتو» ارزی به نام بیت کوین را توسط این تکنولوژی معرفی کرد. بیت کوین شبکهای میباشد که در آن افراد گمنام ارزی مجازی به اسم بیت کوین را معامله میکنند که در اصل وجود خارجی ندارد. از سال ۲۰۰۸ تا این ساعت هزینهی یک بیت کوین از چند سنت به بیشتر از ۸۰۰۰ دلار رسیده است.
فناوری بلاک چین چیست؟
نخست باید مشخص کرد که معماری بلاک چین اصلی چگونه است؟ بلاک چینها تا این ساعت به شکل ساختارهای دیگری درآمدهاند و دارای انواع گوناگون و ویژگیهای مختص به خودشان هستند.
بلاک چین پایگاهی توزیع شده و همتا به همتمیباشد که در آن همهی اعضا (که «نود» «Node» نامیده میشوند) از دید سلسلهمراتبی در یک سطح هستند و به دلیل وجود پروتکلی اجماعی، نیازی نیست به یکدیگر اعتماد کنند. ضمناً، هر عضو دارای یک کپی از دفتر کل بلاک چین است.
توزیعشده: یعنی اطلاعات در سرور مرکزی و محرمانه ذخیره نمیگردد. بلکه در تمام سرورها یا کامپیوترهای هر کدام از اعضا قرار میگیرد که دارای «نود» هستند. این واقعیت همراه توسط توابع «هش» (Hash)، این تکنولوژی را فوقالعاده امن میکند.
همتا به همتا: یعنی اطلاعات میان اعضا به شکل گروهی مشترک است. هر عضوی که دارای «نود» است به بقیهی «نود»ها (که آنها را «دوستهای نودی» مینامیم) وصل است و تمام اطلاعات دربارهی تراکنشهای خودش یا افراد غریبه بین آنها به شکل گروهی مشترک است. پس ازآن، آنها این تراکنشها را با ارتباطهایشان تکرار میکنند.
پروتکل اجماع: این معنی، انقلابیترین طرحی تکنولوژی بلاک چین به حساب میآید. بهروش خلاصه این روشی میباشد که براساس آن تنها بلاکهای صحیح به بلاک چین اضافه میشوند و اگر کسی بلاک اشتباهی معرفی کند، اعضای راستگو و درستکار میتوانند آن را رد کنند.
دفتر کل: هر عضو یک کپی از تاریخچهی بهروزشدهی تراکنشها را دارد. این کار سبب میگردد.بتوان بررسی کرد که آیا فردی که تلاش کرده تا تراکنشی انجام بدهد، پول انجام این کار را دارد یا نه! در نتیجه مشکل دوبار خرجکردن حل میگردد.
گمنام: افراد با یک کلید خصوصی (یک رمز عبور) و یک کلید یا کیف پول عمومی (کدی ترکیبی از حروف و اعداد که اعضای دیگر آن را میبینند) به سیستم دسترسی دارند. از این نظر همه چیز گمنام است. با این وجود، شما به عنوان یک «نود» آیپی خودتان را به دوستان نودیتان عرضه میدهید، پس شناسایی کاملا غیرممکن نیست. مسلما راههای درونی و بیرونی برای اجتناب از این کار وجود دارد.
تکنولوژی بلاک چین چگونه کار میکند و چگونه همه چیز اعتبارسنجی میگردد.
گام ۱: وقتی یک نود میخواهد تراکنشی انجام بدهد (پول بفرستد، قرارداد هوشمندی ببندد و …) این اطلاعات را به دوستان نودی خود میفرستد. هر نود نخست تعدادی از نکات پایه را بررسی میکند (به عنوان نمونه اینکه آیا پول قبلا خرج شده یا نه).
گام ۲: اگر همه چیز درست باشد، آنها اطلاعات تراکنش را در استخرشان (نوعی ثبت شخصی) ذخیره میکنند و دوباره آن را برای دوستان نودی خود میفرستند. هر نود استخر گوناگونی دارد، چون با ترتیب گوناگونی از تراکنشها باخبر میگردد.
گام ۳: در هر دور (در بیتکویین هر دور بهروش متوسط ۱۰ دقیقه طول میکشد) یک نود به شکل تصادفی انتخاب میگردد.تا بلاکی را با تراکنشهای استخر خودش اعلام کند. این پروسه کلیدی به پروتکل اجماع معروف است. به جای اینکه نودها ۱۰۰ درصد تصادفی باشند، نودهای گوناگون شانسهای گوناگونی در برندهشدن دارند.
گام ۴: بلاک جدید توسط فردی منتخب اعلام و امضا شده است. یعنی این فرد ورژن جدیدی از بلاک چین را برای دوستان نودی خود میفرستد که بلاکهای ورژن قبلی و بلاک اضافهای را که با تراکنشهای استخرش پر شده است، دربردارد. دوستان نودی آن را دریافت و تکرار میکنند.
گام ۵: اگر نودها این بلاک الحاقی را معتبر در نظر بگیرند، بلاک چین را به روزرسانی میکنند.
پس مراحل را میتوان به این صورت خلاصه کرد:
- فرستادن اطلاعات دربارهی تراکنشها.
- نودها تراکنشها را در استخرهایشان ثبت میکنند.
- انتخاب تصادفی یک نود تا بلاک بعدی را اعلام کند.
- نود بلاک جدید را به دوستان نودی خود میفرستد و آنها آن را تکرار میکنند.
- اگر بلاک جدید معتبر در نظر گرفته شود، همهی نودها کپی خود از بلاک چین را به روزرسانی میکنند.
توابع هش و اعداد هش
تمام بلاکها یک کد/عدد ترکیبی از حروف و ارقام به نام «هش» دارند. برای به دستآوردن یک «هش»، باید بر روی تمام اطلاعات بلاک (عدد، تراکنشهای داخلش، امضای تأییدکنندهاش و …) و کد دیگری به اسم نانس (Nonce) تمرکز کنید. هش نتیجهی بهکاربردن یک هش (تابعی با خواص ریاضی خاص و مفید برای امنیت چین) برای این الحاق است. هر هشی معتبر نیست، بلکه باید با عدد معینی از صفرها شروع شود (که بستگی به بلاک چین دارد). استراتژی پیداکردن هش معتبر، امتحانکردن نانسهای گوناگون است تا هش معتبری پیدا کنید. یکی از خواص هشها این میباشد که هیچ استراتژیای بهتر از امتحانکردن نانسهای تصادفی برایشان وجود ندارد.
این کار روش دستکاری را تقریبا غیرممکن میسازد. چرا که اگر شما چیزی را در بلاکی که قبلا معتبر شده (و در نتیجه هش معتبری دارد) تغییر دهید، معلوم میباشد که هش دیگر معتبر نخواهد بود. نکته این میباشد که چون هش بلاک قبلی را به عنوان یکی از تکهها برمیدارید تا هش بلاک کنونی را به دست بیاورد، اگر چیزی را در بلاکی تغییر دهید، نه تنها آن بلاک نامعتبر میگردد. بلکه کل بلاکهای دنبالهی آن هم نامعتبر میشوند! اگر کسی بخواهد چیزی را در بلاکی تغییر بدهد، باید دوباره آن بلاک و تمام بلاکهای دنبالهاش را از تمام کپیهای بلاک چین که هر نود دارد، استخراج کند.
پروتکل اجماع
پروتکل اجتماع روشی میباشد که در آن یک نود انتخاب میگردد.تا بلاک جدیدی اعلام کند. طرح این میباشد که نودهای قابل اعتماد شانس بیشتری برای برندهشدن دارند. دو پروتکل شایع عبارتند از:
اثبات کار (PoW): این شایعترین پروتکل است و پروتکلی میباشد که بیت کوین و اتریوم از آن استفاده میکنند. در اینجا، هربار که یک نود بلاکی را اعلام میکند، آن بلاک بدون هش منتشر میگردد. این کار رقابتی را بین تمام نودها شروع میکند تا این هش را پیدا کنند (درواقع تمام آنها سعی نمیکنند این کار را کنند و افرادی که این کار را میکنند ماینر«Miner» نامیده میشوند)، چون کسی که آن را پیدا کند، برندهی این بختآزمایی است و حق اعلام بلاک جدیدی دارد. ماینرها باید از مقدار زیادی قدرت محاسباتی (و پرهزینه) برای پیداکردن هش استفاده کنند و کسی که هش را مییابد. پاداش میگیرد، مسلما فقط در صورتی که بلاکی که پس از آن اعلام میکند، توسط جمع پذیرفته شود (پاداش درحال حاضر در شبکهی بیت کوین ۱۲.۵ بیت کوین است و هر سال چهار یکبار نصف میگردد..
چرا این کار از طرف بلاک چین انجام میگردد. چون اگر شما اتفاقی بلاک اشتباهی اعلام کنید، زمان و انرژی و پولتان هدر میرود و بلاک رد میگردد.و به شما هم هیچ پاداشی تعلق نمیگیرد. به این شکل، هیچ انگیزهای برای افرادی وجود ندارد تا بلاکهای مشکلدار با تراکنشهای اشتباه اعلام کنند.
به دلیل پاداش بالا، افراد زیادی در سرتاسر دنیا (که درواقع حالا به شکل گروهی کار میکنند) برای ماینینگ بلاکها (اعتبارسنجی) رقابت میکنند. سختی ماینینگ طوری تنظیم شده میباشد که یک بلاک متوسط پس از مدت زمان ایکس (در بیتکویت ۱۰ دقیقه) استخراج شود. در نتیجه، هرچه افراد بیشتری رقابت کنند، استخراج سختتر است و هشها و بلاک چین امنیت بالاتری دارند.
اثبات سهام (PoS): با اثبات سهام بلیتهای بختآزمایی به تمام نودها داده میگردد. اما هرچه پول بیشتری داشته باشید، بلیتهای بیشتری گیرتان میآید.
انواع بلاک چین
۱. عمومی
ویژگیها
- هرکسی میتواند به آن ملحق شود
- شفاف است
- نیاز به اعتماد به دیگران نیست
- امنیت براساس پروتکلهای اجماع و توابع هش
مثالها: بیت کوین / اتریوم (عموما ارز رمز محور)
۲. ائتلافی / متحد و خصوصی
ویژگیها
- انحصاری
- شرکتها شبکه را مدیریت میکنند
- امنیت براساس معماری هر بلاک چین
مثالها: آر۳، کوردا، مولتی چین، ایدبلیواف
۳. بلاک چین به عنوان سرویس
ویژگیها
- سرویسهای بلاک چین در کلود که از طریق شرکتهای پیشرو عرضه میگردد./li>
- احتیاجی به پیکربندی نیست
- نیاز به سرمایهگذاری در سختافزار نیست
مثالها: آمازون (AWS)، مایکروسافت (Azure)، آیبیام (BlueMix)
بلاک چینهای عمومی
هر کسی میتواند نرمافزار را دانلود کند، به آن بپیوندد و نود خودش را اجرا کند (یعنی عضویت با داشتن حق و حقوقی مثل هر فرد دیگر). این بلاک چینها باز و کاملا شفاف هستند. تمام تراکنشها عموما درون شبکهای مشابه انجام میشوند. معروفترین مثال بیت کوین و اتریوم هستند. تمام بلاک چینهای عمومی مشابه عموما براساس ارز رمز هستند (هم اکنون بیشتر ۷۰۰ ارز رمز وجود دارد!).
بلاک چینهای خصوصی
اگر بلاک چینی برای اهداف تکنونی میخواهید، این دسته مناسب شماست. گزینههای زیادی از نرمافزارهای متنباز برای پیشرفتدهندهها وجود دارد (هایپر لجر، کوردا، ایافدبلیو، مولتی چین، چارچوب خصوصی اتریوم و …) که میتوانید دانلود کنید و در کامپیوترتان اجرا کنید. امروزه این بلاک چینها تقریبا هر روز بهروزرسانی میشوند و اشکالات در آنها به وفور است. آیا این بدین معنمیباشد که باید از آنها دوری کنید؟ اصلا! این یعنی تاکنون موقعیتی دارید تا قبل از هر فرد دیگری کاری جدید انجام دهید و پس از آن خارج شوید. به این بلاک چینها از زاویهی جدیدی فکر شده است. اساسا، اینجا نودها توسط تعدادی سازمان اداره میشوند که بهروش کلی به هم اعتماد دارند. آنها همگی در یک سطح هستند و هیچ کدام نمیتواند بدون ثبتشدن در دفتر کل بقیه کاری انجام بدهد (به دلیل ساختار بلاک چین). کاربران توسط یک رابط وب دسترسی پیدا میکنند (به عنوان نمونه توسط یک اِیپیآی به سرورهای نود) و مجوزهای محدودی دارند. در نتیجه آنها عموما شفاف و باز نیستند.
بلاک چینهای متحد: تفاوت بین بلاک چین خصوصی و متحد تعداد سازمانهایی میباشد که شبکه را کنترل میکنند. خصوصی برای یک سازمان است و متحد راجع به بیشتر از یک سازمان.
بلاک چین به عنوان سرویس
شاید به مفاهیمی مثل نرمافزار به عنوان سرویس عادت کرده باشید که در ویکیپدیا به عنوان: «نرمافزار و روش انتقالی میباشد که بر پایهی اجاره مجوزدهی میگردد.و متمرکز میزبانی میگردد. تعریف شده است. بلاک چین به عنوان سرویس هم تعریف مشابهی دارد و فقط راجع به بلاک چین است. بعضی از شرکتهای پیشرو مثل آیبیام، مایکروسافت و آمازون سرویسهای بلاک چین را در کلود (Cloud) عرضه میدهند. بهروش کلی آنها بهجای یک سرور یا کلود خصوصی، هاستینگ شبکه و نودهای شما را در کلودهای خودشان فراهم میکنند، اما برای شما کد نمینویسند. هدف این کار امنیت بالاتر، مساعدت و گاهی محیطی دوستانهتر است.
واقعیت دربارهی شبکههای خصوصی/متحد
در جمعبندی، بد نیست نظراتی دربارهی تجارت بلاک چین مرور شود.
گزینههای متنباز برای کدنویسی بلاک چینهای خودتان، تاکنون در مراحل اولیه هستند. با اینکه این واقعیت که عدهای از پیشرفتدهندگان در سرتاسر جهان برای کارکردن روی آن خیلیهیجان زده هستند، چه بسا گزینههای قابل اعتمادتر تاکنون منتشر نشدهاند.
مهم میباشد که در نظر داشته باشید، اغلب پروژههایی که امروزه سعی میکنند، بلاک چین را پیادهسازی کنند، از این تکنولوژی به روشهای جدید استفاده نمیکنند. آنها از آن استفاده نمیکنند تا شفافیت را افزایش بدهند و هم دسترسی باز فراهم نمیکنند. اگر نودهایی که سازمانها دارند تصمیم بگیرند مجوزهای دسترسی کاربران عادی را به شدت محدود کنند، در این صورت دیگر فرقی با یک پایگاه دادهی سنتی ندارند.
ضمناً دو رویکرد مفید در رابطه با مزایای این دو شبکه برای کسبوکارها وجود دارد.
برای سازمانهایی که باهم کار میکنند، بلاک چین میتواند به عنوان پایگاه دادهای توزیعشده بهکار رود تا اطلاعات به شکلی قابل اعتماد و تحت نظارت و اعتبارسنجی همه (یا بیشتر) اعضا به اشتراک گذاشته شود. هرچه این سازمانها شبکه را شفافتر و بازتر بخواهند، بلاک چین برایشان مفیدتر است.
دومین رویکرد راجع به دیجیتالسازی است. بلاک چین هم به امضاهای دیجیتال و ثبت دیجیتال دارایی نیاز دارد و هم به آن کمک میکند. گروههایی هستند که الان بر روی این قضیه مشغول به کارند.