کد پایه و اساس همه فن آوری های blockchain است. با کد ضعیف ، استفاده از سیستم های DLT حتی خطرناک است. به همین دلیل است که ما ، موسسه تجزیه و تحلیل دارایی رمزنگاری ، پایگاه کد بیت کوین را با روشی نوآورانه و جدید تجزیه و تحلیل کردیم. ما برای تعیین کیفیت کد و تشخیص خطاها از الگوریتم های تخصصی استفاده کردیم. پایه کد بیت کوین نتایج مشابهی را با Litecoin که قبلاً مورد تجزیه و تحلیل قرار گرفته بود و کیفیت بالاتری نسبت به اتریوم نشان داد. کد بیت کوین بدون نقص آن نیست و باید در آینده پیشرفت هایی انجام شود.- نویسندگان: Shourya Shirsha Nandi ، Philipp Sandner ، Christian Flasshoff
معرفی
موسسه تجزیه و تحلیل دارایی رمزنگاری (ICAA) پایه کد اساسی (به عنوان مثال C ++ ، جاوا) ارزهای رمزنگاری شده و سایر راه حل های DLT را تجزیه و تحلیل می کند. ما نمره ای را برای کیفیت کد تعیین می کنیم ، که قابل درک و قابل مقایسه است. علاوه بر این ، ما به امکاناتی برای بهبود پایگاه کد بلکه خطرات احتمالی اشاره می کنیم. در مورد بیت کوین ، ما بیش از 175،000 خط کد را مورد تجزیه و تحلیل قرار دادیم و مسائل یا پیشرفت های احتمالی را تنها در 2. 5 ٪ از کد شناسایی کردیم. در بیشتر موارد ، مسائل جزئی و مهم نبودند اما بخش هایی از کد نیز وجود دارد که نیاز به پیشرفت توسط توسعه دهندگان دارند. ICAA با هدف ارائه شفافیت ، بینش از بررسی کد ارزهای رمزنگاری شده و حمایت از سرمایه گذاران ، تحلیلگران و سایر علاقه مندان به blockchain با ارزیابی پروژه های رمزنگاری. قبل از بررسی کد بیت کوین ، اجازه دهید فناوری بیت کوین را درک کنیم. برای هر کس که با مفهوم بیت کوین آشنا است ، احساس راحتی کنید که از این بخش پرش کنید و در بخش بعدی به خواندن ادامه دهید.
فناوری بیت کوین
بیت کوین اولین اثبات مفهوم برای فناوری blockchain بود. بیت کوین به عنوان یک سیستم پرداخت آنلاین همکار به همتا توسعه داده شد که مشکل هزینه های مضاعف را حل کرد [1]. blockchain بیت کوین زنجیره ای از امضاهای دیجیتال است. معامله بین پرداخت کننده و یک گیرنده زمانی اتفاق می افتد که پرداخت کننده به صورت دیجیتالی هش از معامله قبلی و کلید عمومی گیرنده را امضا کند. این اطلاعات سپس به انتهای سکه اضافه می شود. هذیان کلید عمومی گیرنده آدرس گیرنده را می دهد. بیت کوین برای جلوگیری از هزینه های مضاعف ، یک سرور تمبر زمان را در بر گرفته است. هنگامی که یک دسته از معاملات در یک بلوک قرار می گیرند ، سرورهای تمبر زمان هش از بلوک معاملات را می گیرند ، یک زمان سنج را به هش اضافه می کنند و سپس هش را به طور گسترده منتشر می کنند. زمان سنج در هش وجود داده ها را در یک زمان خاص اثبات می کند.
معامله بیت کوین توسط سایر اعضای (معدنچیان) شبکه با کمک اجماع تأیید می شود. اجماع در بیت کوین با استفاده از سیستم اثبات کار حاصل می شود. هش یک بلوک حاوی غیرقانونی است. NONCE یک عدد تصادفی یا شبه تصادفی است که در رمزنگاری برای اهداف احراز هویت استفاده می شود. غیرقانونی تولید شده فقط یک بار قابل استفاده است و قابل استفاده مجدد نیست. هش هنگامی که با یک الگوریتم SHA-256 هشدار داده می شود ، در ابتدا یک مقدار را با تعداد مشخصی از بیت های صفر برمی گرداند. معدنچیان بیت کوین قدرت پردازش خود را برای اجرای این الگوریتم گسترش می دهند و به نوبه خود با دریافت تعداد مشخصی از بیت کوین جبران می شوند. پیچیدگی پازل برای تولید تعداد به گونه ای متفاوت است که صرف نظر از تعداد معدنچیان یا قدرت سیستم در کاربرد ، هر ده دقیقه یک بلوک تولید می شود.
بررسی پایگاه کد بیت کوین
بیت کوین مجهز به ویژگی پرداخت همتا به همتا است که در پایگاه کد بیت کوین تعریف شده است. کد ستون فقرات نرم افزار بیت کوین است که روی هر گره شبکه اجرا می شود. بنابراین ، کیفیت و امنیت این پایگاه کد برای موفقیت طولانی مدت پروژه بیت کوین بسیار مهم است. ما از یک رویکرد ابتکاری و جدید برای تجزیه و تحلیل کیفیت کد استفاده کردیم. با کمک یک نرم افزار ، ما به طور خودکار پایگاه کد C ++ بیت کوین را تجزیه و تحلیل کردیم و کیفیت کد را تعیین کردیم. از آنجا که کد بیت کوین تحت شرایط مجوز MIT منتشر می شود ، پایگاه کد در GitHub آسان است [2].
الگوریتم های تخصصی سیستم به طور خودکار نمره ای برای ارزهای رمزپایه در مقیاس ا ز-5 (بدترین امتیاز) تا +5 (بهترین امتیاز) تعریف می کنند. این طبقه بندی تفسیر نتایج و مقایسه آن با سایر راه حل های blockchain را آسان می کند. اظهارات فنی: تجزیه و تحلیل ما بر اساس نسخه کد بیت کوین از 2018-06-24 است و مقایسه با نسخه کد Litecoin از 2018-02 21 و نسخه کد Ethereum از 2018-03 12 را ترسیم می کند.
تجزیه و تحلیل: بیت کوین 2. 53 قابل احترام را در مقیاس [-5 ، +5] کسب می کند
علاقه اصلی این مقاله اختصاص نمره به بیت کوین است. بزرگترین cryptocurrency 2. 53 به ثمر رساند ، یک امتیاز قابل احترام با پتانسیل برای بهبود بیشتر. در دوره بیشتر این مقاله ، این شماره را با جزئیات بیشتری تجزیه و تحلیل خواهیم کرد. این نمره را می توان بیشتر به چهار دسته تقسیم کرد: طراحی ، معیارها ، تکثیر و مشکلات کد. برای هر گروه ، یک نمره جداگانه محاسبه می شود که به شناسایی منشاء مسائل کمک می کند. شکل 2 تمام زیر شاخه های نسخه بیت کوین را از 2018-06-24 تجسم می کند. در ادامه ، هر دسته با جزئیات توضیح داده می شود و نتایج تفسیر می شود. این قسمت ممکن است کمی فنی تر باشد اما هنوز هم برای افراد غیر مدد قابل قبول است.
مسائل طراحیدر این گروه ، پایگاه کد از نظر طراحی کد مورد تجزیه و تحلیل قرار می گیرد. طراحی کد خوب با یک ساختار آسان و کارآمد مشخص می شود. این امر به توسعه دهندگان جدید این امکان را می دهد تا کدهای موجود را درک کنند و بدون تلاش زیادی از تغییرات استفاده کنند. حتی اگر عملکرد نرم افزار با کد به خوبی طراحی شده یا کد کمتر طراحی شده ممکن است یکسان باشد ، مطلوب است که کدی را تهیه کنید که هر برنامه نویس به راحتی درک کند. همانطور که در بررسی های قبلی Litecoin و Ethereum بحث شده است ، می توان کیفیت طراحی کد را به صورت خودکار با کمک الگوریتم ها تجزیه و تحلیل کرد و شامل تشخیص ضد الگوهای است. ضد الگوی بخش هایی از کد هستند که به نظر می رسد کار می کنند اما بهینه ساخته نشده اند. این الگوهای معمولاً با گذشت زمان به وجود می آیند که عملکردهای جدید اضافه می شوند یا هنگام تغییر توسعه دهندگان به کد کمک می کنند. ضد الگوی ممکن است منجر به خطا شود و حفظ کد را بسیار دشوار کند. انواع مختلفی از ضد الگوی وجود دارد. در این تجزیه و تحلیل ، ما جهانی را شکست خواهیم دید. الگوی قابل شکستن جهانی یک الگوی ضد ساختاری برای یک مؤلفه از سیستم است که اغلب با تغییر سایر اجزای تحت تأثیر قرار می گیرد. اجزای قابل شکستن جهانی نامطلوب هستند زیرا نشانگر شکنندگی و عدم مدولار بودن سیستم است. ضد الگوی های مختلفی وجود دارد اما توضیح آنها فراتر از محدوده این مقاله است. کد بیت کوین دارای 297 شماره ضد الگوی است. 81 از 297 شماره از نظر انتقادی رتبه بالایی دارند. بیشتر موارد ضد الگوی در مؤلفه های "LevelDB" (42) و اجزای "کیف پول" (36) و "QT" (31) است. شکل 3 نمونه ای از ضد الگوی موجود در مؤلفه "LevelDB" را نشان می دهد. ارزیابی مسائل طراحی ، به بیت کوین امتیاز 2. 69 می دهد ، که بهتر از امتیاز Ethereum 2. 29 است اما بدتر از نمره Litecoin از 3. 08 است.
نقض متریکدسته بعدی کیفیت کد را با معیارهای نرم افزاری ردیابی می کند. چنین متریک به عنوان مثال "تعداد روش ها" (NOM) است. این متریک تعداد کل روش ها (توابع) را در یک کلاس شمارش می کند. بدیهی است که تعداد بیشتری از روشها کد را پیچیده تر می کند و خطر خطاها را افزایش می دهد. معیارهای دیگر به عنوان مثال "عدم انسجام در روشها" (LOCM) هستند که انسجام یک کلاس یا "دسترسی به داده های خارجی" (ATFD) را اندازه گیری می کند ، که فرکانس دسترسی به ویژگی های خارجی را از سایر کلاس ها اندازه گیری می کند. برای تعیین کیفیت کد ، سیستمی که ما از گزارش ها استفاده کردیم که از آستانه نامطلوب یک متریک فراتر رفته و نمره ای را برای نقض متریک محاسبه می کند. کد بیت کوین تعداد کل 1،797 تخلف متریک را نشان می دهد که می تواند به نمره 1. 28 تبدیل شود. درست مانند موارد طراحی ، نمره بیت کوین 1. 28 بین اتریوم (0. 47) و Litecoin (1. 93) است.
تکثیر کد. همانطور که از قبل از آن استفاده می شود ، کپی های دسته بندی کد های تکراری را جستجو می کنند. کد کپی شده معمولاً نامطلوب است ، زیرا ممکن است خطوط کد را افزایش دهد ، عملکرد را کاهش می دهد یا آسیب پذیری نرم افزار را افزایش می دهد. پایگاه کد بیت کوین نمره مطلوب 3. 91 را نشان می دهد و تنها 2. 01 ٪ از کد کپی می شود. هر دو اتریوم (4. 13) و Litecoin (4. 29) در مقایسه با بیت کوین نمرات بهتری برای تکثیر داشتند.
مسائل مربوط به کددسته آخر بر روی مسائل کد تمرکز دارد. بر خلاف مشکلات طراحی ، مسائل مربوط به کد فقط برای بخش محلی کد اعمال می شود. بسته به ویژگی های مسئله ، ممکن است تأثیرات بر عملکرد نرم افزار متفاوت باشد. بنابراین ، طبقه بندی پیامدهای مشکلات کد شناسایی شده مهم است. الگوریتم نوآورانه هر شماره کد را بین ، کم ، متوسط ، بالا و بحرانی قرار می دهد. در قسمت کد بیت کوین ، 426 کد وجود دارد. 86 ٪ از مسائل مربوط به کد به عنوان کم یا متوسط طبقه بندی می شوند و بسیاری از آنها در مؤلفه "SECP256K1" هستند. نمونه ای برای مسئله کم کد می تواند یک برچسب استفاده نشده در کد باشد. چنین برچسب بلااستفاده با عملکرد صحیح نرم افزار تداخل ندارد اما می تواند حذف شود تا کد فشرده تر شود. 14 ٪ باقیمانده مسائل مربوط به کد در دسته موضوعات بالا یا مهم قرار می گیرد. موضوعات مهم در اجزای "کیف پول" ، "net_processing. cpp" و "arith_uint256. h" است. مسائل متوسط در مؤلفه "LevelDB" است. شکل 3 نمونه هایی از مسائل مربوط به کد بحرانی را در مؤلفه "ARITH_UINT256. H" نشان می دهد. مسائل مربوط به کد بالا و مهم لزوماً منجر به اختلال در عملکرد نرم افزار نمی شود بلکه خطر رفتار ناخواسته کد را افزایش می دهد. نرم افزاری با مشکلات کد کمتری تمایل به پایدارتر دارد و باید هدف هر برنامه نویس باشد. وقوع مشکلات کد در برنامه نویسی رایانه متداول است و بخشی از روند توسعه است. با این وجود ، حذف مشکلات کد برای بهبود نرم افزار ضروری است. ذکر این نکته حائز اهمیت است که کد بیت کوین فقط در رده مسائل مربوط به کد نمره 4. 27 دریافت می کند. نمره بسیار بالاتر از اتریوم و Litecoin است که هر دو نمرات منفی دریافت می کنند. نمرات Ethereum و Litecoin به ترتی ب-0. 05 و-0. 07 بود.
خلاصه: کد بیت کوین باید بهبود یابد
ما ، موسسه تجزیه و تحلیل دارایی رمزنگاری ، به طور خودکار کد بیت کوین را تجزیه و تحلیل کردیم و الگوریتم ها از ساختار کد مناسب و با پتانسیل برای بهبود آینده رونمایی کردیم. این سیستم با توجه به فوریت مسئله ، نتایج را به نقاط مهم طبقه بندی می کند. همانطور که در شکل 5 نشان داده شده است ، تقریبا 2 ٪ از کل کد اتریوم به عنوان "بحرانی" پرچم گذاری شده است و نیاز به توجه بیشتر توسعه دهندگان دارد. مشکل را می توان به مؤلفه "کیف پول" محدود کرد ، جایی که بیش از 1472 خط کد تحت تأثیر قرار می گیرد. اما همچنین ، سایر اجزای حاوی نقاط مهم با طبقه بندی "بالا" هستند. حتی اگر به نظر می رسد کد به درستی کار کند ، این قسمت ها باید توسط توسعه دهندگان بررسی شوند. از آنجا که بیت کوین منبع باز است ، برنامه نویسان مختلف می توانند در این پروژه نقش داشته باشند. این امر تهیه کد با یک طراحی مداوم و جلوگیری از ضد الگوی را دشوار می کند. این تجزیه و تحلیل نشان می دهد که کیفیت کد بیت کوین به مراتب برتر از اتریوم است اما از کیفیت Litecoin کم است. بدیهی است که خبرهای خوبی نیز وجود دارد ، بیش از 58000 خط کد هیچ مشکلی ندارند و کیفیت بالایی را نشان می دهند. توزیع خطاها در تجزیه و تحلیل کانون شکل 5 نشان داده شده است. شکل نشان می دهد که اکثر موضوعات مهم در مؤلفه "کیف پول" با "LevelDB" که حداکثر تعداد مسائل را دارند ، وجود دارد.
در آینده ، نظارت بر تحولات جدید کد بیت کوین و دیدن اینکه آیا این کد از نظر کیفیت کد بهبود می یابد ، جالب خواهد بود. علاوه بر این ، مقایسه این نتایج با سایر راه حل های blockchain نیز لازم است. موسسه تجزیه و تحلیل دارایی رمزنگاری از توسعه بیت کوین پیروی می کند و تجزیه و تحلیل را به سایر راه حل های blockchain در آینده گسترش می دهد.
ملاحظات
نتایج نشان داده شده در این مقاله بر اساس تجزیه و تحلیل خودکار کد است. لطفاً توجه داشته باشید که این تجزیه و تحلیل نه مشاوره مالی را نشان می دهد ، و همچنین قرار نیست به عنوان درخواست برای خرید یا فروش هر اوراق بهادار ، سکه یا نشانه ها ، درک یا تفسیر شود.
اگر این مقاله را دوست دارید ، اگر آن را به همکاران خود ارسال کنید یا آن را در شبکه های اجتماعی به اشتراک بگذارید ، خوشحال می شویم. اگر شما متخصص در این زمینه هستید و می خواهید مقاله یا برخی از قسمت های آن را مورد انتقاد یا تأیید قرار دهید ، احساس راحتی کنید که یک یادداشت خصوصی را در اینجا یا از لحاظ متنی ترک کنید و ما پاسخ خواهیم داد یا خطاب خواهیم کرد.
آیا می خواهید در مورد چگونگی تغییر blockchain دنیای ما بیشتر بدانید؟
- دانش blockchain: ما یک مقاله متوسط در مورد چگونگی به دست آوردن دانش لازم blockchain در یک حجم کار 10 روز کاری نوشتیم.
- دو کتاب blockchain ما: ما دو کتاب در مورد چگونگی تغییر blockchain جامعه ما (آمازون لینک) به طور کلی و همه چیز مربوط به امور مالی (پیوند آمازون) به طور خاص ویرایش کرده ایم. هر دو کتاب به صورت چاپی و برای کیندل موجود است - در حال حاضر به زبان آلمانی و به زودی به زبان انگلیسی. نویسندگان بیش از 20 کارشناس مشهور blockchain در استارتاپ ها ، شرکت ها و دولت از آلمان ، اتریش ، سوئیس و لیختن اشتاین بوده اند-همه در این دو کتاب تخصص خود را دارند.
دو کتاب ما: اولین کتاب در Blockchain و جامعه و بخش دوم در Blockchain و دارایی
نویسندگان
پروفسور دکتر فیلیپ ساندنر مرکز بلوکچین مدرسه فرانکفورت (FSBC) را تأسیس کرده است. از سال 2018 تا 2021 ، وی توسط فرانکفورتر آلژمین زیتونگ (FAZ) ، یک روزنامه مهم در آلمان ، در بین اقتصاددانان "برتر" قرار گرفت. وی عضو شورای FinTech و مجمع دیجیتالی مالی وزارت دارایی فدرال در آلمان بوده است. وی همچنین در هیئت مدیره صندوق Fivet Fintech ، 21e6 Capital و Blockchain Founders Group - شرکت هایی که در سرمایه گذاری سرمایه گذاری سرمایه گذاری برای راه اندازی blockchain و مدیریت سرمایه گذاری دارایی رمزنگاری فعالیت می کنند. تخصص پروفسور Sandner شامل دارایی های رمزنگاری مانند بیت کوین و اتریوم ، امور مالی غیر متمرکز (DEFI) ، یورو دیجیتال ، نشانه گذاری دارایی ها و هویت دیجیتال است. از طریق LinkedIn می توانید از طریق نامه (m@philippsandner. de) با وی تماس بگیرید یا وی را در توییتر (philippsandner) دنبال کنید.
خبرهای فارکس...
ما را در سایت خبرهای فارکس دنبال می کنید
برچسب :
نویسنده : عفت السادات شجاعی
بازدید : <-PostHit->
تاريخ : يکشنبه
21 اسفند
1401 ساعت: 16:35