Tiêu đề gốc: "Thông tin khô khan | Mô hình niềm tin"
Nguồn gốc: Những người đam mê Ethereum
p>
Đối với nhiều ứng dụng blockchain, tính không tin cậy là một trong những tính năng quan trọng nhất. Cái gọi là không tin cậy có nghĩa là hoạt động bình thường của ứng dụng không giả định trước rằng những người tham gia cụ thể sẽ hành động theo một cách cụ thể, ngay cả khi họ sẽ thực hiện những hành động bất ngờ do lợi ích trong tương lai (điều đó không thể làm cho điều kiện làm việc của ứng dụng đi chệch khỏi kỳ vọng). Các ứng dụng chuỗi khối không bao giờ có thể hoàn toàn không có sự tin cậy, nhưng một số ứng dụng lại không đáng tin cậy hơn nhiều so với các ứng dụng khác. Nếu muốn thực hiện những bước đi vững chắc nhằm giảm thiểu lòng tin, trước tiên chúng ta phải xác định mức độ tin cậy.
Trước hết, định nghĩa cá nhân của tôi về niềm tin rất đơn giản: Niềm tin là sự giả định về hành vi của người khác. Trước khi dịch bệnh bùng phát, bạn không cố tình giữ khoảng cách hai mét với người khác vì sợ họ bất ngờ đâm mình. Đây là một loại tin tưởng: một mặt là tin tưởng rằng người khác sẽ không phát điên, mặt khác đó là tin tưởng vào sức mạnh ràng buộc của hệ thống pháp luật đối với các hành vi vi phạm pháp luật, tội phạm. 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ọ trung thực (từ góc độ tính cách hoặc từ góc độ lợi ích tài chính) và ít nhất đã có đủ người kiểm tra mã để biết bên trong có gì. Không tự trồng lương thực cũng là một hình thức tin cậy: tin tưởng rằng sẽ có đủ người sản xuất lương thực vì mục đích kiếm tiền. Có nhiều nhóm khác nhau mà bạn có thể tin tưởng và cũng có nhiều loại hình tin cậy.
Để phân tích các giao thức blockchain, tôi sẽ chia niềm tin thành bốn khía cạnh:
1. Bạn cần bao nhiêu người để hành xử như bạn mong đợi?
2. Có tổng cộng bao nhiêu người tham gia?
3. Điều gì thúc đẩy những người này cư xử như bạn mong đợi? Họ có cần phải là người vị tha hay lính đánh thuê? Có cần thiết phải tránh sự phối hợp giữa chúng không?
4. Nếu những giả định này bị phá vỡ thì hệ thống sẽ bị thiệt hại bao nhiêu?
Bây giờ chúng ta hãy tập trung vào hai câu hỏi đầu tiên. Qua hình sau, chúng ta có thể thấy nó một cách trực quan hơn: Vitalik: Tìm hiểu mô hình niềm tin từ bốn chiều

Xanh đậm hơn có nghĩa là khỏe mạnh hơn. Chúng ta hãy phân tích chi tiết các tình huống sau:
1 : 1: Chỉ có một người tham gia trong toàn bộ hệ thống. Nếu tác nhân này hoạt động như bạn mong đợi thì hệ thống sẽ hoạt động bình thường. Đây là mô hình “tập trung” truyền thống và cũng là mô hình chúng tôi muốn vượt qua.
N : N: Thế giới "Dystopian". Tất cả những người tham gia trong hệ thống phải hành xử như bạn mong đợi để hệ thống hoạt động bình thường. Nếu bất kỳ người tham gia nào thất bại, sẽ không có kế hoạch dự phòng.
N/2 : N: Đây là cách chuỗi khối hoạt động - nếu phần lớn những người khai thác (hoặc người xác thực PoS) là những người trung thực và chuỗi khối sẽ hoạt động bình thường. Lưu ý rằng N càng lớn thì N/2 càng có giá trị. Một mạng lưới có các công cụ khai thác/trình xác thực được phân phối rộng rãi sẽ thú vị hơn nhiều so với một chuỗi khối chỉ được kiểm soát bởi một số ít công cụ khai thác/trình xác thực. Dù vậy, chúng tôi vẫn muốn đạt được mức độ bảo mật cao hơn vì vẫn tồn tại vấn đề tấn công 51%.
1 : N: Trong số nhiều người tham gia, chỉ cần một người tham gia cư xử như bạn mong đợi, toàn bộ hệ thống sẽ hoạt động bình thường. 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. Điều này cũng đúng với cài đặt tin cậy, mặc dù N thường nhỏ hơn trong cài đặt tin cậy. Cần lưu ý rằng N càng lớn thì càng tốt!
Rất ít: N: Chỉ một số lượng người tham gia cố định trong số nhiều người tham gia hoạt động như bạn mong đợi, toàn bộ hệ thống có thể chạy bình thường. Kiểm tra tính sẵn có của dữ liệu thuộc loại này.
0 : N: Hệ thống không cần dựa vào các tác nhân bên ngoài để hoạt động bình thường. Tự xác minh tính hợp lệ của khối thuộc loại này.
Mặc dù các mô hình khác ngoài "0 : N" đều dựa trên "niềm tin", nhưng có sự khác biệt rất lớn giữa các mô hình này! Có sự khác biệt rất lớn giữa việc tin tưởng rằng một người (tổ chức) cụ thể sẽ hành xử như bạn mong đợi và việc tin tưởng rằng bất kỳ người nào cũng sẽ hành xử như bạn mong đợi. So với "N/2 : N" và "1 : 1", "1 : N" và "0 : N" gần hơn. Một số người có thể cho rằng mô hình "1 : N" giống với mô hình "1 : 1" vì cả hai hệ thống đều dựa vào một người tham gia, nhưng thực tế chúng khá khác nhau: trong hệ thống "1 : N", nếu người tham gia này biến mất hoặc làm điều ác, chỉ cần đổi sang người tham gia khác, nếu là hệ thống “1:1” thì bạn sẽ bất lực.
Đặc biệt, điều quan trọng cần lưu ý là ngay cả tính đúng đắn của phần mềm bạn đang chạy cũng thường phụ thuộc vào mô hình tin cậy "rất ít:N" để đảm bảo rằng khi xảy ra lỗi trong mã phần mềm, sẽ có người nào đó tìm nó kịp thời. Khi hiểu được thực tế này, bạn sẽ nhận ra rằng việc cố gắng chuyển từ mô hình "1:N" sang mô hình "0:N" cũng giống như lắp đặt cửa an ninh cho một ngôi nhà có cửa sổ đang mở.
Một điểm khác biệt quan trọng nữa là mức độ thiệt hại đối với hệ thống nếu giả định về niềm tin của bạn bị phá vỡ? Trên blockchain, hai loại lỗi phổ biến nhất là lỗi về tính sống động và Lỗi an toàn>. Lỗi hoạt động có nghĩa là bạn tạm thời không thể thực hiện các thao tác (ví dụ: rút tiền, đóng gói giao dịch thành khối, đọc dữ liệu trên chuỗi). Lỗi bảo mật là tình huống xảy ra mà hệ thống nhằm mục đích ngăn chặn (ví dụ: một khối không hợp lệ được thêm vào chuỗi khối).
Sau đây liệt kê các mô hình tin cậy được sử dụng bởi một số giao thức blockchain Lớp 2. Tôi sử dụng "N nhỏ" để chỉ nhóm người tham gia trong chính hệ thống lớp 2 và "N lớn" để chỉ những người tham gia trong chuỗi khối cơ bản. Giả thuyết của tôi là cộng đồng Lớp 2 sẽ luôn nhỏ hơn cộng đồng blockchain cơ bản của nó. Ngoài ra, cái mà tôi gọi là "sự thất bại về khả năng tồn tại" đặc biệt đề cập đến tình trạng mã thông báo bị kẹt trong một thời gian dài. Không thể sử dụng hệ thống nhưng việc rút tiền ngay lập tức không được coi là lỗi thực sự.
Lớp kênh (bao gồm các kênh trạng thái, Lightning Network, v.v.): Sử dụng mô hình tin cậy "1:1" để đảm bảo tính sống động ( giao dịch của bạn Đối thủ có thể tạm thời đóng băng tiền của bạn, nhưng bạn có thể dàn trải số tiền trên nhiều kênh để giảm thiểu tác động tiêu cực), mô hình "N/2: big N" để đảm bảo an ninh (kẻ tấn công có thể đánh cắp số tiền đó thông qua cuộc tấn công 51% của bạn). quỹ).
Plasma (sử dụng toán tử tập trung): Sử dụng mô hình "1:1" để đảm bảo hoạt động (nhà điều hành có thể tạm thời đóng băng tiền của bạn ), mô hình "N/2 : big N" để đảm bảo an ninh (kẻ tấn công có thể đánh cắp tiền của bạn thông qua cuộc tấn công 51%).
Plasma (sử dụng toán tử bán tập trung, chẳng hạn như DPOS): Sử dụng mô hình "N/2: N nhỏ" để đảm bảo hoạt động theo mô hình “N/2 : big N” để đảm bảo an ninh.
Tổng hợp tối ưu: Sử dụng mô hình "1 : 1" hoặc "N/2 : N nhỏ" để đảm bảo tính sống động (tùy thuộc vào nhà điều hành type), mô hình "N/2 : big N" để đảm bảo an ninh.
ZK rollup: Sử dụng mô hình "1 : N nhỏ" để đảm bảo tính sống động (nếu nhà điều hành không đóng gói giao dịch của bạn, bạn có thể Lấy lại tiền của bạn. Nếu nhà điều hành không đóng gói ngay giao dịch rút tiền của bạn, họ sẽ không thể đóng gói thêm giao dịch. 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 trong hệ thống tổng hợp.); không có rủi ro của sự thất bại về an ninh.
Bản tổng hợp ZK (phiên bản nâng cao rút tiền nhẹ): Không có nguy cơ lỗi hoạt động và không có nguy cơ lỗi bảo mật.
Cuối cùng, có câu hỏi về động cơ khuyến khích: để đạt được hiệu quả mong muốn, những người tham gia mà bạn tin tưởng có cần phải rất vị tha, nói chung là vị tha hay lý trí không? Theo mặc định, "bằng chứng gian lận" yêu cầu người tham gia phải có lòng vị tha, nhưng mức độ phụ thuộc vào độ phức tạp của phép tính (xem "Tình huống khó xử của người xác minh" để biết chi tiết) và có nhiều cách để sửa đổi các quy tắc để chúng trở nên hợp lý.
Nếu chúng ta thêm cách thanh toán phí dịch vụ thì hành vi giúp người khác rút tiền từ danh sách ZK là hợp lý nên không cần lo lắng về việc không thể thoát khỏi danh sách. Đồng thời, nếu toàn bộ cộng đồng đồng ý không chấp nhận các chuỗi khối được tạo thông qua các cuộc tấn công 51% (lịch sử giao dịch quay trở lại một thời gian dài trước đây hoặc kiểm duyệt các khối từ lâu), rủi ro đối với các hệ thống khác có thể được giảm thiểu.
Kết luận: Nếu bạn nghe ai đó nói rằng một hệ thống "dựa vào sự tin cậy", hãy nhớ hỏi! Hệ thống này là mô hình "1: 1", mô hình "1: N" hay mô hình "N/2: N"? Hệ thống này có yêu cầu người tham gia phải có lòng vị tha hay lý trí không? Nếu đó là lòng vị tha thì người tham gia phải trả bao nhiêu tiền? Nếu giả định bị phá vỡ, bạn phải đợi bao lâu để lấy lại được tiền? một vài giờ? Bao nhiêu ngày? Hoặc nó có thể không bao giờ được lấy lại? Chỉ sau khi bạn hiểu những vấn đề này, bạn mới có thể quyết định có nên sử dụng hệ thống này hay không.
Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm Telegram thảo luận: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia