دانشجوی کارشناسی نرم افزار - برنامه نویس php - توسعه دهنده وب - عضو تیم مدیریت سمی لرن - آهنگساز و پیانیست
بلاک چین چیست ؟
به تازگی، تقریبا همه جا، اسم تکنولوژی جدید بلاک چین را میشنویم. از دور زدن فیلترینگ تا امنیت خاص و غیر قابل هک آن. اما اطلاعات ما نسبت به این تکنولوژی بسیار ساده و سطحی می باشد. حتی میشود گفت تنها یک اسم و کاربرد از آن شنیدیم.
در این مقاله قصد داریم تا با این تکنولوژی فوق العاده، بیشتر آشنا شویم.
بلاک چین چیست؟
خب در ابتدا باید بدانیم اصلا بلاک چین چیست؟
بلاک چین نوعی تکنولوژی توزیع داده های دیجیتال می باشد یا می توان گفت نوعی پایگاه داده که به صورت گسترده ای توزیع شده است. بیایید راحت تر بیانش کنیم :
بلاک چین از دو کلمه Block(بلوک) و Chain(زنجیره) تشکیل شده است و همانطور که اسم آن پیداست، نوعی زنجیره است که بلوک هایی را به هم متصل میکند. این بلوک ها به زبان ساده، بسته های اطلاعاتی هستند که از دستگاهی ارسال و یا دریافت میشوند.
هر بلوک اطلاعاتی بخشی از یک داده واحد را منتقل میکند و در نهایت، داده های گسسته و پخش شده در بلوک های مختلف دوباره به یک داده واحد تبدیل شده و به مقصد میرسید.
این نوع عملکرد، باعث شده سرعت انتقال داده و امنیت اطلاعات در حال انتقال به شدت افزایش پیدا کند.
مهم ترین کاربرد این تکنولوژی تا امروز، تراکنش و خرید های ارز های دیجیتال مانند بیت کوین و یا اتریوم بوده و دلیل آن امنیت بالا و همچنین غیر قابل تغییر و یا هک بودن اطلاعات در این تکنولوژی می باشد. اما چگونه ؟ برای پاسخ به این سوال باید کمی دقیق تر وارد مبحث بلاک چین شویم.
محتویات بلوک های بلاک چین
برای راحت تر شدن توضیح این مطلب، من از بیت کوین به عنوان مثال استفاده میکنم.
در شبکه خرید و فروش و استخراج بیت کوین، هر بلوک شامل یک بخش header (هدر) و یک بخش برای اطلاعات است.
هر بلوک دارای یک کد انحصاری می باشد. این کد انحصاری مثل اثر انگشت برای هر بلوک، کاملا انحصاری است و برای شناسایی بلوک از آن استفاده میشود. این کد انحصاری هَش (hash) نام دارد.
هدر بلوک، شامل هَش بلوک قبلی، هَش خود، هَش بلوک بعدی(گاهاً) و کدی تحت نام Merkle root یا ریشه مرکل می باشد.
در تصویر بالا، یک شبکه بلاک چین را مشاهده میکنید. همانطور که می بینید، هر بلوک، شامل یک هَش و هَش بلوک قبلی خود میباشد و هَش قبلی بلوک ریشه، بخاطر اینکه بلوک دیگری وجود ندارد 0000 می باشد.
از هَش ها برای پیدا کردن بلوک ها و ارتباط بین بلوک ها استفاده میشود و نقش بسیار کلیدی دارد. اما این هَش ها چگونه در امنیت شبکه موثر هستند ؟
هنگامی که هر تغییری در داده های موجود در هر بلوک صورت بگیرد، کد هَش بلوکی که داده آن تغییر کرده است نیز تغییر میکند. بر این اساس چون کد هَش آن برای اتصال به بلوک بعدی استفاده شده بود و در بلوک بعدی ثبت شده بود و حالا با این تغییر ، کد هَش تغییر کرده، پس زنجیره بلوکی قطع و شبکه از دسترس خارج میشود.
پس برای هرگونه دستکاری یا حذف اطلاعات یک بلاک، باید اطلاعات هدر تمامی بلاک های مرتبط با آن قطع شود.
اما چیزی که مطرح میشود این است که این کد هَش فقط در بلوک بعدی و قبلی ثبت شده و با تغییر آن ها میتوان تغییراتی در اطلاعات ایجاد کرد. پس چگونه امنیت این شبکه تامین میشود؟ اینجاست که کد مرکل نقش خود را نشان میدهد.
کد ریشه مرکل، کدی است که از تلفیق هش های بلوک های شبکه به وجود می آید. اما چگونه ؟ این تلفیق از ساختاری پیروی میکند تحت عنوان درخت مرکل. این درخت به شکل دوتایی (باینری) عمل میکند. عملکرد این درخت را میتوانیم در تصویر زیر واضح تر ببینیم.
همانطور که در تصویر بالا می بینید، هَش بلوک های موجود به صورت دو به دو با هم تلفیق شده تا در نهایت دیگر جفتی برای تلفیق وجود نداشته باشد و در آنجا به کد ریشه مرکل میرسیم. این کد در تمامی هدر های بلوک های موجود در این درخت ثبت شده است.
پس علاوه بر تغییر هش های ثبت شده در بلوکهای قبلی و بعدی، می بایست تمامی هش های بلوک های ثبت شده در درخت نیز تغییر کند تا شبکه قطع نشود و همچین تغییری در شبکه های بین المللی دارای احتمالی برابر با 1 در تعداد کاربران موجود در شبکه می باشد.
بدنه بلوک ها
پس از قسمت هدر که شامل اطلاعات حیاتی یک بلوک می باشد، حال میخواهیم بدانیم بدنه بلوک چه عملکردی دارد.
هدر یک بلوک، اطلاعات ارتباطی و حیاتی یک بلوک، برای رساندن داده ها از مبدا به مقصد را در خود جای داده و بدنه بلوک، بخشی از بلوک است که داده ها در آن جای میگیرد.
این دیتا میتواند هر نوع اطلاعاتی باشد. برای بیت کوین ها این اطلاعات، تراکنش های مربوط به بیت کوین ها می باشد.
حال برای مثال میتوانیم به یک بلوک بیت کوین نگاهی بیندازیم. در لینک زیر شما میتوانید یک بلوک بیت کوین را مشاهده کنید:
در این بلوک بیت کوین، در ستون سمت راست اطلاعات هدر قرار دارد. شامل هش خود بلوک، هش بلوک قبلی، هش بلوک بعدی و کد ریشه مرکل.
در سمت چپ نیز اطلاعات بخش داده ها یا همان تراکنش های بلوک قرار دارد و اگر شما صفحه را به پایین اسکرول کنید متوجه حجم زیاد تراکنش یا همان داده های موجود در این بلوک میشوید.
متوسط حجم یک بلوک 1 مگابایت می باشد اما در بلوک های بیت کوین این حجم ممکن است تا 8 مگابایت هم افزایش پیدا کند.
توزیع داده
حال میخواهیم به این موضوع بپردازیم که منظور از توزیع داده چیست؟ هنگامی که شما با سیستمی کار میکنید که از تکنولوژی بلاک چین بهره میبرد و از دستگاه خود درخواستی سمت سرور ارسال میکنید(برای مثال پیامی در یک پیام رسان ارسال میکنید) ، پیام شما که نوعی داده است به چند قسمت تقسیم میشود و به بلوک های مختلفی فرستاده میشود. هر کدام از این بلوک ها یک کاربر آنلاین در شبکه هستند.
پس پیام شما به چند تکه تقسیم شده و از طریق بلوک ها یا همان کاربران آنلاین به سمت سرور اصلی فرستاده میشود و در نهایت بسته داده شما دوباره به حالت اول بازگشته و به سرور اصلی بازمیگردد و پیام پاسخ سرور هم به همین شکل به دستگاه شما میرسد. و این هم دلیل دیگری بر امنیت بالای شبکه های بلاک چین می باشد. در واقع پیام شما در یک بلوک نیست تا شخصی بتواند به آن از طریق دسترسی به بلوک دست پیدا کند، بلکه پیام شما در بلوک های مختلفی در حال ارسال می باشد.
این تکنولوژی تا به امروز عموما برای ارز های دیجیتال استفاده میشد، اما به تازگی کمپانی های مختلفی از جمله گوگل شروع به توسعه این شبکه در سیستم های خود کرده اند.
این تکنولوژی نسل جدیدی از ارتباطات شبکه ای و امن می باشد و قدم بزرگی در پیشرفت های روز تکنولوژی بین المللی محسوب میشود.
مطلبی دیگر از این انتشارات
اموزش فرگمنت در کاتلین
مطلبی دیگر از این انتشارات
مک آدرس (MAC Address) چیست؟
مطلبی دیگر از این انتشارات
برنامه نویسی را از کجا آغاز کنیم؟