یک بلاکچین (blockchain) فهرستی رشد یابنده از ثبتها (records: به کوچکترین واحد ثبت اطلاعات در بانکهای داده، رکورد یا ردیف گفته میشود) است که به آنها بلاک (قطعه) میگویند و به وسیله رمزگذاری (cryptography) به هم وصل یا زنجیر میشوند. بلاکچینهایی که به وسیلهی عموم قابل خواندن هستند به طرز گستردهای در ارزهای رمزگذاری شده (cryptocurrencies) مورد استفاده قرار میگیرند. بلاکچینهای خصوصی برای استفاده در کسب و کارها مطرح شدهاند. برخی بازاریابیهای بلاکچین با کنایهی «روغن مار» توصیف شدهاند.
هر بلاک حاوی هش ِ رمزگذاری شده (cryptographic hash) از بلاک قبلی، یک مُهر ِ زمان (timestamp)، و اطلاعات معامله (که معمولا به صورت یک ساختار درختی هشهای ریشهای مرکل (merkle tree) قرار میگیرد) است. بلاکچین طوری طراحی میشود که در مقابل اصلاح دادهها مقاوم باشد. بلاکچین یک «دفتر حساب (لجر) توزیعیافته (distributed ledger) است که میتواند معاملات بین دو طرف را به طریقی قابل تائید و دائمی به شکل کارایی ثبت کند». برای استفاده از بلاکچین در یک لجر توزیعیافته معمولا از یک شبکهی دستبهدست (peer-to-peer) استفاده میشود که مشترکات آنها را به یک پروتکل برای ارتباط بین نقاط اتصال (inter-node) و معتبرسازی بلاکهای جدید میچسباند. اطلاعاتی که در هر بلاک ثبت میشود درست بعد از اینکه ثبت میشوند دیگر نمیتوانند بدون دگرگونی تمام بلاکهایی که در پی آن قرار دارند دگرگون شوند، و برای این کار توافق اکثریت اعضای شبکه لازم است.
با این وجود که ثبتهای بلاکچین غیر قابل دگرگونی نیستند، میتوان بلاکچینها را امن از نظر طراحی (secure by design) و و نشاندهندهی یک سیستم محاسبهی توزیعیافته با سطح بالایی از مدارا در قبال خطای ورودی (Byzantine fault tolerance) در نظر گرفت. به این ترتیب دستیابی به توافق نامتمرکز (Decentralized) از سوی بلاکچین تعهد میشود.
بلاکچین در سال 2008 توسط ساتوشی ناکاموتو برای خدمات رساندن به دفتر معاملات عمومی ارز رمزگذاری شدهی بیتکوین ابداع شد. ابداع بلاکچین برای بیتکوین باعث شد این ارز رمزگذاری شده اولین ارز دیجیتالی باشد که مشکل دوباره-خرج کردن مبالغ را بدون نیاز به یک مرجع اقتدار مورد اعتماد یا سرور مرکزی برطرف میکند. طراحی بیتکوین منبع الهامی برای برنامههای کاربردی دیگر شد.
تاریخچه بلاکچین
اولین کار بر روی زنجیرهای از بلاکها که امنیت آن از طریق رمزگذاری تامین شد، در سال 1991 توسط استوارت هابر (Stuart Haber) و اسکات استورنتا (W. Scott Stornetta) توصیف شده است. آنها میخواستند سیستمی کار بگذارند که در آن امکان دستکاری اسناد Timestamp و یا به عقب برگرداندن تاریخ وجود نداشته باشد. در سال 1992 بایر، هابر، و استورنتا ساختار درختی مرکل را به طرح خود وارد کردند که باعث شد کارایی آن به واسطهی امکان پذیرفتن چندین سند که در یک بلاک جمع میشوند بهبود یابد.
اولین بلاکچین توسط فردی (یا گروهی از افراد) به نام ساتوشی ناکاموتو در سال 2008 مفهومپردازی شد. این بلاکچین در سال بعد توسط ناکاموتو به عنوان یکی از اجزای هستهای در ارز رمزگذاری شدهی بیتکوین کار گذاشته شد، جایی که در آن به عنوان دفتر حساب عمومی تمام معاملات بر روی این شبکه خدمات میرساند.
در سال 2014 حجم فایل بلاکچین بیتکوین که حاوی ثبتهای تمام معاملاتی که بر روی شبکهی بیتکوین انجام شده بودند بود به 20 گیگابایت رسید. در ژانویه 2015 این حجم به نزدیک به 30 گیگابایت رسید، و از ژانویه 2016 تا ژانویه 2017 بلاکچین بیتکوین از 50 گیگابایت به 100 گیگابایت افزایش حجم داشت.
در کاغذ اصلی ساتوشی ناکاموتو کلمهی بلاک و کلمهی چین جدا از هم مورد استفاده قرار گرفتهاند، اما به تدریج تا سال 2016 به عنوان یک کلمهی تک، یعنی بلاکچین، محبوب شد. اصطلاح بلاکچین 2 که ابتدا در سال 2014 ظاهر شد به کاربردهای جدید پایگاه دادهی بلاکچین توزیع یافته اشاره دارد. نشریه اکونومیست یکی از کاربردهای این نسل دوم بلاکچینهای قابل برنامهریزی را به عنوان نوعی از بلاکچین که همراه «یک زبان برنامهنویسی که به کاربران اجازه میدهد قراردادهای هوشمند پیچیدهتری بنویسند، و به این ترتیب فاکتورهایی درست کنند که خودشان هنگامی که بار میرسد پرداخت شوند یا گواهیهای سهامی که اگر سود به میزان مشخصی برسد به صورت خودکار برای صاحبانشان بهرهی سهام را منتقل کنند» میآید توصیف کرده است.
شرکت آیبیام در جولای 2016 یک مرکز تحقیقات نوآوری بلاکچین در سنگاپور تاسیس کرد. در نوامبر 2016 کارگروه فاروم اقتصاد جهانی (World Economic Forum) برای بحث و گفتگو درباره توسعهی مدلهای تصمیمگیری در ارتباط با بلاکچین نشستی ترتیب داد.
مطابق نظر مرکز تحلیل استراتژیک اکسنچر (Accenture) به کارگیری نظریهی نشر نوآوری (diffusion of innovations) نشان میدهد که بلاکچینها توانستهاند به نرخ هماهنگی 13.5% با خدمات مالی در سال 2016 دست پیدا کنند، و به این ترتیب وارد فاز هماهنگسازی اولیه شوند. در سال 2016 گروههای تجارت صنعتی برای ایجاد فاروم جهانی بلاکچین به یکدیگر پیوستند که پیشقدمی برای تشکیل اتاق تجارت دیجیتال (Chamber of Digital Commerce) بود.
مصرف انرژی
بانک ذخایر بینالمللی (Bank for International Settlements) بلاکچین را به عنوان یک «فاجعهی محیطی» که شامل مصرف انرژی بالا میشود مورد انتقاد قرار داده است.
نیکولاس ویور (Nicholas Weaver) از انستیتوی علوم کامپیوتری بینالمللی در دانشگاه کالیفرنیا، بارکلی، امنیت آنلاین بلاکچین و کارایی انرژی آن را مورد آزمایش قرار داده و در هر دو مورد به این نتیجه رسیده که بلاکچین در این زمینهها به شدت ناکافی است.
ساختار بلاکچین
بلاکچین یک دفتر دیجیتال عمومی نامتمرکز و توزیع یافته است که برای ثبت معاملات بین چندین کامپیوتر به شکلی که این ثبتها را نتوان عطف به گذشته بدون دخالت بلاکهای درگیر دیگر و به این ترتیب توافق شبکه تغییر داد، مورد استفاده قرار میگیرد. این به مشارکتکنندگان اجازه میدهد معاملات را به صورتی ارزان مورد تائید و حسابداری قرار دهند. یک پایگاه دادهی بلاکچین با استفاده از یک شبکهی دستبهدست و یک سرور Timestamp توزیعیافته، به طرزی خودمختار مدیریت شود. آنها به واسطهی مشارکت انبوه که متاثر از منافع شخصی مشترک استT مورد راستیآزمایی قرار گرفتهاند. نتیجهی این رویکرد یک بیلان کاری نرم است که در آن عدم اطمینان شرکتکنندگان نسبت به امنیت اطلاعات، تبدیل به موضوعی حاشیهای میشود. استفاده از بلاکچین باعث حذف ویژگی بازتولیدپذیری نامحدود از یک دارایی دیجیتال میشود. بلاکچین تائید میکند که هر واحد ارزش، تنها یکبار میتواند منتقل شود و مشکل دیرپای خرج کردن دوباره را برطرف میکند. بلاکچینها به عنوان نوعی پروتکل مبادلهی ارزش مورد توصیف قرار گرفتهاند. این مبادلهی ارزش بر پایهی بلاکچین میتواند سریعتر، امنتر، و ارزانتر از سیستمهای سنتی انجام شود.
بلاکها
بلاکها دستههایی از معاملات معتبر در یک ساختار درختی مرکل هشتگ و رمزگذاری شدهاند را نگه میدارند. هر بلاک شامل هشتگ رمزگذاری شدهای از بلاک قبل است که این دو را به هم وصل میکند. بلاکهای وصل شده، یک چِین (زنجیره) را شکل میدهند. این فرایند تکرارگرانه باعث میشود پیوستگی به بلاک قبلی تائید شود، و این تکرار تا بلاک پیدایش (genesis block: اصطلاحی برای توصیف اولین بلاک در یک بلاکچین) به عقب برمیگردد.
گاهی وقتها بلاکهای جدا میتوانند همزمان تولید شوند و یک انشعاب موقتی به وجود بیاورند.علاوه بر یک تاریخ امن بر پایه هشتگ، هر بلاکچین الگوریتم ویژهای برای امتیاز دادن به نسخههای متفاوت این تاریخ دارد و به این ترتیب بلاکی که دارای ارزش بالاتری است میتواند در برابر دیگران مورد انتخاب قرار گیرد. به بلاکهایی که برای ادغام در چِین انتخاب نمیشوند بلاکهای یتیم گفته میشود. جفتهایی که پایگاه داده را پشتیبانی میکنند بعضا نسخههای متفاوتی از این تاریخ دارند.
زمان بلاک
زمان بلاک شامل میانگین زمانی است که در شبکه برای تولید یک بلاک اضافه در بلاکچین صرف میشود. بعضی از بلاکچینها هر پنج ثانیه یک بار یک بلاک جدید درست میکنند. در حین کامل شدن بلاک، اطلاعات پیوست شده مورد تائید قرار میگیرد. در ارز رمزنگاری شده، عملا این اتفاق زمانی میافتد که معاملهای انجام میشود، برای همین یک زمان بلاک کوتاهتر به معنای معاملات سریعتر است. زمان بلاک اتروم بین 14 تا 15 ثانیه تنظیم شده در حالی که در بیت کوین این زمان 10 دقیقه است.
انشعابهای سخت
انشعاب سخت نوعی تغییر در قواعد به شکلی است که نرمافزاری که بلاکها را مطابق با قواعد قدیمی معتبر میکند بلاکهایی که مطابق با قواعد جدید تولید شوند را نامعتبر تشخیص دهد. در موردی که یک انشعاب سخت در کار باشد، تمام نقاط اتصالی که قرار است مطابق با قواعد جدید کار کنند نیاز به آپگرید نرمافزارشان دارند.
اگر یک گروه از نقاط اتصال به استفاده از نرمافزار قدیمی ادامه دهند در حالی که نقاط اتصال دیگر از نرمافزار جدید استفاده کنند، یک شکاف میتواند بروز پیدا کند. برای مثال اتروم برای اینکه سرمایهگذارانی که در The DAO فعال بودند و در خطر هک شدن توسط یکی از جزئیات کد این سیستم بودند را تبدیل به «کل بسازد» از یک انشعاب سخت استفاده کرد. در این مورد انشعاب منجر به ایجاد شکافی شد که دو طرف آن را اتروم و اتروم کلاسیک تشکیل میدهند.
نامتمرکزسازی
بلاکچین از طریق ذخیرهی اطلاعات بر روی شبکهی دستبهدست خود، شماری از مخاطراتی که به واسطهی ذخیرهی مرکزی اطلاعات پدیدار میشوند را از بین میبرد. بلاکچین نامتمرکز ممکن است از گذردادن پیام موردی و شبکهی توزیعیافته (distributed networking) استفاده کند.
شبکههای بلاکچین نامتمرکز فاقد نقاط ضعف متمرکزی هستند که نفوذگران کامپیوتری از آنها استفاده میکنند. به همین ترتیب بلاکچین فاقد نقطه ضعف مرکزی است. روشهای امنیت بلاکچین شامل استفاده از رمزنگاری کلید-عمومی (public-key cryptography) است. کلید عمومی (یک رشتهی بلند و به نظر اتفاقی از اعداد) یک آدرس بر روی بلاکچین است. توکنهای ارزشداری که از طریق شبکه فرستاده میشوند به عنوان چیزی متعلق به این آدرس ثبت میشوند. یک کلید خصوصی (private key) مثل گذرواژهای است که به دارندهاش امکان دسترسی به دارایی دیجیتال خود را میدهد. یا مثل وسیلهای برای کنش و واکنش با قابلیتهای مختلفی است که حالا مورد پشتیبانی بلاکچینها هستند. اطلاعاتی که بر روی بلاک ذخیره میشود را عموما غیرقابل فسخ در نظر میگیرند.
در یک سیستم نامتمرکز هر نقطهی اتصال یا گره دارای یک کپی از بلاکچین است. کیفیت اطلاعات (Data quality) به وسیلهی تکثیر گستردهی پایگاه داده و اعتماد محاسباتی (computational trust) حفظ میشود. هیچ نوع کپی «رسمی» مرکزی در کار نیست و هیچ کاربری «مورد اعتماد»تر از باقی کاربران نیست. معاملات با استفاده از نرمافزار به شبکه مخابره میشوند. پیامها بر پایهی بهترین-تلاش (best-effort) منتقل میشوند. نقاط اتصال استخراج، معاملات را معتبر میکنند، آنها را به بلاکهایی که میسازند اضافه میکنند، و سپس بلاک کامل شده را نقاط اتصال دیگر، مخابره (broadcast) میکنند. بلاکچینها از رویههای Timestamp مختلفی مثل (proof-of-work) برای ردیفیسازی تغییرات استفاده میکنند. روشهای توافق به نوع دیگر شامل گواهی-سهام (proof-of-stake) میشود. رشد بلاکچین نامتمرکز با خود خطر متمرکزسازی نقاط اتصال را نیز دارد چرا که منابع کامپیوتری که برای پردازش حجمهای بالاتری از اطلاعات مورد نیاز است گرانتر میشوند.
باز بودن
بلاکچینهای باز از برخی سیستمهای ثبت مالکیت سنتی، که در حالی که به روی عموم باز هستند، برای مشاهده نیاز به دسترسی فیزیکی دارند کاربر-محوری (user-friendly) بیشتری دارند. از آنجا که تمام بلاکچینهای اولیه از رویهی فاقد مجاز ساختن استفاده میکردند، جنجال بر سر تعریف بلاکچین به وجود آمده. یکی از موضوعات در این بحث ادامهدار این است که آیا میتوان یک سیستم خصوصی با شناسندههایی که از سوی منبع اقتدار مرکزی وظیفه گرفته و مجاز میشوند را بلاکچین در نظر گرفت؟ طرفداران چینهای مجاز یا خصوصی استدلال میکنند که اصطلاح «بلاکچین» میتواند به هر ساختار دادهای که دادهها را در بلاکهای مهر زمانی دار دستهبندی کند اطلاق شود. این بلاکچینها مثل نسخهای توزیع یافته از کنترل همروندی چند نسخهای (MVCC) در پایگاههای داده عمل میکنند. درست همان طور که کنترل همروندی چند نسخهای (MVCC) مانع از دو تراکنش همزمان برای اصلاح یک ابژهی مشخص در پایگاه داده میشود، بلاکچینها هم مانع از انجام دو تراکنش برای خرج کردن یک خروجی مشخص از بلاکچین میشوند. مخالفان میگویند که سیستمهای مجاز شبیه پایگاههای دادهی شرکتی سنتی هستند، از مجازسازی اطلاعات نامتمرکز پشتیبانی نمیکنند، و اینکه چنین سیستمهایی در مقابل نفود و بازبینی کاربران مقاومسازی نشدهاند. نیکلای همپتون از مجلهی Computerworld معتقد است «بسیاری از راه حلهای بلاکچین خانگی چیزی بیشتر از پایگاههای دادهای پر دردسر نیستند»، و «بدون یک امنیتی شفاف، باید به بلاکچینهای اختصاصی به چشم تردید نگاه کرد».
بلاکچین فاقد مجازسازی (Permissionless)
مزیت بزرگی که در یک شبکهی بلاکچین باز، فاقد مجازسازی، یا عمومی وجود دارد این است که نیازی به حصارکشی علیه بازیگران بد وجود ندارد و هیچ نوع نظارت دسترسی (access control) در آن لازم نیست. این یعنی نرمافزارها میتوانند بدون تائید یا اعتماد دیگران، با استفاده از بلاکچین به عنوان یک لایهی انتقال (transport layer) به شبکه افزوده شوند.
بلاکچین مجازشده (خصوصی)
بلاکچینهای مجازشده از نوعی لایهی نظارت دسترسی برای تعیین اینکه چه کسی به شبکه دسترسی داشته باشد استفاده میکنند. در مقابل شبکههای بلاکچین عمومی، معتبرسازهای شبکههای بلاکچین خصوصی از طرف مالک شبکه برای انجام وظیفه تعیین میشوند. آنها نه بر نقاط اتصال ناشناس برای معتبرسازی تراکنشها تکیه میکنند و نه منفعتی از اثرات شبکه میبرند. بلاکچینهای مجاز میتوانند تحت عنوانهایی مثل بلاکچین «کنسرسیوم» یا «هیبرید» هم شناخته شوند.
موارد استفادهی بلاکچین
فناوری بلاکچین میتواند در بسیاری از زمینهها ادغام شود. در حال استفادهی اصلی از بلاکچین به صورت دفتر کل توزیع یافتهای برای ارزهای رمزگذاری شدهای است که بیتکوین در میان آنها از همه قابل توجهتر است. چند محصول کاربردی نیز وجود دارند که از طریق گواهی مفهوم (proof of concept) از اواخر 2016 به ثمر نشستهاند.
قراردادهای هوشمند (smart contracts)
قراردادهای هوشمند بلاکچین-محور، قراردادهای پیشنهادی هستند که میتوانند به تمامی یا در بخشهایی، بدون دخالت انسان به اجرا گذاشته شوند. یکی از اهداف اصلی قرارداد هوشمند، رسیدن به نوعی سفتهی خودکار (automated escrow) است. در گزارش یکی از نشستهای صندوق جهانی پول، آمده است که قرارداد هوشمند بر پایه فناوری بلاکچین میتواند مخاطرات-اخلاقی (moral hazards) را تقلیل داده و استفاده از قرارداد به صورت عام آن را بهبود ببخشد. اما «هنوز هیچ سیستم قرارداد هوشمند قابل اعتمادی پدیدار نشده است». و به واسطهی عدم استفادهی گسترده جایگاه حقوقی آنها هنوز نامشخص است.
بانکها
بخشهای عمده در صنعت مالی در حال به کار گذاشتن لجرهای توزیع یافته برای استفاده در بانکداری هستند، مطابق مطالعهای که آیبیام در سپتامبر 2016 منتشر کرده، این اتفاق سریعتر از چیزی که انتظارش میرفته در حال انجام است.
بانکها به این دلیل به فناوری بلاکچین علاقه دارند که میتواند سرعت سیستمهای سرمایهگذاری تامینی و بکآفیس (back office) را بالا ببرد.