Skip links

بلاکچین چیست؟

حتما شما هم از اهمیت این موضوع باخبر شده‌اید و پس از کمی پرس و جو، اطلاعات کافی از اطرافیان بدست نیاورده‌اید و به دنبال یک مقاله کامل و در عین حال ساده هستید که همه چیز را آن طور که باید به شما آموزش دهد. خیلی هم خوب! چون دقیقا جای درستی آمده‌اید. ما امروز قصد داریم یک بار و برای همیشه آموزش جامع و کاملی از موضوع بلاکچین ارائه کنیم و اصلا بگوییم این بلاکچین چیست که انقدر این روزها در دنیای تکنولوژی سر و صدا به پا کرده! در ادامه توضیحات مفصلی درباره بلاکچین داریم. پس با ما باشید و از این آموزش خوب که قابل فهم و استفاده برای تمامی سنین هست استفاده کنید…

بلاکچین چیست؟

بلاکچین در اصل از دو کلمه بلوک (Block) و زنجیر (Chain) ساخته شده است. اما واقعا معنی این کلمات چیست؟ اصلا چرا این نام برای آن انتخاب شده است؟

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

تصور کنید در دنیای واقعی (و نه در دنیای کامپیوترها) یک سری از بلوک‌ها را دارید که با زنجیره‌ای به هم متصل شده‌اند. خوب، با جابجا کردن هرکدام از این بلوک‌ها بقیه آنها هم جابجا خواهند شد. یعنی این بلوک ها از هم تاثیر پذیر هستند.

در دنیای کامپیوتر ها هم به همین شکل. یعنی یک سری از بلوک‌ها داریم که با زنجیره‌هایی به هم متصل هستند و هر کدام از بلوک‌ها تاثیرپذیر از دیگری است. اما خوب طبیعتا در فضای کامپیوتر ها بلوک مد نظر ما یک بلوک چوبی 1 در 1 نیست! بلوک ما یک “فضا” برای ذخیره سازی اطلاعات است. مثل همون فضایی که در هارد ها، فلش مموری ها و … استفاده شده است؛ در حقیقت هر بلاک قسمتی از حافظه است که مقداری از اطلاعات را بسته به حجم اون بلاک و حجم کل اون حافظه در خود ذخیره میکند. این اطلاعات با توجه به کاربرد آن میتواند هر چیزی باشد. به عنوان مثال مشخصات مشتری های یک بانک یا اسم شهر های دنیا یا هرچیزی که تو دوست داری…!

تفاوت آن با بلاکی که تو فلش مموری ها است این که این بلاک ها به هم زنجیر شده و متصل هستند و اطلاعات داخل آن ها غیر قابل تغییر و پایدار هستند اما چگونه؟ با استفاده از تابع هش، یک شبکه همتا به همتا توزیع شده و پروتکل اجماع. خب میدونم که ممکنه همه اینایی که الان گفتم رو حتی اسمشم به گوشتون نخورده باشه اما صبور باشید منم برای همین دارم این مقاله رو براتون مینویسم

تابع هش


تابع هش یک تابع رمزنگاری ریاضی است. که ورودی داده هایی با طول های متغیر را میگیرد و به داده هایی فشرده شده با طول ثابت تبدیل میکند. هر ورودی متفاوتی در تابع هش خروجی های متفاوت خواهد داشت و اگر شما از یک ورودی یکسان استفاده کنید، خروجی شما حتما و همیشه یکسان خواهد بود.

یکی از ویژگی های مهم تابع هش اینکه این تابع یک طرفه است و شما هیچوقت نمیتوانید از خروجی این تابع به ورودی آن برسید.

الگوریتم های متفاوتی برای تولید هش های متفاوت وجود دارد. یکی از این الگوریتم ها sha-256 است. و شما میتوانید با استفاده از این لینک میتونید ببینید که این الگوریتم چطور کار میکنه. این الگوریتم برای هر ورودی یک خروجی متفاوت تولید میکنه و غیر ممکنه که بتونیم حدس بزنیم ورودی ها چجوری تبدیل به اون خروجی میشوند.

خب همه این هایی که گفتیم تو بلاکچین به چه دردی میخوره؟

در بلاکچین همه اطلاعاتی که در هر کدام از بلاک ها قرار مگیره، در نهایت هش میشه و در قسمتی از اون بلاک به اسم هِدر بلاک قرار میگرد. پس ما برای اینکه هر بلاک رو منحصر به فرد کنیم از تابع هش استفاده میکنیم. و یک هش به اون بلاک اختصاص میدیم اما این همه ماجرا نیست هر بلاک، هش اطلاعات بلاک قبلی رو هم تو خودش قرار میده و اینجوری میشه که یک زنجیره درست میشه که دست هم رو محکم گرفتند. یک زنجیره پایدار از بلاک ها که اطلاعاتی داخل اون ها هست رو نمیشه تغییر داد. اما چجوری؟

بیایید با هم بررسی کنیم. فرض کنید یک هکر تصمیم میگره اطلاعات بلاک اول رو تغییر بده میدونیم این اطلاعات هرچیزی میتونه باشه اما فرض کنید بلاکچینی که الان داریم در موردش صحبت میکنیم اطلاعات همه تراکنش ها یک بانک رو ذخیره میکنه. خب اگر این هکر ناقلای ما تصمیم بگیره یک تراکنش به تراکنش های بلاک اول اضافه کنه، یا یکی از اون ها رو حذف کنه یا تغییری توی اون ها ایجاد کنه هش بلاک اول هم تغییر میکنه!

اطلاعات بلاک دوم شامل هش بلاک اول هم میشه پس وقتی هش بلاک اول تغییر میکنه باید هش بلاک دوم هم تغییر کنه چون اطلاعات بلاک دوم تغییر کرده این زنجیره به همین شکل تا آخرین بلاک ادامه داره و این هکر ما باید بتونه هش همه ی بلاک ها رو عوض کنه…!

اما خب سوال اساسی که الان پیش میاد اینکه این حافظه دست کیه؟ اصلا این بلاک ها کجا نگه داری میشن؟ امنیتشون چجوری تامین میشه؟

شبکه همتا به همتا 

تا این جا با مفهوم هش آشنا شدیم و متوجه شدیم بلاکچین فضایی برای ذخیره سازی اطلاعات است چیزی به مانند پایگاه داده (بانک اطلاعاتی) است. اما با یک تفاوت بزرگ؛ در بلاکچین مفهومی به اسم سرور و کلاینت وجود ندارد و همه اعضای شبکه در یک سطح قرار دارند. یک شبکه همتا به همتا و توزیع شده. خب اینایی که گفتی یعنی چی؟ برای اینکه این موضوع رو راحت تر بفهمیم بزارید یه مثال براتون بزنم


ببینید همین اپلیکیشن های بانکی که شما هر روز ازش استفاده میکنید موجودی حسابتون رو نگاه میکنید دقیقا نشان دهنده همین مفهوم سرور و کلاینت (کاربر) است. شما با استفاده از تلفن همراه یا لپ تاپ تون به عنوان کلاینت (کاربر) به سرور بانک تون متصل میشید و اطلاعات شما، موجودی شما و تراکنش های شما و … توسط پایگاه داده (بانک اطلاعاتی) بانک تون به شما نمایش داده میشه. این یک مثال از شبکه کلانت – سرور ای بود چیزی که شما نه تنها با اپلیکیشن های بانکی بلکه در همه جای اینترنت دارین ازش استفاده میکنید.

اما در بلاکچین داستان فرق میکنه. اطلاعات شما نزد یک بانک، شرکت و … متمرکز نیست. و همه اعضای شبکه میتونند به اون اطلاعات دسترسی داشته باشند. هر کاربری یک کپی از تراکنش ها و هش بلاک ها رو در اختیار داره

حالا میریم سراغ دوست خوب هکرمون که قراره بود هش همه این بلاک ها (51% اشون رو؛ یکم جلوتر توضیح میدم چرا 51%) رو تغییر بده. بلاک هایی که سرتاسر دنیا بین 5 میلیون کامپیوتر توزیع شدن

و با هر تغییر کوچیکی تو این بلاک ها بقیه کاربرها خیلی سریع متوجه میشن که این زنجیره معتبر نیست و عملا تغییر اطلاعات این شبکه غیر ممکن میشه! اره دقیقا همینه که بلاکچین رو خفن کرده! و باعث میشه که امروزه تو خیلی از صنایع ازش استفاده کرد.

گفتیم این هکر ما اگر بتونه 51% شبکه هک کنه (که نمیتونه) کافیه اما چرا 51% کافیه؟!


پروتکل اجماع

کاربرها (نود ها) قبل ازاضافه شدن هر بلاک به شبکه باید باهم به توافق برسند که کدام زنجیره معتبر است.

هربار که یه نود یک بلاک به شبکه اضافه میکند بقیه نودها (کاربرها) باید بلاک اضافه شده به شبکه رو با استفاده از یک پروتکل مشترک تایید کنند. معمولا نود ها با استفاده از پروتکل اثبات کار یا اثبات سهام بر سر صحیح بودن بلاک جدید به اجماع میرسند. و برای این کار تایید 51% شبکه کافیه.

پس این هکر لای درمونده ما اگر 51% شبکه رو بتونه هک کنه، میتونه با خودش به توافق برسه و اطلاعات بلاک ها رو تغییر بده اما 51% شبکه به این بزرگی که بین همه دنیا پخش شده عملا با کامپیوتر های امروزی کار غیر ممکن به حساب میاد.

پس وظیفه نودها اینکه تراکنش های هر بلاکی که قراره به شبکه اضافه بشه رو بررسی کنه و با بقیه نود ها به اجماع برسند و اون بلاک رو تایید کنند. اگر همه چی درست بود میرن سراغ بلاک بعدی.

اجماع در بلاکچین

خب حالا که مفاهیم اولیه بلاکچین رو متوجه شدیم، میخوایم با هم یک بلاکچین برای خرید از وب سایت دیجی کالا طراحی کنیم که مطلب کامل براتون جا بیافته. به نظرتون بلاک ها با چه اطلاعاتی باید پر شوند؟

  1. اطلاعاتی درباره خرید شما از وب‌سایت دیجی‌کالا، به همراه زمان، تاریخ و میزان وجهی که پرداخت کردید.
  2. اطلاعاتی در مورد طرفین معامله. مثلا  همان دیجی‌کالا و شما (نام شما به شکلی که هست در بلوک ذخیره نمی‌شه. بجای نام شما از یک امضای دیجیتال (Digital Signature) یا همون کلید عمومی استفاده می‌شه که در اصل رفرنس و نشان دهنده همان نام شماست.
  3. اطلاعاتی برای متمایز کردن هر بلوک از دیگری. دقیقا مشابه من و شما که هر کدام برای خودمان نام و نام خانوادگی داریم و توسط این نام‌ها از یکدیگر تفکیک شده و مجزا هستیم. این اطلاعات که برای متمایز کردن استفاده می‌شه، که همان هشی است که در مورد اش صحبت کردیم .

مثالی که گفتیم بسیار ساده بود و برای یک خرید معمولی از دیجی‌کالا بود. اما واقعیت این هست که یک بلاک، در بلاکچین توانایی ذخیره سازی اطلاعات بیشتری را دارند. یعنی به تعبیری در همان مثالی که زدیم، هر بلوک توانایی ذخیره سازی هزاران معامله را زیر یک سقف (در یک بلوک) دارد.

حالا ما نیاز به یک شبکه داریم، شبکه ای از کاربر ها (نودها) که این خرید ها را تایید اعتبار کنند. به عنوان مثال در روش خرید عادی، و پرداخت آنلاین دیجی‌کالا، بانک اطلاعیه‌ای برای دیجی‌کالا فرستاده و تکمیل فرآیند پرداخت شما را تایید می‌کند. اما در بلاکچین این تاییدها باید توسط شبکه‌ای از کامپیوترها صورت بگیرد.

تقریبا مفاهیم اولیه برای طراحی بلاکچین دیجکالا را هم یادگرفتیم اما باید به یک نکته مهم توجه کنیم موضعی که مطرح شد فقط یک مثال بود و طراحی شبکه بلاکچین برای خرید از دیجی کالا هیچ مزیتی برای دیجی کالا ندارد که هیچ، بلکه باعث دردسر های فنی زیادی خواهد شد. پس استفاده از بلاکچین در هر جایی که حرف از ذخیره سازی اطلاعات است برای ما کاربرد ندارد و باید بررسی کرد این سیستم چه مزیتی برای ما خواهد داشت. 

تفاوت بلاکچین و بیتکوین چیست؟

هدف بلاکچین ذخیره سازی اطلاعات و همچنین گزارش دهی آنهاست به صورتی که این اطلاعات حذف نمیشوند.

تکنولوژی بلاکچین اولین بار توسط دو محقق به نام‌های Stuart Haber و W. Scott Stornetta در سال 1991 معرفی شد. این دو نفر قصد داشتند تا سیستمی را پیاده سازی کنند تا زمان انتشار اسناد (Document) تغییر پذیر نباشد. اینجا اولین بار سیستم بلاکچین معرفی شد. البته، در حدود 2 دهه از سیستم بلاکچین به طور رسمی و عمومی استفاده‌ای نشد تا اینکه در ژانویه سال 2009، برای اولین بار سیستم بلاکچین توسط بیتکوین استفاده شد.

پروتوکل بیتکوین بر اساس سیستم بلاکچین ساخته شده است. ساتوشی ناکاموتو (Satoshi Nakamoto) نخستین کسی بود که از واحد پولی بیتکوین صحبت کرد و آن را معرفی کرد. البته هنوز مشخص نیست که ساتوشی ناکاموتو نام یک شخص است یا یک شرکت … اما به هر حال، واقعا ایده جذاب و خوبی به میان آورد(ند).

بیتکوین به عنوان یک واحد پولی دیجیتال معرفی شد که برای انتقال آن نیازی به یک واسطه (مانند بانک) نیست. هر شخصی به طور مستقیم می‌تواند بیتکوین را به کیف پول شخص دیگر انتقال داده و معاملات به همین سادگی امکان پذیر شد.

چند نمونه کاربرد بلاکچین

طی یک تحقیق که توسط شرکت Deloitte صورت گرفت، از 1000 شرکت مختلف در 7 کشور دنیا درباره پیاده سازی سیستم بلاکچین در کسب‌وکار آنها سوال شد. این تحقیقات نشان داد که 34 درصد از این شرکت‌ها، در حال حاضر از سیستم بلاکچین استفاده می‌کنند. 41 درصد از آنها نیز قصد راه اندازی سیستم بلاکچین را در سال پیش رو داشتند. در بین این شرکت‌ها، به صورت میانگین 40 درصد از آنها اعلام کردند که حاضرند بیش از 5 میلیون دلار در صنعت بلاکچین سرمایه‌گذاری کنند.

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

جمع بندی

در این مقاله سعی شد تا سیستم بلاکچین به صورت کلی معرفی شود. البته ناگفته نماند که هر کدام از این موضوعاتی که به آنها اشاره شد، می‌تواند به صورت جداگانه و مفصل در مورد آن صحبت شده و بررسی شود.

قصد داشتیم موضوعاتی مثل “کلید خصوصی و کلید عمومی” و “انواع بلاکچین” را هم در این مقاله بررسی کنیم، اما به دلیل حجم بالای مطالب در این زمینه ترجیح بر آن شد تا مقاله‌ای جداگانه برای آن بنویسیم و از این مطلب که به بررسی پایه‌ای تکنولوژی بلاکچین می‌پردازد، آن را جدا کنیم.

اگر علاقه به خواندن بیشتر در مورد مزایا و معایب تکنولوژی بلاکچین دارید، اینجا کلیک کنید.

در صورتی که سوالی برایتان پیش آمده، حتما در بخش نظرات مطرح کنید.

 

 

دیدگاه خود را بیان کنید

نام*

وبسایت

دیدگاه

  1. بسیار مطلب مفیدی بود و خیلی چیز ها برام روشن شد.

مشاوره رایگان تلفنی