Khoa học phổ biến: Chuỗi khối và Hệ thống phân tán
Lưu ý của biên tập viên: Bài viết này đến từCộng đồng Đăng Liên, được in lại bởi Odaily với sự cho phép.
Lưu ý của biên tập viên: Bài viết này đến từ
Cộng đồng Đăng Liên
, được in lại bởi Odaily với sự cho phép.
Sự phổ biến của công nghệ chuỗi khối đã thúc đẩy sự phát triển hơn nữa của công nghệ phân tán truyền thống. Từ góc độ bản chất của công nghệ chuỗi khối, về cơ bản nó không thể tách rời khỏi công nghệ cốt lõi của các hệ thống phân tán và mật mã truyền thống. Vậy công nghệ blockchain có thực sự đáng để nghiên cứu? Blockchain chọn chúng tôi hay chúng tôi chọn blockchain? Bài viết này tìm hiểu blockchain từ góc nhìn của một nhà nghiên cứu hệ thống phân tán.
Mọi người thường nghĩ về blockchain như một cơ sở dữ liệu phân tán hoặc sổ cái phân tán, điều này không chính xác và khó hiểu. So với cơ sở dữ liệu phân tán mà chúng ta thường thấy, blockchain có hai điểm khác biệt chính: thuật toán đồng thuận và cấu trúc chuỗi. Hai điều này bổ sung cho nhau và cùng nhau tạo nên tính độc đáo của chuỗi khối.
tiêu đề phụ
thuật toán đồng thuận
Các thuật toán đồng thuận được áp dụng bởi cơ sở dữ liệu phân tán thường dựa trên một loạt các thuật toán có nguồn gốc từ Paxos. Tính bảo mật của các thuật toán này dựa trên giả định tập trung hóa, nghĩa là tất cả các nút được quản lý bởi một trung tâm đáng tin cậy. Theo giả định này, tất cả các nút được coi là "trung thực", nghĩa là tất cả các nút đều cố gắng hết sức để gửi tin nhắn và tin nhắn sẽ không bị giả mạo. Nếu một số lượng nhỏ các nút bị hỏng hoặc mất kết nối, điều đó sẽ không ảnh hưởng đến tính bảo mật của giao thức.
Tuy nhiên, thuật toán đồng thuận trong chuỗi khối không giả định tập trung hóa và mỗi nút có thể được coi là có hành vi độc lập, đây cũng là nguồn gốc của "phân quyền" của chuỗi khối. Giao thức cho phép một số nút (thường ít hơn 1/3) là nút Byzantine, họ có thể chọn tuân theo hoặc vi phạm giao thức theo ý muốn của mình, gửi tin nhắn tùy ý hoặc giả vờ không hoạt động. Nút Byzantine có thể là nút bị kiểm soát hoàn toàn bởi kẻ tấn công hoặc nút có lỗi nghiêm trọng trong phần mềm của chính nó. Loại thuật toán này được gọi là thuật toán chịu lỗi Byzantine, viết tắt là BFT. Có thể thấy rõ khả năng chịu lỗi của thuật toán đồng thuận của blockchain cao hơn rất nhiều so với cơ sở dữ liệu phân tán truyền thống nên thường kém hiệu quả hơn.
Nghiên cứu về thuật toán đồng thuận BFT đã được bắt đầu từ lâu và nghiên cứu có ảnh hưởng nhất là PBFT (Practical BFT) được đề xuất bởi người đoạt giải Turing, Barbara vào năm 1999 OSDI [1]. Tuy nhiên, do thuật toán có độ phức tạp cao nên khó triển khai trên diện rộng. Ngoài ra, loại thuật toán này cũng yêu cầu phải biết danh tính của từng nút, nghĩa là khi giao thức được khởi tạo hoặc khi một nút mới tham gia, cần có cơ chế kiểm soát truy cập (Kiểm soát truy cập) để đảm bảo rằng các nút có thể xác thực danh tính của nhau. Dựa trên những lý do trên, nghiên cứu về các giao thức BFT truyền thống đã không đạt được nhiều tiến bộ cho đến năm 2010.
Tiêu thụ tài nguyên lớn. Những người khai thác tham gia vào mạng cần phải trả chi phí phần cứng và điện rất lớn.
Hiệu suất cực thấp. Mạng Bitcoin có thể xử lý khoảng 7 giao dịch mỗi giây và thời gian tạo trung bình của mỗi khối là khoảng 10 phút.
giao dịch không chắc chắn. Ngay cả khi một khối được xác nhận trong mạng Bitcoin, do khả năng rẽ nhánh của chuỗi khối, khối đó vẫn có nguy cơ bị viết lại. Chỉ sau khi đợi một khối được xác nhận nhiều lần (ví dụ: 6 lần) thì nguy cơ khối này bị viết lại mới có thể giảm đủ. Điều này cũng làm tăng thêm độ trễ cho các giao dịch được xác nhận.
Để giảm chi phí trên, nhiều nhà nghiên cứu đã có những nỗ lực đáng ghi nhận. Ví dụ: để cải thiện hiệu suất của thuật toán đồng thuận, các nhà nghiên cứu từ Đại học Cornell đã đề xuất Bitcoin-NG [2] tại NDSI vào năm 2016. Các nhà nghiên cứu từ MIT và Stanford đã đề xuất Prism [3] tại CCS vào năm 2019 để tiếp tục mở rộng Bitcoin. Ngoài ra, để giảm mức tiêu thụ tài nguyên, các nhà nghiên cứu từ MIT đã đề xuất Algorand dựa trên Proof-of-Stake tại SOSP vào năm 2017, loại bỏ mức tiêu thụ khai thác.
tiêu đề phụ
cấu trúc chuỗi
Một cải tiến khác do blockchain mang lại là cấu trúc chuỗi. Mỗi khối được liên kết với khối trước đó thông qua hàm băm, tất cả đều quay trở lại khối ban đầu, tạo thành một chuỗi vô tận. Một lợi thế của cấu trúc này là khi một nút xác nhận một khối, điều đó có nghĩa là tất cả các khối trước đó trên chuỗi nơi đặt khối đó đều được xác nhận cùng một lúc. Dựa trên cấu trúc chuỗi này, có thể dễ dàng áp dụng nguyên tắc "chuỗi dài nhất" trong chuỗi khối để phát hành các khối mới. Ví dụ: đối với Bitcoin, do sự cố mạng và các cuộc tấn công độc hại, một người khai thác có thể nhìn thấy nhiều chuỗi, nhưng những người khai thác luôn có xu hướng khai thác trên chuỗi dài nhất.
Ngay cả khi bạn tìm thấy một chuỗi dài hơn chuỗi bạn đang khai thác ở giữa chừng, bạn phải chuyển sang chuỗi dài hơn. Nguyên tắc "chuỗi dài nhất" không nhất thiết phải bắt buộc và nó sẽ không ảnh hưởng nghiêm trọng đến tính bảo mật của giao thức, nhưng khi tất cả những người khai thác tuân thủ nguyên tắc này, thì mỗi người khai thác có thể mong đợi thu được lợi ích tối đa. Tất nhiên, có những trường hợp ngoại lệ, khi một người khai thác sở hữu một lượng tài nguyên tương đối lớn (dưới 50%), chiến lược "khai thác ích kỷ" (khai thác ích kỷ) [4] có thể được áp dụng, điều này vi phạm nguyên tắc "chuỗi dài nhất" và tìm kiếm thu nhập cao hơn.
Cấu trúc chuỗi của chuỗi khối cũng đã mang lại nguồn cảm hứng lớn cho các nhà nghiên cứu nghiên cứu BFT truyền thống và nhiều giao thức BFT phù hợp với chuỗi khối đã bắt đầu xuất hiện. Nổi tiếng nhất trong số này là giao thức đồng thuận LibraBFT [5] được Facebook thông qua. LibraBFT dựa trên HotStuff [6], được đề xuất bởi các nhà nghiên cứu từ VMware. HotSutff cải thiện hiệu suất của BFT truyền thống bằng cách áp dụng cấu trúc chuỗi của chuỗi khối, cho phép giao thức được triển khai trong một mạng có hàng trăm nút. Hãy để tôi giải thích ngắn gọn về sự kỳ diệu của cấu trúc chuỗi này.
Để giải quyết vấn đề này, HotStuff giới thiệu một cấu trúc chuỗi trên cơ sở PBFT. Do các đặc điểm của cấu trúc chuỗi được đề cập ở trên, phiếu bầu của nút cho một khối thực sự là phiếu bầu cho tất cả các khối trước đó trên chuỗi nơi đặt khối này. Do đó, HotStuff được xâu chuỗi làm giảm các giai đoạn bỏ phiếu khác nhau và chỉ giữ lại hình thức Đề xuất-Bỏ phiếu thống nhất. Điều này được thể hiện trong hình bên dưới (nguồn [6]).
tóm tắt
HotStuff tiếp tục sử dụng các đặc điểm của cấu trúc chuỗi để chỉ định quy tắc bỏ phiếu và quy tắc xác nhận khối (quy tắc cam kết), nhằm đảm bảo tính bảo mật của giao thức. Cấu trúc chuỗi làm cho giao thức BFT trở nên đơn giản và thanh lịch, đồng thời nó có thể thực hiện tốt hoạt động theo đường ống, giúp cải thiện hiệu suất của giao thức và giảm đáng kể không gian trạng thái.


