بلاک چین چیست؟

فناوری بلاک چین چیست؟
در گذشته به طور سنتی، واسطه هایی وجود داشته اند که داده ها را کنترل می کردند. به عنوان مثال، فیس بوک واسطه بین کاربران و تبلیغ کنندگان است. بانک ها واسطه بین وام گیرندگان و وام دهندگان هستند.
مسئله در اینجا این است که داده ها توسط یک مقام مرکزی (مانند فیس بوک و یا بانک ها) کنترل می شود. بنابراین، آنها اطلاعات و قیمت ها را کنترل می کنند و همچنین از نظر فنی داده ها را در اختیار دارند. در این سناریو، تمام قدرت در اختیار یک واسطه است و کاربران باید به آنها اعتماد کنند. بلاکچین اختراع شد تا داده ها را غیرمتمرکز کند و نیاز به اعتماد کردن را از بین ببرد.
برای درک بهتر، اجازه دهید در مورد تورنت ها (این فناوری به کاربران اجازه میدهد تا فایلهای و مورد نظر خود را بدون وابستگی و نیاز به یک منبع ثابت دانلود کنند) صحبت کنیم. در تورنت ها هیچ فایلی متعلق به یک نفر نیست. این یک نوع معماری “همتا به همتا” است که در آن چندین نسخه از فایل در ایستگاه های کاربران متعدد وجود دارد. بنابراین، هیچ فردی آن فایل را کنترل نمی کند. این نوع معماری بسیار مقیاس پذیر و مقاوم در برابر خطا است.
بلاک چین اساساً از همین ایده الگو گرفته است: چه میشد اگر پایگاههای داده میتوانستند غیرمتمرکز شوند. این خیلی از مسائل را حل می کند از جمله:
- شما می توانید مستقیماً و بدون واسطه مانند بانک ها به وام گیرنده ها وام دهید و آن سودی که قرار است به بانک برسد، میتواند به صورت مستقیم به دست شما برسد.
- میتوانید مستقیماً با تبلیغکنندگان ارتباط بر قرار کنید و بدون مراجعه به فیسبوک و یا هر سایت دیگری، تبلیغات خود را که دوست دارید در سایت آن ها نمایش داده شود را به آنها بگویید و دیگر نیاز به پرداخت هزینه های بیشتر به سایت های واسط نباشد.
یکی دیگر از موارد استفاده از بلاکچین، استفاده از ارز دیجیتال است که توسط هیچ مرجع مرکزی کنترل نمی شود. به طور مشابه، ما می توانیم از بلاکچین برای قراردادهای دیجیتال هوشمند استفاده کنیم که در آن هیچ واسطه ای قرارداد را تأیید نمی کند.
انواع برنامه نویسی بلاک چین
برنامه نویسی معماری بلاک چین:
قبل از اینکه بلاکچین بتواند کار کند، ویژگی های مهمی که معماری و پروتکل های آن را تشکیل می دهند باید حل و فصل شوند. که این معماری و پروتکل باید با کد نوشته شود. به عنوان مثال، قبل از انتشار بلاکچین بیت کوین در سال 2009، قوانین و مقررات حاکم بر آن در زبان برنامه نویسی c++ کدنویسی شدند. این نوع کدنویسی عموماً با استفاده از زبانهایی مانند c و java که نزدیکتر به ماشین کار میکنند انجام میشود.
ساخت یک قرارداد هوشمند یا برنامه غیرمتمرکز (DApp):
در یک برنامه متمرکز، کد پشتیبان روی سرورهای متمرکز اجرا می شود، در حالی که یک برنامه غیرمتمرکز (Dapp) کد باطن خود را روی یک شبکه همتا به همتا غیرمتمرکز اجرا می کند. مانند یک برنامه متمرکز، یک برنامه غیرمتمرکز (DApp) می تواند کد فرانت اند خود را به هر زبان و رابط کاربری که می تواند با بک اند تماس برقرار کند نوشته شود.
ویژگی های بلاک چین
عدم تمرکز بلاک چین:
تصور کنید که یک شرکت مالک یک مزرعه سرور (مکانی که در آن تعداد زیادی سرور نگهداری می شود) با 10000 کامپیوتر است که از آن برای نگهداری تمام اطلاعات حساب مشتری های خود استفاده می شود. این شرکت دارای یک ساختمان است که تمامی این کامپیوترها را زیر یک سقف قرار داده و کنترل کامل هر یک از این کامپیوترها و تمامی اطلاعات موجود در آنها را در اختیار دارد. با این حال، این یک نقطه شکست را فراهم می کند. اگر برق آن مکان قطع شود چه اتفاقی می افتد؟ اگر اتصال اینترنت آن قطع شود چه؟ اگر در ساختمان آتش سوزی شود چه؟ اگر یک فرد خرابکار همه چیز را پاک کند چه؟ در هر صورت، داده ها از بین می روند یا خراب می شوند.
کاری که یک بلاک چین انجام می دهد این است که اجازه می دهد داده های نگهداری شده در آن پایگاه داده در بین چندین گره شبکه (در این مثال به کامپیوتر های دیگر گفته می شود) در مکان های مختلف پخش شوند. با این وجود اگر کسی بخواهد اطلاعاتی را در یک نمونه از پایگاه داده تغییر دهد، گرههای دیگر تغییر نخواهند کرد و در نتیجه از انجام یک بازیگر بد جلوگیری میشود. اگر یکی از کاربران رکورد تراکنش های بیت کوین را دستکاری کند، همه گره های دیگر به یکدیگر ارجاع می دهند و به راحتی گره را با اطلاعات نادرست مشخص می کنند. این سیستم به ایجاد نظم دقیق و شفاف از رویدادها کمک می کند. به این ترتیب، هیچ گره واحدی در شبکه نمی تواند اطلاعاتی را که در آن نگهداری می شود را تغییر دهد.
به همین دلیل، اطلاعات و تاریخچه (مانند تراکنش های یک ارز دیجیتال) برگشت ناپذیر است. چنین رکوردی میتواند فهرستی از تراکنشها (مانند ارزهای دیجیتال) باشد، اما این امکان برای یک بلاک چین نیز وجود دارد که انواع دیگری از اطلاعات مانند قراردادهای قانونی، هویتهای ایالتی یا موجودی محصول یک شرکت را در خود نگهداری کند.
شفافیت:
به دلیل ماهیت غیرمتمرکز بلاک چین، همه تراکنشها را میتوان با داشتن یک گره شخصی یا با استفاده از کاوشگرهای زنجیره بلوکی که به هر کسی اجازه میدهد تراکنشها را بهطور زنده ببیند، مشاهده کرد. هر گره دارای کپی مخصوص به خود از زنجیره است که با تایید و اضافه شدن بلوک های جدید به روز می شود. به زبان ساده:اگر بخواهید، میتوانید بیت کوین را هر کجا که میرود ردیابی کنید.
به عنوان مثال، صرافیها در گذشته هک شدهاند، جایی که کسانی که بیتکوین را در صرافی نگه میداشتند همه چیز خود را از دست دادند. در حالی که ممکن است هکر کاملاً ناشناس باشد، بیت کوین هایی که آنها استخراج کرده اند به راحتی قابل ردیابی هستند. اگر قرار بود بیتکوینهای سرقت شده در برخی از این هکها به جایی منتقل یا خرج شوند، مشخص میشد.
البته، سوابق ذخیره شده در بلاک چین بیت کوین (و همچنین اکثر موارد دیگر) رمزگذاری شده است. این بدان معنی است که فقط صاحب یک رکورد می تواند آن را رمزگشایی کند تا هویت خود را آشکار کند (با استفاده از یک جفت کلید عمومی-خصوصی). در نتیجه، کاربران بلاک چین می توانند با حفظ شفافیت ناشناس باقی بمانند.
آیا بلاک چین امن است؟
فناوری بلاک چین به چندین روش به امنیت و اعتماد غیرمتمرکز دست می یابد. برای شروع، بلوک های جدید همیشه به صورت خطی و زمانی ذخیره می شوند. به این معنی که آنها همیشه به “انتهای” بلاک چین اضافه می شوند. پس از اضافه شدن یک بلوک به انتهای زنجیره بلوک، بازگشت به عقب و تغییر محتویات آن بلاک بسیار دشوار است مگر اینکه اکثریت شبکه برای انجام این کار به اجماع رسیده باشند. این به این دلیل است که هر بلوک حاوی هش خاص خود به همراه هش بلوک قبل از خود ذکر شده است. کدهای هش توسط یک تابع ریاضی ایجاد می شوند که اطلاعات دیجیتال را به رشته ای از اعداد و حروف تبدیل می کند. اگر آن اطلاعات به هر نحوی ویرایش شود، کد هش نیز تغییر می کند.
بیایید بگوییم که یک هکر، که گرهای را در شبکه بلاک چین نیز اجرا میکند، میخواهد یک بلاک چین را تغییر دهد و ارز دیجیتال را از دیگران بدزدد. اگر بخواهند نسخه تکی خود را تغییر دهند، دیگر اطلاعاتش با نسخه کپی دیگران همخوانی ندارد. وقتی بقیه کپیهای خود را به یکدیگر ارجاع میدهند، میبینند که این نسخه از کپی با دیگران همخوانی ندارد و نسخه زنجیرهای آن هکر بهعنوان نامشروع کنار گذاشته میشود.
موفقیت در چنین هکی مستلزم آن است که هکر به طور همزمان 51 درصد یا بیشتر از نسخه های بلاک چین را کنترل کند و آن را تغییر دهد تا نسخه جدید به تأیید اکثریت و در نتیجه زنجیره جدید به زنجیره مورد توافق تبدیل شود. چنین حمله ای همچنین به مقدار زیادی پول و منابع نیاز دارد، زیرا آنها باید همه بلوک ها را دوباره انجام دهند.
با توجه به اندازه بسیاری از شبکه های ارزهای دیجیتال و سرعت رشد آنها، هزینه انجام چنین کاری احتمالا غیرممکن خواهد بود. این نه تنها بسیار گران خواهد بود، بلکه احتمالاً بی نتیجه نیز خواهد بود. انجام چنین کاری بدون توجه نخواهد بود، زیرا اعضای شبکه شاهد چنین تغییرات شدیدی در بلاک چین خواهند بود. سپس اعضای شبکه به سختی به نسخه جدیدی از زنجیره می روند که تحت تأثیر قرار نگرفته است. این امر باعث میشود که ارزش نسخه مورد حمله توکن کاهش پیدا کند و حمله در نهایت بیمعنی شود، زیرا بازیگر بد کنترل یک دارایی بیارزش را در اختیار دارد. اگر بازیگر بد به فورک جدید بیت کوین حمله کند، دوباره همین اتفاق می افتد. به این ترتیب ساختار به گونه ای است که مشارکت در شبکه به مراتب انگیزه اقتصادی بیشتری نسبت به حمله به آن دارد.
بیت کوین در مقابل بلاک چین
فن آوری بلاک چین برای اولین بار در سال 1991 توسط استوارت هابر و دبلیو اسکات استورنتتا، دو محققی که می خواستند سیستمی را پیاده سازی کنند که در آن مهرهای زمانی اسناد را نمی توان دستکاری کرد، مطرح شد. اما تقریباً دو دهه بعد، با راه اندازی بیت کوین در ژانویه 2009، بلاک چین اولین کاربرد واقعی خود را داشت.
پروتکل بیت کوین بر روی یک بلاک چین ساخته شده است. ساتوشی ناکاموتو، نام مستعار خالق بیت کوین، در یک مقاله تحقیقاتی در مورد معرفی ارز دیجیتال، از آن به عنوان «سیستم نقدی الکترونیکی جدید که کاملاً همتا به همتا و بدون شخص ثالث قابل اعتماد است» یاد کرد.
نکته کلیدی که در اینجا باید فهمید این است که بیت کوین صرفاً از بلاک چین به عنوان وسیله ای برای ثبت شفاف دفتر کل پرداخت ها استفاده می کند، اما بلاک چین، در تئوری، می تواند برای ثبت تغییرناپذیر هر تعداد نقطه داده استفاده شود. همانطور که در بالا مورد بحث قرار گرفت، این می تواند به شکل معاملات، رای در یک انتخابات، موجودی محصولات، شناسه های ایالتی، اسناد مربوط به خانه ها و موارد دیگر باشد.