Nguyên lí hoạt động của PoS

Bài viết gốc tiếng Anh của tác giả Hugo Nguyen đăng ngày 19/03/2018, Boonja chuyển ngữ tiếng Việt.

BVNews trân trọng mang đến bạn đọc.


Proof-Of-Stake (PoS – bằng chứng cổ phần) là giao thức rất được ưa chuộng trong thời gian qua. Ethereum Casper, Cardano Ouroboros và rất nhiều cái tên khác. Lý do các giao thức PoS thu hút nhiều sự chú ý có lẽ nằm ở mong muốn mở rộng quy mô blockchain không giới hạn cùng ngộ nhận rằng giao thức Proof-of-Work (PoW – bằng chứng công việc) bằng một cách nào đó, “gây lãng phí”. (Nhấn vào đây để xem bài phân tích với đầy đủ chi tiết về PoW)

Khi bàn luận về các giao thức PoS, có một chủ đề thường không được làm rõ và nhấn mạnh đúng mức, đó là việc các giao thức này thiếu mất khả năng chống chọi và hồi phục trước những tình huống tệ nhất có thể xảy ra với mạng lưới [1]. Ví dụ như những sự kiện bất thường làm sập nguồn, chia cắt một phần hoặc thậm chí toàn bộ mạng lưới. Một rủi ro khác nữa là việc khoá riêng tư bị cướp/mua lại.

Thông thường những viễn cảnh này hay bị cho là rất hiếm gặp hoặc khó mà xảy ra, nhưng a) thực ra nó không hiếm như bạn nghĩ, và b) ngay cả khi xác suất xảy ra chỉ là 0.1% thì điều đó có nghĩa là nó sẽ xảy ra sau này – Nassim Taleb gọi đó là những sự kiện Thiên Nga Đen.

Nói một cách đơn giản, đây là những biến cố cực kỳ khó xảy ra, nhưng một khi đã xảy ra thì hậu quả kéo theo thường hết sức tàn khốc. Con người luôn có xu hướng đánh giá thấp những sự kiện hy hữu có tác động nặng nề. Ví dụ như ảo tưởng cho rằng ngày mai sẽ là một ngày yên bình, đơn giản vì mọi thứ đã luôn yên bình như vậy trong suốt 10 hoặc 100 năm qua.

http://bit.ly/32LbCLR

Việc cân nhắc cẩn trọng về những sự kiện xác xuất thấp là cực kỳ quan trọng khi thiết kế một giao thức có tiềm năng sẽ trở thành xương sống cho nền kinh tế toàn cầu và có tác động đến hàng triệu doanh nghiệp và người dùng.

Phần mềm Bitcoin xứng đáng nhận được sự cẩn trọng tương đương như phần mềm lò phản ứng hạt nhân. Trong giới kỹ thuật, loại phần mềm này được biết đến như là những hệ thống then chốt. Có ba dạng hệ thống then chốt: then chốt cho an toàn tính mạng, then chốt cho sứ mệnh, và then chốt cho hoạt động kinh doanh. Bitcoin thoả cả ba hệ thống này (mất tiền có thể dẫn đến mất mạng). Tuyệt đối không có chỗ cho phạm vi sai số.

Những kỹ sư giỏi và giàu kinh nghiệm sẽ không thể yên tâm ngủ ngon ngay cả với mức độ bảo mật hiện tại của mạng lưới Bitcoin, vốn vẫn còn cần cải thiện rất nhiều. Họ biết rằng sai một ly đi một dặm, thảm hoạ luôn chực chờ xảy ra dù mọi thứ nghe rất hay trên lý thuyết và vẫn đang diễn ra tốt đẹp cho đến thời điểm hiện tại.

Những sự cố nghiêm trọng từng xảy ra mà nguyên nhân nằm ở lỗi kỹ thuật sẽ giúp minh hoạ rõ nét về dạng nguy hiểm tiềm ẩn này. Một vài cái tên gồm:

1) Tai nạn máy bay Concorde (2003)

 Concorde (1976-2003) là một trong hai chiếc máy bay chở khách siêu thanh duy nhất từng tồn tại. Tai nạn xảy ra vào thời điểm máy bay chuẩn bị cất cánh, khi một chiếc lốp bánh xe máy bay phát nổ và bắn vào bình đựng xăng, dẫn đến phản ứng dây chuyền. Concorde từng được mệnh danh là một trong những “chiếc máy bay an toàn nhất thế giới”.

2) Sự cố tàu con thoi Challenger (1986)

 NASA ban đầu ước tính xác suất thất bại của phi vụ này là 1 trên 100.000. Richard Feynman sau đó đã tiến hành điều tra và phát hiện ra rằng nguyên nhân vụ tai nạn là do vòng đệm cao su mất đi tính đàn hồi vì nhiệt độ lúc cất cánh chỉ khoảng tầm 2°C. Xác suất thất bại đúng phải là 1 trên 100. NASA đã tính toán nhầm với sai số gấp tận cả ngàn lần!

3) Thảm họa tại nhà máy điện hạt nhân Fukushima (2011)

 Nhật Bản là một trong những quốc gia hàng đầu thế giới về công nghệ cảnh báo động đất cũng như các biện pháp bảo đảm an toàn khi có động đất xảy ra.

Vụ nổ nhà máy điện hạt nhân Fukushima xảy ra do phải cùng lúc hứng chịu thảm hoạ kép: một trận động đất 9 độ richter mạnh nhất từng được ghi nhận trong lịch sử Nhật Bản, kéo theo đó là cơn sóng thần cao 15 mét ngàn năm có một.

Lường trước những viễn cảnh tồi tệ nhất chính là việc nhất định phải làm khi vận hành những hệ thống then chốt, và nếu những hệ thống này diễn ra ở quy mô toàn cầu thì việc này thậm chí còn cấp thiết hơn.

 …

Hãy cùng xem xét cách mà PoW và PoS phản ứng và xử lý vấn đề khi xảy ra sự cố chia cắt mạng và mất điện đột ngột [2].

Để nhấn mạnh lại về quan điểm đã được đề cập ở trên rằng những kiểu sự cố như thế này không phải là chuyện quá xa rời thực tế như người ta thường nghĩ: suốt phong trào Mùa xuân Ả Rập, chính quyền Thổ Nhĩ Kỳ đã thực hiện thành công cuộc tấn công BGP và chặn đường truy cập đến Twitter của công dân nước họ. Trung Quốc thậm chí còn dùng các công cụ tinh vi hơn thuộc “tường lửa” Great Firewall để chặn truy cập Internet.

Bạn cũng có thể tưởng tượng những trường hợp như chiến tranh – khi các quốc gia có thể cố gắng loại bỏ cơ sở hạ tầng giao tiếp của kẻ thù, vốn thường là mục tiêu được nhắm đến trước tiên vì bên nào giao tiếp tốt hơn sẽ chiếm ưu thế.

Vậy khả năng xử lý và phục hồi của hệ thống PoW và PoS trong những tình huống trên ra sao? Hãy cùng xem xét một vài ví dụ sau.

Tình huống 1: Toàn bộ mạng lưới bị buộc ngắt kết nối trong một khoảng thời gian. Sau đó khởi động lại.

 Các khu vực có thể sẽ không tái khởi động và nối lại liên lạc với nhau vào cùng một thời điểm, do đó có thể xảy ra việc một vài khu vực sẽ bắt đầu hình thành chuỗi riêng, độc lập với khối chung cuối cùng ngay trước thời điểm mạng lưới ngừng hoạt động, dẫn đến việc tạo ra nhiều chuỗi phân nhánh cùng tồn tại.

Khi việc giao tiếp liên vùng được thiết lập trở lại, các nút thuộc những chuỗi độc lập này sẽ nối lại liên lạc với nhau.

Trong PoW, các nút sẽ tự động tái sắp xếp và cuối cùng sẽ hướng về một chuỗi duy nhất: chuỗi có nhiều PoW được tích luỹ nhất (và cũng là chuỗi an toàn nhất). Sẽ đau lòng khi thấy một số chuỗi bị quét khỏi mạng lưới khi quá trình này diễn ra. Nhưng rồi mọi thứ sẽ hoạt động bình thường trở lại, và hành vi này của các nút là tất định, không phải ngẫu nhiên.

Còn trong PoS, các nút không biết được đâu mới là chuỗi “đúng” hơn các chuỗi còn lại. Khác với PoW, PoS không có thước đo khách quan để so sánh “tính chân thật” giữa 2 chuỗi. Việc xác định trước hành vi của các nút và tự động hoá chúng là điều bất khả thi, trừ phi một vài quy tắc tuỳ tiện mới được tạo ra và áp dụng, nhưng việc này cũng lại đồng thời khiến tăng bề mặt tấn công. Sự tách chuỗi có khả năng sẽ tồn tại cố định vì một số giao thức PoS không cho phép quay trở lại quá khứ đã diễn ra quá lâu.

Những người thiết kế giao thức PoS thường rất siêng năng và gắt gao trong việc “phạt” những hành vi xấu. Tuy nhiên điều họ không nghĩ đến đó là có khả năng tất cả các nút đều hoạt động trung thực, nhưng vẫn xảy ra sự cố tách chuỗi!

Tình huống 2: Một phần mạng bị chia cắt khỏi mạng lưới chính.

 Thật ra tình huống này cũng sẽ dẫn đến kết quả tương tự như những gì chúng ta thấy ở tình huống 1. Những phần mạng bị chia cắt vẫn sẽ tiếp tục hoạt động như thể mọi thứ vẫn diễn ra bình thường – ngoại trừ việc số lượng các nút “đang chạy” ở mỗi phần bị tách ra sẽ ít lại. Khi những phần bị tách này kết nối lại với mạng lưới chính, chắc chắn sẽ có sự nhầm lẫn xảy ra. Các nút không biết chuỗi nào mới là chuỗi chuẩn.

Một điểm khác biệt vô cùng quan trọng giữa tình huống 1 và tình huống 2 đó là tình huống 2 thậm chí có khả năng xảy ra cao hơn. Việc điều hướng lại đường truy cập sẽ dễ thực hiện hơn là ngắt toàn bộ đường truy cập – như chúng ta đã chứng kiến qua một số vụ việc. Các phần mạng bị chia cắt có thể nhỏ cỡ mạng lưới của một thị trấn nhỏ. Chúng ta có thể hình dung những tình huống trên diễn ra vài năm một lần hoặc thậm chí là thường xuyên hơn.

Tình huống 3: PoS cũng hoạt động tệ hơn trong những tình huống xấu khác, ví dụ như khi khoá riêng tư bị đánh cắp.

 Sự phân phối của cải thường tuân theo những quy luật quyền lực, và không có lý do gì để nghĩ rằng tiền mã hoá lại là một ngoại lệ. “1% trong giới crypto” có thể chỉ là một nhóm người nhỏ, nhưng có khả năng cao họ nắm quyền kiểm soát một phần đáng kể hoặc đa số tổng lượng cung coin.

Khoá riêng tư của những người cọc nhiều coin PoS nhất có thể bị đánh cắp trong những cuộc tấn công phi kỹ thuật được thực hiện tinh vi (bắt cóc, tra tấn, tống tiền, v.v.). Bằng việc đánh cắp các khoá thay vì thuê hoặc mua coin trên thị trường mở, kẻ tấn công tránh được việc nâng giá trị coin trong lúc cuộc tấn công diễn ra. Kỳ lạ thay, khi xét đến vector tấn công này, những nhà thiết kế giao thức PoS thường mặc định rằng việc mua coin trên thị trường mở là cách duy nhất để giành quyền kiểm soát mạng lưới, và do đó đưa đến kết luận không chính xác rằng chi phí cho một cuộc tấn công của một coin PoS chỉ được quyết định bởi một yếu tố duy nhất là giá trị của nó trên thị trường. Việc đánh cắp khóa riêng tư sẽ giúp né được “hàng phòng vệ” này, đồng thời giảm đi đáng kể chi phí thực hiện cuộc tấn công.

(Một biến thể khác của loại hình tấn công này là việc mua lại các khoá cũ từ những người từng nắm giữ một lượng lớn cổ phần nhưng không còn hứng thú với đồng tiền ấy nữa).

Còn trong PoW, giành quyền kiểm soát mạng lưới đồng nghĩa với việc phải giành được quyền kiểm soát đa số tỷ lệ băm (hash rate).

Nếu đã kiểm soát được đa số tỷ lệ băm, một người có thể làm được những gì trong PoW? Người ấy có thể chi tiêu hai lần hoặc viết lại lịch sử giao dịch. Nhưng để chi tiêu hai lần, người này phải chi thêm rất nhiều tiền. Giành được quyền kiểm soát đa số chỉ là bước đầu tiên. Mới nghe qua thì có vẻ tệ, nhưng ngay cả khi lâm vào tình huống này, giao thức vẫn hoạt động như mong đợi và sẽ chỉ có một chuỗi duy nhất được xem là hợp lệ (dù các nút SPV có thể sẽ hơi bối rối – vì thế nên việc chạy một nút đầy đủ thường được khuyến khích hơn). Để chỉnh sửa được lịch sử giao dịch thậm chí còn tốn kém hơn gấp bội, do đó rủi ro mất số dư trong tài khoản là rất thấp. Các người dùng có thể chọn giữa việc ngồi chờ cơn bão qua đi hoặc hành động ngay bằng việc thay đổi thuật toán PoW.

Nhìn chung, đây vẫn là một tình huống tồi tệ. Nhưng chúng ta có thể thấy rằng việc giành quyền kiểm soát phần lớn tỷ lệ băm trong PoW không trao cho kẻ tấn công quyền lực vô hạn. Bạn phải đồng thời giành quyền kiểm soát mạng lưới VÀ chi tiền để thực hiện cuộc tấn công. Chúng ta có thể hình dung nó như là hàng phòng vệ hai lớp. Khi có cuộc tấn công xảy ra, hành vi của các nút là tất định và sẽ không có nhầm lẫn gì trong việc xác định chuỗi hợp lệ. Khả năng xử lý và phục hồi tốt trước những tình huống nguy hại này của PoW, tuy vậy, là thường bị xem nhẹ.

Trái lại, việc sở hữu phần lớn cổ phần trong PoS sẽ trao cho bạn quyền lực vô hạn. Bạn có thể chi tiêu gian lận mà không cần chi thêm bất kỳ số tiền nào như trong PoW. Bạn còn có thể a) viết lại lịch sử giao dịch, nếu giao thức ấy không có chốt kiểm tra (checkpoint) hoặc b) tạo ra những sự tách chuỗi không tương thích, nếu giao thức có chốt kiểm tra (ví dụ giao thức Casper). Việc thay đổi thuật toán là vô ích, vì khác với việc phải đầu tư cho thiết bị phần cứng trong PoW, chi phí thay đổi thuật toán PoS gần như bằng không.

Tổng kết lại, PoW mang đến cho bạn hai lợi ích xét về khía cạnh đảm bảo an toàn:

  1. PoW bảo vệ tương lai:khi việc tách chuỗi diễn ra, PoW có cơ chế khách quan và phương thức tự động để giải quyết xung đột mà không cần sự can thiệp của con người hay các bên thứ ba được tin tưởng.
  2. PoW bảo vệ quá khứ:Dù có giành được quyền kiểm soát đa số tỷ lệ băm, kẻ tấn công vẫn phải tốn một lượng thời gian và chi phí khổng lồ để có thể viết lại lịch sử, vậy nên số dư tài khoản người dùng vẫn tương đối an toàn.

PoS không mang lại cho người dùng bất cứ lợi ích nào trong hai lợi ích trên. Những người ủng hộ PoS có thể nói rằng các chốt kiểm tra sẽ giúp giảm mức độ nghiêm trọng của vấn đề số 2, nhưng trên thực tế, các chốt kiểm tra chỉ đơn giản là chuyển vấn đề từ nơi này sang nơi khác. Các chốt kiểm tra là một giải pháp tập trung mà sẽ chỉ khiến vấn đề thêm phần nan giải [3].

(*Chủ đề “các cuộc tấn công khóa riêng tư” sẽ được bàn luận sâu hơn trong Phần 2)

Kết luận lại, việc có được sự hiểu biết và tư duy đúng đắn về sự phát triển của giao thức blockchain và Bitcoin là rất quan trọng. Đây là những hệ thống then chốt xứng đáng nhận được trình độ kỹ thuật cao cấp nhất.

Những giao thức PoS được xây dựng trên những giả định ngây thơ và thiếu sót sẽ nhanh chóng ngừng hoạt động khi những biến cố tồi tệ nhất không may xảy ra. PoS là một bước đi sai hướng: hạ thấp chuẩn chất lượng, thay vì nâng nó lên.

 Phần 2: Proof-of-Stake, những cuộc tấn công khóa riêng tư và sự chiến đấu không thể nào quên của những người hùng thầm lặng.

[1]: Những phân tích trước đó về PoS: Andrew Poelstra, “On Stake & Consensus”: https://download.wpsoftware.net/bitcoin/pos.pdf

[2]: Sự phân chia mạng lưới là một lĩnh vực nghiên cứu quan trọng. Nghiên cứu của Ethan Heilman về lĩnh vực này: https://eprint.iacr.org/2015/263.pdf

[3]: Các chốt kiểm tra có thể được triển khai một cách phi tập trung, nhưng chúng sẽ gây ra các rắc rối mà rốt cuộc cũng cần đến những giải pháp tập trung để giải quyết. Chung quy lại, chốt kiểm tra vẫn là tập trung.