Cảnh báo rủi ro: Đề phòng huy động vốn bất hợp pháp dưới danh nghĩa 'tiền điện tử' và 'blockchain'. — Năm cơ quan bao gồm Ủy ban Giám sát Ngân hàng và Bảo hiểm
Tìm kiếm
Đăng nhập
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
Xem thị trường
Mô hình ủy thác blockchain trong con mắt của Vitalik Buterin
ECN以太坊中国
特邀专栏作者
2021-07-01 02:23
Bài viết này có khoảng 2727 từ, đọc toàn bộ bài viết mất khoảng 4 phút
"Niềm tin" trong bối cảnh blockchain là gì? So sánh "mô hình tin cậy" của lược đồ Layer2

Tác giả | Vitalik Buterin

Tác giả | Vitalik Buterin

Một trong những đặc tính có giá trị nhất của hầu hết các ứng dụng chuỗi khối là tính tin cậy, tức là khả năng ứng dụng tiếp tục hoạt động theo cách đã định mà không cần phụ thuộc vào những người tham gia nhất định hành xử theo một cách nhất định, ngay cả khi lợi ích liên quan của họ có thể thay đổi trong tương lai. nó cư xử bất ngờ. Các ứng dụng chuỗi khối không bao giờ hoàn toàn không đáng tin cậy, nhưng một số ứng dụng không đáng tin cậy hơn những ứng dụng khác. Nếu chúng ta muốn hướng tới mục tiêu giảm thiểu niềm tin, trước tiên chúng ta cần có khả năng phân biệt mức độ tin cậy.

Đầu tiên, định nghĩa đơn giản của tôi về "tin tưởng" là: tin tưởng là đưa ra các 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 sẽ không cố ý giữ khoảng cách hai mét với người khác khi đi trên đường để tránh có người bất ngờ đâm bạn, đây là một loại tin tưởng: thứ nhất, tin tưởng rằng mọi người hiếm khi mất trí, thứ hai, tin tưởng hệ thống pháp luật Những người duy trì có động cơ mạnh mẽ để hạn chế hành vi này. Khi bạn chạy một đoạn mã do người khác viết, bạn tin tưởng họ sẽ trung thực khi viết nó (dù là vì lương tâm của chính họ hay vì lợi ích tài chính để duy trì danh tiếng của họ), hoặc ít nhất có đủ người kiểm tra nó để tìm ra lỗ hổng. Không trồng trọt thực phẩm của riêng bạn là một hình thức tin tưởng khác, tin tưởng rằng đủ người sẽ trồng nó để kiếm lợi nhuận và bán nó cho bạn. Bạn có thể tin tưởng các nhóm có quy mô khác nhau và có nhiều loại tin cậy khác nhau.

Để phân tích chuỗi khối, tôi cố gắng phân tách niềm tin thành các khía cạnh sau:

  • Bạn cần bao nhiêu người để cư xử theo mong đợi của bạn?

  • Tổng số người là bao nhiêu?

  • Mọi người cần động lực gì? Họ cần phải là người vị tha, hay lính đánh thuê? Họ có cần tránh cộng tác không?

  • Hệ thống sẽ bị ảnh hưởng xấu như thế nào nếu những giả định này bị vi phạm?

Bây giờ, hãy tập trung vào hai điểm đầu tiên và đây là sơ đồ:


Màu xanh lá cây càng đậm thì mô hình càng khỏe mạnh. Hãy phân tích chi tiết các danh mục này:

  • 1 trên 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, hệ thống sẽ (sẽ) hoạt động bình thường. Đây là mô hình "tập trung hóa" truyền thống và cũng là mô hình chúng tôi muốn vượt qua.

  • N của N: Một thế giới "lạc hậu". Tất cả những người tham gia trong hệ thống phải hành xử như mong đợi để hệ thống hoạt động bình thường và chúng tôi không có biện pháp khắc phục nếu bất kỳ ai trong số họ bị lỗi.

  • N/2 của N: Đây là cách hoạt động của chuỗi khối, nếu phần lớn các công cụ khai thác (hoặc trình xác thực PoS) trung thực, thì chuỗi khối sẽ hoạt động bình thường. Lưu ý rằng giá trị của N càng lớn thì N/2 càng có giá trị. Một mạng lưới các công cụ khai thác/người xác nhận được phân phối rộng rãi có ý nghĩa hơn so với một chuỗi khối chỉ được kiểm soát bởi một số ít người khai thác/người xác thực. Tuy nhiên, chúng tôi muốn tiến thêm một bước với mức độ bảo mật này do khả năng bị tấn công 51%.

  • 1 of N: Có nhiều tác nhân và miễn là ít nhất một trong số họ hoạt động như mong đợi, 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, cũng như cài đặt độ tin cậy, mặc dù giá trị của N thường nhỏ trong trường hợp này. Lưu ý rằng chúng tôi thực sự muốn giá trị của N càng lớn càng tốt!

  • Rất ít N: Miễn là một số lượng nhỏ, cố định các tác nhân hành xử như mong đợi, hệ thống sẽ hoạt động bình thường. Kiểm tra tính khả dụng của dữ liệu là một trong số đó.

  • 0 of 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 thực các khối thuộc loại này.

Mặc dù các mô hình khác với "0 của N" có một số mức độ "tin tưởng", nhưng có một sự khác biệt rất lớn giữa các mô hình này! Việc tin tưởng rằng một người (hoặc tổ chức) cụ thể sẽ hành xử như mong đợi là một tình huống hoàn toàn khác với việc tin tưởng rằng bất kỳ cá nhân nào cũng sẽ hành xử như mong đợi. "1 của N" giống với "0 của N" hơn là "N/2 của N" thành "1 của 1". Người ta có thể nghĩ rằng mô hình "1 trên N" tương tự như mô hình "1 trên 1" vì cả hai mô hình đều dựa vào một người chơi, nhưng thực tế hai mô hình này hoàn toàn khác nhau: trong hệ thống "1 trên N", nếu người tham gia đột ngột biến mất hoặc bôi đen thì có thể thay đổi người tham gia khác nhưng trong hệ thống "1 trên 1" thì chúng ta không còn lựa chọn nào khác.

Cụ thể, hãy lưu ý rằng ngay cả phần mềm bạn chạy thường phụ thuộc vào mô hình tin cậy "vài N" về tính chính xác của nó để đảm bảo rằng ai đó sẽ kiểm tra xem mã có lỗi hay không. Biết được điều này, cố gắng làm cho phần còn lại của ứng dụng của bạn chuyển từ mô hình "1 trên N" sang mô hình "0 trên N" giống như lắp đặt cửa an ninh trong nhà của bạn, nhưng với cửa sổ đang mở.

Một sự khác biệt quan trọng khác là, nếu các giả định về niềm tin của bạn bị phá vỡ, hệ thống sẽ bị thiệt hại bao nhiêu? Trên các chuỗi khối, hai loại lỗi phổ biến nhất là lỗi hoạt động và lỗi an toàn. Lỗi Liveness có nghĩa là bạn tạm thời không thể thực hiện các hoạt động (ví dụ: rút tiền, đóng gói giao dịch thành khối và đọc dữ liệu trên chuỗi). Lỗi bảo mật là tình huống mà hệ thống muốn 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 là danh sách các mô hình tin cậy được thông qua bởi một số giao thức lớp 2 của chuỗi khối. Tôi sử dụng "N nhỏ" để chỉ tập hợp những người tham gia trong chính hệ thống lớp 2 và "N lớn" để chỉ những người tham gia ở cuối chuỗi khối. Giả định của tôi là cộng đồng lớp 2 sẽ luôn nhỏ hơn chuỗi khối bên dưới. Ngoài ra, tôi sử dụng thuật ngữ "thất bại trong hoạt động sống" để chỉ các tình huống không thể tăng mã thông báo trong một khoảng thời gian dài. Việc không 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 được tính là lỗi hoạt động.

  • Sơ đồ "Kênh" (Các 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 trên 1" để đảm bảo tính sống động (đối tác của bạn có thể tạm thời đóng băng tiền của bạn, nhưng bạn có thể phân phối tiền theo nhiều kênh) giảm thiểu rủi ro trong ), sử dụng mô hình "N/2 của N lớn" để bảo mật (khả năng mất tiền trong một cuộc tấn công 51%).

  • Plasma (nhà điều hành tập trung): Sử dụng mô hình tin cậy "1 trên 1" để đảm bảo tính khả thi (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 của N lớn" để đảm bảo an ninh (có thể bị mất tiền trong quá trình tấn công 51% ).

  • Plasma (nhà khai thác bán phi tập trung, chẳng hạn như DPOS): sử dụng mô hình tin cậy "N/2 của N nhỏ" để đảm bảo tính sống động và mô hình "N/2 của N lớn" để đảm bảo an ninh.

  • Tổng hợp lạc quan: Sử dụng mô hình tin cậy "1 trên 1" hoặc "N/2 của N nhỏ" để tạo sự sống động (tùy thuộc vào loại nhà điều hành) và mô hình "N/2 của N lớn" để bảo mật.

  • Tổng hợp ZK: Sử dụng mô hình tin cậy "1 trên 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ể rút tiền, nếu nhà điều hành không đóng gói giao dịch rút tiền của bạn ngay lập tức, bạn không thể đóng gói nhiều giao dịch hơn, Bạn có thể rút tiền bạn với sự trợ giúp của bất kỳ nút đầy đủ nào trong hệ thống tổng số); không có nguy cơ xảy ra lỗi bảo mật.

  • ZK rollup (rút nhẹ nâng cao): Không có rủi ro lỗi hoạt động và rủi ro lỗi bảo mật.

Cuối cùng là câu hỏi về "động lực". Bạn có cần những người tham gia mà bạn tin tưởng là những người rất vị tha, hơi vị tha hoặc đủ lý trí để khiến những người tham gia tuân theo kỳ vọng không? Theo mặc định, "chứng minh gian lận" yêu cầu người tham gia phải hơi vị tha, nhưng mức độ phụ thuộc vào độ phức tạp của tính toán (xem phần "Tình thế tiến thoái lưỡng nan của Người xác minh" để biết chi tiết) và có nhiều cách để cải thiện quy trình để khiến nó trở nên hợp lý hơn.

Nếu chúng tôi thêm một cơ chế thanh toán cho dịch vụ, thì việc giúp những người khác rút tiền từ bản tổng hợp ZK là điều hợp lý, vì vậy bạn không cần phải lo lắng về việc không thể rút tiền khỏi bản tổng hợp. Đồng thời, nếu cộng đồng đồng ý không chấp nhận một chuỗi khối bị tấn công 51% (khôi phục lịch sử giao dịch rất dài hoặc xem xét các khối quá lâu), thì 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 ai đó nói rằng một hệ thống "dựa trên các cơ chế tin cậy", chúng ta có thể tìm hiểu sâu về nó! Chúng có nghĩa là mô hình "1 trên 1", mô hình "1 trên N" hay mô hình "N/2 trên N"? Hệ thống có yêu cầu người tham gia phải vị tha hay lý trí không? Nếu đó là lòng vị tha, chi phí cho người tham gia là gì? Tôi phải đợi bao lâu để lấy lại tiền nếu giả định bị vi phạm? một vài giờ? Bao nhiêu ngày? Hay nó bị đóng băng mãi mãi? Biết được những câu hỏi này, chúng tôi có thể có những câu trả lời rất khác nhau về việc có nên áp dụng hệ thống hay không.

Vitalik
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký
https://t.me/Odaily_News
Tài khoản chính thức
https://twitter.com/OdailyChina