Blockchain giải quyết vấn đề tướng Byzantine như thế nào?

Giải thích vấn đề về tướng Byzantine

Một hệ thống máy tính đáng tin cậy phải có khả năng hoạt động ngay cả khi một hoặc nhiều thành phần của nó bị lỗi. Một thành phần không thành công có thể hiển thị một hành vi thường bị bỏ qua:cung cấp dữ liệu mâu thuẫn cho các phần khác nhau của hệ thống. Vậy, vấn đề của các vị tướng Byzantine là gì? Bài toán các tướng Byzantine là một biểu hiện trừu tượng của vấn đề đối phó với kiểu thất bại này.

Bài toán các tướng Byzantine là một bài toán lý thuyết trò chơi mô tả việc các bên phân tán khó đạt được đồng thuận như thế nào mà không có sự trợ giúp của một bên trung tâm đáng tin cậy. Làm thế nào các thành viên của một mạng lưới có thể đồng ý về một thực tế cụ thể khi không ai có thể xác minh danh tính của các thành viên khác?

Lý thuyết trò chơi là một khuôn khổ để suy nghĩ về các sự kiện xã hội với các tác nhân cạnh tranh. Trong môi trường chiến lược, lý thuyết trò chơi hình thành hoàn cảnh xã hội giữa những người tham gia cạnh tranh và đưa ra quyết định tối ưu cho các tác nhân cạnh tranh và tự chủ.

Các tướng Byzantine dựa trên sự tương tự lý thuyết trò chơi. Vấn đề là nhiều tướng vây hãm Byzantium. Họ đã bao vây thành phố, nhưng họ phải quyết định thời điểm tấn công thành một nhóm. Họ sẽ thắng nếu tất cả các tướng tấn công đồng thời; tuy nhiên, họ sẽ thua nếu họ tấn công.

Bởi vì bất kỳ bức thư nào họ truyền hoặc nhận có thể đã bị chặn hoặc đánh lừa bởi quân phòng thủ của Byzantium, các tướng lĩnh không có kênh liên lạc an toàn với nhau. Làm cách nào để các tướng phối hợp tấn công đồng thời?

Bài viết này nhằm mục đích giải thích lỗi Byzantine trong blockchain là gì và cách giải quyết vấn đề về tướng Byzantine.

Bài báo nghiên cứu

"The Byzantine Generals Problem," một bài báo nghiên cứu của Leslie Lamport, Robert Shostak và Marshall Pease, được xuất bản năm 1982. Tầm quan trọng của vấn đề này được thể hiện rõ ngay từ trang mở đầu, trong đó lưu ý rằng National Cơ quan Hàng không và Vũ trụ (NASA), Bộ Chỉ huy Hệ thống Phòng thủ Tên lửa Đạn đạo và Văn phòng Nghiên cứu Quân đội đều tài trợ cho nghiên cứu của họ.

Mặc dù bài toán tướng Byzantine đã được nghiên cứu trong khoa học máy tính trước năm 1982, đây là một trong những nỗ lực đầu tiên để chuyển nó thành các giải pháp song song và được đề xuất. Sự tương tự sau đây minh họa vấn đề các tướng Byzantine. Một số sư đoàn của quân đội Byzantine đóng quân ngay bên ngoài thành phố của kẻ thù, chuẩn bị cho chiến tranh. Cách duy nhất để các vị tướng khác nhau kết nối là thông qua một sứ giả. Họ phải đồng ý về một quá trình hành động.

Tuy nhiên, chúng ta phải cho rằng một số vị tướng nhất định, có ý định ngăn các tướng trung thành quyết định một hành động nào đó, là những kẻ phản bội. Để đảm bảo rằng một nhóm nhỏ những kẻ phản bội không thể làm gián đoạn liên lạc, một thuật toán được yêu cầu.

Để giải quyết vấn đề của các tướng lĩnh Byzantine, các tướng lĩnh trung thành cần một phương tiện an toàn để thống nhất một kế hoạch (được gọi là đồng thuận) và thực hiện nó (được gọi là phối hợp). Trong khi việc giải quyết vấn đề các tướng Byzantine là một nhiệm vụ khó khăn, giờ đây chúng ta đã hiểu rõ hơn về vấn đề cơ bản. Điều quan trọng cần lưu ý là, như ví dụ cho thấy, khái niệm này có thể được áp dụng cho thông tin liên lạc quân sự.

Tuy nhiên, vấn đề này ảnh hưởng đến tất cả các loại hệ thống máy tính, không chỉ những hệ thống được sử dụng trong các ứng dụng quân sự. Vấn đề chung của Byzantine phải được giải quyết nếu một nhóm nút phân tán (ví dụ:máy tính hoặc các thiết bị vật lý khác) cần đạt được thông tin liên lạc đáng tin cậy.

Hiểu khả năng chịu lỗi của Byzantine (BFT)

Có một số lý do khiến hệ thống máy tính phân tán có thể bị lỗi. Trong kịch bản quân sự ở trên, những thất bại của Byzantine về cơ bản là những kẻ phản bội cố gắng làm gián đoạn liên lạc giữa các tướng lĩnh trung thành.

Đây có thể là lỗi phần mềm, trục trặc phần cứng hoặc một cuộc tấn công độc hại khi áp dụng cho các hệ thống máy tính trong thế giới thực. Nói cách khác, những thất bại của Byzantine không phải lúc nào cũng là kết quả của nỗ lực phối hợp nhịp nhàng của một tác nhân tồi. Có thể có những khó khăn cản trở các nút đạt được sự đồng thuận trên các mạng phân tán.

Bất kỳ lỗi hệ thống nào có các triệu chứng khác nhau đối với những người quan sát khác nhau được gọi là lỗi Byzantine. Nó không chứa các ràng buộc và giả định về loại hành vi mà một nút có thể thể hiện (ví dụ:một nút có thể tạo ra dữ liệu tùy ý trong khi đóng vai trò là một tác nhân trung thực).

Trong mọi hệ thống máy tính phân tán, lỗi của Byzantine hầu như không thể tránh khỏi.

Hãy tưởng tượng có một sự cố mất điện và tất cả các nút ngoại tuyến đồng thời. Bây giờ, câu hỏi đặt ra là nếu mạng vẫn hoạt động và có khả năng duy trì liên lạc đáng tin cậy? Hay toàn bộ hệ thống ngừng hoạt động hoặc đột ngột bị tấn công?

Trong một mạng an toàn hợp lý, bất kỳ thứ gì nhỏ nhất như một vài nút ngoại tuyến đều không ảnh hưởng rõ ràng đến mạng. Khả năng chịu lỗi của Byzantine là khả năng chống lại những điều kiện này. Các mạng có thể chịu đựng nhiều lỗi Byzantine hơn được cho là có khả năng chịu đựng cao hơn, ngụ ý rằng chúng an toàn hơn những mạng không thể.

Tỷ lệ mắc và phân loại thực tế của các lỗi Byzantine trong các hệ thống khác nhau là một chủ đề rộng lớn và đầy thách thức. Tuy nhiên, nó có thể được xác định theo cách mà một định nghĩa chính thức về khả năng chịu lỗi của Byzantine xuất hiện.

Cần lưu ý rằng các sai sót của Byzantine là nghiêm trọng nhất và khó sửa chữa nhất. Khả năng chịu lỗi Byzantine được yêu cầu trong các nhà máy điện hạt nhân, hệ thống động cơ hàng không và hầu hết mọi hệ thống có hoạt động phụ thuộc vào kết quả của một số lượng lớn các cảm biến.

Vấn đề chung của Byzantine trong hệ thống phân tán

Chỉ các hệ thống phi tập trung mới dễ gặp vấn đề về các vị tướng Byzantine, vì chúng thiếu nguồn thông tin đáng tin cậy và không có cách nào xác nhận thông tin chúng nhận được từ những người dùng mạng khác. Trong các hệ thống tập trung, một cơ quan có thẩm quyền được tin tưởng để phổ biến thông tin chính xác đồng thời ngăn chặn sự lan truyền thông tin sai lầm hoặc gian lận trên toàn mạng.

Ví dụ:trong hệ thống tài chính truyền thống, các ngân hàng được tin tưởng cung cấp cho khách hàng số dư và lịch sử giao dịch chính xác. Nếu một ngân hàng cố gắng lừa dối hoặc đánh lừa người tiêu dùng của mình, thì ngân hàng trung ương hoặc chính phủ được phép khôi phục niềm tin.

Tình trạng tiến thoái lưỡng nan của các tướng Byzantine, không nhất quán đòi hỏi phải xác lập chân lý, không được giải quyết bằng các hệ thống tập trung. Thay vào đó, họ chọn không đối đầu với vấn đề, chọn hiệu quả hơn là đáng tin cậy. Mặt khác, các hệ thống tập trung rất dễ xảy ra tình trạng tham nhũng của cơ quan trung ương.

Ví dụ về vấn đề tướng Byzantine

Vấn đề các tướng Byzantine được minh chứng bằng tiền. Làm thế nào một xã hội có thể xây dựng một hệ thống tiền tệ mà tất cả các thành viên có thể tin tưởng và đồng ý? Các xã hội đã sử dụng kim loại quý hoặc các vật phẩm quý hiếm khác, chẳng hạn như vỏ sò hoặc hạt thủy tinh, làm tiền tệ trong hầu hết lịch sử. Vàng đã giải quyết được vấn đề của các vị tướng Byzantine vì nó được tin cậy và công nhận trên các hệ thống phi tập trung như thương mại quốc tế.

Mặt khác, trọng lượng và độ tinh khiết của vàng vẫn không đáng tin cậy cho đến nay. Sự thất bại của vàng trong việc giải quyết triệt để vấn đề của các tướng lĩnh Byzantine đã dẫn đến việc các cơ quan trung ương đáng tin cậy, chủ yếu là các chính phủ, tiếp quản việc thành lập và phát hành tiền. Các chính phủ độc quyền về bạc hà để tạo niềm tin vào trọng lượng và độ tinh khiết của đồng tiền. Do đó, lỗi Byzantine không được giải quyết bằng các hệ thống tập trung.

Hơn nữa, các cơ quan trung ương đáng tin cậy về tiền bạc, các chính phủ, đã phản bội niềm tin đó bằng cách chiếm đoạt, phá hoại hoặc sửa đổi nó. Để giải quyết vấn đề của các vị tướng Byzantine, một loại tiền tệ phải có thể kiểm chứng, chống hàng giả và không đáng tin cậy. Thành tựu này đã không được hoàn thành cho đến khi Bitcoin (BTC) ra đời.

Bạn giải quyết vấn đề về tướng Byzantine như thế nào?

Vấn đề có thể được giải quyết bằng cách triển khai một giao thức sử dụng các cơ chế chịu lỗi. Khi đối mặt với sự không chắc chắn, áp dụng một thủ tục giữa các vị tướng là phương pháp tốt nhất để đưa ra lựa chọn.

Do đó, nó trở nên xác suất hơn là xác định vì không có gì có thể được đảm bảo. Đó chính xác là trường hợp khi các đồng nghiệp ít giao tiếp trực tiếp hơn và mỗi người đều sống khép kín. Bởi vì mỗi vị tướng ở một nơi khác nhau, có một sự tách biệt về thể chất giữa họ.

Blockchain:Giải pháp cho vấn đề chung của Byzantine

Vấn đề chung của Byzantine có thể được giải quyết với sự trợ giúp của blockchain. Tất cả là nhằm mang đến cho mọi người cách giao tiếp an toàn và bảo mật trong một thế giới không thể đoán trước. Trong thế giới thực, hầu hết các giao dịch xảy ra giữa những người lạ không quen biết hoặc không tin tưởng lẫn nhau.

Mỗi cá nhân giống như một vị tướng, chờ lệnh để tấn công hoặc bảo vệ vị trí của họ. Không có người trung gian nào thay mặt bạn phân xử cuộc tấn công; bạn hoàn toàn tự quyết định.

Một chuỗi khối tạo ra một lớp có thể được tin cậy mà không cần phải tin tưởng vào từng cá nhân. Điều này được thực hiện bởi một mạng lưới các nút kết hợp với nhau để thống nhất về sự thật trước khi nó được ghi lại. Nếu vị tướng không chắc chắn về nội dung của giao tiếp, các vị tướng khác có thể xác minh điều đó bằng cách sử dụng những gì họ biết là đúng.

Khi một nút đã ghi nó, một bản sao sẽ được gửi đến tất cả các nút khác trong mạng, làm cho thông tin trở nên dư thừa. Thuật toán đồng thuận PoW được thiết kế để đạt được mục tiêu này. Những kẻ xấu vẫn sẽ cố gắng đánh lừa hệ thống vì thông tin không phải lúc nào cũng chính xác.

Vì hệ thống được thiết kế để công chúng sử dụng, các cơ chế chịu lỗi và bảo mật được áp dụng trong một chuỗi khối. Trong trường hợp này, mật mã được yêu cầu để đảm bảo rằng các thông điệp không thể bị thay đổi.

Hệ thống cung cấp các cặp khóa để ký điện tử một liên lạc nhằm xác minh danh tính làm bằng chứng rằng nó đến từ những người được cho là đã gửi nó. Khi tin nhắn đã được xác thực, chúng sẽ được ghi lại để minh bạch và bằng chứng lịch sử về trách nhiệm giải trình.

Bitcoin giải quyết vấn đề tướng Byzantine như thế nào?

Về tiền bạc, Bitcoin là giải pháp đầu tiên được thực hiện cho vấn đề của các vị tướng Byzantine. Nhiều kế hoạch và dự án trước khi Bitcoin cố gắng tạo ra tiền độc lập với chính phủ, nhưng chúng đều thất bại theo một cách nào đó.

Bitcoin cần phương tiện để xử lý quyền sở hữu và tránh chi tiêu kép như một hệ thống tiền tệ. Bitcoin sử dụng một chuỗi khối, hoặc một sổ cái phân tán, công khai, lưu trữ lịch sử của tất cả các giao dịch để thực hiện điều này một cách không tin cậy. Blockchain, theo cách ví von chung của Byzantine, là chân lý mà tất cả các bên phải đồng ý.

Nếu tất cả các nút trong mạng Bitcoin có thể đồng ý về giao dịch nào đã xảy ra khi nào và theo trình tự nào, thì họ có thể xác minh quyền sở hữu Bitcoin và tạo ra một hệ thống tiền tệ hoạt động, không tin cậy mà không cần cơ quan tập trung.

Proof-of-Work (PoW) và vấn đề tướng Byzantine

Satoshi Nakamoto đã phát hành whitepaper Bitcoin đầu tiên vào tháng 10 năm 2008. Mặc dù tên "Vấn đề các vị tướng của Byzantine" không được sử dụng trong tài liệu này, Nakamoto đã đưa ra một giải pháp hiệu quả sẽ được triển khai vào tháng 1 năm 2009 với phần giới thiệu của mạng Bitcoin.

Satoshi đã nghĩ ra một phương tiện sử dụng bảo mật mật mã và mã hóa khóa công khai để giải đáp vấn đề chung của Byzantine trong mạng điện tử kỹ thuật số. Để ngăn chặn việc giả mạo dữ liệu, bảo mật mật mã sử dụng băm, một quá trình mã hóa. Danh tính của người dùng mạng được xác minh thông qua mã hóa khóa công khai.

Một giao dịch được bảo mật trong một khối được kết nối với các khối khác bằng giá trị băm của nó trong bảo mật mật mã. Tất cả các hàm băm có thể được theo dõi đến gốc của tất cả các hàm băm, là một khối ban đầu. Chuỗi khối là một hệ thống sử dụng Cây Merkle để xác minh các hàm băm đến từ một khối gốc.

Mọi khối trong mạng đến từ khối đầu tiên, còn được gọi là khối gốc, đều hợp lệ. Những người khai thác xác thực các khối, những người cạnh tranh với những người khai thác khác để giải các câu đố mật mã để tạo ra các khối như một phần của phương pháp đồng thuận PoW.

Bằng cách sử dụng cơ chế đồng thuận bằng chứng công việc, Bitcoin đã vượt qua vấn đề chung của Byzantine và thiết lập một quy tắc rõ ràng, khách quan cho blockchain. Để thêm thông tin vào chuỗi khối, được gọi là khối, một thành viên mạng phải công bố bằng chứng rằng họ đã nỗ lực rất nhiều để tạo khối. Công việc này có giá cao đối với người sáng tạo, khuyến khích họ chia sẻ thông tin chính xác.

Không thể có bất đồng hoặc giả mạo thông tin trên mạng Bitcoin vì các quy tắc là khách quan. Hệ thống để chọn ai có thể khai thác Bitcoin mới và luật quy định giao dịch nào là hợp lệ hoặc không hợp lệ đều là hai mục tiêu. Hơn nữa, không thể xóa một khối khỏi chuỗi khối sau khi nó đã được thêm vào, làm cho lịch sử của Bitcoin không thể thay đổi.

Do đó, vấn đề về các vị tướng Byzantine được giải quyết bởi những người khai thác tương tự như các vị tướng trong phiên bản blockchain của Satoshi. Mỗi nút chịu trách nhiệm xác thực các giao dịch, tương tự như các thông điệp được gửi đến các vị tướng. Những kẻ xấu (ví dụ:tin tặc) nhằm đánh cắp tin nhắn hoặc gây hại cho mạng có thể được coi là kẻ thù.

Tin tặc (tức là kẻ trung gian) không thể dễ dàng tấn công chuỗi khối vì tin nhắn sử dụng bảo mật mật mã. Để ngăn chặn thao tác, các thông báo hoặc giao dịch được nhóm lại thành các khối và được băm để tăng cường bảo vệ. Satoshi làm cho mọi thứ trở nên xác suất hơn bằng cách đưa các thợ mỏ vào một cuộc thi để xác nhận các khối. Điều này làm cho nó phi tập trung hơn vì không có người khai thác nào có thể nhận được tất cả phần thưởng bằng cách độc quyền xác nhận.

Thay vào đó, các thợ đào phải cạnh tranh để giải một câu đố bằng cách sử dụng sức mạnh tính toán của họ, được gọi là tỷ lệ băm. Tỷ lệ băm của người khai thác càng cao thì khả năng họ giải được câu đố càng cao. Khi người khai thác đã giải được câu đố truyền phát giải pháp cho mạng, tất cả những người khai thác khác phải xác nhận hoặc từ chối giá trị nếu nó bị sai. Mục tiêu khó khăn là giá trị phải bằng hoặc nhỏ hơn giá trị chính xác.

Các thành viên của mạng Bitcoin có thể đồng ý về trạng thái của blockchain và tất cả các giao dịch trong blockchain bất kỳ lúc nào. Mỗi nút xác minh xem các khối có hợp lệ theo tiêu chí bằng chứng công việc hay không và liệu các giao dịch có hợp lệ theo tiêu chí bổ sung hay không.

Nếu một thành viên mạng cố gắng phát đi thông tin sai lệch, tất cả các nút trên mạng sẽ phát hiện thông tin đó là không hợp lệ về mặt khách quan và bỏ qua thông tin đó. Không cần phải tin tưởng các thành viên khác của mạng Bitcoin vì mỗi nút có thể xác minh mọi thông tin trên mạng, chính nó, làm cho Bitcoin trở thành một hệ thống không tin cậy.

Blockchain cũng được phân cấp, có nghĩa là hệ thống không được có một điểm lỗi nào. Các khối được lưu trong cơ sở dữ liệu phân tán, cơ sở dữ liệu này được sao chép qua mạng. Sự dự phòng này cũng hỗ trợ khả năng chịu lỗi, đảm bảo rằng không có máy tính bị trục trặc nào có thể làm hỏng toàn bộ hệ thống. Điều này tương đương với việc có nhiều sứ giả trong trường hợp một người bị đối phương phục kích. Tin nhắn sẽ không bị mất vì nó sẽ được sao chép bởi những người đưa tin khác.

Các giải pháp mới:Bằng chứng cổ phần (PoS) và Bằng chứng cổ phần được ủy quyền (DPoS)

PoS là một cơ chế đồng thuận blockchain khác tìm cách giải quyết vấn đề chung của Byzantine. Nó được triển khai lần đầu tiên vào năm 2012. Các mạng dựa trên PoS, không giống như các mạng dựa trên PoW, không phụ thuộc vào việc khai thác tiền điện tử. Thay vào đó, một kỹ thuật gọi là đặt cược được thực hiện.

Người dùng (được gọi là người xác thực) đặt tiền vào hệ thống này. Người xác thực sở hữu nhiều đồng tiền hơn trên blockchain có thể xác nhận nhiều khối hơn và kiếm được phần thưởng lớn hơn. Người dùng cố gắng xác thực các giao dịch không chính xác có nguy cơ bị mất tiền đặt cọc.

Người dùng có thể đặt cược tiền xu bằng máy tính gia đình bình thường thay vì cần các máy chuyên dụng để khai thác trong mạng dựa trên PoW. Một số mạng dựa trên PoS đã tạo ra các cách để ngăn chặn các cuộc tấn công chi tiêu gấp đôi và các lỗ hổng bảo mật tiềm ẩn khác do lỗi của Byzantine gây ra. Ví dụ:Ethereum 2.0 (Serenity) sẽ sử dụng thuật toán Casper PoS, thuật toán này yêu cầu 2/3 số nút đồng ý về một khối trước khi nó có thể được tạo.

Bằng chứng cổ phần được ủy quyền là một kỹ thuật đồng thuận blockchain hoạt động tương tự như bằng chứng cổ phần và được phát triển lần đầu tiên vào năm 2014. Cả hai đều yêu cầu người dùng đặt tiền. Chỉ một số người dùng (được gọi là đại biểu) có thể xác thực giao dịch và tạo khối trong mạng dựa trên DPoS.

Nói chung, bất kỳ người dùng nào cũng có thể đặt cược vào đồng tiền của blockchain để bỏ phiếu ủng hộ ứng cử viên đại biểu. Phần thưởng khối thường được phân phối tương ứng với số tiền đặt cọc trong các cuộc bầu cử đại biểu bởi các nút được bầu cho cử tri của họ.

Các nút có thể đạt được sự đồng thuận nhanh hơn đáng kể bằng cách sử dụng DPoS so với những gì chúng có thể làm với PoW hoặc PoS. Ở quy mô lớn, điều này có nghĩa là các giao dịch có thể được xử lý nhanh hơn đáng kể. Duy trì mức độ chịu lỗi Byzantine cao với DPoS có thể trở thành vấn đề trong một số trường hợp do sự cân bằng.

Vì ít nút hơn chịu trách nhiệm giữ mạng an toàn, nên có khả năng các nút âm mưu chống lại lợi ích tốt nhất của đa số sẽ dễ dàng hơn. Mặt khác, các mạng dựa trên DPoS cố gắng tránh tình huống này bằng cách tổ chức bầu cử đại biểu thường xuyên để đảm bảo rằng các đại biểu phải chịu trách nhiệm về các quyết định của họ.


Chuỗi khối
  1. Chuỗi khối
  2. Bitcoin
  3. Ethereum
  4. Trao đổi tiền tệ kỹ thuật số
  5. Khai thác mỏ