ثبت نام

امکان عضویت غیر فعال است

Blockchain چیست و چگونه کار می کند:قسمت اول

blockchain

Blockchain چیست و چگونه کار می کند:قسمت اول

blockchain

در حال حاظر اغلب ما کلمه Blockchain به گوش مان خورده است.
اما کم تر کسی میداند Blockchain چیست و چگونه کار میکند.
در این آموزش (Blockchain چیست) هدف من توصیف و توضیح نحوه کار Blockchain است که امیدوارم برای شما قابل فهم باشد.

Blockchain چیست؟

در ساده ترین توصیف ممکن برای Blockchain میتوان این گونه آن را بیان کرد :
Blockchain یک دفترچه ثبت وقایع است که اطلاعات آن قابل جعل نمی باشند.

تابع کد گذاری (Hash Function)

بیایید فکر کنیم ۱۰ نفر در یک اتاق هستند و تصمیم میگیرند که یک واحد پولی جدید برای خود ایجاد کنند.
فردی از میان این ۱۰ نفر نیز تصمیم میگیرد تمام وقایع درون این اتاق را در یک دفتر ثبت کند, فرض کنید نام این فرد احمد است.

احمد وقایع زیر را به ترتیب در دفترش ثبت میکند

  • رضا ۳ عدد سکه را به جواد داد
  • جواد ۵ عدد سکه را به محمد داد
  • محمد ۳ عدد سکه را به احمد داد
  • احمد ۱ عدد سکه را به علی داد
  • و …

یک فرد, برای مثال محمد تصمیم گرفت که مقداری از پول را دزدی کند!
برای این کار وقایع درون دفترچه احمد را تغیر داد

  • رضا ۳ عدد سکه را به جواد داد
  • جواد ۵ عدد سکه را به محمد داد
  • محمد جواد ۳ عدد سکه را به احمد داد
  • احمد ۱ عدد سکه را به علی داد
  • و …

پس از این تغیر احمد متوجه شده و تصمیم میگیرد این کار را به صورت کنونی متوقف کند.

در این حین او با یک نرم افزار آشنا می شود که آن را Hash Function یا همان تابع کدگذاری مینامیم.
این نرم افزار متن معمولی را به عداد و حروفی که ربطی به جمله اصلی ندارند تبدیل میکند.
به شکل زیر

  • Pcquest –> ۹۵۴CD5349D411344F087B3C2D91C74BF04A31A75
  • Pcquest.Ir –> ۱۵۸CBC700414CD6275800A0DF07EB1B063DE845C
  •  blockchain –> ۵۶FDE8F4392113E0F19E0430F14502E06968669F
  • what is blockchain –> ۲۳BE86D04F3DC63FE6FF7F95D6388CCA0E9C8C86
  • what is blockchain learn in Pcquest –> BB6D81680102775AC72137F601D80C7740DB58A4

هش چیست؟

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

برای مثال جمله ای ۱۰ حرفی را تبدیل به هش از نوع MD5 بکنید, هیچ تفاوتی با تبدیل یک جمله ۱۰۰ حرفی تبدیل شده به MD5 ندارد و هر ۲ آنها به یک متن جدید با ۳۲ حرف تبدیل می شوند.

مثالی از کارایی Hash

حالا احمد پس از هر بار ثبت وقایع آنها را به شکل زیر در دفتر خود وارد میکند

  • علی ۱۰ عدد سکه به احمد داد
    ۴۹۲۹EA5B4B0B134E3B4F4624BBA828DB44699A7B
  • احمد ۴ عدد سکه به محمد داد
    ۴D1618E200757E8B68484942D33148109DA44ADB

در ادامه اما محمد باز تلاش کرد تا اطلاعات درون دفتر احمد را تغیر دهد تا سود بیشتری کند.
پس از تغیر ایجاده شده توسط محمد یک هش جدید درون دفتر احمد تولید شد

  • علی ۱۰ عدد سکه به احمد داد
    ۴۹۲۹EA5B4B0B134E3B4F4624BBA828DB44699A7B
  • احمد ۴ ۱۲ عدد سکه به محمد داد
    ۴D1618E200757E8B68484942D33148109DA44ADB
    ۶۷۶۷۳FB0D504ABAF30796E0CB660E52DFCD4A635

احمد متوجه شد که کسی دوباره اطلاعات درون دفتر او را تغیر داده است!
این بار او نحوه کد گذاری ها را تغیر داد.
برای هر تراکنش, هش تراکنش قبلی را با اطلاعات تراکنش پیوند زد تراکنش جدید + هش تراکنش قبلی به شکل زیر  :

  • رضا ۱۰ عدد سکه به محمد داد –> ۵۶۰C0FBDEE4D9F594409148747384F1B6B58415D
  • علی ۳ عدد سکه به رضا داد ۵۶۰C0FBDEE4D9F594409148747384F1B6B58415D –> هش جدید ۶۴A0F4F162F1004F9450C2E3A4D4D08C571A2D35
  • جواد ۷ عدد سکه به احمد داد ۶۴A0F4F162F1004F9450C2E3A4D4D08C571A2D35 –> هش جدید ۲۴۸A3B2BDAE255669B2FBBB9EFE49187D3B09E59

اگر محمد بخواهد باز هم رکورد هارا تغیر دهد باید رکورد قبل آن و قبل آن و …. را هم تغیر بدهد.
محمد این بار تمام شب را صرف تغیر رکود ها و هش ها میکند.

از طرفی احمد هم نمیخواهد تسلیم این وقایع شود و روش جدیدی را پیش میگیرد, اون به انتهای هر رکورد یک عدد اضافه میکند.
او طوری این این عداد را ایجاد میکند که در انتهای هر هش ۲ صفر به وجود بیایید.
به این کار او “Nonce” میگویند.این اعداد ایجاد شده تنها یک بار قابل استفاده هستند!

  • رضا ۱۰ عدد سکه به محمد داد ۳۲ –> ۵۶۰C0FBDEE4D9F594409148747384F1B6B584100
  • علی ۳ عدد سکه به رضا داد ۵۶۰C0FBDEE4D9F594409148747384F1B6B584100 353 –> هش جدید ۸DN3A6B162F1114F9350C2E3A4D4D08C571A2D00
  • جواد ۷ عدد سکه به احمد داد ۸DN3A6B162F1114F9350C2E3A4D4D08C571A2D00 12 –> هش جدید ۲۴۸A3B2BDAE255669B2FBBB9EFE49187D3B09E00

با این کار احمد, محمد مجبور است ساعت ها و ساعت ها بنشیند تا بتواند اعداد را محاسبه و بدست آورد.
هرچند این احتمال خیلی ضعیف است, اما وجود دارد.

اما نکته ای مهمی که وجود دارد این است که نه تنها انسان ها, بلکه کامپیوتر ها نیز نمیتوانند این محاسبات را به سرعت انجام دهند!
این کار قطعاً نیازمند زمانی بسیار طوانی می باشد!

گره ها Nodes

بعد ها احمد متوجه شده که رکورد های بی شماری وجود دارد و او نمیتواند تمام این رکورد ها را برای همیشه در یک دفترچه بنویسد.
بنابر این اون تصمیم گرفت هر وقت رکود ها به ۵۰۰۰ رسیدند آنها را به صورت مرتب شده در یک صفحه جدید یادداشت کند!
همچنین او برسی می کند که این معاملات درست بوده اند یا خیر.

احمد در ادامه تمام اطلاعات درون دفترچه خودرا در میان ۵,۰۰۰ کامپیوتر در سراسر جهان به اشتراک میگذارد.
نام این کامپیوتر ها را Node یا همان گره گذاشت.

پس از این هر بار که یک معامله انجام شود و یک رکورد جدید ثبت شود.
تمام گره ها این معامله را برسی میکنند و صحت این تراکنش را برسی میکنند.
هر گره ممکن است نظر خاصی داشته باشد.
برای مثال ممکن است یک گره تراکنش را تقبلی شناسایی کند و گره دیگری آن را تأیید کند!

گره های بالا هر یک, یک کامپیوتر هستند که یک نسخه کامل از Blockchain را در اختیار دارند.
هر گره اعتبار معامله را مطابق با اطلاعاتی که در نسخه Blockchain در اختیار دارد برسی می کند.
اگر اعتبار معمله تأیید شود آن را در یک بلاک Block مینویسد!

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

بلوک Block

بلوک یک نوع دفترچه دیجیتال میباشد. اتصال بلوک ها به یک دیگر را Blockchain می گویند.
هر گره یا همان Node یک نسخه کامل از Blockchain را در اختیار دارد.
زمانی که یک بلوک به تعداد معینی از معملات تأیید شده توسط گره ها می رسد یک بلوک جدید ایجاد میشود.

برای مثال زمانی که یک بلوک ۱۰۰ معامله را در خود ذخیره می کند, بلوک کنار گذاشته شده و بلوک جدیدی ایجاد می شود.

این بلاک ها توسط سیستم Blockchain به طور مرتب هر ۱۰ دقیقه یک بار و به طور خودکار بروزرسانی می شوند.
این کار توسط شخص خاص یا یک کامپیوتر مرکزی صورت نمیگیرد.

به محض این که بلاک ها به روز رسازی میشوند دیگر اطلاعات آنها قابل تغیر نمی باشد.
این بروز رسانی در تمام گره ها یا همان کامپیوتر های متصل به شبکه Blockchain به صورت هم زمان اتفاق می افتد.

نکات مهم این قسمت

  • Blockchain مانند یک دفترچه یا یک سند دیجیتال میباشد که اطلاعات در رابطه با معملات را در خود نگه داری میکند.
  • هر تراکنش یک هش جدید ایجاد میکند.
  • یک هش از جملات معنی دار و اعداد ساخته شده است.
  • تراکنش ها به ترتیب زمان مرتب میشود. مرتب سازی تراکنش ها بسیار مهم است.
  • هش تولید شده نه تنها به تراکنش فعلی بلکه به تراکنش قبلی نیز بستگی دارد.
  • حتی یک تغیر کوچک در تراکنش, به طور کلی یک هش جدید ایجاد میکند.
  • گره ها با برسی هش مطمئن میشوند که تغیری در تراکنش رخ نداده باشد.
  • اگر یک معامله توسط اکثر گره ها تأیید شود به یک بلوک جدید اضافه میشود.
  • هر بلاک به بلاک قبلی متصل است که با یک دیگر Blockchain را به وجود می آورند.
  • Blockchain به طور کسترده بر روی یک سری از کامپیوتر ها در سراسر جهان کپی شده است.
  • به این کامپیوتر ها گره Nodes میگویند.
  • Blockchain به طور خودکار هر ۱۰ دقه یک بار بروزرسانی میشود.

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

برای خواندن قسمت دوم این آموزش اینجارا کلیک کنید.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

راه های ارتباط با ما

ما را در شبکه های اجتماعی دنبال کنید!