Một trong những đặc tính có giá trị nhất của nhiều ứng dụng blockchain là sự không tin cậy : khả năng ứng dụng tiếp tục hoạt động theo cách dự kiến mà không cần dựa vào một tác nhân cụ thể để hoạt động theo một cách cụ thể.
Ngay cả khi sở thích của họ có thể thay đổi và thúc đẩy họ hành động theo một số cách bất ngờ khác trong tương lai.
Đầu tiên, định nghĩa một câu đơn giản của tôi về lòng tin: lòng tin là việc sử dụng bất kỳ giả định nào về hành vi của người khác . Nếu trước khi xảy ra đại dịch, bạn đi bộ xuống phố mà không đảm bảo giữ khoảng cách hai mét với người lạ để họ không thể bất ngờ rút dao và đâm bạn, thì đó là một kiểu tin tưởng: cả hai đều tin tưởng rằng mọi người rất hiếm khi hoàn toàn loạn trí. và tin tưởng rằng những người quản lý hệ thống pháp luật tiếp tục cung cấp các động lực mạnh mẽ chống lại loại hành vi đó.
Khi bạn chạy một đoạn mã do người khác viết, bạn tin tưởng rằng họ đã viết đoạn mã đó một cách trung thực (cho dù do ý thức về sự chỉnh tề của họ hay do lợi ích kinh tế trong việc duy trì danh tiếng của họ) hoặc ít nhất là có đủ người kiểm tra mã mà một lỗi sẽ được tìm thấy.
Không tự trồng thực phẩm là một kiểu tin tưởng khác: tin tưởng rằng đủ mọi người sẽ nhận ra rằng việc trồng thực phẩm là vì lợi ích của họ để họ có thể bán cho bạn. Bạn có thể tin tưởng vào các quy mô nhóm người khác nhau và có nhiều loại tin cậy khác nhau.
Đối với mục đích phân tích các giao thức blockchain, tôi có xu hướng chia niềm tin thành bốn chiều:
Bạn cần bao nhiêu người để cư xử như bạn mong đợi?
Trong số bao nhiêu?
Những loại động lực nào là cần thiết để những người đó hành xử? Họ có cần phải vị tha, hay chỉ tìm kiếm lợi nhuận? Họ có cần phải được phối hợp không ?
Hệ thống sẽ thất bại nặng nề như thế nào nếu các giả định bị vi phạm?
Bây giờ, chúng ta hãy tập trung vào hai điều đầu tiên. Chúng ta có thể vẽ một biểu đồ:
Càng xanh càng tốt. Hãy cùng chúng tôi khám phá các danh mục chi tiết hơn:
1/1 : có chính xác một tác nhân và hệ thống hoạt động nếu (và chỉ khi) một tác nhân đó làm những gì bạn mong đợi. Đây là mô hình "tập trung" truyền thống, và nó là những gì chúng tôi đang cố gắng làm tốt hơn.
N of N : thế giới "dystopian". Bạn dựa vào một loạt các diễn viên, tất cả đều cần phải hoạt động như mong đợi để mọi thứ hoạt động, không có bản sao lưu nếu bất kỳ ai trong số họ không thành công.
N / 2 / N : đây là cách hoạt động của các blockchain - chúng hoạt động nếu phần lớn các thợ đào (hoặc trình xác nhận PoS) trung thực. Chú ý rằng N / 2 của N càng có giá trị càng lớn thì N càng lớn; một blockchain với một vài thợ đào / trình xác thực thống trị mạng kém thú vị hơn nhiều so với một blockchain có các thợ đào / trình xác nhận được phân phối rộng rãi. Điều đó nói rằng, chúng tôi muốn cải thiện ngay cả mức độ bảo mật này, do đó mối quan tâm xung quanh việc tồn tại các cuộc tấn công 51% .
1 trong số N : có nhiều tác nhân và hệ thống hoạt động miễn là ít nhất một trong số chúng làm được những gì bạn mong đợi. Bất kỳ hệ thống nào dựa trên bằng chứng gian lận đều thuộc loại này, cũng như các thiết lập đáng tin cậy mặc dù trong trường hợp đó, N thường nhỏ hơn. Lưu ý rằng bạn muốn chữ N càng lớn càng tốt!
Ít N : có nhiều tác nhân, và hệ thống hoạt động miễn là ít nhất một số cố định nhỏ trong số chúng làm được những gì bạn mong đợi. Kiểm tra tính khả dụng của dữ liệu thuộc loại này.
0 of N : hệ thống hoạt động như mong đợi mà không phụ thuộc vào các tác nhân bên ngoài. Việc xác thực một khối bằng cách tự mình kiểm tra nó thuộc loại này.
Trong khi tất cả các nhóm không phải là "0 của N" có thể được coi là "tin cậy", chúng rất khác biệt với nhau!
Tin tưởng rằng một cá nhân (hoặc tổ chức) cụ thể sẽ hoạt động như mong đợi rất khác với tin tưởng rằng một số người ở bất cứ đâu sẽ làm những gì bạn mong đợi.
"1 of N" được cho là gần với "0 of N" hơn nhiều so với "N / 2 of N" hoặc "1 of 1". Mô hình 1 trong số N có thể cảm thấy giống như mô hình 1 trong số 1 vì nó có cảm giác như bạn đang trải qua một tác nhân duy nhất, nhưng thực tế của cả hai rất khác nhau: trong hệ thống 1 trong số N, nếu diễn viên mà bạn đang làm việc cùng lúc này biến mất hoặc trở nên xấu xa, bạn chỉ có thể chuyển sang một diễn viên khác, trong khi trong hệ thống 1-1, bạn đã bị mê hoặc.
Đặc biệt, lưu ý rằng ngay cả tính đúng đắn của phần mềm bạn đang chạy thường phụ thuộc vào một số mô hình tin cậy "một vài trong số N" để đảm bảo rằng nếu có lỗi trong mã thì ai đó sẽ bắt được chúng.
Với thực tế đó, cố gắng thực sự cố gắng để đi từ 1 trong N đến 0 của N trên một số khía cạnh khác của ứng dụng thường giống như làm một cánh cửa thép gia cường cho ngôi nhà của bạn khi cửa sổ đang mở.
Một sự khác biệt quan trọng khác là: làm thế nào hệ thống không thành công nếu giả định về niềm tin của bạn bị vi phạm? Trong các blockchain, hai loại lỗi phổ biến nhất là lỗi tính năng sống và lỗi an toàn .
Thất bại trong liveness là một sự kiện mà bạn tạm thời không thể làm điều gì đó bạn muốn (ví dụ: rút tiền, nhận một giao dịch được bao gồm trong một khối, đọc thông tin từ chuỗi khối).
Lỗi an toàn là một sự kiện trong đó có điều gì đó chủ động xảy ra mà hệ thống phải ngăn chặn (ví dụ: một khối không hợp lệ được đưa vào một chuỗi khối).
Dưới đây là một vài ví dụ về mô hình tin cậy của một vài giao thức blockchain lớp 2. Tôi sử dụng " N nhỏ " để chỉ tập hợp những người tham gia của chính hệ thống lớp 2 và " N lớn " để chỉ những người tham gia vào chuỗi khối; giả định luôn là giao thức lớp 2 có một cộng đồng nhỏ hơn chính blockchain.
Tôi cũng hạn chế sử dụng từ "thất bại sống động" cho các trường hợp tiền xu bị mắc kẹt trong một khoảng thời gian đáng kể; không còn có thể sử dụng hệ thống nhưng có thể rút tiền gần như ngay lập tức không bị tính là thất bại về tính mạng.
Kênh (bao gồm các kênh trạng thái, mạng sét): 1 trong 1 ủy thác cho sự sống (đối tác của bạn có thể tạm thời đóng băng tiền của bạn, mặc dù tác hại của điều này có thể được giảm thiểu nếu bạn chia tiền giữa nhiều đối tác), N / 2 của ủy thác big-N vì sự an toàn (một cuộc tấn công 51% blockchain có thể ăn cắp tiền của bạn)
Plasma (giả sử là nhà điều hành tập trung): 1 trong số 1 sự tin tưởng cho sự tồn tại (nhà điều hành có thể tạm thời đóng băng tiền của bạn), N / 2 của sự tin tưởng big-N vì sự an toàn (cuộc tấn công blockchain 51%).
Plasma (giả sử nhà điều hành bán phân cấp, ví dụ: DPOS): N / 2 độ tin cậy nhỏ N cho sự sống động, N / 2 độ tin cậy N lớn cho độ an toàn.
Tổng hợp lạc quan : 1 trong số 1 hoặc N / 2 của độ tin cậy nhỏ-N cho sự sống còn (tùy thuộc vào loại nhà điều hành), N / 2 của độ tin cậy lớn-N đối với sự an toàn.
ZK rollup : 1 trong số N ủy thác nhỏ để tồn tại (nếu nhà điều hành không bao gồm giao dịch của bạn, bạn có thể rút tiền và nếu nhà điều hành không bao gồm việc rút tiền của bạn ngay lập tức, họ không thể tạo thêm lô và bạn có thể tự rút tiền với sự trợ giúp của bất kỳ nút đầy đủ nào của hệ thống cuộn lên); không có rủi ro thất bại an toàn
ZK rollup (với tăng cường rút tiền nhẹ ) : không có rủi ro thất bại về tính mạng, không có rủi ro về lỗi an toàn
Cuối cùng, có một câu hỏi về động lực: liệu diễn viên mà bạn đang tin tưởng có cần phải rất vị tha để diễn xuất như mong đợi, chỉ hơi vị tha một chút, hay là đủ lý trí? Tìm kiếm bằng chứng gian lận "theo mặc định" hơi vị tha, mặc dù mức độ vị tha như thế nào tùy thuộc vào mức độ phức tạp của việc tính toán (xem phần tiến thoái lưỡng nan của người xác minh ) và có nhiều cách để sửa đổi trò chơi cho hợp lý.
Hỗ trợ người khác rút tiền từ bản tổng hợp ZK là hợp lý nếu chúng tôi thêm một cách để thanh toán vi mô cho dịch vụ, vì vậy thực sự có rất ít lý do để lo lắng rằng bạn sẽ không thể thoát khỏi bản tổng hợp với bất kỳ mục đích sử dụng đáng kể nào.
Trong khi đó, những rủi ro lớn hơn của các hệ thống khác có thể được giảm bớt nếu chúng ta đồng ý với tư cách là một cộng đồng không chấp nhận các chuỗi tấn công 51% đã trở lại quá xa trong lịch sử hoặc các khối kiểm duyệt quá lâu.
Kết luận: khi ai đó nói rằng một hệ thống "phụ thuộc vào sự tin cậy", hãy hỏi họ chi tiết hơn xem họ muốn nói gì! Chúng có nghĩa là 1 trong số 1, hoặc 1 trong số N, hoặc N / 2 của N? Họ yêu cầu những người tham gia này phải vị tha hay chỉ có lý trí? Nếu vị tha, đó là một khoản chi nhỏ hay một khoản chi lớn?
Và điều gì sẽ xảy ra nếu giả định bị vi phạm - bạn chỉ cần đợi vài giờ hoặc vài ngày, hay bạn có tài sản bị mắc kẹt mãi mãi? Tùy thuộc vào các câu trả lời, câu trả lời của riêng bạn về việc bạn có muốn sử dụng hệ thống đó hay không có thể rất khác nhau.
Ban đầu được xuất bản là " Mô hình tin cậy "