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