Tôi đã nghĩ về sự chú ý trong crypto theo một cách khác kể từ sáng nay. Mọi người trong không gian này đều đang giành giật cùng một khoảng mười lăm giây lướt màn hình của ai đó. Dusk dường như hầu như không hề phải “chiến đấu” gì cả, và chính điều đó khiến tôi dừng lại và nhìn kỹ hơn.
Phần lớn các chuỗi quyền riêng tư chạy đua giành sự chú ý bằng những tuyên bố lớn nhất mà họ có thể đưa ra. Tài liệu của Dusk thì gần như khô khan; trái lại với một bài chào hàng kiểu thuyết trình, nó giống như một bản đặc tả tuân thủ. Không có lời hứa về việc vượt mặt các cơ quan quản lý trong chính trò chơi của họ. Chỉ có Moonlight và Phoenix, lặng lẽ làm hai công việc khác nhau.
Chính phần đó đã khiến tôi dừng lại. Trong crypto, sự chú ý thường được trao cho người hét to sự tự tin nhất, chứ không phải người thực sự giải quyết phần khó. Dusk có vẻ đang đặt cược theo hướng ngược lại: rằng khi rốt cuộc có nhu cầu về một “đường ray” quyền riêng tư có thể tuân thủ để xử lý dòng tiền mang tính tổ chức, thì những người xây dựng đã dành cả chu kỳ này để giải thích các trường hợp biên thay vì đuổi theo các câu chuyện/hiệu ứng truyền thông sẽ là những người duy nhất sẵn sàng.
Tôi không biết liệu ván cược đó có trả lời được hay không. Sự chú ý không chờ kiến trúc chứng minh bản thân.
Nhưng đó là một kiểu tự tin kỳ lạ: xây dựng cho một nhu cầu vẫn chưa thực sự xuất hiện đầy đủ.
Vẫn đang nghĩ về Dusk tối nay, và có một điều khác xuất hiện khi tôi lục trong tài liệu. Nếu Phoenix ẩn các giá trị giao dịch theo mặc định, thì tôi cứ tự hỏi: rốt cuộc làm sao bất kỳ ai có thể kiểm toán được chúng.
Hóa ra câu trả lời là các view key (khóa xem). Không phải là khái niệm view key mà người ta thường nhắc tới để đồng bộ ví. Đây là về việc tiết lộ có chọn lọc: chủ sở hữu giao dịch có thể trao một khóa xem cụ thể cho bên kiểm toán hoặc cơ quan quản lý, cho phép bên đó giải mã được chi tiết mà không làm lộ bất cứ điều gì cho toàn bộ mạng.
Điều này đã định hình lại hoàn toàn câu hỏi về quyền riêng tư đối với tôi. Không phải là quyền riêng tư đối đầu với tính minh bạch. Mà là quyền riêng tư kèm theo một cánh cửa được kiểm soát gắn sẵn trong đó. Nhưng cánh cửa chỉ có ý nghĩa nếu ai đó lựa chọn mở nó đúng cách. Giao thức có thể tạo ra khóa và đảm bảo việc giải mã hoạt động đúng như thiết kế. Nó không có quyền quyết định ai sẽ nhận khóa đó, khóa được cấp khi nào, hay liệu quy trình xung quanh nó có đáng tin hay không.
Vậy nên công nghệ giải quyết phần “mật mã” của việc tiết lộ. Phần “định chế” — ai nắm quyền yêu cầu một khóa và trong những điều kiện nào — vẫn hoàn toàn nằm ngoài chuỗi (off-chain).
Đó là phần khiến tôi hơi không yên tâm. Một cơ chế tiết lộ có chọn lọc được thiết kế hoàn hảo vẫn có thể tồn tại bên trong một quy trình quản trị kém.
Tôi không nghĩ điều đó làm nó kém hữu ích. Nó chỉ có nghĩa là những bài toán khó không biến mất—chúng đã chuyển chỗ.
Tab Tài liệu vẫn đang mở. Chuyển sang phần tiếp theo.
Sai lầm của Ansem không phải là không nêu tên một đối tác cho Jeff. Mà là việc coi bức tường US của Hyperliquid như một bài toán “cấp phép thông quan/giải phóng nhanh”, trong khi thực tế nó là một bài toán “công bố/thông tin phải tiết lộ”.
Phía Mỹ không hỏi nền tảng có hoạt động hay không; họ hỏi nền tảng đó biết được gì.
Hyperliquid không thể trả lời điều đó nếu không tiết lộ số dư, danh tính và lịch sử giao dịch—những thứ vốn không được thiết kế để chia sẻ một cách chọn lọc. Dusk không xây một cây cầu nhanh hơn đến cơ quan quản lý. Nó xây một hệ thống nơi việc tiết lộ là bản chất, được giới hạn phạm vi, và dựa trên mật mã.
Phoenix cam kết mọi số dư dưới dạng một ghi chú được mã hóa, không phải một địa chỉ dạng văn bản thường, và W3sper SDK cho phép bất kỳ ứng dụng nào nhúng mô hình sở hữu “được sinh ra từ quyền riêng tư” đó mà không phải xây dựng lại các mạch zero-knowledge từ đầu.
Zedger nằm trên nền đó: thông tin đăng nhập danh tính và các ràng buộc pháp lý trở thành các mệnh đề có thể chứng minh bên trong bằng chứng, chứ không phải là các tài liệu thô được trao cho đối tác. Quyền sở hữu được chứng minh thông qua các mạch zero-knowledge tạo ra sự thật mà không làm lộ bản ghi gốc. Điều đó thay đổi toàn bộ cuộc trò chuyện.
Một tổ chức của Dusk không trao một cơ sở dữ liệu và cầu mong cơ quan quản lý tin tưởng đối tác. Nó chứng minh tuân thủ trên chuỗi—các ràng buộc về danh tính, tính hợp lệ của tài sản, tính cuối cùng của việc thanh toán—trong khi dữ liệu thô vẫn được mã hóa. Hyperliquid cần một đối tác ở Mỹ vì kiến trúc của họ coi quyền riêng tư như một trở ngại cho việc tuân thủ.
Dusk coi quyền riêng tư là điều kiện tiên quyết. Ansem đủ tầm để giải thích sự khác biệt đó, và ông đã dành thời gian của mình cho việc mai mối.
Thị trường không cần một thông báo đối tác khác. Nó cần hạ tầng biến “bạn là ai” và “bạn sở hữu gì” thành các bằng chứng, chứ không phải các màn phơi bày. Dusk đã xây sẵn điều đó. Câu hỏi là liệu khán giả đã sẵn sàng để nghe nó chưa.
Tôi không có ý định trở thành một đối tượng bị giám sát. Tôi chỉ gửi 312 DUSK cho một nhà cung cấp để sử dụng một dịch vụ, và chúng tôi dùng Phoenix đúng như mục đích: ghi chú được mã hóa, bằng chứng không kiến thức (zero-knowledge), không có dữ liệu plaintext trên chuỗi.
Đó là lúc tôi thấy vấn đề: ba tuần sau, chính nhà cung cấp đó đã dán View Key của họ vào một ticket hỗ trợ công khai để “xác minh” một khoản thanh toán khác. Ticket đó là công khai. View Key cũng là công khai. Và chỉ như vậy thôi, giao dịch 312 DUSK của tôi không còn riêng tư nữa.
Giao diện gọi đó là “lỗi của người dùng”. Nó không gọi đúng bản chất: một điểm lỗi duy nhất (single point of failure) làm sụp đổ quyền riêng tư của tất cả những ai từng thanh toán vào địa chỉ đó. Vì Phoenix không chỉ mã hóa số dư của bạn—nó gắn quyền riêng tư của bạn với các View Key của mọi đối tác mà bạn từng tin tưởng. Chỉ cần một nhà cung cấp bất cẩn, một ảnh chụp màn hình, một lần copy-paste vào Discord, và toàn bộ mối quan hệ tài chính của bạn với họ sẽ bị giải mã cho bất kỳ ai bận tâm để nhìn.
Tôi đã tính toán các con số từ khóa bị rò rỉ đó: nó quét 47 ghi chú trên 11 ví khác nhau trong chưa đầy hai giây. Ngày tháng, số tiền, memo, địa chỉ ví—tất cả đều bị lộ. Và tôi nhận ra rằng bằng chứng không kiến thức đã không hề thất bại. Mật mã đã không thất bại. Chỉ có con người đã thất bại. Nhưng hệ thống không có cách nào ngăn con người đó trở thành điểm rò rỉ.
Chúng ta nói về quyền riêng tư như là một thuộc tính của chuỗi. Nhưng ở Dusk, quyền riêng tư là bắc cầu (transitive), và nó sẽ chết ngay khoảnh khắc mắt xích yếu nhất trong đồ thị giao dịch của bạn mắc sai lầm. Không có mạch (circuit) nào sửa được điều đó. Không có Succinct Attestation nào có thể dứt điểm nó.
Toán học thì không thể phá vỡ. Lớp xã hội thì không.
Tôi không hề có kế hoạch đi benchmark việc khám phá ghi chú của Dusk.
Tôi chỉ mở ví để nhận 12 DUSK từ một cuộc đấu giá đã hoàn tất. Đó là lúc tôi thấy: 14,208 lần giải mã thử nghiệm, 3 ghi chú khớp, và 2.4 giây thiết bị của tôi chạy cuồn cuộn qua cây Merkle trước cả khi số dư xuất hiện.
Giao diện gọi đó là “đang đồng bộ.” Nó không gọi đúng bản chất: một cuộc tìm kiếm mù cho quyền sở hữu trong một sổ cái từ chối cho bạn biết cái nào là của bạn.
Phoenix làm các số dư trở nên riêng tư bằng cách khiến chúng không thể bị phát hiện cho đến khi bạn giải mã chúng. View Key của tôi không phải là một “key”; đó là một lần dò thử—quét và đoán—qua hàng nghìn cam kết được mã hóa mà tôi không sở hữu, chỉ để tìm ra ba ghi chú mà tôi thực sự có. Bộ ghi chú tăng lên theo mỗi block, nhưng chi phí để quét nó lại vô hình—không có đồng hồ gas, không có bảng điều khiển, không có cảnh báo.
Chúng ta ám ảnh về thông lượng, độ cuối cùng, Succinct Attestation. Chúng ta bỏ qua câu hỏi khó hơn: ví của bạn phải chịu được bao nhiêu lần giải mã thất bại trước khi nó có thể tự chứng minh rằng bạn tồn tại?
Tôi hỏi một validator rằng tập ghi chú hiện tại lớn cỡ nào. Anh ấy nói: “Đủ lớn để client ánh sáng cũng sẽ chịu khổ.”
Đêm đó, tôi ngừng xem quyền riêng tư như một tính năng. Nó là một khoản nợ tính toán, và Dusk thu nó từ mọi người dùng mỗi lần họ mở ví.
Việc thanh toán từng chỉ là một xác suất. Hoàng hôn đã biến nó thành một định lý.
Chúng tôi đứng bên rìa chân trời sự kiện cũ của T+2, nơi một giao dịch vẫn chưa hoàn tất nhưng đã trở nên hiện hữu—một chồng chập giữa thanh toán và vỡ nợ mà hai ngày niềm tin giúp không sụp đổ.
Trong mạch của Hoàng hôn, chồng chập ấy được hội tụ thành một khối duy nhất: tài sản và khoản thanh toán ràng buộc với nhau trong một chứng minh không kiến thức không thể tách rời mà không làm vô hiệu hóa vũ trụ mà nó mô tả.
Tôi tự lần theo đường đi của việc phát hiện ghi chú, tự mình dẫn dắt chiếc ví lờ mờ dò dẫm qua cây Merkle như một tâm trí đang tìm kiếm những ký ức được mã hóa của chính nó, và tôi nhận ra quyền sở hữu ở đây không phải là một số dư được hiển thị mà là một bí mật chỉ chủ sở hữu mới có thể giải mã—và chỉ sau khi chứng minh rằng họ có quyền được nhìn.
Họ—các tổ chức, các cơ quan quản lý, các trung tâm bù trừ cũ—nhìn rủi ro như một thứ cần được quản lý qua nhiều ngày; Hoàng hôn lại xem đó như một hàm sóng cần được suy sụp trong vài giây.
Phía dưới tất cả là Thẩm định Rút gọn (Succinct Attestation), lớp đồng thuận từ chối biến tính cuối cùng thành một xác suất: mỗi khối được niêm phong như một định lý không thể bị bác bỏ, để cho “đã thanh toán” đúng là như vậy và không bao giờ là “có lẽ đã thanh toán”.
Chúng tôi không chờ đợi thanh toán; chúng tôi đang nén tương lai vào hiện tại, dùng mật mã để biến khoảng trống hai ngày thành một lựa chọn thay vì một định luật. Và tôi e rằng—hoặc có lẽ chắc chắn—thứ mà Hoàng hôn thực sự thay thế không phải là trung tâm bù trừ, mà là chính ý niệm rằng ngày mai phải được tin tưởng trước khi nó kịp đến.
Tôi đã không hiểu thanh toán nguyên tử (atomic settlement) cho đến khi tôi ngừng hỏi “nhanh đến mức nào?” và bắt đầu hỏi “điều gì biến mất?”
Thứ biến mất đầu tiên là chính chu kỳ thanh toán T+2: hai ngày trọn vẹn trong đó một giao dịch đã được đồng ý nhưng chưa hoàn tất, khi cả hai bên phải gánh rủi ro đối tác vì việc chuyển tài sản và việc chuyển tiền diễn ra như những sự kiện tách biệt, dựa vào những bên trung gian khác nhau để cuối cùng đối soát.
Tôi lần theo cách thiết kế của Dusk gộp điều đó thành một bước nguyên tử duy nhất—mạch zero-knowledge chứng minh rằng việc chuyển tài sản và việc thanh toán là cùng một giao dịch, được ràng buộc mật mã để không bên nào có thể thực hiện nếu thiếu bên kia, được xác minh và hoàn tất ngay khi khối (block) được xác nhận.
Đó không phải là một trung tâm thanh toán “nhanh hơn”; đó là việc loại bỏ chức năng cốt lõi của trung tâm thanh toán—khoảng cách nhiều ngày nơi rủi ro thực sự tồn tại. Tôi tự chạy phép so sánh với một chu kỳ T+2 tiêu chuẩn và sự khác biệt không chỉ là gia tăng, mà là mang tính cấu trúc—hai ngày phơi nhiễm rủi ro đối tác được nén lại thành thời gian block, tính bằng giây chứ không phải ngày.
Thứ khiến tôi không thể coi đây chỉ là một tuyên bố “thanh toán tức thời” khác là nhận ra rằng thanh toán nguyên tử không chỉ là tốc độ; nó là việc loại bỏ một trạng thái lỗi mà hiện tại đòi hỏi can thiệp thủ công khi một bên của giao dịch được thanh toán nhưng bên còn lại thì không.
Tôi hỏi một đồng nghiệp làm trong mảng vận hành sau giao dịch truyền thống rằng khoảng trống đó trong thực tế tốn kém gì, và câu trả lời thẳng thắn là đội ngũ đối soát (reconciliation) tồn tại là vì điều đó. Tôi sẽ không giả vờ rằng Dusk đã chứng minh điều này ở quy mô tổ chức ngay bây giờ—chưa—nhưng cơ chế thì không cần quy mô để là đúng.
Nó chỉ cần một giao dịch chứng minh rằng thanh toán nguyên tử khiến khoảng trống hai ngày trở thành một lựa chọn thiết kế, chứ không phải một nhu cầu bắt buộc về mặt kỹ thuật.
Thứ tôi đã ngồi suy ngẫm lâu hơn dự kiến lại không phải là mật mã của Dusk; mà là quy mô đám đông.
Tôi quay lại thiết kế của Dusk một cách có chủ đích để truy vết bài toán tập ẩn danh (anonymity set): ý tưởng rằng một giao dịch được che chắn chỉ riêng tư ở mức độ như đám đông các ghi chú (notes) có thể thay thế/không phân biệt khác bao quanh nó.
Nếu mức độ áp dụng còn mỏng, thì toán học không hề nói dối—và tôi đã nói thẳng điều đó thay vì giả vờ rằng chỉ mã hóa là đủ để giải quyết rủi ro lộ thông tin. Điều kéo tôi quay lại chính là Piecrust, môi trường thực thi dựa trên WASM của Dusk, và cách nó xử lý các hợp đồng thông minh bí mật khác với một lần chuyển giao “shielded” đơn thuần.
Chúng ta không chỉ che giấu số dư ở đây; chúng ta còn che giấu cả các bước chuyển trạng thái bên trong logic của hợp đồng. Vì vậy, mạch zero-knowledge phải chứng minh rằng một chương trình đã được thực thi đúng, mà không tiết lộ đầu vào hay các bước trung gian.
Tôi đã mất một lúc để nghiền ngẫm điều đó vì đó là một tuyên bố tính toán khó hơn nhiều so với việc chỉ chứng minh một số dư. Rồi còn góc độ tuân thủ (compliance)—phần mà hầu hết các chuỗi bảo mật quyền riêng tư đều né tránh triệt để: công việc cấp phép của Dusk với NPEX và nỗ lực hướng tới các token chứng khoán được quản lý (regulated security tokens). Điều này chỉ hoạt động nếu lớp zero-knowledge tương tự có thể chọn lọc chứng minh tính đủ điều kiện (eligibility) mà không phơi bày danh tính.
Tôi vẫn hoài nghi liệu điều đó có đứng vững trước các cơ quan quản lý thực tế—không phải các bản whitepaper—hay không, và tôi chưa thấy đủ khối lượng giao dịch trực tiếp để khẳng định bài toán tập ẩn danh đã được giải quyết. Nhưng ít nhất kiến trúc này cũng trung thực về sự đánh đổi: quyền riêng tư tăng theo mức độ tham gia, chứ không phải là một cam kết cố định.
Chính sự khác biệt đó đã khiến phần này tách khỏi “chiêu” thông thường về đồng coin được che chắn.
Kiến trúc của Dusk không che giấu giao dịch của bạn; nó che giấu chính thực tế rằng chúng thuộc về bạn để rồi người khác có thể tìm ra.
Đó là nghịch lý đã liên tục kéo tôi quay lại câu hỏi tương tự: chuỗi có thể chứng minh đúng đắn mà không bao giờ cho thấy “công việc” của mình như thế nào. Chúng tôi cứ vòng quanh Phoenix—mô hình giao dịch nơi các ghi chú tồn tại dưới dạng cam kết được mã hóa và quyền sở hữu được chứng minh thông qua các mạch zero-knowledge thay vì các số dư dạng bản rõ.
Tôi tự lần theo lộ trình phát hiện ghi chú: thử nghiệm giải mã bằng View Key trên cây Merkle, và điều làm tôi không chỉ dừng ở tuyên bố về quyền riêng tư—mà là sự đánh đổi ít ai quảng bá một cách rầm rộ: mọi ví đều phải thử giải mã đối với một tập ghi chú ngày càng tăng chỉ để biết mình sở hữu cái gì. Đó là “chi phí” thầm lặng của tính bảo mật, và Dusk trả nó trước để chính chuỗi không phải gánh.
Sau đó là Rusk, lớp thực thi bọc điều đó thành một thứ vẫn phải vượt qua đồng thuận theo Succinct Attestation—một biến thể proof-of-stake được thiết kế cho tính tất định cuối cùng (deterministic finality) thay vì kiểu thanh toán xác suất.
Chúng tôi thấy mình đem nó đối chiếu ít hơn với lộ trình thiên về rollup của Ethereum và nhiều hơn với “bản năng” cypherpunk cũ: quyền riêng tư và tuân thủ không phải là hai thứ đối lập nếu lớp zero-knowledge đủ biểu đạt để chứng minh các ràng buộc quy định mà không tiết lộ dữ liệu nền.
Tôi vẫn chưa bị thuyết phục bởi các tuyên bố về thông lượng trong điều kiện tải thực tế của các tổ chức, và tôi đã nói điều đó khi một đồng nghiệp phản biện về cụm từ “hyperfast sync”. Nhưng cơ chế thì có thật, không phải hơi nước marketing, và chính sự khác biệt ấy đã khiến tôi tiếp tục viết thay vì rời đi.
Điểm nổi bật lần này không phải là cam kết quyền riêng tư của Phoenix, mà là sự mỏng manh đến mức nào của cam kết đó ngay khi một ghi chú của Phoenix trở thành số dư Moonlight.
Tài liệu tích hợp của Dusk mô tả một khoản gửi trực tiếp Moonlight như một sự kiện cụ thể, có thể lập chỉ mục: một sự kiện hợp đồng chuyển nhượng (transfer-contract) không thể bị hoàn lại (non-reverted), được gắn thẻ với topic "moonlight," một người nhận (receiver), và một giá trị dương trong LUX.
Sự kiện đó được kích hoạt theo cùng một cách dù phần DUSK đi vào tài khoản đến từ một giao dịch chuyển công khai hay từ việc giải che (unshielding) một ghi chú Phoenix riêng tư. Khi nó đã “đổ” vào, đó là một thay đổi số dư có dấu thời gian (timestamped), được gắn thẻ theo số lượng (amount-tagged), có thể quy trách nhiệm công khai (publicly attributable), và tồn tại vĩnh viễn.
Các tài liệu không phải đang mô tả một sự rò rỉ; chúng đang hướng dẫn các bên tích hợp chính xác cách lập chỉ mục việc này một cách có chủ đích. Nhưng điều đó cũng có nghĩa là tính bảo mật của Phoenix chỉ bao phủ một ghi chú trong khi ghi chú đó vẫn còn là ghi chú.
Ngay khoảnh khắc nó được chuyển đổi, số lượng và thời điểm trở nên công khai và có thể truy vấn, trong khi lịch sử của ghi chú đứng đằng sau nó được đặt về 0; một người quan sát không thể lần ra ghi chú nào đã tài trợ cho khoản nạp, nhưng có thể theo dõi mọi thứ từ khối đó trở đi một cách đầy đủ.
Vì vậy, ranh giới quyền riêng tư thực sự trên Dusk không nằm ở giao thức, mà nằm ở điểm chuyển đổi. Điều tôi chưa xác định được là liệu Dusk có công bố bất cứ điều gì về thời điểm hoặc các mẫu số lượng khiến một chuỗi thao tác “che rồi tiêu” (shield-then-spend) có thể được đối chiếu hay không—nguy cơ bị giải ẩn danh mà người dùng Zcash đã từng học được cũng áp dụng cho bất kỳ chuỗi quyền riêng tư nào có “lối ra” công khai.
Tôi không có kế hoạch thử lại đồng hồ bỏ tù (jailing clock) của DUSK. Tôi chỉ mở bảng điều khiển phần thưởng testnet để nhận lãi (yield). Đó là lúc tôi thấy: nhà cung cấp tính cuối cùng của tôi (finality provider) có thời gian hoạt động 99,1% và 14 sự kiện reset bỏ tù trong ba tháng qua.
Bảng điều khiển không hề báo hiệu. Nó âm thầm ghi chúng vào lịch sử, giống như một bản resume che giấu khoảng trống bằng cách kéo dài ngày tháng. Mỗi lần reset lại neo (re-anchored) StartHeight, khởi động lại cửa sổ liveness 28 giờ trước khi cửa sổ cũ kịp trưởng thành. Nhà cung cấp đó không đáng tin. Nó đang rửa sự vắng mặt thông qua việc quay trở lại.
Tôi đã cộng dồn phần thưởng từ một validator hiếm khi xuất hiện, vì hình phạt cho việc bỏ phiếu hết hạn nhanh hơn so với các epoch mà nó bỏ lỡ. Chỉ số tôi tin tưởng—uptime—không phải là thước đo tính sẵn sàng. Nó đo lường mức độ một người vận hành có thể làm mới lời biện hộ của chính mình tốt đến đâu. Đêm hôm đó, cuộc trò chuyện voice của DUSK không bàn về Phoenix hay Citadel. Nó là về một người dùng tên Mara hỏi cách kiểm tra (audit) số lần reset bỏ tù trên chuỗi. Không ai có câu trả lời rõ ràng. Dữ liệu tồn tại.
Giao diện không hiển thị nó. Tất cả chúng tôi đều ủy thác cho những người vận hành mà thực tế chưa từng thấy họ thức canh, vì con số duy nhất quan trọng là con số được thiết kế để có thể “gài” (gamed). Slashing trừng phạt ác ý. Jailing lẽ ra phải trừng phạt sự cẩu thả. Nhưng trên thực tế, việc bỏ tù chỉ trừng phạt những người quên quay lại trước khi đồng hồ kịp “bắt kịp”. Mạng không cần một validator độc ác để thất bại.
Nó chỉ cần đủ nhiều người vận hành hiểu rằng sự vắng mặt là miễn phí miễn là bạn quay trở lại ở đúng block height. Toán học thì minh bạch. Còn phần “availability” mà nó báo cáo thì không.
Tôi đã xem một trình xác thực DUSK bị loại khỏi tập hoạt động trên testnet. Không bị hack. Không bị slash. Chỉ bị loại bỏ. Lý do là tính sẵn sàng (liveness): đã bỏ lỡ quá nhiều phiếu bầu finality trong một khung 28 giờ.
Hệ thống hoạt động đúng như thiết kế. Đó là điều khiến tôi bất an.
Trình xác thực không hề mất phần stake đã khóa của nó. Không có hình phạt mật mã. Không có khóa riêng bị lộ. Chỉ là một lần rời đi yên lặng khỏi vòng đồng thuận. Và đây là phần đã bám lấy tôi: thời gian jailing được đo tương đối so với giá trị StartHeight, giá trị này được đặt lại mỗi lần nhà cung cấp (provider) quay trở lại. Rời đi tạm thời, quay lại, đặt lại đồng hồ, lặp lại. Một người vận hành không ổn định mãn tính có thể né việc bị loại bỏ vĩnh viễn mãi mãi bằng cách không bao giờ ở ngoại tuyến đủ lâu để kích hoạt toàn bộ hình phạt. Con đường thực thi mềm (soft enforcement) là nơi có lỗ hổng.
Tôi cứ nghĩ về lỗ hổng đó khi xem cộng đồng DUSK tranh luận rằng các nhà cung cấp finality nên được xem như hạ tầng (infrastructure) hay như đối tác (partners). Có người trong chat nói: "Nếu hình phạt cho sự không đáng tin là một khoảng thời gian chờ (timeout), thì sự không đáng tin chỉ là một chiến lược với các bước bổ sung." Không ai cười. Bởi ai cũng biết một trình xác thực tự đặt lại đồng hồ jail của mình thì không phải là vi phạm quy định. Đó là việc 'câu giờ' theo nhịp thực thi.
Khoảng cách đó nằm giữa bảo mật kỹ thuật và bảo mật thực tiễn. Cơ chế kích hoạt mật mã cho hành vi double-signing là tuyệt đối, không khoan nhượng, tự động. Còn cơ chế kích hoạt mang tính xã hội cho sự lười biếng là một máy trạng thái (state machine) với nút reset. Một cơ chế bảo vệ mạng khỏi ác ý. Cơ chế kia bảo vệ nó khỏi sự lơ là. Và hiện tại, nút reset lại thuộc về chính người vận hành mà hệ thống được cho là phải kiềm chế.
"Điều đặt cược của bản thân" được cho là nền tảng của an ninh kinh tế. Các nhà cung cấp dịch vụ hoàn tất (finality) của Babylon không có điều đó—và những người đặt cược sẽ trả giá cho hành vi sai phạm của họ.
Trước đây tôi từng nghĩ rằng an ninh kinh tế nghĩa là mọi validator đều có thứ gì đó để mất. Rồi tôi lần theo việc đăng ký của nhà cung cấp hoàn tất thuộc Babylon—và phát hiện giao thức không yêu cầu bất kỳ satoshi tự đặt cược nào để tham gia.
Tài liệu của Babylon nêu thẳng: "Không yêu cầu tự đặt cược đối với nhà cung cấp hoàn tất." Bất kỳ ai cũng có thể đăng ký bằng cách gửi một giao dịch kèm khóa công khai, mức hoa hồng và mô tả. Không có BTC bị khóa. Không đặt bond. Không có rủi ro bị slashing đối với chính vốn của họ. Đó là phần mà trước đó tôi chưa tách bạch.
Mọi chuỗi Proof-of-Stake lớn đều yêu cầu validator phải đặt cược chính các token của mình—Ethereum đòi 32 ETH, Cosmos yêu cầu tự ràng buộc (self-bonding), Solana cần SOL. Điều này đồng bộ động cơ: làm sai, bạn sẽ mất tiền của chính mình. Babylon lại làm ngược điều đó. Các nhà cung cấp hoàn tất chỉ rủi ro về danh tiếng và phần thưởng trong tương lai, chứ không phải BTC của chính họ. Cơ chế slashing toàn bộ—đốt 10% số tiền của người đặt cược khi double-sign—không tác động trực tiếp vào túi của nhà cung cấp. Người đặt cược là người chịu chi phí cho hành vi sai phạm của nhà cung cấp.
Nghiên cứu về validator xác nhận điều này tạo ra vấn đề principal-agent. Một nhà cung cấp có hành vi equivocate sẽ không mất phần tự đặt cược nào—chỉ mất các khoản phí trong tương lai từ những người đặt cược có thể rút. Nhưng với thời gian khóa (timelock) 15 tháng và độ trễ unbonding 7 ngày, người đặt cược không thể rút dễ dàng. Nhà cung cấp có một khoảng thời gian để cư xử sai mà không chịu phạt ngay bằng vốn.
Điều tài liệu Babylon chưa đề cập là liệu đã từng có nhà cung cấp nào bị yêu cầu phải đăng ký tài sản thế chấp (collateral) một cách riêng tư hay chưa, hoặc liệu thiết kế này được kế thừa từ mô hình nhà cung cấp của Cosmos mà không được điều chỉnh cho đúng với mức độ “nặng” về kinh tế của Bitcoin.
Tôi đang băn khoăn: quy tắc "không tự đặt cược" của Babylon có làm việc khởi tạo (bootstrap) một tập hợp nhà cung cấp trở nên dễ hơn—hay nó tạo ra một hệ thống nơi những người đang bảo vệ hàng tỷ BTC lại chẳng có gì của riêng họ để mất?
Một chủ nhà không có vốn chủ sở hữu trong tòa nhà vẫn thu tiền thuê. Babylon cũng vận hành cùng một cách — các nhà cung cấp tính cuối cùng (finality) có thể nắm giữ vị thế được hỗ trợ bằng Bitcoin mà không cần tự đặt cược bất kỳ Bitcoin nào.
Trước đây tôi từng cho rằng “Bitcoin Supercharged Networks” nghĩa là mọi nhà vận hành đều phải có phần lợi ích của mình trong cuộc chơi. Rồi tôi phát hiện trang tuyển dụng của Babylon — “không cần Bitcoin tối thiểu” để trở thành nhà cung cấp tính cuối cùng.
Đó là phần trước đây tôi chưa tách bạch. Một nhà cung cấp tính cuối cùng nắm quyền biểu quyết của BTC được ủy quyền và biểu quyết tại các vòng đạt tính cuối cùng. Không có gì bắt họ phải đặt cược Bitcoin của chính mình. Rủi ro của họ đến hoàn toàn từ khoản hoa hồng trên số tiền ủy quyền — chứ không phải từ vốn họ tự mình gánh chịu. So sánh với Ethereum, nơi các nhà vận hành khóa vốn của chính họ như một lớp đệm chịu tổn thất đầu tiên.
Có một lớp thứ hai. Tài liệu của Babylon mô tả một nhóm nhà cung cấp “không đủ điều kiện” — những người điều hành chưa bao giờ đăng ký nhưng vẫn nhận được ủy quyền. Ứng dụng web sẽ không cho phép người dùng mới ủy quyền cho họ, nhưng các ủy quyền hiện có vẫn được theo dõi và được tính. Bộ lọc chỉ chặn các mối quan hệ mới. Nó không xóa các mối quan hệ đang tồn tại.
Tôi đang cân nhắc: việc loại bỏ yêu cầu về vốn có làm giảm rào cản để hình thành một tập hợp nhà điều hành phi tập trung hơn — hay chỉ đơn giản là những người đưa ra quyết định về tính cuối cùng có thể bước đi mà không phải chịu bất kỳ điều gì bằng chính vốn của họ?
Chặt bỏ khiến bị thiêu hủy. Bỏ tù thì không. Bỏ tù được cho là phương án dự phòng cho thời gian ngừng hoạt động, và bỏ tù trên giấy tờ thì hoạt động ổn—cho đến khi một cuộc kiểm toán phát hiện chính đồng hồ thời gian của việc bỏ tù có thể được nhà cung cấp bỏ tù đặt lại, điều mà bỏ tù được thiết kế để ràng buộc.
Babylon tách hoàn toàn hai kiểu hỏng hóc. Sự mập mờ—ký hai lần—kích hoạt việc chặt bỏ (slashing): BTC bị thiêu hủy vĩnh viễn ngay khi mật mã phát hiện ra hành vi đó. Ngừng hoạt động kích hoạt việc bỏ tù thay vào đó—một quy tắc về tính sống (liveness) nhằm loại một nhà cung cấp khỏi tập hoạt động nếu họ bỏ lỡ quá nhiều phiếu bầu cuối cùng (finality) trong một khung thời gian xấp xỉ 28 giờ. Không bị thiêu hủy. Chỉ là loại tạm thời.
Đó là phần mà tôi đã chưa tách bạch trước đó.
Một báo cáo nghiên cứu bảo mật của OpenZeppelin cho thấy cửa sổ bỏ tù được đo tương đối với giá trị StartHeight—và giá trị này được đặt lại mỗi lần một nhà cung cấp bỏ phiếu tham gia lại vào tập hoạt động. Điều đó tạo ra một mẫu có thể khai thác: rời đi trong chốc lát, quay trở lại ngay trước thời điểm kích hoạt việc bỏ tù, đặt lại đồng hồ, rồi lặp lại vô hạn. Một nhà cung cấp thường xuyên không đáng tin có thể né bỏ tù mãi mãi mà không bao giờ về mặt kỹ thuật phải ngừng hoạt động đủ lâu để bị phát hiện.
Đó là một nhóm rủi ro khác so với bất cứ thứ gì trong thiết kế chặt bỏ. Sự ký hai lần bị trừng phạt bằng một ngưỡng kích hoạt cứng, mang tính mật mã mà không ai có thể né—khóa bị lộ khiến hình phạt diễn ra tự động. Còn việc cưỡng chế tính sống là một quy tắc dạng máy trạng thái phụ thuộc vào một bộ đếm thời gian mà không ai từng xác nhận là an toàn trước đúng thực thể mà nó được thiết kế để ràng buộc.
Điều chưa rõ là liệu cơ chế vượt qua cụ thể này có từng hoạt động trực tiếp trên mainnet hay không, hay đã bị phát hiện trong quá trình kiểm toán trước khi triển khai—báo cáo chỉ mô tả cơ chế chứ không nêu rõ dòng thời gian mức độ phơi nhiễm.
Những gì tôi đang cân nhắc: việc coi việc ký hai lần và ngừng hoạt động là hai nhóm rủi ro căn bản khác nhau có hợp lý không—vì một cái mang tính độc hại và một cái thì không—hay điều đó chỉ có nghĩa rằng nhánh cưỡng chế “mềm hơn” lúc nào cũng là nơi những lỗ hổng thực sự được giấu kín?
Tôi đã giải mã (decompile) script hoàn trả của kho tiền để tìm một lối thoát. Không có. Chỉ có một opcode OP_CHECKSEQUENCEVERIFY và một mốc chiều cao khối sẽ đến, dù bạn đã sẵn sàng hay chưa. Không có cơ chế ghi đè multisig. Không có khóa admin. Không có lệnh giải phóng sớm do oracle kích hoạt.
Khi bạn bấm Unstake, bạn không hề yêu cầu xin phép. Bạn đang châm một đoạn dây cháy với tốc độ đúng bằng tốc độ tạo block của Bitcoin, và không có thứ gì trên đời có thể làm nó cháy nhanh hơn.
Vấn đề là thị trường không dừng lại trong lúc dây cháy. Đến ngày thứ sáu của giai đoạn unbonding kéo dài bảy ngày, biểu đồ in ra một cây nến đỏ giảm 12%, và tôi không thể di chuyển được. Không phải vì tôi bị đứng hình. Mà vì script của kho tiền đã khóa lối thoát của tôi vào một mốc thời gian chưa đến. Khoản lợi nhuận tôi nhận được không phải là lãi suất. Đó là một khoản phí bảo hiểm tôi thu được khi bán đi quyền được hoảng loạn của mình.
Mỗi điểm cơ bản của khoản lợi nhuận đó đều được định giá dựa trên xác suất rằng tôi sẽ cần thanh khoản trước khi hết thời gian timelock và sẽ không có cách nào để có được nó.
Cuộc trò chuyện voice hôm đó không bàn chuyện giá vào. Nó đầy những người đang theo dõi bộ đếm của chính họ chạy xuống, trao đổi ảnh chụp màn hình của các block explorer như thể đó là những tạp chí ở phòng chờ bệnh viện.
Nhóm chat bảo vệ phần của bạn có thể nhìn chằm chằm vào lưỡi dao đang rơi mà không giơ tay chụp lấy nó trước khi kết thúc thời gian đếm ngược. Tôi không học được điều đó từ whitepaper. Tôi học từ một người lạ đã gõ: "thở đi, block 847,032 sẽ đến dù sao đi nữa" vào một cuộc chat mà suýt nữa tôi đã không tham gia.
Script hoàn trả là minh bạch. Sự giải phóng về mặt cảm xúc ở phía bên kia timelock thì không.
Tôi không tìm từ "niềm tin" trong whitepaper. Tôi tìm đường thoát, bộ ghi đè của con người, dòng mã tạm dừng việc thực thi khi ai đó nhận ra mình đã sai. Không có.
Cơ chế EOTS là một tấm gương không khoan nhượng. Tôi ký một khối một cách trung thực, rồi ký một khối đối lập chỉ để xem phép toán hoạt động ra sao. Chữ ký thứ hai bẻ nứt chữ ký thứ nhất và trút khóa riêng lên chuỗi như một lời thú tội mà bạn không biết mình đang viết. Không có thẩm phán. Không có phiếu bầu. Chỉ có đường cong làm đúng những gì mà đường cong vẫn làm.
Babylon không xây dựng một cơ chế trừng phạt. Nó xây dựng một cỗ máy vẽ tự chân dung. Mỗi validator ký đúng để lại không phải bằng chứng của sự ngay thẳng, mà là sự vắng mặt của sự tự hủy. Khóa của bạn vẫn được giữ bí mật chỉ chừng nào bạn còn đồng nhất với sự thật mà bạn đã ký từ lần đầu.
Đó là sự đảo ngược mà thị trường chưa biết định giá như thế nào. Các chuỗi khác yêu cầu bạn tin vào một ủy ban. Babylon yêu cầu bạn sống sót trước phiên bản của chính mình có thể gãy đổ dưới một cây nến đỏ và bấm gửi. Điểm yếu duy nhất còn lại không phải là mật mã học. Nó là khoảnh khắc bạn ngừng tin rằng tấm gương sẽ giữ, và bạn trở thành chính kẻ tấn công mà giao thức được thiết kế để phơi bày.
Phòng chat bằng giọng nói của cộng đồng không bảo mật mạng. Nó bảo mật khoảng dừng giữa xung động và hành động. Cái vault giữ Bitcoin của bạn. Cái toán học giữ các validator. Cái nhóm chat giữ phiên bản của bạn vẫn còn sẵn sàng đối diện với tấm gương vào ngày mai. Tôi không biết Babylon có thắng hay không. Tôi biết nó không đòi hỏi niềm tin. Nó đòi hỏi sự bền bỉ, và sự bền bỉ là alpha duy nhất không thể bị canh tác.
Tôi đã tìm từ “trust” (niềm tin) trong bản whitepaper của Babylon bốn lần. Tôi tìm được đúng 0.
Con số đó khiến tôi không ngủ được. Không phải vì niềm tin vắng mặt trong giao thức. Mà vì nó đã bị thay thế bằng thứ mà tôi không kịp chuẩn bị để gọi tên.
Tôi đã lần theo sơ đồ chữ ký EOTS trên một nhà cung cấp finality của testnet mà tôi cố tình làm hỏng. Ký một lần, thành thật, thì khóa vẫn được giấu kín. Ký hai lần trên các khối xung đột, và phần toán học sẽ công bố khóa riêng của bạn lên mạng. Không có tòa án. Không có cuộc bỏ phiếu quản trị. Hình phạt không cần một thẩm phán vì lời nói dối tự mang sẵn đao phủ của nó.
Tôi chạy mô phỏng, hy vọng tìm thấy một ngưỡng, một thời gian ân hạn, một cơ chế can thiệp của con người. Không có.
Cái khiến tôi bị mắc kẹt chính là phần kinh tế.
Một trình xác thực (validator) double-signs sẽ mất số stake được khóa cộng thêm BTC bị phạt cắt (slashed). Nhưng đó là cái giá của việc không đạt được đòn tấn công. Cái giá để khởi động nó là phải chạy nhanh hơn dấu thời gian (timestamp) của Bitcoin trước, nghĩa là phải tổ chức lại (reorganize) một sổ cái trị giá một nghìn tỷ đô la trước khi việc trích xuất chữ ký (signature extraction) thậm chí kịp kích hoạt.
Bạn không bị slashed vì đã thử. Bạn bị slashed vì đã thử và thất bại. Đó là phần tôi không thể ngừng nghĩ tới. Babylon không ngăn bạn bất trung thực. Nó biến sự bất trung thực về mặt cấu trúc trở nên giống hệt với lời thú tội ngay khi bằng chứng công việc (proof of work) của Bitcoin từ chối đi theo nhánh (fork) của bạn.
Hầu hết các chuỗi bán cho bạn niềm tin từ một ủy ban. Babylon bán cho bạn niềm tin như một tiên đề: nếu bạn gian lận, thì toán học sẽ vạch mặt bạn trước khi bất kỳ con người nào kịp nhận ra. Đó không phải là bảo mật. Đó là sự tất định.
Tôi không biết thị trường có định giá điều đó chưa. Tôi biết rằng mọi chuỗi khác đều bắt bạn phải tin. Babylon bắt bạn phải tính. Và tính toán rẻ hơn tin tưởng—cho đến khi nó không còn rẻ nữa.
Tôi muốn biết điều gì xảy ra trong khoảng thời gian giữa lúc phần đảm bảo thực sự của một nhà cung cấp tính chung cuộc thay đổi và khi giao thức thừa nhận rằng nó đã thay đổi. Vì vậy, tôi đã theo dõi cách module x/epoching của Babylon thực sự xử lý một ủy nhiệm mới.
Các thông điệp đặt cược (staking) và rút cược (unstaking) không được thực thi ngay lập tức. Chúng được xếp hàng cho độ dài của cả một epoch, rồi được xử lý theo một lô duy nhất tại ranh giới đó. Cho đến khi ranh giới này xảy ra, quyền biểu quyết về tính chung cuộc của chuỗi phản ánh ảnh chụp cũ, chứ không phải ảnh chụp hiện tại. Một nhà cung cấp tính chung cuộc có thể đang mất ủy nhiệm theo thời gian thực, có thể bị rỗng về mặt kinh tế giữa epoch, và vẫn bỏ phiếu với trọng số mà họ có trước khi ai đó rút đi.
Điều đó không phải là lỗi. Đó là sự đánh đổi để gom hàng ngàn ủy nhiệm được bảo đảm bằng BTC vào một lần quyết toán thay vì xử lý từng cái riêng lẻ. Nhưng nó có nghĩa là sự đảm bảo an ninh mã hóa đứng sau một khối cụ thể không phải là sự đảm bảo đang tồn tại ngay bây giờ. Đó là sự đảm bảo tồn tại như ở lần checkpoint cuối cùng, được mang sang tiếp nhờ niềm tin rằng trong khoảng đó không có thay đổi mang tính vật chất.
Tôi cứ liên tục so sánh điều này với cách một hạn mức tín dụng thực sự hoạt động. Hạn mức của bạn không được cập nhật ngay lập tức khi thu nhập của bạn thay đổi. Nó được cập nhật theo một chu kỳ, và trong lúc đó, ngân hàng đang mở rộng sự tin tưởng dựa trên một con số vốn đã hơi sai. Babylon làm điều tương tự với trọng số của Bitcoin, chỉ là với mật mã tốt hơn được bọc quanh phần sai lệch đó.
Tôi không nghĩ điều này làm vỡ mô hình. Việc unbonding nhanh, khoảng hai ngày, giúp rút ngắn cửa sổ đó so với các chuỗi PoS điển hình. Nhưng “ngắn” không đồng nghĩa với “bằng không”, và phần đáng theo dõi không phải là giá token. Mà là độ rộng của cửa sổ epoch sẽ tăng lên như thế nào khi tập validator mở rộng.
Tôi đã cho rằng ủy ban giao ước chỉ là hình thức, kiểu multisig mà mọi giao thức staking Bitcoin đều cần và chẳng ai đọc mã. Chỉ đến khi lần theo xem điều gì xảy ra khi một validator cố gắng unbond sớm, tôi mới đổi ý.
Không có hàng đợi unbond như mọi người vẫn tưởng. Khi bạn stake, bạn không ký một lời hứa phải chờ đợi. Bạn ký chính giao dịch thoát ngay từ trước, bị khóa thời gian (timelocked), và được ủy ban giao ước nắm giữ trước khi BTC của bạn kịp di chuyển về phía một validator. Ủy ban không quyết định liệu bạn có lấy lại được Bitcoin hay không. Nó nắm một giao dịch đã được quyết định sẵn, và chỉ chờ đến đúng mốc thời gian mà chữ ký đã chỉ định.
Chi tiết đơn lẻ đó làm thay đổi bản chất thật sự của ủy ban. Nó không phải một cơ quan quản trị có quyền quyết định linh hoạt. Đó là một công chứng viên cho một quyết định mà bạn đã làm từ trước. Toàn bộ công việc của nó là từ chối việc hình thành một ý kiến. Ngay khoảnh khắc một thành viên của covenant bắt đầu đánh giá liệu lệnh thoát của bạn có công bằng không, thiết kế đã thất bại rồi, vì công bằng vốn được cho là sẽ được chốt tại thời điểm ký, chứ không phải tại thời điểm chuộc lại.
Tôi cứ nghĩ mãi về việc điều đó kỳ lạ đến thế nào ngoài đời thực. Gần như mọi thiết chế chúng ta từng va chạm—ngân hàng, chủ nhà, tòa án—đều dành quyền được diễn giải lại vụ việc của bạn sau này. Ủy ban của Babylon được thiết kế để không có “vụ việc” nào phải diễn giải lại. Nó đã bị ký đóng chặt rồi.
Tôi không nghĩ điều đó làm cho việc rời sớm trở nên không đau đớn. Nó có nghĩa là nỗi đau đã được tính vào giá trước khi bạn stake, không phải được thương lượng sau. Một cấu trúc mà cuộc trò chuyện khó khăn nhất đã xảy ra ngay từ trước, lặng lẽ, vào đúng ngày bạn bấm xác nhận.