بلاک چین چیست؟
در یک تعریف کلی میتوان بلاک چین را شبکهای از سیستمهای ثبت اطلاعات و گزارش گیری از آنها برشمرد به گونهای که تمام اطلاعات ذخیره شده در این شبکه در اختیار تمامی کاربران آن قرار دارد و به همین خاطر تقلب و دستکاری در این اطلاعات تقریبا غیر ممکن است.همانطور که از نام این شبکه “blockchain” برمیآید، بلاک چین از دو کلمه block به مفهوم بلوک و chain به معنی زنجیر تشکیل شده است. پس در اصطلاح این شبکه به مفهوم زنجیرهای از بلوکهاست. در حقیقت بلاک چین نوعی از دفتر کل توزیع شده است.قبل از آنکه بیشتر به مفهوم بلاک چین بپردازیم لازم است تا مفهوم دفتر کل را بشناسیم.دفتر کلدفتر کل به محل نگهداری اطلاعات که (اغلب از نوع مالی هستند) گفته میشود. در این دفاتر اطلاعات مالی افراد اعم از
طلب و بدهی ثبت میگردد.
از آنجایی که تمامی این اطلاعات در یک
دفتر به صورت متمرکز ثبت شده است، احتمال آسیبپذیری این اطلاعات بسیار
زیاد است. مثلا ممکن است این دفتر گم شود و یا در آن دستکاری و تقلب صورت
پذیرد.
دفتر کل توزیع شده
حالتی را تصور کنید که در آن یک نسخه کپی
بهروز از این دفتر کل در اختیار هرکدام از این چهار نفر قرار گیرد و هر
زمان یک تغییری در اطلاعات آن رخ میدهد، نسخه جدید دفتر کل به صورت خودکار
در اختیار تمامی این افراد قرار بگیرد. در این صورت امکان تقلب، دستکاری و
از بین رفتن اطلاعات دفتر به حداقل خواهد رسید. چنانچه دفتر کل در اختیار
هر یک از اعضا قرار گیرد به آن دفتر کل توزیع شده یا Distributed Ledger
گفته میشود.
بلاک چین
بلاک چین نوعی دفتر کل توزیع شده است.
همانطور که پیشتر گفته شد، بلاک چین از مجموعهای از بلاکها تشکیل شده
است که به صورت زنجیرهای به هم متصل شدهاند. هر بلاک میتواند اطلاعات
مختلفی را در خود جای بدهد که میتواند شامل اطلاعاتی همچون اطلاعات مالی و
یا دارایی فرد، میزان تحصیلات و … باشد. از آنجایی که یک نسخه از بلاک چین
در اختیار هر کدام از کاربران ( که سیستمها و یا کامپیوترهای متصل به آن
هستند) قرار میگیرد لذا میتوان از آن به عنوان دفتر کل توزیع شده نام
برد.
برای مثال فرض کنید هر بلاک شامل اطلاعات یک شخص شامل سن و وزن باشد:
بلاک چین چیست
علاوه بر اطلاعات موجود در خود بلاک، هر بلاک شامل نوع دیگری از داده به نام هش میباشد.
هَش چیست؟
بلاکچین چیست
هش، خروجی تابعی به نام “تابع هش”
است. این تابع اطلاعات دریافتی را به نوعی رمز نگاری کرده و خروجی منحصر به
فردی تولید میکند یعنی هر تغییری در اطلاعات ورودی منجر به تغییر هش
تولید شده میگردد.
توابع هش انواع گوناگونی دارند که از جملهی آنها میتوان به MD5، Blake، Whirpool و SHA-256 اشاره کرد.
بلاک چین چیست
همانطور که در جدول فوق دیده میشود،
با وجود اختلاف در کلمات ورودی، تعداد کلمات خروجی تابع یکسان است و در هر
حالت تعداد خروجی 65 حرف میباشد. توابع هش دارای ویژگیهایی هستند که به
چند مورد از آنها اشاره میشود:
قطعی بودن خروجی
تفاوتی ندارد که اطلاعات اولیه چه زمانی
به این تابع داده میشود. یعنی برای یک ورودی مشخص، در هر زمان و هر چند
بار که این ورودی را به آن تابع بدهیم خروجی آن ثابت خواهد بود.
منحصر به فرد بودن خروجی
خروجی این توابع منحصر به فرد میباشند.
این به این معناست که به هیچ عنوان هش تولید شده تکراری نخواهد بود. برای
مثال فرض کنید تابع هش H نام داشته باشد و A و B ورودی های این تابع باشند.
تحت هیچ شرایطی امکان ندارد که H(A)=H(B) باشد.
یکطرفه بودن تابع
از دیگر ویژگیهای این توابع میتوان به
یکطرفه بودن تابع اشاره کرد یعنی از روی خروجی این توابع نمیتوان به
اطلاعات ورودی دست یافت.
کاربرد هش در بلاک چین
حال که با برخی از ویژگیهای توابع هش آشنا شدیم، نقش این توابع را در بلاک چین بررسی خواهیم کرد.
تابع هش در بلاک چین از الگوریتم تابع
256 – SHA تبعیت میکند. باید توجه کرد که تمامی هشهای تولید شده توسط
الگوریتم 256 – SHA (علاوه بر منحصر به فرد بودن) دارای طول یکسانی نیز
هستند. هر بلاک دارای هش منحصر به فرد میباشد و علاوه بر آن حاوی هش بلاک
قبل از خود نیز میباشد. در بلاک چین، فقط بلاک اول که به آن بلاک جنسیس
(GENESIS) گفته میشود، فاقد هش بلاک ماقبل از خود میباشد.
بلاک چین چیست
در مثال فوق چنانچه اطلاعات شخص الف
تغییر نماید، هش آن نیز تغییر خواهد کرد و در نتیجه در بلاک بعدی (که حاوی
هش بلاک اول است) و طبیعتاً در تمامی بلاکهای چرخه تغییر ایجاد شود .
به بیان سادهتر بلاک چین امکان ثبت
دادهها به صورت دائمی و غیر قابل دستکاری را فراهم میآورد. در واقع بلاک
چین نوعی از پایگاه داده است ولی برخلاف شبکه اینترنت که دیتابیسها روی یک
سرور مشخص قرار دارند، در بلاک چین این پایگاههای داده بین تمام
سیستمهای متصل به آن قرار میگیرد و بدیهی است این اطلاعات قابل حذف و یا
هک شدن نیستند.
Node یا گره چیست؟
به هریک از سیستمها و یا کامپیوترهای
موجود در در بلاک چین یک گره یا Node گفته میشود. این سیستمها سخت افزار
خود را در اختیار بلاک چین قرار میدهند تا از آنها برای پردازش دادهها و
تراکنشها استفاده شود. در واقع وظیفهی اصلی این Node ها تایید
تراکنشهای جدید در بلاک چین است.
انواع بلاک چین
به طور کلی بلاک چین به دو نوع عمومی و
خصوصی دسته بندی میشود. در بلاک چینهای عمومی هر Node میتواند به تمام
بلاک چین دسترسی داشته باشد. بلاک چین اکثر رمز ارزها مانند بیت کوین و
اتریوم و … از نوع عمومی هستند.
در کنار این دسته، بلاک چین خصوصی قرار
دارد که دسترسی به بلاک چین برای همه امکانپذیر نیست که این نوع در برخی
شرکتهای خصوصی کاربرد دارد.
منظور از تراکنش در بلاک چین چیست؟
فرض کنید از بلاک چین برای ثبت دارایی
افراد استفاده میکنیم. یعنی دارایی افراد در هر Node به صورت بهروز ثبت و
نگهداری میشود. تراکنشها در این بلاک چین شامل اطلاعات داد و ستد توسط
افراد خواهد بود. برای مثال فرض کنید که شخص الف قصد دارد برای شخص ب مبلغی
واریز کند. مراحلی که در این تراکنش نیازمند تایید هستند عبارت است از
صحیح بودن شماره حساب مقصد (یعنی شخص ب) و اطمینان از اینکه شخص الف این
مقدار پول را در حساب خود دارد. حال تایید این تراکنشها توسط Node های
ویژهای به نام ماینرها انجام میشود. در واقع ماینرها با قراردادن سخت
افزار خود به منظور انجام محاسبات با انجام عمل ماینینگ اینگونه تراکنشها
را تایید میکنند.
ماینینگ (mining)چیست؟
بلاک چین
ماینرها Node های ویژهای هستند که
وظیفهی آنها تایید تراکنشهای صورت گرفته در بستر بلاک چین است. پیشتر نیز
دانستیم که هر Node یا گره از منابع سخت افزاری خود برای تایید تراکنشها
استفاده میکند. البته یقیناً باید در ازای این کار پاداشی دریافت کنند تا
انگیزهای برای ادامه آن داشته باشند. برای مثال در بلاک چین بیت کوین،
پاداشی که به این گرهها در ازای پردازش تراکنشها یا اثبات کار تعلق
میگیرد، بیت کوین خواهد بود.
اثبات کار چیست؟
همان گونه که قبلا توضیح داده شد، چنانچه
در اطلاعات یک بلاک تغییری صورت گیرد و یا به صورت نادست توسط مهاجمان به
شبکه وارد بلاک چین شود، ماینرها با بررسی تمام بلاکها (اعم از منطبق بودن
هش بلاک جدید با بلاک بعدی) صحیح بودن زنجیره بلاکها را مورد تایید قرار
میدهند که به این فرآیند اثبات انجام کار گفته میشود. در این حالت هرچه
توان محاسباتی و قدرت سخت افزاری بیشتری داشته باشید شانس موفقیت بیشتری
برای ایجاد بلاک جدید و در نتیجه دریافت پاداش دارید. البته پرداخت پاداش
فقط از طریق اثبات کار نیست و روش دیگر هم به نام اثبات سهام وجود دارد.
اثبات سهام چیست؟
در این روش شانس موفقیت شما را در دیافت
پاداش، توان پردازش و محاسباتی شما تعیین نمیکند بلکه چیزی که در این روش
برای تایید تراکنشها و دریافت پاداش موثر است، دارایی شما خواهد بود. در
روش پرداخت پاداش از طریق اثبات سهام ارتباط مستقیمی بین دارایی ماینر و
تعداد تراکنشهایی که میتواند تایید کند وجود دارد. برای مثال در بلاک چین
بیت کوین اگر شخصی 1% بیت کوینهای موجود در بلاک چین را در اختیار داشته
باشد، میتواند فقط 1% تراکنش های بلاک چین را تایید نماید. مهمترین برتری
این روش صرفهجویی در انژی برق و سریعتر بودن آن است.
مفهوم کلید خصوصی (Private Key) و کلید عمومی (Public Key)
هر کدام از اعضای بلاک چین یک کلید عمومی
و یک کلید خصوصی در اختیار دارند. کلید عمومی مانند شماره کارت بانکی است
که میتوان آن را در اختیار دیگران قرار داد اما کلید خصوصی مانند رمز
کارت بانکی است که فقط باید در اختیار صاحب کارت باشد. کلید خصوصی باید به
صورت محرمانه نزد خود شخص قرار داشته باشد و به هیچ وجه آن را در اختیار
دیگر اعضای شبکه قرار ندهد. رمزنگاری در بلاک چین به صورت نامتقارن است
یعنی برای رمزنگاری از کلید خصوصی و برای بازگشایی از کلید عمومی استفاده
میشود. از طرفی کلید عمومی در اختیار تمامی اعضای بلاک چین قرار میگیرد.
کلید خصوصی یک عدد 256 بیتی است که زمانی
که شما کیف پول را میسازید به طور تصادفی به شما اختصاص داده میشود.
باید توجه کرد کلید خصوصی با استفاده از تابع هش از روی پسوردی که برای کیف
پول خود انتخاب میکنیم ساخته میشود. زمانی که تراکنش جدیدی در بلاک چین
ایجاد میشود، محتوای تراکنش (که میتواند مانند یک پیام و یا تراکنش مالی
مثل واریز وجه) باشد به صورت خودکار به همراه کلید خصوصی ارسالکننده
رمزنگاری یا هش میشود که به این فرآیند امضای دیجیتال گفته میشود. پس
از آن این تراکنش (که به آن بلاک جدید هم گفته میشود) برای تمامی نودها
ارسال میگردد. از آنجایی که کلید عمومی این بلاک در اختیار تمامی گرهها
قرار دارد، ماینرها با استفاده از کلید عمومی سعی در اثبات صحت امضای
دیجیتال مینمایند. برای روشنتر شدن موضوع مثال زیر را بررسی میکنیم.
کاربرد کلید عمومی و خصوصی در بلاک چین بیت کوین
برای مثال در بلاک چین بیت کوین منظور از
تراکنش، انتقال مقدار مشخصی بیت کوین به آدرس شخص گیرنده است. شماره حساب
گیرنده به همراه مقدار بیت کوین مورد نظر برای ارسال، محتوای این تراکنش
هستند. محتوای این تراکنش به همراه کلید خصوصی، هش و یا اصطلاحاً امضا
میگردد. صحت امضای دیجیتال به این معنی است که فرستنده مقدار بیت کوین که
قصد ارسال آن را دارد، در حساب خود داشته باشد. این مورد توسط ماینرها
مورد بررسی قرار میگیرد و چون کلید عمومی این تراکنش در اختیار تمامی Node
های بلاک چین (از جمله ماینرها قرار دارد) میتوانند صحت امضای دیجیتال و
بلاک ایجاد شده را بررسی کنند. هر کدام از ماینرها که سریعتر این پردازشها
را انجام دهد، پاداش در نظر گرفته شده برای اثبات کار را از آن خود
میکند.