Sự bất thường lần đầu tiên xuất hiện ở chiều cao khối 8,412,773.
Một yêu cầu xác minh thông tin đã được gửi—thông thường, ưu tiên thấp, không có gì bất thường. Băm giao dịch đã được phát tán một cách sạch sẽ, mempool đã chấp nhận nó mà không gặp trở ngại, và lớp tuần tự đã gộp nó vào khối tiếp theo. Mọi thứ trông có vẻ xác định, gần như nhàm chán.
Nhưng khi tôi theo dõi các nhật ký thực thi, có điều gì đó cảm thấy... không đồng nhất.
Thông tin đã được đánh dấu là “đã xác minh” ở lớp ứng dụng, tuy nhiên, xác nhận bằng chứng tương ứng đã chậm lại hai khối. Không chậm theo nghĩa truyền thống—không có đột biến tắc nghẽn, không có sự rút lui của người xác thực, không có nút thắt rõ ràng. Nó đơn giản là... trôi dạt.
Tôi đã chạy lại dấu vết.
Cùng một kết quả.
Chuyển giao trạng thái tại lớp thực thi đã tiến triển một cách lạc quan, trong khi vật phẩm xác thực cơ bản—cái neo mật mã—vẫn chưa được hòa giải hoàn toàn trên toàn mạng. Hệ thống không thất bại. Nó đã tiếp tục, âm thầm giả định rằng xác thực sẽ theo kịp.
Lúc đầu, tôi đã bác bỏ nó như một sự không nhất quán về thời gian. Các hệ thống phân tán hít vào độ trễ; chúng thở ra sự nhất quán cuối cùng. Nhưng rồi tôi tìm thấy một trường hợp khác. Và một trường hợp khác.
Các xác thực viên khác nhau. Các loại thông tin xác thực khác nhau. Cùng một mẫu.
Đó là khi sự nhầm lẫn bắt đầu ổn định thành một thứ nặng nề hơn: sự công nhận.
Đây không phải là một lỗi.
Đó là một hành vi.
Càng nhìn sâu vào kiến trúc của Sign, mẫu trở nên rõ ràng hơn. Mạng lưới được thiết kế như một hạ tầng toàn cầu cho việc xác thực thông tin xác thực và phân phối token—một hệ thống nơi danh tính, bằng chứng, và giá trị chảy cùng nhau. Nhưng dưới sự trừu tượng tinh tế đó là một sự căng thẳng tinh vi.
Xác thực và phân phối không phải là những quá trình đồng bộ tự nhiên.
Một người đòi hỏi sự chắc chắn.
Người khác đòi hỏi tốc độ.
Và Sign, giống như nhiều hệ thống phi tập trung hiện đại, cố gắng làm cả hai—đồng thời.
Để hiểu được sự trôi dạt, tôi phải phá vỡ hệ thống.
Tại lớp đồng thuận, các xác thực viên đồng ý về thứ tự. Họ không xác thực các thông tin xác thực một cách đầy đủ—họ đồng ý về thời điểm mà một thứ gì đó nên được coi là bao gồm. Đây là điều tiêu chuẩn. Đồng thuận là về sự đồng ý, không phải sự thật.
Sau đó đến lớp thực thi.
Tại đây, logic thông tin xác thực được áp dụng: các chứng thực được xử lý, phân phối token được kích hoạt, và các chuyển giao trạng thái diễn ra. Nhưng quan trọng, không phải tất cả xác thực đều xảy ra ở đây ở dạng cuối cùng của nó. Một phần trong đó được trừu tượng hóa—được đại diện bởi các cam kết, băm, hoặc các bằng chứng trì hoãn.
Đây là nơi giả định đầu tiên xuất hiện:
Rằng xác thực có thể được tách ra khỏi thực thi mà không có hậu quả.
Logic sắp xếp củng cố giả định này.
Các giao dịch được sắp xếp và thực thi theo lô, thường dưới các điều kiện lạc quan. Hệ thống tiếp tục như thể các thông tin xác thực được đưa vào là hợp lệ, vì việc từ chối chúng sau này sẽ tốn kém hơn so với việc tạm thời tin tưởng chúng bây giờ.
Trong sự cô lập, điều này có ý nghĩa. Nó cải thiện thông lượng. Nó giảm sự cản trở.
Nhưng dưới áp lực—tải cao, đồ thị thông tin xác thực phức tạp, các chứng thực liên miền—khoảng cách giữa “được cho là hợp lệ” và “được chứng minh là hợp lệ” bắt đầu mở rộng.
Không một cách kịch tính. Chỉ đủ để có ý nghĩa.
Khả năng sẵn có của dữ liệu thêm một lớp nữa.
Các bằng chứng, các chứng thực, và các vật phẩm xác thực được phân phối qua các nút, đôi khi không đồng bộ. Một xác thực viên có thể thực thi một giao dịch dựa trên dữ liệu có sẵn tại địa phương, trong khi một người khác chờ đợi sự lan truyền đầy đủ. Cả hai đều vẫn chính xác về mặt kỹ thuật trong ngữ cảnh địa phương của họ.
Nhưng toàn cầu, hệ thống bắt đầu thể hiện một dạng không nhất quán theo thời gian.
Không phải là sự không đồng ý.
Chỉ... sự không phù hợp.
Các đảm bảo mật mã vẫn còn nguyên vẹn.
Các bằng chứng không có kiến thức, các sơ đồ chữ ký, và các cấu trúc cam kết đều hoạt động như thiết kế. Nhưng chúng hoạt động trong các ranh giới—các ranh giới được xác định bởi khi dữ liệu có sẵn, khi các bằng chứng được tạo ra, và khi chúng được xác thực.
Và những ranh giới đó không phải lúc nào cũng phù hợp với thời gian thực thi.
Trong điều kiện bình thường, không có điều gì trong số này được nhìn thấy.
Hệ thống cảm thấy liền mạch. Các thông tin xác thực được xác thực. Các token được phân phối. Người dùng tương tác mà không bị cản trở.
Nhưng dưới sự tắc nghẽn, hoặc trong các trường hợp biên liên quan đến các chứng thực chuỗi hoặc phụ thuộc vào thông tin xác thực nhiều bước, các giả định bắt đầu xuất hiện.
Một nhà phát triển có thể cho rằng một khi một giao dịch được đưa vào, xác thực của nó là cuối cùng.
Nó không phải.
Một nhà xây dựng có thể dựa vào tính nhất quán trạng thái ngay lập tức trên các nút.
Nó không tồn tại.
Một người dùng có thể hiểu một giao dịch thành công như một kết quả đã được xác thực hoàn toàn.
Nó có thể chỉ là tạm thời.
Điều làm cho điều này đặc biệt mong manh không phải là kiến trúc bản thân, mà là cách mà nó được hiểu.
Trong thực tế, người dùng và nhà xây dựng không tương tác với các trừu tượng—họ tương tác với kết quả.
Một nhà giao dịch thấy token được phân phối và cho rằng đó là sự cuối cùng.
Một nhà phát triển thấy một cờ xác thực và cho rằng đó là sự thật.
Một giao thức tích hợp hạ tầng của Sign và giả định rằng các đảm bảo của nó là ngay lập tức và tuyệt đối.
Nhưng hệ thống chưa bao giờ được thiết kế để cung cấp điều đó.
Nó được thiết kế để cân bằng.
Và sự cân bằng đó—giữa khả năng mở rộng và xác thực, giữa tốc độ và tính quyết định—là nơi áp lực thực sự nằm.
Sign tối ưu hóa cho tính khả dụng toàn cầu. Nó cho phép các thông tin xác thực chảy, được tiêu thụ, để kích hoạt phân phối giá trị ở quy mô lớn. Nhưng khi làm như vậy, nó giới thiệu một khoảng trống theo thời gian giữa hành động và sự chắc chắn.
Phần lớn thời gian, khoảng cách đó là vô hình.
Nhưng nó luôn ở đó.
Những gì tôi quan sát được tại khối 8,412,773 không phải là một lỗi.
Hệ thống đã tiết lộ các ranh giới của nó.
Hạ tầng phi tập trung hiện đại không sụp đổ vì những lỗi hiển nhiên. Nó không thất bại ầm ĩ. Thay vào đó, nó uốn cong xung quanh những giả định của nó—những giả định về thời gian, về niềm tin, về những gì có nghĩa là xác thực.
Và khi những giả định đó bị kéo dài—bằng quy mô, bằng mẫu sử dụng, bằng cách diễn giải của con người—hệ thống không bị hỏng ở giới hạn của nó.
Nó gãy ở các rìa của nó.
Tại điểm chính xác mà chúng tôi ngừng đặt câu hỏi về những gì được đảm bảo—và bắt đầu tin vào những gì chỉ đơn giản xuất hiện.