معرفی

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

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

با افزایش محبوبیت بیت کوین ، Ethereum و چند فناوری مشتق شده دیگر ، علاقه به استفاده از فناوری زیر بلاکچین ، دفترکل توزیع شده و برنامه توزیع شده برای موارد استفاده از شرکت های نوآور نیز افزایش یافت. با این حال ، بسیاری از موارد استفاده تجاری، به ویژگیهای عملکردی نیاز دارند که فناوریهای بلاکچین بدون مجوز (فعلاً) قادر به ارائه آنها نیستند. علاوه بر این ، در بسیاری از موارد استفاده ، هویت شرکت کنندگان یک شرط مهم است ، مثلا در مورد معاملات مالی که مقررات شناسایی مشتریان (KYC) و مبارزه با پولشویی (AML) را باید دنبال کنید.

برای استفاده تجاری ، ما باید شرایط زیر را در نظر بگیریم:

  • شرکت کنندگان باید شناسایی شوند / قابل شناسایی باشند
  • شبکه ها باید دارای مجوز باشند
  • عملکرد بالای تراکنش
  • تأخیر تأیید معامله کم باشد
  • حریم خصوصی و محرمانه بودن معاملات و داده های مربوط به معاملات تجاری حفظ شود

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

Hyperledger Fabric

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

یک نکته اصلی تمایز این است که هایپرلجر تحت نظر بنیاد لینوکس تاسیس شد ، که خود دارای سابقه طولانی و بسیار موفق پرورش پروژه های منبع باز تحت حاکمیت باز است که جوامع پایدار و اکوسیستم های پر رونق را رشد می دهد. Hyperledger توسط کمیته فنی حرفه ای و پروژه Hyperledger Fabric توسط مجموعه متنوعی از متخصصان در سازمانهای مختلف اداره می شود. این پروژه یک جامعه توسعه دهندگان دارد که از ابتدای شروع خود به بیش از 35 سازمان و نزدیک به 200 توسعه دهنده رسیده است.

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

Fabric به جای زبانهای محدود به دامنه خاص (DSL) ، اولین پلتفرم دفتر توزیع شده است که از قراردادهای هوشمند کدنویسی شده با زبان های برنامه نویسی عمومی مانند Java ، Go و Node.js پشتیبانی می کند. این بدان معنی است که اکثر شرکت ها از قبل مجموعه مهارت های لازم برای توسعه قراردادهای هوشمند را دارند و هیچ آموزش اضافی برای یادگیری زبان جدید یا DSL لازم نیست.

بستر Fabric نیز مجوزمحور است ، به این معنی که ، بر خلاف شبکه بدون مجوزعمومی ، شرکت کنندگان برای یکدیگر شناخته شده اند ، نه اینکه ناشناس و کاملاً غیرقابل اعتماد باشند. این بدان معناست که اگرچه ممکن است شرکت کنندگان به طور کامل به یکدیگر اعتماد نداشته باشند (به عنوان مثال ممکن است در یک صنعت رقیب باشند) ، می توان شبکه ای را تحت مدل حاکمیتی اداره کرد که بر اساس آنچه اعتماد بین شرکت کنندگان وجود دارد ، مانند یک توافق نامه قانونی یا چارچوبی برای رسیدگی به اختلافات.

یکی از مهمترین تمایزات این پلتفرم، پشتیبانی آن از پروتکل¬های اجماع قابل جابجایی است که باعث می شود پلتفرم به طور موثرتری متناسب با موارد استفاده خاص و مدلهای اعتماد تنظیم شود. به عنوان مثال ، هنگامی که در یک شرکت واحد مستقر می شویم ، یا توسط یک مرجع مورداعتماد کار می کنیم ، اجماع تحمل خطای بیزانس ممکن است غیر ضروری و فشار بیش از حد بر عملکرد و توان در نظر گرفته شود. در شرایطی از این قبیل ، پروتکل اجماع تاب-آوری خطا crash fault-tolerant احتمالاً کافی است در حالی که در موارد استفاده چندجانبه ، پروتکل اجماع سنتی تر تحمل عیب بیزانس byzantine fault tolerant ممکن است مناسب¬تر باشد.

Hyperledger Fabric می تواند از پروتکل های اجماعی استفاده کند که به یک ارز رمزنگاری شده بومی، و ماینیگ پرهزینه و انرژی برای اجرای قراردادهای هوشمند، نیاز ندارند. اجتناب از ارز رمزنگاری شده برخی از خطر / حمله¬های قابل توجه را کاهش می دهد و عدم وجود عملیات استخراج رمزنگاری به این معنی است که سیستم عامل می تواند تقریباً با همان هزینه عملیاتی هر سیستم توزیع شده دیگر مستقر شود.

ترکیبی از این ویژگی های متمایزکننده طراحی باعث می شود که Fabric یکی از بهترین پلتفرم¬های موجود باشد که هم اکنون از نظر سرعت پردازش معاملات و تأخیر در تأیید معامله وجود دارد. همچنین این امکان را برای محرمانه بودن تراکنش ها و قراردادهای هوشمند (آنچه درFabric به نام chaincode می¬شناسند) فراهم می کند.

بیایید این ویژگی های تمایز را با جزئیات بیشتری بررسی کنیم.

ساختار ماژولار

Hyperledger Fabric به صوزت اختصاصی معماری شده است تا ساختار ماژولار داشته باشد. خواه اجماع pluggable ، پروتکل های مدیریت هویت مانند LDAP یا OpenID Connect ، پروتکل های key management یا کتابخانه های رمزنگاری، این پلتفرم در هسته خود طراحی شده است تا به گونه ای پیکربندی شود که متناسب با تنوع نیازهای مورد استفاده شرکت باشد.

در سطح بالا ، Fabric از اجزای ماژولار زیر تشکیل شده است:

• یک ordering service در مرتبط کردن معاملات کمک می کند و سپس بلوک ها را برای همتاها پخش می کند. • یک ارائه دهنده خدمات عضویت (membership service provider) مسئولیت ارتباط اشخاص موجود در شبکه با هویت رمزنگاری را بر عهده دارد. • یک سرویس اختیاری peer-to-peer gossip service بلوک های تولید شده توسط ordering serviceرا به سایر همتاها، پخش می کند. • قراردادهای هوشمند ("chaincode") به صورت ایزوله در یک کانتینر (مثلاً داکر) اجرا می شوند. آنها می توانند به زبانهای برنامه نویسی استاندارد نوشته شوند اما دسترسی مستقیم به وضعیت ledger ندارند. • ledger را می توان برای پشتیبانی از انواع DBMS پیکربندی کرد. • یک سیاست تأیید و اعتبارسنجی وجود دارد که می تواند به طور مستقل در هر برنامه پیکربندی شود.

توافق عادلانه ای در صنعت وجود دارد که "هیچ بلاکچینی برای اداره همه آنها" وجود ندارد. FabricHyperledger را می توان به روش های مختلف پیکربندی کرد تا راه¬حل¬های مختلف موردنیاز، برای use case صنایع متنوع را برآورده کند.

بلاکچین های بدون مجوز و مجوزدار

در یک بلاکچین بدون مجوز (permissionless)، تقریباً همه می توانند شرکت کنند و هر شرکت کننده ای ناشناس است. در چنین شرایطی ، هیچ اعتمادی نمی تواند وجود داشته باشد غیر از این که حالت فعلی بلاکچین ، غیرقابل تغییر است. به منظور کاهش این عدم اعتماد ، بلاکچین های بدون مجوز معمولاً از یک ارز رمزپایه بومی "استخراج شده" یا هزینه معاملات استفاده می کنند تا انگیزه اقتصادی را برای جبران هزینه های بالای شرکت در نوعی اجماع تحمل عیب بیزانس بر اساس "اثبات کار" (PoW ) باشد.

بلاکچین های مجوزدار (permissioned)از طرف دیگر ، یک بلاکچین را در میان مجموعه ای از شرکت کنندگان شناخته شده و اغلب بررسی شده تحت مدل حاکمیتی اداره می کنند که درجه خاصی از اعتماد را به همراه دارد. یک بلاکچین مجوزدار راهی برای اطمینان از تعاملات، بین گروهی از نهادها که یک هدف مشترک دارند اما ممکن است به طور کامل به یکدیگر اعتماد نکنند ، فراهم می کند. با تکیه بر هویت شرکت کنندگان ، یک بلاکچین مجوزدار می تواند از پروتکل های اجماع سازگار با تاب آوری خطا (CFT) یا تحمل خطای بیزانس (BFT) استفاده کند که نیازی به استخراج سنگین ندارند.

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

قراردادهای هوشمند

یک قرارداد هوشمند یا همان چیزی که Fabric آن را "Chaincode" می نامد ، به عنوان یک برنامه توزیع شده قابل اعتماد عمل می کند که امنیت / اعتماد خود را از بلاکچین و اجماع اساسی بین همتاها بدست می آورد. این یک منطق تجاری در یک برنامه بلاکچین است.

سه نکته اصلی وجود دارد که در قراردادهای هوشمند اعمال می شود ، به ویژه هنگامی که در یک پلتفرم اعمال می شود:

  • بسیاری از قراردادهای هوشمند همزمان در شبکه اجرا می شوند ،
  • آنها ممکن است به صورت پویا و دینامیک (در بسیاری از موارد توسط هر کسی) مستقر شوند ، و
  • کد برنامه باید به عنوان غیرقابل اعتماد ، حتی به طور بالقوه مخرب تلقی شود.

اکثر پلتفرم های بلاکچین دارای قابلیت قرارداد هوشمند از معماری برای اجرای دستور پیروی می کنند که در آن پروتکل اجماع:

  • تراکنش ها را تأیید و مرتب می کند و سپس آنها را در همه گره های همتا منتشر می کند ،
  • سپس هر همتا معاملات را به ترتیب انجام می دهد.

معماری مرتب سازی-اجرا را می توان تقریباً در همه سیستم های بلاکچین موجود ، از پلتفرم های عمومی / بدون مجوز مانند اتریوم (با اجماع مبتنی بر PoW) تا پلتفرم های مجوزدار مانند Tendermint، Chain، و Quorum.

قراردادهای هوشمندی که در زنجیره بلوکی اجرا می شوند که با معماری مرتب سازی-اجرا کار می کنند ، باید قطعی باشند. در غیر این صورت ، ممکن است هرگز اتفاق نظر حاصل نشود. برای رسیدگی به مسئله عدم قطعیت ، بسیاری از پلتفرم ها نیاز دارند که قراردادهای هوشمند به زبانی غیر استاندارد یا خاص نوشته شوند (مانند Solidity) تا عملیات غیر قطعی از بین برود. این مانع از پذیرش گسترده می شود زیرا توسعه دهندگان را ملزم به یادگیری زبان جدید برای نوشتن قراردادهای هوشمند می کند و ممکن است منجر به خطاهای برنامه نویسی شود.

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

یک رویکرد جدید

Fabric معماری جدیدی را برای معاملات معرفی می کند که ما آنرا اجرا-مرتب سازی-اعتبارسنجی می نامیم. این معماری، چالش های حالت ارتجاعی ، انعطاف پذیری ، مقیاس پذیری ، عملکرد و محرمانه بودن که مدل مرتب سازی-اجرا با آن مواجه هست را با تقسیم جریان تراکنش به سه مرحله آدرس دهی می کند:

  • اجرا کردن معامله و بررسی صحت آن ، در نتیجه تایید آن ،
  • مرتب سازی معاملات از طریق یک پروتکل اجماع (قابل جابجایی) و
  • اعتبارسنجی معاملات به کمک سیاست تأیید ویژه مشخص شده در اپلیکیشن، قبل از ثبت آنها در دفترکل بلاکچین

این طرح به طور اساسی از الگوی مرتب سازی-اجرا خارج می شود به این صورت که Fabric قبل از رسیدن به توافق نهایی درباره سفارش آنها ، تراکنش ها را اجرا می کند.

در Fabric ، سیاست تأیید ویژه برنامه مشخص می کند که کدام گره های همتا یا چه تعداد از آنها برای اجرای صحیح یک قرارداد هوشمند معین موردنیاز است. بنابراین ، هر معامله فقط باید توسط زیر مجموعه گره های همتا لازم برای تأمین سیاست تأیید معامله اجرا شود (تأیید شود). این امکان برای اجرای موازی، عملکرد و مقیاس پذیری سیستم را افزایش می دهد. این مرحله اول همچنین هرگونه عدم قطعیت را از بین می برد ، زیرا نتایج ناسازگار را می توان قبل از سفارش فیلتر کرد.

از آنجا که ما عدم قطعیت را حذف کردیم ، Fabric اولین فناوری بلاکچین است که استفاده از زبانهای برنامه نویسی استاندارد را امکان پذیر می کند.

حریم خصوصی و محرمانگی

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

این عدم رازداری می تواند برای بسیاری از موارد استفاده در مشاغل / شرکت ها مشکل ساز باشد. به عنوان مثال ، در شبکه ای از شرکای زنجیره تامین ، ممکن است به برخی از مصرف کنندگان نرخ های ترجیحی داده شود تا وسیله ای برای تحکیم رابطه یا ترویج فروش اضافی باشد. اگر هر شرکت کننده بتواند هر قرارداد و معامله ای را مشاهده کند ، حفظ چنین روابط تجاری در یک شبکه کاملاً شفاف غیرممکن می شود --- همه نرخ های ترجیحی را می خواهند!

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

به منظور رفع کمبود حریم خصوصی و محرمانگی برای اهداف مورد استفاده در تجارت ، سیستم عامل های بلاکچین روش های مختلفی را اتخاذ کرده اند. همه روش های خود را دارند.

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

اثبات دانش صفر (ZKP) یکی دیگر از زمینه های تحقیق در حال بررسی برای رفع این مشکل است ، روش کار در اینجا این است که ، در حال حاضر ، محاسبه ZKP به زمان قابل توجهی و منابع محاسباتی نیاز دارد. از این رو ، داد و ستد در این روش، محرمانه است.

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

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

اجماع تغییرپذیر

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

Fabric در حال حاضر سرویس مرتب سازی CFT را بر اساس کتابخانه etcdاز پروتکل Raft. برای اطلاعات در مورد سرویس مرتب سازی موجود ، به مستندات مفهومی در مورد مرتب سازی مراجعه کنید.

همچنین توجه داشته باشید که این موارد از یکدیگر جدا نیستند. یک شبکه Fabric می تواند چندین سرویس مرتب سازی برای پشتیبانی از برنامه های مختلف یا نیازهای اپلیکیشن داشته باشد.

عملکرد و مقیاس پذیری

عملکرد یک پلتفرم بلاکچین می تواند تحت تأثیر بسیاری از متغیرها مانند اندازه تراکنش ، اندازه بلوک ، اندازه شبکه و همچنین محدودیت های سخت افزار و غیره باشد. کارگروه عملکرد و مقیاس در Hyperledger Fabric در حال حاضر بر روی یک فریمورک معیارسنجی به نام Hyperledger Caliperکار می کند.

چندین مقاله تحقیقاتی در زمینه بررسی و آزمایش توانایی های عملکرد Hyperledger Fabric منتشر شده است. آخرین مقاله، Fabric را به 20000 تراکنش در ثانیه رساند.

نتیجه گیری

هرگونه ارزیابی جدی از سیستم عامل های بلاکچین باید Hyperledger Fabric را در لیست کوتاه خود قرار دهد.

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

هایپرلجر Fabric فعال ترین پروژه هایپرلجر است. جامعه پیرامون این پلتفرم به طور مداوم در حال رشد است و نوآوری های ارائه شده با هر نسخه پی در پی بسیار از سایر سیستم عامل های بلاکچین سازمانی دور می شوند.

تشکر

"Hyperledger Fabric: یک سیستم عامل توزیع شده برای بلاک چین های مجاز" - Elli Androulaki, Artem Barger, Vita Bortnikov, Christian Cachin, Konstantinos Christidis, Angelo De Caro, David Enyeart, Christopher Ferris, Gennady Laventman, Yacov Manevich, Srinivasan Muralidharan, Chet Murthy, Binh Nguyen, Manish Sethi, Gari Singh, Keith Smith, Alessandro Sorniotti, Chrysoula Stathakopoulou, Marko Vukolic, Sharon Weed Cocco, Jason Yellick