Tâm thần phân liệt kiến ​​trúc Facebook Libra

Sau hai năm, tôi quay lại blog với một bài viết khác với những bài giảng nhàm chán thường ngày về Haskell và toán học. Tôi đã làm việc về fintech ở EU trong vài năm qua và có vẻ như đã đến lúc viết về một chủ đề ít được giới truyền thông công nghệ chú ý.

Facebook gần đây đã phát hành cái mà họ gọi là “nền tảng dịch vụ tài chính mới” có tên Libra. Nó được định vị là một hệ thống thanh toán kỹ thuật số dựa trên một rổ tiền tệ quốc tế được quản lý trên “blockchain” và được lưu trữ trong một nhóm tiền được quản lý từ Thụy Sĩ. Các mục tiêu của dự án đầy tham vọng và kéo theo những hậu quả địa chính trị quy mô lớn.

В Thời báo Tài chính и Bán Chạy Nhất của Báo New York Times Rất nhiều bài viết hợp lý về các giả định kinh tế và tiền tệ không chắc chắn đằng sau hệ thống tài chính được đề xuất. Nhưng không có đủ chuyên gia có khả năng phân tích từ góc độ kỹ thuật. Không có nhiều người làm việc trong lĩnh vực cơ sở hạ tầng tài chính và nói chuyện công khai về công việc của họ, vì vậy dự án này không được đưa tin nhiều trên các phương tiện truyền thông công nghệ, mặc dù nội bộ của nó được mở rộng ra thế giới. Ý tôi là nguồn mở trong kho Libra и Tổ chức Calibra.

Những gì mở ra cho thế giới là một tạo tác tâm thần phân liệt về mặt kiến ​​trúc với tuyên bố là nền tảng an toàn cho cơ sở hạ tầng thanh toán toàn cầu.

Nếu bạn đi sâu vào cơ sở mã, việc triển khai thực tế của hệ thống hoàn toàn khác với mục tiêu đã nêu và theo những cách kỳ lạ nhất. Tôi chắc chắn rằng dự án này có một lịch sử thú vị của công ty. Vì vậy, thật hợp lý khi cho rằng nó được thiết kế với sự tỉ mỉ nhất định, nhưng trên thực tế, tôi thấy một loạt các quyết định kiến ​​trúc thực sự kỳ lạ đã phá vỡ toàn bộ hệ thống và khiến người dùng gặp rủi ro.

Tôi sẽ không giả vờ có quan điểm khách quan về Facebook với tư cách là một công ty. Rất ít người trong ngành CNTT nhìn cô với ánh mắt thông cảm. Nhưng so sánh các tuyên bố của nó và mã được công bố cho thấy rõ ràng rằng mục đích đã nêu về cơ bản là lừa đảo. Nói tóm lại, dự án này không trao quyền cho bất cứ ai. Anh ta sẽ vẫn hoàn toàn nằm dưới sự kiểm soát của một công ty có hoạt động kinh doanh quảng cáo sa lầy vào bê bối và tham nhũng đến mức công ty không còn lựa chọn nào khác ngoài việc cố gắng đa dạng hóa các khoản thanh toán và chấm điểm tín dụng để tồn tại. Mục tiêu dài hạn rõ ràng là hoạt động như một nhà môi giới dữ liệu và trung gian trong việc tiếp cận tín dụng của người tiêu dùng dựa trên dữ liệu truyền thông xã hội cá nhân của họ. Đây là một câu chuyện hoàn toàn khủng khiếp và đen tối và không nhận được sự chú ý xứng đáng.

Điều may mắn duy nhất của câu chuyện này là đồ tạo tác mà họ tạo ra không phù hợp một cách hài hước với nhiệm vụ trước mắt đến mức nó chỉ có thể được coi là một hành động kiêu ngạo. Có một số lỗi kiến ​​trúc lớn trong dự án này:

Giải quyết vấn đề chung của Byzantine trong Mạng kiểm soát truy cập là một thiết kế không nhất quán

Vấn đề của các vị tướng Byzantine là một lĩnh vực nghiên cứu khá hẹp về hệ thống phân tán. Nó mô tả khả năng của một hệ thống mạng có thể chịu được các lỗi thành phần ngẫu nhiên trong khi thực hiện các hành động khắc phục quan trọng đối với hoạt động của hệ thống. Một mạng có khả năng phục hồi phải chống lại một số loại tấn công, bao gồm khởi động lại, ngừng hoạt động, tải độc hại và bỏ phiếu độc hại trong các cuộc bầu cử lãnh đạo. Đây là quyết định chính của kiến ​​trúc Libra và nó hoàn toàn vô nghĩa ở đây.

Chi phí phức tạp về thời gian của cấu trúc bổ sung này phụ thuộc vào thuật toán. Có rất nhiều tài liệu về các biến thể của giao thức Paxos và Raft giải quyết vấn đề của các tướng Byzantine, nhưng tất cả các cấu trúc này đều đưa ra thêm chi phí để liên lạc qua Tâm thần phân liệt kiến ​​trúc Facebook Libra để duy trì túc số. Đối với Libra, họ đã chọn thuật toán có chi phí truyền thông cao nhất có thể Tâm thần phân liệt kiến ​​trúc Facebook Libra trong trường hợp lãnh đạo thất bại. Và còn có thêm chi phí từ việc bầu lại các nhà lãnh đạo trong nhiều loại sự kiện lỗi mạng.

Đối với một hệ thống hoạt động trong một tập đoàn gồm các tập đoàn đa quốc gia được quản lý chặt chẽ, nơi tất cả người dùng đều có mã do Facebook ký và quyền truy cập vào mạng do Facebook kiểm soát, thì việc xem xét những người tham gia độc hại ở cấp độ đồng thuận là vô nghĩa. Không rõ tại sao hệ thống này thậm chí có thể giải quyết được vấn đề của các tướng lĩnh Byzantine thay vì chỉ đơn giản là duy trì một quy trình kiểm tra nhất quán để kiểm tra sự tuân thủ. Khả năng nút Libra do Mastercard hoặc Andressen Horrowitz điều hành đột nhiên bắt đầu chạy mã độc là một tình huống kỳ lạ cần lên kế hoạch và được giải quyết tốt hơn bằng cách đơn giản đảm bảo tính toàn vẹn của giao thức và các phương tiện phi kỹ thuật (tức là hợp pháp).

Lời khai trước Quốc hội đã coi sản phẩm này là đối thủ cạnh tranh với các giao thức thanh toán quốc tế mới như WeChat, Alipay và M-Pesa. Tuy nhiên, không có hệ thống nào trong số này được thiết kế để chạy trên nhóm trình xác thực nhằm giải quyết vấn đề về tướng Byzantine. Chúng được thiết kế đơn giản trên một bus băng thông cao truyền thống giúp nối dây theo một bộ quy tắc cố định. Đây là một cách tiếp cận tự nhiên để thiết kế một hệ thống thanh toán. Được thiết kế tốt đơn giản là hệ thống thanh toán sẽ không gặp phải vấn đề chi tiêu gấp đôi và phân nhánh.

Chi phí hoạt động của thuật toán đồng thuận không giải quyết được bất kỳ vấn đề nào và chỉ giới hạn thông lượng của hệ thống mà không có lý do nào khác ngoài việc sùng bái hàng hóa của chuỗi khối công khai, vốn không dành cho trường hợp sử dụng này.

Libra không có quyền riêng tư giao dịch

Theo tài liệu, hệ thống được thiết kế có tính đến bút danh, nghĩa là các địa chỉ được sử dụng trong giao thức được lấy từ khóa chung trên đường cong elip và không chứa siêu dữ liệu về tài khoản. Tuy nhiên, không có chỗ nào trong phần mô tả cấu trúc quản trị của tổ chức hoặc trong chính giao thức chỉ ra cách dữ liệu kinh tế liên quan đến giao dịch sẽ được ẩn khỏi người xác nhận. Hệ thống này được thiết kế để sao chép các giao dịch trên quy mô lớn cho nhiều bên bên ngoài, những đối tượng mà theo luật bí mật ngân hàng hiện hành của Châu Âu và Hoa Kỳ, không được giữ kín các chi tiết kinh tế.

Chính sách dữ liệu giữa các quốc gia rất khó phối hợp, đặc biệt là khi có luật và quy định khác nhau ở các khu vực pháp lý khác nhau với quan điểm văn hóa khác nhau về bảo vệ dữ liệu và quyền riêng tư. Bản thân giao thức này theo mặc định hoàn toàn mở cho các thành viên của tập đoàn, đây là một thiếu sót kỹ thuật rõ ràng và không đáp ứng được các yêu cầu mà nó được thiết kế.

Libra HotStuff BFT không thể đạt được thông lượng cần thiết cho hệ thống thanh toán

Ở Anh, các hệ thống thanh toán bù trừ như BAC có khả năng xử lý khoảng 580 giao dịch mỗi tháng. Đồng thời, các hệ thống được tối ưu hóa cao như Visa có thể xử lý 000 giao dịch mỗi ngày. Hiệu suất thay đổi tùy thuộc vào quy mô giao dịch, định tuyến mạng, tải hệ thống và kiểm tra AML (chống rửa tiền, âm mưu rửa tiền).

Libra đang cố gắng giải quyết các vấn đề không thực sự là vấn đề đối với chuyển khoản trong nước, vì các quốc gia đã hiện đại hóa cơ sở hạ tầng thanh toán bù trừ của họ trong thập kỷ qua. Đối với người tiêu dùng bán lẻ ở Liên minh Châu Âu, việc chuyển tiền không phải là vấn đề gì cả. Trên cơ sở hạ tầng truyền thống, việc này có thể được thực hiện bằng điện thoại thông minh tiêu chuẩn trong vài giây. Đối với việc chuyển nhượng doanh nghiệp lớn, có nhiều cơ chế và quy tắc khác nhau liên quan đến việc chuyển số tiền lớn.

Không có lý do kỹ thuật nào khiến các khoản thanh toán xuyên biên giới không thể được xử lý ngay lập tức, ngoài sự khác biệt về quy tắc và yêu cầu giữa các khu vực pháp lý liên quan. Nếu các biện pháp phòng ngừa cần thiết (thẩm định khách hàng, kiểm tra xử phạt, v.v.) được thực hiện nhiều lần ở các giai đoạn khác nhau của chuỗi giao dịch, điều này có thể dẫn đến sự chậm trễ trong giao dịch. Tuy nhiên, sự chậm trễ này hoàn toàn là do quy định pháp luật và việc tuân thủ chứ không phải do công nghệ.

Đối với người tiêu dùng, không có lý do gì khiến giao dịch ở Vương quốc Anh không được thực hiện chỉ trong vài giây. Các giao dịch bán lẻ ở EU thực sự đang chậm lại kiểm tra KYC (Biết khách hàng của bạn) và các hạn chế AML do chính phủ và cơ quan quản lý áp đặt, áp dụng như nhau cho các khoản thanh toán Libra. Ngay cả khi Facebook vượt qua được những trở ngại trong việc chuyển giao xuyên biên giới và truyền dữ liệu cá nhân, thì mô hình được đề xuất vẫn cách xa thông lượng giao dịch toàn cầu hàng trăm năm và có thể sẽ cần phải được thiết kế lại từ đầu.

Ngôn ngữ Libra Move không chính xác

Sách trắng đưa ra những tuyên bố táo bạo về một ngôn ngữ mới, chưa được thử nghiệm có tên là Move. Những tuyên bố này khá đáng ngờ theo quan điểm của lý thuyết ngôn ngữ lập trình (PLT).

Move là ngôn ngữ lập trình mới để triển khai logic giao dịch tùy chỉnh và hợp đồng thông minh trên chuỗi khối Libra. Vì mục tiêu của Libra là một ngày nào đó sẽ phục vụ hàng tỷ người nên Move được thiết kế với ưu tiên hàng đầu là bảo mật.

Tính năng chính của Move là khả năng xác định các loại tài nguyên tùy ý với ngữ nghĩa lấy cảm hứng từ logic tuyến tính.

Trong các chuỗi khối công khai, hợp đồng thông minh phải đối mặt với logic của mạng công cộng với tài khoản ký quỹ, rửa tiền, phát hành mã thông báo OTC và cờ bạc. Tất cả điều này được thực hiện bằng một ngôn ngữ được thiết kế cực kỳ kém có tên là Solidity, theo quan điểm học thuật, ngôn ngữ này khiến tác giả của PHP trông giống như một thiên tài. Thật kỳ lạ, ngôn ngữ mới của Facebook dường như không liên quan gì đến những công nghệ này, vì nó thực sự là một ngôn ngữ kịch bản dành cho các mục đích kinh doanh khó hiểu.

Trong sổ cái phân phối riêng tư, hợp đồng thông minh là một trong những thuật ngữ được các nhà tư vấn đưa ra mà không quan tâm nhiều đến định nghĩa hoặc mục đích rõ ràng. Các nhà tư vấn phần mềm doanh nghiệp thường kiếm tiền từ sự mơ hồ và hợp đồng thông minh là sự thờ ơ của chủ nghĩa tối nghĩa trong công ty bởi vì chúng có thể được định nghĩa là bất cứ thứ gì theo nghĩa đen.

Sau khi đưa ra tuyên bố về tính bảo mật của nó, chúng ta cần xem xét ngữ nghĩa của ngôn ngữ. Tính đúng đắn trong lý thuyết ngôn ngữ lập trình thường bao gồm hai bằng chứng khác nhau: “tiến bộ” và “bảo toàn”, xác định tính nhất quán của toàn bộ không gian các quy tắc đánh giá cho ngôn ngữ. Cụ thể hơn, trong lý thuyết loại, một hàm là "tuyến tính" nếu nó sử dụng đối số của nó chính xác một lần và "affine" nếu nó sử dụng đối số đó nhiều nhất một lần. Hệ thống kiểu tuyến tính cung cấp sự đảm bảo tĩnh rằng hàm tuyến tính được khai báo là thực sự tuyến tính bằng cách gán kiểu cho tất cả các biểu thức con của hàm và theo dõi nơi thực hiện lệnh gọi. Đây là một đặc tính khó chứng minh và không dễ thực hiện cho toàn bộ chương trình. Gõ tuyến tính vẫn là một lĩnh vực nghiên cứu mang tính hàn lâm, bị ảnh hưởng bởi việc triển khai tính duy nhất của kiểu trong Clean và quyền sở hữu kiểu trong Rust. Có một số đề xuất sơ bộ về việc thêm các kiểu tuyến tính vào Trình biên dịch Haskell Glasgow.

Tuyên bố của Move về việc sử dụng các kiểu tuyến tính có vẻ giống như một sự đi sâu không chính đáng vào trình biên dịch, vì ở đó không có logic kiểm tra kiểu như vậy. Theo những gì người ta có thể nói, sách trắng trích dẫn tài liệu kinh điển từ Girard và Peirce, và không có gì tương tự trong quá trình triển khai thực tế.

Ngoài ra, ngữ nghĩa chính thức của ngôn ngữ được cho là an toàn không xuất hiện trong quá trình triển khai hoặc tài liệu. Ngôn ngữ đủ nhỏ để tìm ra bằng chứng đầy đủ về ngữ nghĩa chính xác trong Coq hoặc Isabelle. Trên thực tế, hoàn toàn có thể triển khai một trình biên dịch chuyển đổi đầy đủ từ đầu đến cuối với khả năng chuyển bằng chứng sang mã byte bằng các công cụ hiện đại được phát minh trong thập kỷ qua. Chúng tôi biết cách thực hiện, bắt đầu với tác phẩm của George Necula và Peter Lee trở lại vào năm 1996.

Từ góc độ lý thuyết ngôn ngữ lập trình, không thể kiểm tra tuyên bố rằng Move là ngôn ngữ đáng tin cậy và an toàn, vì những tuyên bố này chỉ mang tính tiếp thị và vẫy tay thuần túy hơn là bằng chứng thực tế. Đây là tình trạng đáng báo động đối với một dự án ngôn ngữ đang được yêu cầu xử lý các giao dịch trị giá hàng tỷ USD.

Mật mã Libra có sai sót

Xây dựng các hệ thống mật mã an toàn là một vấn đề kỹ thuật rất khó khăn và tốt nhất bạn nên tiếp cận làm việc với các mã nguy hiểm với một chút hoang tưởng lành mạnh. Có những bước đột phá lớn trong lĩnh vực này, như dự án Microsoft Everest, đang xây dựng một hệ thống bảo mật có thể kiểm chứng được. ngăn xếp TLS. Các công cụ đã tồn tại để tạo ra các nguyên thủy có thể kiểm chứng được. Mặc dù điều này rất tốn kém nhưng rõ ràng nó không vượt quá khả năng kinh tế của Facebook. Tuy nhiên, nhóm đã quyết định không tham gia vào dự án được công bố là nền tảng đáng tin cậy cho hệ thống tài chính toàn cầu.

dự án Libra phụ thuộc vào từ một số thư viện khá mới để tạo các hệ thống mật mã thử nghiệm chỉ mới xuất hiện trong vài năm gần đây. Không thể nói liệu sự phụ thuộc vào các công cụ sau có an toàn hay không, vì chưa có thư viện nào trong số này được kiểm tra và không có chính sách tiết lộ tiêu chuẩn. Đặc biệt, đối với một số thư viện cốt lõi, không có sự chắc chắn nào về khả năng bảo vệ chống lại các cuộc tấn công kênh bên và các cuộc tấn công theo thời gian.

  1. ed25519-dalek
  2. đường cong25519-dalek

Thư viện libra thậm chí còn trở nên mang tính thử nghiệm hơn và vượt xa hơn mẫu tiêu chuẩn, áp dụng các kỹ thuật rất mới như hàm ngẫu nhiên có thể kiểm chứng (VRF), cặp song tuyến và chữ ký ngưỡng. Các phương pháp và thư viện này có thể hợp lý, nhưng việc kết hợp tất cả chúng vào một hệ thống sẽ gây ra mối lo ngại nghiêm trọng về diện tích bề mặt tấn công. Sự kết hợp của tất cả các công cụ và kỹ thuật mới này làm tăng đáng kể độ phức tạp của việc chứng minh tính bảo mật.

Cần giả định rằng toàn bộ ngăn xếp mật mã này dễ bị tấn công bởi nhiều cuộc tấn công khác nhau cho đến khi được chứng minh ngược lại. Mô hình 'Move Fast and Break Things' nổi tiếng của Facebook không thể áp dụng cho các công cụ mật mã xử lý dữ liệu tài chính của khách hàng.

Libra không thực hiện được cơ chế bảo vệ người tiêu dùng

Một tính năng đặc biệt của hệ thống thanh toán là khả năng khôi phục giao dịch nếu khoản thanh toán bị hủy bởi một vụ kiện hoặc dẫn đến lỗi hệ thống hoặc vô tình. Hệ thống Libra được thiết kế để "hoàn thiện" và không bao gồm loại giao dịch hủy thanh toán. Ở Anh, tất cả các khoản thanh toán từ 100 đến 30,000 bảng đều phải tuân theo Đạo luật tín dụng tiêu dùng. Điều này có nghĩa là hệ thống thanh toán chia sẻ trách nhiệm với người bán trong trường hợp xảy ra sự cố với sản phẩm đã mua hoặc nếu người nhận thanh toán không cung cấp dịch vụ. Các quy tắc tương tự được áp dụng ở EU, Châu Á và Bắc Mỹ.

Thiết kế hiện tại của Libra không bao gồm một giao thức để tuân thủ các luật này và không có kế hoạch rõ ràng để tạo ra một giao thức. Tệ hơn nữa, từ góc độ kiến ​​trúc, tính hữu hạn của cấu trúc dữ liệu được xác thực của kernel, dựa trên trạng thái của ổ Merkle, không cho phép bất kỳ cơ chế nào tạo giao thức như vậy mà không thiết kế lại kernel.

Sau khi tiến hành đánh giá kỹ thuật về dự án này, chúng tôi có thể kết luận rằng nó sẽ không vượt qua được bất kỳ tạp chí nghiên cứu hệ thống phân tán hoặc kỹ thuật tài chính có uy tín nào. Để cố gắng thay đổi chính sách tiền tệ toàn cầu, cần phải thực hiện một lượng lớn công việc kỹ thuật để tạo ra một mạng lưới đáng tin cậy và xử lý an toàn dữ liệu người dùng mà công chúng và cơ quan quản lý có thể tin tưởng.

Tôi không thấy có lý do gì để tin rằng Facebook đã thực hiện những công việc cần thiết trong thiết kế của mình để khắc phục những vấn đề kỹ thuật này hoặc rằng Facebook có bất kỳ lợi thế kỹ thuật nào so với cơ sở hạ tầng hiện tại. Nói rằng một công ty cần sự linh hoạt về quy định để khám phá những đổi mới không phải là lý do để không thực hiện chúng trước tiên.

Nguồn: www.habr.com

Thêm một lời nhận xét