Tam giác hại

Rate this post


2017 ngày 16 tháng 7
Xem tất cả bài viết
Tam giác hại

Sau đây là sơ đồ từ một slide mà tôi đã thực hiện trong một trong những bài thuyết trình của mình tại Cornell tuần này:


Nếu có một biểu đồ có thể nắm bắt được nguyên tắc cốt lõi trong triết lý khuyến khích của Casper, thì đây có thể là biểu đồ đó. Do đó, nó đảm bảo một số lời giải thích thêm.

Sơ đồ hiển thị ba khu vực bầu cử – thiểu số, đa số và giao thức (tức là người dùng) và bốn mũi tên biểu thị các hành động đối nghịch có thể xảy ra: thiểu số tấn công giao thức, thiểu số tấn công đa số, đa số tấn công giao thức và đa số tấn công người dân tộc thiểu số. Ví dụ về từng loại bao gồm:

  • Thiểu số tấn công giao thức – Các cuộc tấn công Finney (một cuộc tấn công được thực hiện bởi một người khai thác trên một chuỗi khối bằng chứng công việc trong đó người khai thác chi tiêu gấp đôi các giao dịch chưa được xác nhận hoặc có thể được xác nhận một lần)
  • Thiểu số tấn công đa số – Feather forking (một thiểu số trong chuỗi bằng chứng công việc cố gắng hoàn nguyên bất kỳ khối nào chứa một số giao dịch không mong muốn, mặc dù sẽ từ bỏ nếu khối nhận được hai xác nhận)
  • Đa số tấn công giao thức – tấn công 51% truyền thống
  • Đa số tấn công thiểu số – một cuộc tấn công kiểm duyệt 51%, trong đó một cartel từ chối chấp nhận bất kỳ khối nào từ những người khai thác (hoặc người xác thực) bên ngoài cartel

Bản chất triết lý của Casper là thế này: cho tất cả bốn loại tấn công, chúng tôi muốn đặt giới hạn trên cho tỷ lệ giữa mức độ thiệt hại mà nạn nhân của cuộc tấn công phải gánh chịu và chi phí mà kẻ tấn công phải trả. Theo một số cách, mọi quyết định thiết kế trong Casper đều xuất phát từ nguyên tắc này.

Điều này khác rất nhiều so với tư tưởng theo trường phái khuyến khích bằng chứng công việc thông thường ở chỗ trong quan điểm bằng chứng công việc, hai cuộc tấn công cuối cùng không được phòng thủ. Hai cuộc tấn công đầu tiên, cuộc tấn công Finney và cuộc tấn công lông vũ, rất tốn kém vì kẻ tấn công có nguy cơ không đưa các khối của họ vào chuỗi và do đó mất doanh thu. Tuy nhiên, nếu kẻ tấn công chiếm đa số thì cuộc tấn công sẽ không tốn kém, bởi vì kẻ tấn công luôn có thể đảm bảo rằng chuỗi của họ sẽ là chuỗi chính. Về lâu dài, việc điều chỉnh độ khó đảm bảo rằng tổng doanh thu của tất cả những người khai thác là hoàn toàn giống nhau, và điều này có nghĩa là nếu một cuộc tấn công khiến một số nạn nhân mất tiền, thì kẻ tấn công lợi nhuận tiền bạc.

Thuộc tính này của bằng chứng công việc phát sinh vì bằng chứng công việc truyền thống của Nakamoto về cơ bản trừng phạt bất đồng chính kiến – nếu bạn với tư cách là người khai thác, tạo một khối phù hợp với sự đồng thuận, bạn sẽ nhận được phần thưởng và nếu bạn tạo một khối không phù hợp với sự đồng thuận, bạn sẽ bị phạt (hình phạt không có trong giao thức; thay vào đó, nó đến từ thực tế là một người khai thác như vậy sử dụng điện và vốn để tạo ra khối và không nhận được phần thưởng).

Casper, mặt khác, hoạt động chủ yếu bằng trừng phạt sự mập mờ – nếu bạn gửi hai tin nhắn xung đột với nhau, thì bạn sẽ bị phạt rất nặng, ngay cả khi một trong những tin nhắn đó phù hợp với sự đồng thuận (đọc thêm về điều này trong bài đăng trên blog về “điều kiện cắt giảm tối thiểu”). Do đó, trong trường hợp tấn công đảo ngược cuối cùng, những người gây ra sự kiện đảo ngược sẽ bị phạt và những người khác không bị ảnh hưởng; đa số chỉ có thể tấn công giao thức với chi phí cao và đa số không thể khiến thiểu số mất tiền.


Nó trở nên khó khăn hơn khi chúng ta chuyển sang nói về hai loại tấn công khác – lỗi sinh hoạt và kiểm duyệt. Lỗi liveness là lỗi mà phần lớn trình xác thực Casper ngoại tuyến, ngăn không cho sự đồng thuận đạt được mục đích cuối cùng và lỗi kiểm duyệt là lỗi mà phần lớn trình xác thực Casper từ chối chấp nhận một số giao dịch hoặc từ chối chấp nhận thông báo đồng thuận từ các trình xác thực Casper khác (các nạn nhân) để tước phần thưởng của họ.

Điều này chạm đến một sự phân đôi cơ bản: tương đương lỗi loa/nghe.


Giả sử người B nói rằng họ không nhận được tin nhắn từ người A. Có hai cách giải thích: (i) người A không gửi tin nhắn, (ii) người B giả vờ không nghe thấy tin nhắn. Chỉ đưa ra bằng chứng cho yêu cầu của B, không có cách nào để nói cái nào trong hai lời giải thích là đúng. Mối quan hệ với khuyến khích giao thức chuỗi khối là thế này: nếu bạn thấy một giao thức thực thi trong đó 70% thông báo của trình xác thực được bao gồm trong chuỗi và 30% thì không, và không thấy gì khác (và đây là những gì chuỗi khối nhìn thấy), thì đó là không có cách nào để biết vấn đề là 30% ngoại tuyến hay 70% đang kiểm duyệt. Nếu chúng ta muốn làm cho cả hai loại tấn công trở nên đắt đỏ, thì chỉ có một điều chúng ta có thể làm: phạt cả hai bên.

Trừng phạt cả hai bên cho phép một trong hai bên làm “đau lòng” bên kia, bằng cách chuyển sang chế độ ngoại tuyến nếu họ là thiểu số và kiểm duyệt nếu họ là đa số. Tuy nhiên, chúng ta có thể thiết lập giới hạn về mức độ dễ dàng của sự đau buồn này, thông qua kỹ thuật phân tích yếu tố đau buồn. Yếu tố đau buồn của một chiến lược về cơ bản là số tiền bị mất của các nạn nhân chia cho số tiền bị mất của những kẻ tấn công và yếu tố đau buồn của một giao thức là yếu tố đau buồn cao nhất mà nó cho phép. Ví dụ: nếu một giao thức cho phép tôi khiến bạn mất 3 đô la với chi phí là 1 đô la cho chính tôi, thì hệ số đau buồn là 3. Nếu không có cách nào để khiến người khác mất tiền, thì hệ số đau buồn là 0 và nếu bạn có thể khiến người khác tiền mất tật mang (hoặc có lợi cho mình), nhân tố đau buồn là vô cùng.

Nói chung, bất cứ nơi nào tồn tại sự phân đôi người nói/người nghe, yếu tố đau buồn không thể bị giới hạn toàn cầu ở trên bởi bất kỳ giá trị nào dưới 1. Lý do rất đơn giản: một trong hai bên có thể làm tổn thương bên kia, vì vậy nếu bên \(MỘT\) có thể đau buồn bên \(B\) với hệ số \(x\) sau đó bên \(B\) có thể đau buồn bên \(MỘT\) với hệ số \(\frac{1}{x}\); \(x\)\(\frac{1}{x}\) không thể cả hai đều dưới 1 đồng thời. Chúng ta có thể chơi xung quanh với các yếu tố; ví dụ: có thể coi là ổn khi cho phép hệ số đau buồn là 2 đối với những kẻ tấn công đa số để đổi lấy việc giữ hệ số đau buồn ở mức 0,5 đối với thiểu số, với lý do rằng những kẻ tấn công thiểu số có nhiều khả năng hơn. Chúng tôi cũng có thể cho phép hệ số đau buồn là 1 đối với các cuộc tấn công quy mô nhỏ, nhưng cụ thể là đối với các cuộc tấn công quy mô lớn, buộc phải chia tách chuỗi trong đó một bên chuỗi bị phạt và một bên chuỗi khác bị phạt, tin tưởng thị trường sẽ chọn chuỗi nơi những kẻ tấn công không được ưa chuộng. Do đó, có rất nhiều cơ hội để thỏa hiệp và đánh đổi giữa các mối quan tâm khác nhau trong khuôn khổ này.

Trừng phạt cả hai bên có một lợi ích khác: nó đảm bảo rằng nếu giao thức bị tổn hại, kẻ tấn công sẽ bị trừng phạt. Điều này đảm bảo rằng bất kể kẻ tấn công là ai, họ đều có động cơ để tránh tấn công tương xứng với mức độ thiệt hại gây ra cho giao thức. Tuy nhiên, nếu chúng ta muốn giới hạn tỷ lệ thiệt hại đối với giao thức so với chi phí đối với những kẻ tấn công, thì chúng ta cần một cách chính thức để đo lường mức độ gây hại cho giao thức.

Điều này giới thiệu khái niệm về chức năng tiện ích giao thức – một công thức cho chúng ta biết giao thức đang hoạt động tốt như thế nào, lý tưởng nhất là có thể tính toán được từ bên trong chuỗi khối. Trong trường hợp chuỗi bằng chứng công việc, đây có thể là tỷ lệ phần trăm của tất cả các khối được tạo ra nằm trong chuỗi chính. Trong Casper, tiện ích giao thức bằng không đối với một quá trình thực thi hoàn hảo trong đó mọi kỷ nguyên được hoàn thiện và không xảy ra lỗi an toàn nào, với một số hình phạt cho mọi kỷ nguyên không được hoàn thiện và một hình phạt rất lớn cho mọi lỗi an toàn. Nếu một chức năng tiện ích giao thức có thể được chính thức hóa, thì các hình phạt đối với các lỗi có thể được đặt càng gần với việc mất tiện ích giao thức do các lỗi đó càng tốt.

Thanh Thuy

Leave a Reply

Your email address will not be published. Required fields are marked *