اسکیزوفرنی معماری فیسبوک لیبرا

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

فیس‌بوک اخیراً آنچه را «پلتفرم خدمات مالی جدید» به نام لیبرا می‌نامد منتشر کرده است. این سیستم به عنوان یک سیستم تسویه حساب دیجیتال مبتنی بر سبدی از ارزهای بین المللی است که بر روی یک "بلاک چین" مدیریت می شوند و در یک استخر پولی که از سوییس مدیریت می شود ذخیره می شود. اهداف این پروژه بلندپروازانه است و پیامدهای ژئوپلیتیکی در مقیاس بزرگ را به دنبال دارد.

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

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

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

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

تنها لطف نجات‌دهنده این داستان این است که مصنوعاتی که آنها خلق کرده‌اند آنقدر به طرز خنده‌داری برای کار در حال انجام نامناسب است که فقط می‌توان آن را یک اقدام غرورانه دید. چندین خطای اصلی معماری در این پروژه وجود دارد:

حل مشکل ژنرال های بیزانسی در یک شبکه کنترل دسترسی یک طرح ناسازگار است

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

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

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

گواهی به کنگره این محصول را به عنوان رقیبی برای پروتکل های پرداخت بین المللی جدید مانند WeChat، Alipay و M-Pesa معرفی کرد. با این حال، هیچ یک از این سیستم ها برای اجرا در استخرهای اعتبارسنجی برای حل مشکل ژنرال های بیزانسی طراحی نشده اند. آنها به سادگی بر روی یک اتوبوس سنتی با پهنای باند بالا طراحی شده اند که سیم کشی را طبق مجموعه ای از قوانین ثابت انجام می دهد. این یک رویکرد طبیعی برای طراحی یک سیستم پرداخت است. خوب طراحی شده سیستم پرداخت به سادگی با مشکل هزینه های مضاعف و فورک مواجه نخواهد شد.

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

Libra هیچ حریم خصوصی معاملاتی ندارد

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

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

Libra HotStuff BFT قادر به دستیابی به توان عملیاتی مورد نیاز برای یک سیستم پرداخت نیست

در بریتانیا، سیستم های تسویه حساب مانند BAC قادر به انجام حدود 580،000،000 تراکنش در ماه هستند. در عین حال، سیستم های بسیار بهینه شده مانند ویزا می توانند 150،000،000 تراکنش را در روز پردازش کنند. عملکرد بسته به اندازه تراکنش، مسیریابی شبکه، بار سیستم و چک های AML (مبارزه با پولشویی، طرح های پولشویی).

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

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

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

زبان Libra Move نادرست است

وایت پیپر ادعاهای جسورانه ای در مورد زبان جدید و آزمایش نشده ای به نام Move دارد. این اظهارات از دیدگاه تئوری زبان برنامه نویسی (PLT) کاملا مشکوک هستند.

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

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

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

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

پس از طرح ادعایی در مورد امنیت آن، باید به معناشناسی زبان نگاهی بیندازیم. صحت در تئوری زبان برنامه نویسی معمولاً از دو اثبات مختلف تشکیل شده است: «پیشرفت» و «حفظ» که ثبات کل فضای قوانین ارزیابی زبان را تعیین می کند. به طور خاص، در تئوری نوع، یک تابع اگر دقیقا یک بار از آرگومان خود استفاده کند، «خطی» است و اگر حداکثر یک بار از آن استفاده کند، «affine» است. سیستم نوع خطی با تخصیص انواع به تمام عبارات فرعی توابع و پیگیری محل برقراری فراخوانی، تضمین ایستا را ارائه می دهد که یک تابع خطی اعلام شده واقعاً خطی است. این یک ویژگی ظریف برای اثبات است و اجرای آن برای کل برنامه آسان نیست. تایپ خطی هنوز یک رشته تحصیلی بسیار آکادمیک است که تحت تأثیر اجرای منحصر به فرد نوع در Clean و مالکیت نوع در Rust قرار دارد. چند پیشنهاد اولیه برای افزودن انواع خطی به کامپایلر گلاسکو هسکل وجود دارد.

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

علاوه بر این، معنای رسمی زبان به ظاهر امن در هیچ کجای اجرا یا سند ظاهر نمی شود. این زبان به اندازه‌ای کوچک است که می‌توان در Coq یا Isabelle اثبات کاملی از معناشناسی صحیح پیدا کرد. در واقع، یک کامپایلر تبدیل کامل سرتاسر با انتقال اثبات به بایت کد، با ابزارهای مدرن اختراع شده در دهه گذشته کاملاً امکان پذیر است. ما می دانیم که چگونه آن را انجام دهیم، با شروع آثار جورج نکولا و پیتر لی در سال 1996

از منظر تئوری زبان برنامه نویسی، آزمایش این ادعا که Move یک زبان قابل اعتماد و امن است، غیرممکن است، زیرا این ادعاها به جای شواهد واقعی، دست تکان دادن و بازاریابی خالص است. این یک وضعیت هشدار دهنده برای یک پروژه زبان است که از آن خواسته می شود میلیاردها دلار تراکنش را پردازش کند.

رمزنگاری لیبرا ناقص است

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

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

  1. ed25519-dalek
  2. منحنی25519-دلک

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

باید فرض کرد که کل این پشته رمزنگاری در برابر حملات مختلف آسیب پذیر است تا زمانی که خلاف آن ثابت شود. مدل معروف «حرکت سریع و شکستن چیزها» فیس بوک را نمی توان برای ابزارهای رمزنگاری که داده های مالی مشتری را پردازش می کنند، اعمال کرد.

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

یکی از ویژگی‌های متمایز سیستم پرداخت این است که در صورت لغو پرداخت با شکایت یا منجر به خرابی تصادفی یا سیستم پرداخت، امکان بازگرداندن تراکنش است. سیستم لیبرا به گونه‌ای طراحی شده است که «کامل» باشد و شامل یک نوع تراکنش برای لغو پرداخت نمی‌شود. در انگلستان، تمام پرداخت های بین 100 تا 30,000 پوند مشمول قانون اعتبار مصرف کننده است. به این معنی که سیستم پرداخت در صورت بروز مشکل در محصول خریداری شده یا عدم ارائه سرویس توسط گیرنده پرداخت، مسئولیت را با فروشنده به اشتراک می گذارد. قوانین مشابهی در اتحادیه اروپا، آسیا و آمریکای شمالی اعمال می شود.

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

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

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

منبع: www.habr.com

اضافه کردن نظر