Blockchain challenges and opportunities: a survey

Abstract: Blockchain has numerous benefits such as decentralisation,
persistency, anonymity and auditability. There is a wide spectrum of blockchain
applications ranging from cryptocurrency, financial services, risk management,
internet of things (IoT) to public and social services. Although a number
of studies focus on using the blockchain technology in various application
aspects, there is no comprehensive survey on the blockchain technology in
both technological and application perspectives. To fill this gap, we conduct a
comprehensive survey on the blockchain technology. In particular, this paper gives
the blockchain taxonomy, introduces typical blockchain consensus algorithms,
reviews blockchain applications and discusses technical challenges as well as
recent advances in tackling the challenges. Moreover, this paper also points out
the future directions in the blockchain technology.


چکیده:

 

blockchain مزایای متعددی از جمله عدم تمرکز زدایی، گمنامی، گمنامی و قابلیت اطمینان دارد.

طیف گسترده‌ای از کاربردهای blockchain اعم از ارزهای رمز نگاری شده، خدمات مالی، مدیریت ریسک، اینترنت اشیا (IoT)برای خدمات عمومی و اجتماعی وجود دارد.

اگرچه تعدادی از مطالعات بر استفاده از فن‌آوری blockchain در جنبه‌های مختلف کاربرد تمرکز دارند، هیچ تحقیقی جامع در مورد تکنولوژی blockchain وجود ندارد.

هر دو دیدگاه تکنولوژیکی و کاربردی را نشان می‌دهد.

برای پر کردن این خلا، یک بررسی جامع در مورد فن‌آوری blockchain انجام می‌دهیم.

به طور خاص، این مقاله طبقه‌بندی blockchain را ارایه می‌دهد، الگوریتم های blockchain را معرفی می‌کند، برنامه‌های blockchain را مرور می‌کند و چالش‌های تکنیکی را مورد بحث قرار می‌دهد.

 

پیشرفت‌های اخیر در مقابله با این چالش‌ها.

علاوه بر این، این مقاله به مسیرهای آینده در فن‌آوری blockchain اشاره می‌کند.

۱. مقدمه

اخیرا، واحد پول رمزنگاری توجه گسترده‌ای را از سوی صنعت و هم در دانشگاه به خود جلب کرده‌است.

Bitcoin که اغلب اولین پول رمزنگاری نامیده می‌شود، از موفقیت عظیمی برخوردار است و بازار سرمایه به ۱۰ میلیارد دلار در سال ۲۰۱۶ رسیده‌است (coindesk، ۲۰۱۶).

blockchain مکانیزم اصلی بیت کوین است.

blockchain اولین بار در سال ۲۰۰۸ مطرح شد و در سال ۲۰۰۹ اجرا شد (Nakamoto، ۲۰۰۸).

blockchain را می توان به عنوان یک دفتر عمومی در نظر گرفت که در آن تمام تراکنش های انجام‌شده در یک زنجیره از بلوک‌ها نگهداری می‌شوند.

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

 

با تکنولوژی blockchain، یک تراکنش می‌تواند در یک روش غیر متمرکز انجام شود. در نتیجه، blockchain می‌تواند به شدت هزینه را حفظ کرده و کارایی را بهبود بخشد.

اگر چه Bitcoin یکی از برنامه های کاربردی بسیار معروف blockchain است، blockchain می‌تواند در کاربردهای گوناگون بسیار فراتر از ارزهای دیجیتال هم اعمال شود.

از آنجا که اجازه می‌دهد پرداخت‌ها بدون هیچ بانکی یا واسطه ای، انجام شوند، blockchain می‌تواند در خدمات مالی مختلف مانند دارایی‌های دیجیتال، وجوه ارسالی و پرداخت آنلاین مورد استفاده قرار گیرد (پیترز و همکاران، ۲۰۱۵؛ Foroglou و Tsilidou، ۲۰۱۵).

 

علاوه بر این، فن‌آوری blockchain تبدیل به یکی از تکنولوژی‌های نسل بعدی سیستم‌های تعاملی اینترنت، مانند قراردادهای هوشمند (IoT و همکاران، ۲۰۱۳)، خدمات عمومی (Akins و ون، ۲۰۱۵)و خدمات امنیتی (نویز، ۲۰۱۶ a).

علی‌رغم این واقعیت که فن‌آوری blockchain پتانسیل بالایی برای ساخت سیستم‌های اینترنت آینده دارد، با یک سری چالش‌های فنی مواجه است.

اول اینکه، مقیاس پذیری یک نگرانی بزرگ است.

اندازه بلوک Bitcoin محدود به 1MB در حال حاضر و یک بلوک در هر 10 دقیقه استخراج می شود.

متعاقبا، شبکه Bitcoin به نرخ ۷ تراکنش در ثانیه محدود می‌شود، که قادر به معامله با تجارت با فرکانس بالا نیست.

با این حال، بلوک‌های بزرگ‌تر به معنی فضای ذخیره بزرگ‌تر و انتشار کندتر در شبکه هستند.

این امر منجر به متمرکز سازی تدریجی می‌شود چرا که کاربران می‌خواهند چنین blockchain بزرگ را حفظ کنند. بنابراین مبادله بین اندازه بلوک و امنیت به یک چالش تبدیل شده‌است.

 دوم اینکه ثابت شده‌است که ماینرها می‌توانند به درآمد بیشتری نسبت به سهم عادلانه خود از طریق استراتژی استخراج شفاف برسند.

(Eyal و Sirer، ۲۰۱۴).

ماینرها برای کسب درآمد بیشتر در آینده، بلوک‌های استخراج شده خود را مخفی می‌کنند.

به این ترتیب، شاخه‌ها می‌توانند به طور مکرر اتفاق بیفتند؛ این مانع توسعه blockchain می‌شود.

از این رو باید برای حل این مشکل راه‌حل‌هایی وجود داشته باشد. علاوه بر این، نشان داده شده‌است که نشت حریم خصوصی نیز زمانی اتفاق می‌افتد که کاربران تنها تراکنش ها را انجام دهند.

با کلید عمومی و کلید خصوصی آن‌ها (Biryukov و همکاران، ۲۰۱۴). آدرس IP واقعی کاربر می‌تواند ردیابی شود.

علاوه بر این، الگوریتم های موجود مانند گواه اثبات کار (pow)یا گواه اثبات سهام (pos)با مشکلات جدی روبرو هستند. برای مثال، pow انرژی برق زیادی را هدر می‌دهد در حالی که پدیده‌ pos ثروتمندان می‌توانند غنی‌تر شوند . این چالش‌ها باید در توسعه تکنولوژی blockchain مورد بررسی قرار گیرند.

 

(PoW که در آن به ماینرها برای حل پازل ریاضی با هدف تایید تراکنش‌ها و ایجاد بلاک جدید جایزه داده می‌شد، در PoS این خالق بلوک جدید است که بسته به میزان سرمایه‌اش یک راه قطعی انتخاب می‌کند و این سرمایه را سهام یا Stake می‌نامد.)

 

مطالب زیادی در مورد blockchain از منابع مختلف مانند بلاگ ها، ویکی ها، پست های فروم، کنفرانس و مقالات ژورنال وجود دارد.

Tschorsch و Scheuermann (۲۰۱۶)یک بررسی فنی در مورد ارزهای دیجیتال غیر متمرکز از جمله Bitcoin انجام دادند. در مقایسه با (Tschorsch و Scheuermann، ۲۰۱۶)، مقاله ما به جای ارز دیجیتال بر روی فن‌آوری blockchain متمرکز است. موسسه تحقیقات Nomura گزارشی فنی درباره blockchain داد (NRI، ۲۰۱۵).

در مقابل (NRI، ۲۰۱۵)، مقاله ما بر مطالعات blockchain در زمینه های گوناگون از جمله پیشرفت‌های اخیر و رو به آینده تمرکز دارد.

این مقاله یک نسخه طولانی از اثر منتشر شده در ژنگ و همکاران (۲۰۱۷) است. توسعه‌های اساسی در مورد جزییات فنی blockchain، الگوریتم های اجماع نظر، کاربردهای blockchains، چالش‌های تحقیقاتی و دستورها آینده.

بقیه این مقاله به شرح زیر سازماندهی شده‌است.

بخش ۲ معماری blockchain را معرفی می‌کند.

بخش ۳ الگوریتم های اجماع معمول مورد استفاده در blockchain را نشان می‌دهد.

بخش ۴ چندین کاربرد blockchain را معرفی می‌کند.

بخش ۵ چالش‌های فنی و پیشرفت‌های اخیر در این حوزه را به صورت خلاصه بیان می‌کند.

بخش ۶ برخی از جهات احتمالی آینده را مورد بحث قرار می‌دهد

بخش ۷ این مقاله را نتیجه‌گیری می‌کند.

 

 

2- معماری blockchain :

 

 blockchain یک توالی از بلوک‌ها است که یک فهرست کامل از سوابق تراکنش مثل دفتر عمومی معمولی را در دست دارد (لی کو chuen،، ۲۰۱۵).

شکل ۱ نمونه‌ای از یک blockchain را نشان می‌دهد.

هر بلوک به بلوک قبلی از طریق یک مرجع اشاره می‌کند که در اصل مقدار هش بلوک قبلی به نام بلوک والد است.

شایان‌ذکر است که بلوک‌ها دایی (فرزندان بلوک block)نیز در ethereum blockchain (Buterin، ۲۰۱۴)نگهداری می‌شوند.

اولین بلوک یک blockchain، بلاک genesis نامیده می‌شود.

سپس ساختار بلوکی داده‌ها را در بخش ۲-۱ معرفی می‌کند که یک امضای دیجیتالی است و همچنین ویژگی‌های کلیدی را در بخش ۲-۳ خلاصه می‌کند.

طبقه‌بندی blockchain در بخش ۲-۴ نشان داده می‌شود.

 

شکل ۱ مثالی از blockchain که متشکل از یک رشته پیوسته‌است (نسخه آنلاین برای رنگ‌ها را ببینید)

 

2-1 : بلاک:

یک بلوک از سرآمد بلوک و بدنه بلوک همانطور که در شکل ۲ نشان‌داده شده‌است، تشکیل شده‌است. به طور خاص، عنوان بلاک شامل موارد زیر است:

نسخه بلاک: نشان می‌دهد که کدام مجموعه قوانین اعتبار سنجی را دنبال می‌کند.

درهم شکستن بلوک والد: یک مقدار هش ۲۵۶ بیتی که به بلوک قبل اشاره می‌کند.

درهم شکستن ریشه درخت مرکل: مقدار هش کامل تمام تراکنش ها در بلوک را نشان میدهد.

مهر زمان: زمان جاری به عنوان ثانیه از ۱۹۷۰ - ۰۱ - ۰۱: ۰۰ گرینویچ

nBits: هدف هش کردن فعلی در یک فرم جمع و جور.

غیر مستقیم: یک فیلد 4 بایت که معمولا با 0 آغاز می شود و برای هر هش افزایش می یابد (جزییات در بخش ۳ توضیح داده خواهد شد).

 

بدنه بلوک از یک شمارنده معامله و تراکنش تشکیل شده‌است.

حداکثر تعداد تراکنش هایی که یک بلوک می‌تواند شامل اندازه بلاک و اندازه هر تراکنش باشد. blockchain از یک مکانیزم رمزنگاری نامتقارن برای اعتبار سنجی تراکنش ها استفاده می‌کند (NRI، ۲۰۱۵).

یک امضای دیجیتالی مبتنی بر رمزنگاری نامتقارن در یک محیط غیرقابل‌اعتماد مورد استفاده قرار می‌گیرد.

ما به طور خلاصه امضای دیجیتالی را به طور خلاصه شرح می‌دهیم.

 

شکل ۲: ساختار بلوک (مراجعه به نسخه آنلاین برای رنگ‌ها)

 

 

 

۲-۲: امضای دیجیتالی

هر کاربر یک جفت کلید خصوصی و کلید عمومی دارد.

کلید خصوصی برای امضای معاملات مورد استفاده قرار می‌گیرد.

تراکنش های امضا شده دیجیتالی در سراسر شبکه پخش می‌شوند و سپس توسط کلیدهای عمومی قابل‌دستیابی هستند که برای همه در شبکه قابل‌مشاهده هستند.

شکل ۳ نمونه‌ای از امضای دیجیتالی مورد استفاده در blockchain را نشان می‌دهد.

امضای دیجیتالی معمولی با دو مرحله انجام می‌شود: فاز امضای و فاز تایید.

شکل ۳ را به عنوان مثال در نظر بگیرید.

زمانی که یک کاربر می‌خواهد تراکنش را امضا کند، ابتدا مقدار هش برگرفته از تراکنش ایجاد می‌کند.

سپس این مقدار هش را با استفاده از کلید خصوصی خود مورد استفاده قرار می‌دهد و برای یک کاربر دیگر به نام باب رمز شده را با داده‌های اصلی می‌فرستد.

باب تراکنش های دریافت‌شده را از طریق مقایسه بین درهم سازی decrypted (با استفاده از کلید عمومی الیس)و مقدار هش به‌دست‌آمده از داده‌های دریافتی توسط همان تابع درهم ساز آلیس تایید می‌کند.

الگوریتم های امضا دیجیتالی معمولی که در blockchains بکار می‌روند عبارتند از الگوریتم امضای دیجیتالی منحنی بیضوی (ECDSA)(Johnson et al.، ۲۰۰۱).

 

شکل ۳ امضای دیجیتال مورد استفاده در blockchain (نسخه آنلاین برای رنگ‌ها را ببینید)

 

 

 

۲-۳ : ویژگی‌های کلیدی blockchain

 

بطور خلاصه، blockchain ویژگی‌های کلیدی زیر را دنبال می‌کند.

 

عدم متمرکز سازی:

 

در سیستم‌های تراکنش های متمرکز متداول، هر تراکنش

باید از طریق آژانس اعتماد مرکزی تایید شود (به عنوان مثال، بانک مرکزی)به ناچار منجر به هزینه و تنگناهای عملکرد در سرورهای مرکزی می‌شود.

به طریق دیگر، یک معامله در شبکه blockchain می‌تواند بین هر دو همتا (P۲P)بدون تایید هویت توسط آژانس مرکزی انجام شود.

به این ترتیب، blockchain می‌تواند به طور قابل‌توجهی هزینه‌های کارگزار (از جمله هزینه توسعه و هزینه عملیات)را کاهش داده و تنگناهای عملکرد را در سرور مرکزی کاهش دهد.

 

 

 

پایداری:.

از آنجا که هر یک از تراکنش ها در سرتاسر شبکه نیاز به تایید و ثبت در بلوک‌های توزیع شده در کل شبکه دارند، دستکاری آن تقریبا غیر ممکن است.

علاوه بر این، هر بلوک پخش شده تایید اعتبار می‌شود.

سایر گره‌ها و تراکنش ها بررسی خواهند شد.

بنابراین جعل سازی می‌تواند به آسانی شناسایی شود.

 

گمنام بودن:.

هر کاربر می‌تواند با شبکه blockchain با یک آدرس تولید شده تعامل داشته باشد.

علاوه بر این، یک کاربر می‌تواند آدرس‌های زیادی برای اجتناب از افشا هویت ایجاد کند.

دیگر هیچ حزب مرکزی اطلاعات خصوصی کاربران را حفظ نمی‌کند.

این مکانیسم مقدار مشخصی از حریم خصوصی را در معاملات شامل در blockchain حفظ می‌کند.

توجه داشته باشید که blockchain نمی‌تواند حفظ حریم خصوصی کامل را ناشی از محدودیت درونی (جزییات مربوط به بخش ۵)تضمین کند.

 

قابلیت اطمینان:.

از آنجا که هر یک از تراکنش ها در blockchain معتبر است و با استفاده از یک کلید عمومی، کاربران می‌توانند به راحتی اسناد قبلی را از طریق دسترسی به هر گره در شبکه توزیع، تایید و ردیابی کنند. در Bitcoin blockchain، هر تراکنش می‌تواند به صورت تکراری به تراکنش های قبلی پی‌گیری شود.

آن قابلیت پی‌گیری و شفافیت داده‌های ذخیره‌شده در blockchain را بهبود می‌بخشد.

 

۲-۴ طبقه‌بندی سیستم‌های blockchain

 

سیستم‌های blockchain کنونی را می توان به سه نوع طبقه‌بندی کرد: blockchain عمومی، blockchain خصوصی و انجمن blockchain  .ما این سه نوع blockchain را از دیدگاه‌های مختلف مقایسه می‌کنیم. این مقایسه در جدول ۱ آورده شده‌است.

 

*تصمیم با اجماع. در blockchain عمومی، هر گره می‌تواند در فرآیند اجماع شرکت کند. و تنها یک مجموعه انتخابی از گره‌ها مسئول تایید اعتبار بلوک در انجمن blockchain می‌باشند. در مورد زنجیر خصوصی، به طور کامل توسط یک فرد کنترل می‌شود.

سازمانی که می‌تواند اجماع نهایی را تعیین کند.

 

*اجازه خواندن. معاملات در مکان‌های عمومی برای عموم قابل‌رویت هستند در حالی که اجازه خواندن به یک blockchain خصوصی یا انجمن blockchain بستگی دارد. انجمن یا سازمان می‌تواند تصمیم بگیرد که آیا اطلاعات ذخیره‌شده دولتی هستند یا خیر یا محدود شود.

 

*غیر قابل تغییر بودن:. از آنجا که تراکنش ها در گره‌های مختلف شبکه توزیع شده‌اند، دستکاری در blockchain عمومی تقریبا غیر ممکن است. با این حال، اگر اکثریت انجمن یا سازمان حاکم بخواهد در blockchain مداخله کند، انجمن blockchain یا blockchain خصوصی می‌تواند لغو یا دستکاری شود.

 

*کارایی. زمان زیادی طول می‌کشد تا تراکنش ها و بلوک‌ها را گسترش دهیم چون تعداد زیادی از گره‌ها در شبکه blockchain عمومی وجود دارند. با در نظر گرفتن امنیت شبکه، محدودیت‌هایی در مورد blockchain عمومی بسیار شدیدتر خواهد بود. در نتیجه، خروجی معامله محدود بوده و کمون بالا است. با اعتبارسنجی های کم‌تر، انجمن blockchain و blockchain خصوصی می‌تواند کارآمدتر باشد.

 

*متمرکز. تفاوت اصلی بین این سه نوع blockchain این است که blockchain عمومی غیر متمرکز است، انجمن blockchain تا حدی متمرکز است و blockchain خصوصی به طور کامل متمرکز است چرا که توسط یک گروه واحد کنترل می‌شود.

 

*فرآیند اجماع. هر کسی در دنیا می‌تواند به روند اجماع عمومی blockchain عمومی بپیوندد. متفاوت از blockchain عمومی، هر دو انجمن blockchain و blockchain خصوصی مجاز هستند. یک گره نیاز به تایید برای پیوستن به فرایند اجماع در انجمن یا Blockchain خصوصی میباشد.

 

 

از آنجایی که Blockchain عمومی برای جهان باز است، می تواند بسیاری از کاربران را جذب کند. جوامع نیز خیلی فعال هستند. بسیاری blockchain های عمومی روز به روز ظاهر میشوند.

.

در مورد blockchain انجمنی، می توان آن را برای بسیاری از کاربردهای تجاری اعمال کرد.

 

Ethereum همچنین ابزارهایی برای ساخت ساخت بلاک چین های انجمنی فراهم کرده‌است.

در مورد blockchain خصوصی، هنوز بسیاری از شرکت‌ها آن را برای کارایی و قابل اعتماد بودن اجرا می‌کنند.

 

 

 

 

جدول ۱ مقایسه‌ای بین blockchain عمومی، انجمن blockchain و blockchain خصوصی

 

 

۳- الگوریتم اجماع عمومی:

 

در blockchain، چگونگی رسیدن به اجماع میان گره‌های غیرقابل‌اعتماد یک تحول است.

(BG و همکاران، ۱۹۸۲).

در مساله بیل گیتس، گروهی از ژنرال‌ها که بخشی از ارتش روم شرقی را فرماندهی می‌کنند، شهر را محاصره می‌کنند.

اگر تنها بخشی از ژنرال‌ها به شهر حمله کنند، این حمله ناموفق خواهد بود. ژنرال‌ها باید برای رسیدن به توافق در مورد این حمله، ارتباط برقرار کنند.

با این حال ممکن است در ژنرال‌ها خائن وجود داشته باشد.

خائن می‌تواند تصمیمات مختلفی را برای ژنرال‌های مختلف بفرستد.

این یک محیط trustless است.

چگونگی رسیدن به اجماع در چنین محیطی یک چالش است.

همچنین یک چالش برای blockchain به عنوان شبکه blockchain توزیع شده‌است. در blockchain، هیچ گره مرکزی وجود ندارد که دفاتر کل را در گره‌های توزیع‌شده تضمین کند. گره‌ها باید به گره‌های دیگر اعتماد نکنند.

بنابراین، برخی از پروتکل‌ها برای اطمینان از اینکه دفاتر کل در گره‌های مختلف سازگار هستند، مورد نیاز است.

 

3-1 رویکردهای به اجماع نظر

اثبات کار یک استراتژی اجماع است که در شبکه Bitcoin بکار می‌رود (pow، ۲۰۰۸).

pow به یک فرآیند محاسباتی پیچیده در تایید هویت نیاز دارد.

در pow، هر گره از شبکه محاسبه مقدار هش هدر بلوک دائما در حال تغییر است

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

ارزش داده‌شده.

در شبکه غیر متمرکز، تمام شرکت کنندگان باید ارزش هش سازی را به طور مداوم با استفاده از nonces متفاوت تا زمانی که هدف به دست آید محاسبه کنند.

وقتی یک گره مقدار مربوطه را دریافت می‌کند، همه گره‌های دیگر باید به طور متقابل صحت این مقدار را تایید کنند.

پس از آن، معاملات در بلوک جدید در صورت کلاهبرداری مورد تایید قرار خواهند گرفت. سپس، مجموعه

از معاملات مورد استفاده برای محاسبات تایید شده‌است.

که با یک بلوک جدید در blockchain نشان داده می‌شود.

گره هایی که هش ها را محاسبه می کنند معدنچیان نامیده می شوند و روش POW معدن نامیده می شود.

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

در شبکه غیر متمرکز، بلوک‌های معتبر ممکن است به طور همزمان تولید شوند.

چندین گره هم در همان زمان مناسب‌ترین علامت را پیدا می‌کنند.

در نتیجه، شاخه‌ها (یا چنگال‌ها)را می توان همانطور که در شکل ۴ نشان‌داده‌شده، تولید نمود.

با این حال، بعید است که دو چنگال رقابتی به طور همزمان بلوک بعدی را ایجاد کنند. InPOWprotocol، زنجیری که پس از آن طولانی‌تر می‌شود، به عنوان مرجع معتبر شناخته می‌شود. شکل ۴ را به عنوان مثال در نظر بگیرید.

دو چنگال را در نظر بگیرید که توسط بلوک‌های معتبر simultaneously و G۱۱ ایجاد شده‌اند. معدنچیان در هر دو چنگال کار می‌کنند و یک بلوک تازه‌تاسیس شده را به یکی از آن‌ها اضافه می‌کنند. هنگامی که یک بلوک جدید (say ۱۲)به بلوک B۱۱ اضافه می‌شود، معدنچیان در G۱۱ fork - G۱۲ به ۱۲. ۱۲ تبدیل خواهند شد. قطع رابطه با چنگک در چنگال

G۱۱ - G۱۲ به یک بلوک یتیم تبدیل می‌شود زیرا دیگر افزایش نیافته است.

به طور کلی، بعد از اینکه تعدادی از بلوک‌های جدید به blockchain اضافه می‌شوند، معکوس کردن blockchain برای دستکاری کردن تراکنش ها تقریبا غیر ممکن است. در Bitcoin blockchain، هنگامی که تقریبا ۶ بلوک تولید می‌شوند، blockchain مربوطه معتبر است (به عنوان مثال، زنجیره بلوک‌ها، ۱۲. ۱۲، B۱۳، B۱۴، B۱۵ و B۱۶ در شکل ۴).

فاصله بلوک به تنظیمات پارامتر مختلف بستگی دارد. بلوک Bitcoin در هر ۱۰ دقیقه تولید می‌شود در حالی که بلوک Ethereum تقریبا در هر ۱۷ ثانیه تولید می‌شود.

 

 

 

 

شکل ۴ - سناریوی شاخه‌های blockchain (شاخه بلندتر)به عنوان عامل اصلی پذیرفته خواهد شد

زمانی که فرد کوتاه‌تر خالی می‌شود)(نسخه آنلاین برای رنگ‌ها را ببینید)

 

 

معدنچیان باید بسیاری از محاسبات کامپیوتری را در pow انجام دهند، با این حال این کارها خیلی وقت تلف می‌کنند.

منابع.

برای کاهش تلفات، برخی از پروتکل‌های pow که در آن‌ها کار می‌کند می‌تواند some داشته باشد.

طراحی شده‌اند. به عنوان مثال، Primecoin (شاه، ۲۰۱۳)جستجوهای ویژه را انجام می‌دهد

زنجیره‌های number که می‌توانند برای تحقیقات ریاضی مورد استفاده قرار گیرند.

به جای سوزاندن برق برای استخراج بلوک اسرای جنگی، اثبات سوختگی (P۴Titan، ۲۰۱۴)از معدنچیان می‌خواهد تا سکه‌های خود را ارسال کنند تا به آن‌ها آدرس دهند که در آن‌ها نمی توان آن‌ها را نجات داد. با سوزاندن سکه‌ها، معدنچیان می‌گیرند

آن‌ها به احتمال زیاد به استخراج بلوک‌های معدنی نیاز ندارند و آن‌ها به hardwares قوی به عنوان اسرای جنگی نیاز ندارند.

اثبات سهم (pos)یک جایگزین برای صرفه‌جویی در انرژی است. به جای درخواست کاربران

برای پیدا کردن یک nonce در یک فضای نامحدود، POS به افراد نیاز دارد تا مالکیت سهام را ثابت کنند.

مقدار پول رایج به این دلیل که اعتقاد بر این است که مردم با پول بیشتر کم‌تر خواهند بود.

به احتمال زیاد به شبکه حمله می‌کنند.

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

در نتیجه، بسیاری از راه‌حل‌ها با ترکیبی از اندازه سهام پیشنهاد می‌شوند تا تصمیم بگیرند که کدام یک بلوک بعدی را بسازند. به طور خاص، (Blackcoin Vasin، ۲۰۱۴)از randomisation برای پیش‌بینی ژنراتور بعدی استفاده می‌کند.

از فرمولی استفاده می‌کند که به دنبال پایین‌ترین مقدار هش در ترکیب با blockchain است.

اندازه سهام.

Peercoin (کینگ و Nadal، ۲۰۱۲)طرفدار انتخاب مبتنی بر سن سکه هستند.

در Peercoin، مجموعه‌های بزرگ‌تر و بزرگ‌تر از سکه‌ها احتمال بیشتری برای استخراج بلوک بعد دارند.

در مقایسه با pow، pos انرژی بیشتری را ذخیره می‌کند و موثرتر است.

متاسفانه، همانطور که هزینه معدن‌کاری تقریبا صفر است، حملات ممکن است نتیجه داشته باشند. بسیاری از blockchains در ابتدا pow را می‌پذیرند و به تدریج به pos تبدیل می‌شوند.

به عنوان مثال، Ethereum قصد دارد از Ethash (نوعی of)(Wood، ۲۰۱۴)تا Casper (نوعی blockchain)حرکت کند (Zamfir، ۲۰۱۵).

برای ترکیب مزایای اسرا و POS، اثبات فعالیت (Bentov و همکاران، ۲۰۱۴)

پیشنهاد کرد.

در اثبات فعالیت، یک بلوک مین‌گذاری‌شده، باید توسط N معدنچی امضا شود تا معتبر باشد.

به این ترتیب اگر صاحب ۵۰ % از تمام سکه‌ها وجود داشته باشد، او نمی‌تواند آفرینش را کنترل کند

بلوک‌های جدید را در اختیار داشت.

برای مثال، گاهی اوقات خطر می‌تواند چیزهای دیگری باشد، به عنوان مثال، در اثبات ظرفیت (burstcoin، ۲۰۱۴)، معدنچیان باید فضای دیسک سخت بزرگ را برای استخراج بلوک اختصاص دهند.

 

تحمل خطای بیزانسی (PBFT)یک الگوریتم تکثیر است که byzantine را تحمل می‌کند.

faults Miguel) و باربارا، ۱۹۹۹).

Hyperledger اساس (hyperledger، ۲۰۱۵)از blockchain به عنوان الگوریتم اجماع آن استفاده می‌کند، زیرا PBFT می‌تواند با نسخه‌های جعلی ۱ / ۳ malicious byzantine کار کند.

یک بلوک جدید در یک دور تعیین می‌شود.

در هر راند، یک انتخاب اولیه مطابق با برخی از قواعد انتخاب می‌شود. و مسئول صدور دستور معامله است. کل فرآیند را می توان به سه بخش تقسیم کرد: پیش آماده‌شده، آماده‌شده و متعهد.

در هر فاز یک نود وارد فاز بعدی خواهد شد اگر از بیش از ۲ / ۳ از همه گره‌ها آرای دریافت کند. بنابراین PBFT نیازمند این است که هر گره به شبکه شناخته شود. مانند PBFT، پروتکل توافق عام (SCP)

(Mazieres، ۲۰۱۵)نیز یک پروتکل توافق بیزانسی محسوب می‌شود.

هیچ روش hashing در PBFT وجود ندارد.

در PBFT، هر گره باید گره‌های دیگر را جستجو کند در حالی که SCP به شرکت کنندگان این حق را می‌دهد.

برای اینکه کدام یک از شرکت‌کنندگان دیگر باور داشته باشند.

 

در dBFT، برخی از گره‌های حرفه‌ای به جای تمام گره‌ها، به ثبت تراکنش ها رای داده‌اند.

 

تخصیص سهم سهم (DPOS).

همانند POS، معدنچیان اولویت خود را برای تولید بلوک‌ها با توجه به سهم خود دریافت می‌کنند.

تفاوت اصلی بین POS و DPOS این است که POS یک دموکراسی مستقیم است، در حالی که DPOS نماینده دموکراتیک است.

سهامداران نماینده خود را برای تولید و اعتبار یک بلوک انتخاب می‌کنند.

با استفاده از گره‌های کمتری برای اعتبار سنجی بلوک، می‌توان به سرعت تایید کرد و تراکنش ها به سرعت تایید شد.

در این میان پارامترهای شبکه مانند اندازه بلاک و فواصل زمانی می‌توانند

تنظیم شود.

علاوه بر این، کاربران نیازی به نگرانی در مورد نمایندگان نادرست ندارند، زیرا نمایندگان می‌توانند به آسانی رای بدهند.

DPOS قبلا اجرا شده‌است و ستون فقرات Bitshares (bitshares، n. د).

Ripple (شوارتز و همکاران، ۲۰۱۴)یک الگوریتم اجماع است که به طور جمعی از آن استفاده می‌کند

subnetworks در شبکه بزرگ‌تر.

در شبکه، نودها به دو نوع تقسیم می‌شوند: یک سرور برای فرآیند اجماع مشارکت و مشتری برای تنها انتقال وجوه. در مقابل این گره‌های PBFT باید از هر گره در شبکه بپرسند، هر سرور Ripple یک فهرست منحصر به فرد (UNL)برای پرس و جو دارد. UNL برای کارگزار اهمیت دارد.

هنگام تعیین اینکه آیا یک تراکنش را در دفترکل ثبت کنید، سرور نود ها را در UNL پرس و جو می‌کند. اگر توافقات دریافت‌شده به ۸۰ % برسد، تراکنش ها در دفترکل ثبت خواهند شد.

برای یک‌گره، دفتر تا زمانی که درصد گره‌های معیوب در UNL کم‌تر از ۲۰ % باشد، صحیح باقی خواهد ماند.

Tendermint (تکواندو ۲۰۱۴)یک الگوریتم consensus byzantine است.

یک بلوک جدید در یک دور تعیین می‌شود.

یک پیشنهادکننده برای پخش یک بلوک تایید نشده در این دور انتخاب خواهد شد. بنابراین همه گره‌ها باید برای انتخاب پیشنهادکننده شناخته شوند. آن می‌تواند به سه مرحله تقسیم شود:

 

قدم به قدم. Validators انتخاب کنید که آیا پخش برنامه را برای پیشنهادی پخش کنید یا خیر

بلوک.

قدم به قدم. اگر گره بیش از ۲ / ۲ از prevotes را بر روی پیشنهاد دریافت کرده باشد

بلوک، یک precommit برای آن بلوک پخش می‌کند.

اگر گره ۲ / ۳ از precommits را دریافت کرده باشد، وارد مرحله ارتکاب جرم می‌شود.

Commit. گره شناسه بلاک را تایید می‌کند و یک تعهد برای آن بلوک پخش می‌کند.

اگر گره ۲ / ۳ از blockchain را دریافت کرده باشد، بلوک را می‌پذیرد.   

 

این فرآیند کاملا شبیه به PBFT است، اما گره‌های Tendermint باید سکه‌های خود را قفل کنند تا تبدیل به validators شوند. زمانی که a نادرست یافت می‌شود، مجازات می‌شود.

 

۳-۲ مقایسه الگوریتم جمعی

الگوریتم های اجماع مختلف مزایا و معایب متفاوتی دارند.

جدول ۲ مقایسه‌ای بین الگوریتم های اجماع مختلف نشان می‌دهد و ما از ویژگی‌های ارایه‌شده توسط آن‌ها استفاده می‌کنیم.

(Vukolic، ۲۰۱۵).

 

 

مدیریت هویت گره.

PBFT باید هویت هر معدنچی را به منظور انتخاب یک انتخاب در هر راند تشخیص دهد، در حالی که Tendermint نیازمند دانستن blockchain به منظور انتخاب پیشنهادکننده در هر دور است. برای pow، pos، DPOS و Ripple، گره‌ها می‌توانند آزادانه به شبکه بپیوندند.

صرفه‌جویی در انرژی.

در pow، معدنچیان سرآمد بلوک را به طور مداوم درهم شکستند تا به مقدار هدف برسند.

در نتیجه، مقدار برق مورد نیاز برای فرآیند به مقیاس عظیمی رسیده‌است. همانطور که برای pos و DPOS، معدنچیان هنوز مجبور هستند عنوان بلوک را برای جستجوی مقدار هدف درهم بشکنند اما این کار تا حد زیادی کاهش یافت چون فضای جستجو برای محدود شدن طراحی شده‌است.

مانند for، Ripple و Tendermint، هیچ معدنی در فرآیند اجماع وجود ندارد.

بنابراین باعث صرفه‌جویی در انرژی می‌شود.

 

قدرت tolerated دشمن.

به طور کلی ۵۱ % از قدرت هش به عنوان آستانه برای دستیابی به کنترل شبکه در نظر گرفته می‌شود.

اما استراتژی معدن‌کاری خودخواهانه (Eyal و Sirer، ۲۰۱۴)در سیستم‌های pow می‌تواند به معدنچیان کمک کند تا درآمد بیشتری با تنها ۲۵ % از قدرت درهم سازی بدست آورند.

PBFT و Tendermint برای رسیدگی به ۱ / ۳ طراحی شده‌اند.

گره‌های معیوب.

ثابت شده‌است که در صورتی که گره‌های معیوب در a کم‌تر از ۲۰ % باشد، Ripple صحیح است.

مثال.

Bitcoin بر پایه pow است در حالی که Peercoin یک cryptocurrency همتا به همتا جدید است.

علاوه بر این، Hyperledger اساس از PBFT برای رسیدن به اجماع استفاده می‌کند.

Bitshares، یک پلت فرم قرارداد هوشمند، DPOS را به عنوان الگوریتم اجماع آن‌ها اتخاذ می‌کند.

Ripple پروتکل Ripple را پیاده‌سازی می‌کند در حالی که Tendermint پروتکل Tendermint را ذخیره می‌کند.

 

PBFT و Tendermint پروتکل‌های permissioned هستند.

انتظار می‌رود که هویت گره به کل شبکه شناخته شود، بنابراین آن‌ها ممکن است در حالت تجاری به جای عموم مورد استفاده قرار گیرند. pow و pos برای blockchain عمومی مناسب هستند.

کنسرسیوم یا blockchain خصوصی ممکن است برای PBFT، Tendermint، DPOS و Ripple اولویت داشته باشد.

 

جدول ۲ الگوریتم های اجماع معمول جدول ۲

 

۳-۳ پیشرفت در الگوریتم های اجماع

یک الگوریتم اجماع خوب به معنی کارایی، ایمنی و راحتی است.

الگوریتم‌های رایج عمومی رایج هنوز کمبود زیادی دارند.

الگوریتم های اجماع جدید با هدف حل برخی مشکلات خاص  ابداع شده‌اند.

ایده اصلی محدود ساختن مسدود سازی بلوکی و تایید معاملات است.

سرعت اجماع را می توان به میزان قابل‌توجهی افزایش داد.

علاوه بر این، کرافت (کرافت، کرافت و کرافت، یک روش اجماع جدید را پیشنهاد کردند تا اطمینان حاصل شود که یک بلوک با سرعت نسبتا ثابتی ایجاد می‌شود.

مشخص شده‌است که میزان تولید بلوک‌های مرتفع امنیت Bitcoin را به خطر می‌اندازد.

بنابراین قانون انتخاب زنجیره Sub "Heaviest - Observed" (GHOST و زوهر، ۲۰۱۳)برای حل این مشکل پیشنهاد شده‌است.

به جای طولانی‌ترین الگوی انشعاب، GHOST هایی را که andminers برای دنبال کردن انتخاب می‌کنند انتخاب می‌کنند.

 (Chepurnoy و همکاران، ۲۰۱۶)یک اجماع نظر سنجی جدید را پیشنهاد کردند که در آن هر کسی که نمونه‌های غیر تعاملی blockchain را برای عکس‌های حالت قبلی فراهم می‌کند، موافقت می‌شود که بلوک را تولید کند.

در چنین پروتکلی، معدنچیان فقط باید headers قدیمی را به جای بلوک‌های کامل ذخیره کنند.

 

 

۴- کاربردهای blockchain

کاربردهای متنوعی از تکنولوژی blockchain وجود دارد.

ما تقریبا برنامه های کاربردی Blockchain را در بخش 4-1، IoT در بخش 4-2، خدمات عمومی و اجتماعی در بخش 4-3، سیستم اعتباری در بخش 4-4 و امنیت و حریم خصوصی در بخش 4-5 طبقه بندی می کنیم.

 

 

 

شکل 5 :پنج نماینده دامنه های کاربردی بلوچین را نشان می دهد.

 

 

 

۴-۱ امور مالی

خدمات مالی. وضعیت اضطراری سیستم‌های blockchain مانندBitcoin ، و (hyperledger، ۲۰۱۵)تاثیر زیادی بر خدمات مالی و تجاری سنتی داشته‌است. پیترز و همکاران

(پیتر و Panayi، ۲۰۱۵)بحث و تبادل نظر کردند که blockchain پتانسیل ایجاد اخلال در دنیای بانکداری را دارد.

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

علاوه بر این، Morini  نشان داد که موارد تجاری واقعی مانند وثیقه از مشتقات مالی وجود دارند که می‌توانند از blockchain برای کاهش هزینه‌ها و خطرات استفاده کنند.

blockchain همچنین توجه زیادی را به چشم شرکت‌های نرم‌افزاری بزرگ جلب کرده‌است: مایکروسافت و آی بی ام شروع به عرضه blockchain به عنوان یک سرویس می‌کنند.

 

دگرگونی سازمانی.

علاوه بر تکامل اقتصادی و تجاری،سرویس ها می‌تواند به سازمان‌های سنتی کمک کند تا تحول شرکت را به آرامی تکمیل کنند.

یک نمونه از اپراتورهای پستی را در نظر بگیرید (POs).

از آنجا که اپراتورهای پستی سنتی (POs)به عنوان یک واسطه ساده بین تجار و مشتریان عمل می‌کنند، تکنولوژی blockchain و cryptocurrency می‌تواند به POs کمک کند تا نقش‌های ساده خود را با ارائه خدمات جدید مالی و خدماتی گسترش دهند. در Jaag و همکاران (۲۰۱۶)، Jaag و باخ فرصت‌ها را برای ایجاد فن‌آوری blockchain برای POs بررسی کردند و ادعا کردند که هر PO می‌تواند postcoin را صادر کند که نوعی سکه به رنگ blockchain است.

از آنجا که blockchain به عنوان یک مرجع قابل‌اعتماد از سوی عموم در نظر گرفته می‌شوند، postcoin می‌تواند به سرعت با شبکه انبوه خرده‌فروشی خود پیروز شود. علاوه بر این، همچنین در Jaag و همکاران (۲۰۱۶)نشان‌داده شده‌است که فن‌آوری blockchain فرصت‌های تجاری برای POs در خدمات هویتی، مدیریت ابزار و مدیریت زنجیره تامین را ارایه می‌دهد.

 

بازار مالی P۲P.

blockchain همچنین می‌توانند به ایجاد یک بازار مالی P۲P در یک روش مطمئن و قابل‌اعتماد کمک کنند. به طور نویز، روش‌هایی برای ترکیب مکانیسم همتا به همتا و پروتکل‌های محاسباتی چند حزبی برای ایجاد یک بازار MPC مالی P۲P (Computation چند Multiparty)به نویز بررسی شد (Noyes، ۲۰۱۶ b).

بازار MPC مبتنی بر blockchain اجازه می‌دهد تا وظایف محاسباتی را بر روی شبکه‌ا&