بلاک چین چیست ؟| قسمت اول
بلاک چین چیست ؟ بلاک چین یک پایگاه داده توزیع شده است که بین گره های یک شبکه کامپیوتری به اشتراک گذاشته شده است. به عنوان یک پایگاه داده، یک بلاک چین اطلاعات را به صورت الکترونیکی در قالب دیجیتال ذخیره می کند. بلاک چین ها بیشتر به دلیل نقش حیاتی خود در سیستم های ارزهای دیجیتال، مانند بیت کوین، برای حفظ رکورد ایمن و غیرمتمرکز تراکنش ها شناخته می شوند. نوآوری در بلاک چین این است که وفاداری و امنیت رکورد داده ها را تضمین می کند و بدون نیاز به شخص ثالث قابل اعتماد ایجاد می کند.
بلاک چین چیست
یکی از تفاوت های کلیدی بین یک پایگاه داده معمولی و یک بلاک چین، نحوه ساختار داده ها است. یک بلاک چین اطلاعات را با هم در گروه هایی به نام بلوک جمع آوری می کند که مجموعه ای از اطلاعات را در خود نگه می دارد. بلوکها دارای ظرفیتهای ذخیرهسازی خاصی هستند و هنگامی که پر میشوند، بسته میشوند و به بلوک پرشده قبلی متصل میشوند و زنجیرهای از دادهها را تشکیل میدهند که به نام زنجیره بلوکی شناخته میشود. تمام اطلاعات جدیدی که به دنبال آن بلوک تازه اضافه شده است در یک بلوک جدید تشکیل می شود که پس از پر شدن به زنجیره اضافه می شود.
یک پایگاه داده معمولاً داده های خود را در جداول ساختار می دهد، در حالی که یک بلاک چین، همانطور که از نامش پیداست، داده های خود را به قطعات (بلوک هایی) که در کنار هم قرار گرفته اند ساختار می دهد. این ساختار داده به طور ذاتی یک خط زمانی برگشت ناپذیر از داده ها را هنگامی که در اکو سیستم غیرمتمرکز پیاده سازی می شود، ایجاد می کند. هنگامی که یک بلوک پر می شود، در سنگ قرار می گیرد و بخشی از این خط زمانی می شود. هر بلوک در زنجیره زمانی که به زنجیره اضافه می شود، یک مهر زمان دقیق داده می شود.
بلاک چین چیست ؟
یکی از تفاوت های کلیدی بین یک پایگاه داده معمولی و یک بلاک چین، نحوه ساختار داده ها است. یک بلاک چین اطلاعات را با هم در گروه هایی به نام بلوک جمع آوری می کند که مجموعه ای از اطلاعات را در خود نگه می دارد. بلوکها دارای ظرفیتهای ذخیرهسازی خاصی هستند و هنگامی که پر میشوند، بسته میشوند و به بلوک پرشده قبلی متصل میشوند و زنجیرهای از دادهها را تشکیل میدهند که به نام زنجیره بلوکی شناخته میشود. تمام اطلاعات جدیدی که به دنبال آن بلوک تازه اضافه شده است در یک بلوک جدید تشکیل می شود که پس از پر شدن به زنجیره اضافه می شود.
یک پایگاه داده معمولاً داده های خود را در جداول ساختار می دهد، در حالی که یک بلاک چین، همانطور که از نامش پیداست، داده های خود را به قطعات (بلوک هایی) که در کنار هم قرار گرفته اند ساختار می دهد. این ساختار داده به طور ذاتی یک خط زمانی برگشت ناپذیر از داده ها را هنگامی که در اکو سیستم غیرمتمرکز پیاده سازی می شود، ایجاد می کند. هنگامی که یک بلوک پر می شود، در سنگ قرار می گیرد و بخشی از این خط زمانی می شود. هر بلوک در زنجیره زمانی که به زنجیره اضافه می شود، یک مهر زمان دقیق داده می شود.
دراینجا بهتر است با
ذکر یک مثال مفاهیم رمزارز و بلاک چین را توضیح دهیم (در بخش های بعدی بصورت علمی
تر بحث خواهد شد)
تصور کنید دوست شما حمید در مسافرت خود
با یک هزینه در خرید غیر منتظره روبرو شده است و از شما در خواست 2میلیون تومان
پول میکتد ، شما به شعبه ای فیزیکی ، درگاه وب و یا خودپردازو.. از یک بانک مراجعه
کرده و با واسط قراردادن آن موسسه مالی پول مورد توافق را به حساب حمید منتقل
میکند
در این مرحله بانک
مبلغ را از حساب شما کم کرده و با کسر کارمزد بانک مبلغ باقی مانده را به حساب
حمید واریز میکند،
حال ممکن است چند سناریو درزمان این
تراکنش (تقل انتقال پول) رخ دهد .ممکن است بر اثر بلایای طبیعی ، انفجار ویا حملات
هکری و تروریستی مرکز داده (Data Base)بانک از بین برود ، یا اینکه بانک با استناد به یک دستور العمل
دولتی یا بین المللی حساب را مسدود کند ، و خیلی موارد دیگر شما یا دوستتان در این
نقل و انتقال مالی دچار مشکل در اجرای فرایند های لازم شوید و پول مورد نظر از
دسترس خارج شود .
این نقل و انتقال به صداقت شما ،
دوستتان و بانک متکی است .رمز ارز ها میخواهند این روال را به شکل زیر تغییر دهند
در این روش دفترِ کل توسطِ کاربرانی که
از سیستم استفاده میکنند کنترل میشود. بجای یک نفر کلِ اعضای شبکه به دفتر
دسترسی دارند. حساب و کتابها برای همه بصورت شفاف وجود دارد؛ ملزومات چنین سیستمی
وجودِ افرادِ بیشتری چون شما و دوستتان حمید است که نمیخواهند به بانک و سایر
سیستمهای واسط وابسته باشند.
چند نفر کافی است؟ حداقل سه نفر. فرض
کنید 7 نفر پیدا شدهاند که نمیخواهند به هیچ نهادی وابسته باشند. این افراد بعد
از توافقات اولیه به موجودی حساب و جزئیات تراکنشهای یکدیگر دسترسی دارند بدون
اینکه شناختی از هویت هم داشته باشند.
در مدل ارائه شده این
اشخاص هستند که امنیت دارائی شما را تضمین می کنند ، بدین نحو که هر شخص یک برگه
سفید (بلوک) در اختیار دارد و در این برگه تمام تراکنش ها را ثبت میکند ،در ساختار
شبکه ای بالا 7 نفر وجود دارند که اگر شما (رامین )مبلغی را به حمید پرداخت کند
بجزء شما و حمید، 5 شخص دیگر این تراکنش را یادداشت خواهند کرد ، اگر توجه داشته
باشین این گزارش در 7 ناحیه (دفتر کل) مختلف ذخیره میشود و اگر یکی از این اسناد
تحت هر شرایطی دچار اشکال شود اسناد 6 نفر باقی مانده آن سند را پاک و دوباره
نویسی می کنند .
این عملیات تا زمانی که این برکه پر شود
ادامه پیدا میکند و از این جمع هر شخصی نیاز به انتقال پول داشت اعلام میکند و
تمام افراد شبکه آن تراکنش را با بررسی دارائی های مبدا در سند فرد مقصد یادداشت
میکنند .
این برگه سفید (بلوک)
بعد از چند تراکنش پر میشود ، فرض کنید هر برگه ظرفیتِ ثبت 20 تراکنش را دارد حال
باید یک برگه جدید همه افراد شبکه بردارند و شروع به ثبت تراکنش های بعدی بکنند ،
مسئله اینست که برگه قبلی را چکار کنیم ؟
حال فرایند بایگانی کردن بلوک پرشده و
مهروموم کردن سند برگه پرشده راشروع کنیم .
قبل از بایگانی برگه پر شده لازم است آن
را با کدی موردِ پذیرشِ همۀ اعضای شبکه ، مهروموم کنیم. این کار باعث میشود
محتویات برگه تغییر نکند یا اگر تغییر کرد از درجۀ اعتبار ساقط شود. به فرایند
تولیدِ این کد اصطلاحاً ماینینگ (mining) گفته میشود .
تابع هش چیست ؟ | بلاک چین چیست ؟ (قسمت دوم)
بلاک چین نوعی پایگاه داده
مشترک است که با یک پایگاه داده معمولی در نحوه ذخیره اطلاعات متفاوت است. بلاک
چین داده ها را در بلوک هایی ذخیره می کند که سپس از طریق رمزنگاری به یکدیگر
مرتبط می شوند.
با ورود داده های جدید، وارد یک بلوک
جدید می شود. هنگامی که بلوک با داده پر شد، به بلوک قبلی زنجیر می شود، که باعث
می شود داده ها به ترتیب زمانی به هم متصل شوند.انواع مختلفی از اطلاعات را می
توان در یک بلاک چین ذخیره کرد، اما رایج ترین استفاده تا کنون به عنوان دفتر کل
برای تراکنش ها بوده است.در مورد بیتکوین، بلاک چین بهصورت غیرمتمرکز استفاده میشود
تا هیچ فرد یا گروهی کنترل نداشته باشد، بلکه همه کاربران به طور جمعی کنترل را
حفظ میکنند.بلاک چین های غیرمتمرکز تغییر ناپذیر هستند، به این معنی که داده های
وارد شده برگشت ناپذیر هستند. برای بیت کوین، این به این معنی است که تراکنش ها به
طور دائم ثبت می شوند و برای همه قابل مشاهده هستندوحالا برای فهم بهتر تابع هش
چیست ؟
هش چیست؟ (تعریف)
هش کردن یک داده معین اثر انگشتی ایجاد
می کند که شناسایی داده های اولیه را با احتمال زیاد ممکن می سازد (بسیار مفید در
علوم کامپیوتر و رمزنگاری).
چگونه یک هش را
محاسبه یا رمزگذاری کنیم؟
توابع هش از داده های کامپیوتری (در
فرمت باینری) استفاده می کنند و توابع غیرخطی و غیر قابل برگشت را با اثر بهمنی
قوی اعمال می کنند (نتیجه بسیار متفاوت است حتی اگر داده های ورودی بسیار مشابه
باشند). اثر انگشت معمولاً به صورت نویسه های هگزا دسیمال برگردانده می شود.
مثال: dCode برای هش MD5 e9837d47b610ee29399831f917791a44 دارد
مثال: dCode برای هش SHA1 15fc6eed5ed024bfb86c4130f998dde437f528ee دارد
مثال: dCode برای هش SHA256 254cd63ece8595b5c503783d596803f1552e0733d02fe4080b217eadb17711dd دارد
تابع هش چیست ؟
دستگاه کدگذاری تابع هش( hush function Decoder)
دیکودر یا رمز گشا مدار یا ماشینی است
که با توجه به ورودی دستگاه و تابع موجود در دستگاه خروجی تولید میکند و برای هر
ورودی خرروجی منحصربفرد دارد و عکس این عملیات ممکن نیست یعنی دستگاه یکطرفه کار میکند .
فرض کنید شما عددِ 11 را از سمتِ چپ وارد ماشین میکنید. در سمتِ راست چیز کاملاً متفاوتی مثلاً 21ab3 دریافت خواهید کرد. اینکه ماشین چگونه این خروجی را تولید میکند بستگی به تابع هش درون دستگاه دارد . این یک فرایندِ یکطرفه است؛ یعنی صرفاً از روی خروجیِ 21ab3 نمیتوان متوجه شد که ورودیِ چه بوده است. ولی این را میدانید که هر وقت عددِ 11 را به ماشین بدهید همین خروجیِ 21ab3 را دریافت میکنید.
21ab3 11
hash(11) == 21ab3
(( توجه داشته باشین که
اعدادی که نوشته شده واقعی نیستند و برای سادگی استفاده شده اند بطور مثال
میتوانید ببینید تابع هش عدد 11 بصورت زیر است .
))
Hash (md5,11)== 6512bd43d9caa6e02c990b0a82652dca
حالا که با مفهوم رمزنگاری(دیکدر)تابع
هش آشنا شدید برگردیم سراغ مهروموم کردن بلوک خودمان ، برای شروع تمام افراد داخل
شبکه در مورد خروجی دستگاه هش به توافق میرسند مثلا توافق میکنند سه کاراکتر (حرف
) اول FFF باشد
،بنظر شما ورودی چه باشد خروجی با FFF شروع
خواهد شود
FFF--
INPUT=?
خوب کار دستگاه های
ماینر از اینجا شروع میشود و یرای اینکار دستمزد(بیت کوین ویا رمز ارز دیگر )
دریافت می کنند.حتما این روال دشوار و زمانبر خواهد بود ولی با صرف انرژی زیاد ،
ورودی پیدا میشود .((در این مرحله فرض کنیم ماینر ها عدد 1234 را برای رمز 38012
پیدا کردن ))
برگۀ تراکنش (بلوک) را یک جعبۀ بسته (Close Box)حاویِ
عدد 38012 در نظر بگیرید. به نظر شما با اضافه کردن چه عددی به درون این جعبه میتوانم
مقداری را در خروجی تولید کنم که در ابتدایش سه رقمِ
FFF وجود داشته باشد؟
FFF-- 38012
باید بطور تکراری عددهای مختلف بهجای
علامت سوال قرار دهیم تا نهایتاً به خروجیِ
FFF-- برسیم. خلاصه بعد از
هزاران و میلیون ها بار تلاش به عددِ AB123 خواهیم رسید که خروجیِ
FFF-- را تولید میکند. این
عدد بهعلاوۀ عدد 38012 وقتی به ماشین داده میشود خروجیای تولید میکند که در
ابتدای آن FFF وجود
دارد؛ همان چیزی که دنبالش بودیم.
38012
FFF-- +
AB123
با این حساب، عدد
AB123 برای مهر کردن 38012
به کار میرود. برای مهر و موم کردن برگه تراکنشها (بلوک)، مهری با عددِ AB123 روی
آن می زنیم . مادامی که این مهر روی بلوک وجود داشته باشد یعنی مهر و موم شده است.
به عدد محاسبه شده
برای مهر کردن اصطلاحاً Proof of Work (اثباتِ کار) گفته میشود. این عدد نشان میدهد که برای محاسبۀ آن
انرژی مصرف شده است. هرکسی بخواهد بداند که محتویات برگه تغییر کرده یا نه ، کافی
است محتویاتِ برگه بهعلاوۀ شمارۀ مهر را به ماشین بدهد و خروجی را بررسی کند. اگر
کلمهای با FFF در
ابتدا ظاهر شد یعنی محتویات برگه صحیح است و اگر چیزی برخلافِ این بود میتوانید
برگه را دور بیندازید چون اطلاعاتِ آن دستکاریشده و دیگر اعتباری ندارد. از همین
مکانیزم برای مهر کردن تمام برگهها استفاده میکنیم.
اعضای شبکه برای محاسبۀ شمارۀ مهر، زمان
و منابع مصرف می کنند، هر عضوی از شبکۀ بلاک چین به خاطرِ عضویت و گسترشِ این شبکه
میتواند شانس خود را برای برنده شدن مقداری پول امتحان کند؛ اما چطور؟ اولین کسی
که شمارۀ مهر را کشف کند مقداری پول از طرفِ سیستم دریافت میکند. این جایزه بهعنوان
یک مشوق است؛ چون بالاخره فردی که عدد را استخراج کرده منابعِ سیستم و برق مصرف
کرده است. این اساسِ وجودِ بیت کوین و سایر رمز ارز هاست . این بلوک های مهر وموم
شده که هر فرد این شبکه در اختیار دارن اصطلاحا بلاک چین را بوجود می آورند .