چگونه با بلاکچین از بانک دزدی نکنیم- قسمت دوم

چگونه با بلاکچین از بانک دزدی نکنیم- قسمت دوم

نوشته شده توسط: حسین خوش رفتار منفرد
تاریخ انتشار: ۰۸ دی ۱۴۰۰
آخرین بروزرسانی: ۱۷ تیر ۱۴۰۳
زمان مطالعه: 5 دقیقه
۰
(۰)

مقدمه

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

بلاکچین دقیقا چنین کاری انجام می دهد؛ اما کمی پیشرفته تر. برای اجرای این سناریو چند چالش جدی داریم:

چگونه از یکپارچگی اطلاعات اطمینان حاصل کنیم؟
چگونه از ترتیب ثبت اطلاعات اطمینان حاصل کنیم؟
چگونه اطلاعات بین مشتری ها و کاربران تبادل شود؟

بلاک چین به معنی آن است که ما هر رکورد را بعنوان یک بلاک در نظر بگیریم. سپس اتصال این رکوردها یا بلاک ها یک زنجیره یا chain ایجاد می کند. آنگاه Block Chain ایجاد می شود. ساده تر بگوییم هر بلاک چین مثل یک جدول دیتابیس است که مجموعه ای از رکوردها را تشکیل داده اما با این تفاوت که رکوردهای قبلی بر رکوردهای بعدی اثر می گذارند. این به چه معنی است وچه لزومی دارد؟ توضیح می دهیم.
فرض کنید هر کورد جدول تراکنش مالی ما شامل موارد زیر باشد:

From:
To:
Amount:
Date:
یعنی اینکه هر رکورد نشان دهنده این است که در چه زمانی چه مقداری از چه کسی به چه کسی منتقل شده است. یک رکورد ساده که یک تراکنش را شرح میدهد.

ما داخل این جدول چند رکورد ساده وارد کردیم. طبق قاعده ای که تعریف کردیم (بجز اینکه به جای اسامی شناسه درج شود) همه این رکوردها در اختیار همه قرار می گیرد. یعنی اگر بخواهیم کمی درست تر این موضوع را بیان کنیم باید چیزی شبیه تصویر زیر شود:

در این مثال نام افراد هم به شناسه تغییر پیدا کرد. در مواردی که شفافیت در تراکنش ها موضوعیت دارد لازم به پنهان کردن نام افراد نیست. تصور کنید در کشور خیالی، پارلمانی وجود دارد که قصد دارد رای نمایندگان را بصورت شفاف ارائه کند! در این صورت رکوردهای رای نمایندگان نیازی به پنهان کردن اسامی ندارند.
قبل از هر چیز بیایید کمی دیتا را برای بهره برداری استانداردتر و جهانی تر کنیم. به نظر من بهتر است بجای Date از Timestamp استفاده کنیم.

زمان یونیکس (Unix Time) یا تایم استمپ (Time Stamp) چیست؟

در واقع تایم استمپ مقدار ثانیه های سپری شده از یکم ژانویه سال ۱۹۷۰ میلادی تا زمان کنونی است. به یکم ژانویه سال ۱۹۷۰ در اصطلاح زمان مبدأ (Epoch Time) گفته میشه. برای گزارش تایم استمپ زمان های پس از زمان مبدأ از یک عدد مثبت و برای گزارش تایم استمپ زمان های پیش از زمان مبدأ از یک عدد منفی استفاده میکنیم.
پس رکوردهای ما به شکل زیر تغییر خواهند کرد:

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

قبول و بسیار منطقی. اما حالا چگونه مطمئن شویم که هر شناسه که به هر رکورد نسبت داده شده است دقیقا با دیگر رکوردهای دیگر کاربران مطابقت دارد . در اینصورت باید همیشه همه رکوردها با دیگر کاربران چک شود که همه مقادیر ستون ها و شناسه با بقیه مطابقت داشته باشد. این هم راهی است اما وقتی میلیون ها رکورد داشته باشیم و هر کاربر تنها چند دقیقه از شبکه قطع شود باید از ابتدا همه رکوردها را مجدد مقایسه کند با اطلاعات دیگر کاربران که خب اصلا بهینه نیست.
برای رفع این مشکل از درهم سازی یا Hash در زنجیره بلاک استفاده می کنیم ….. ادامه دارد…

چه رتبه ای می‌دهید؟

میانگین ۰ / ۵. از مجموع ۰

اولین نفر باش

title sign
دانلود مقاله
چگونه با بلاکچین از بانک دزدی نکنیم- قسمت دوم
فرمت PDF
3 صفحه
حجم 1 مگابایت
دانلود مقاله
title sign
معرفی نویسنده
حسین خوشرفتار منفرد
مقالات
2 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
حسین خوشرفتار منفرد

R&D هستم ببخشید حسین خوش رفتار منفرد هستم. طراح و برنامه نویس در پلتفرم های دسکتاپ، وب و موبایل، عاشق R&D.

title sign
دیدگاه کاربران