Trong giao thức đồng thuận Nakamoto (viết tắt là NC trong hình ảnh Đồng thuận Nakamoto), để giải quyết vấn đề phân nhánh, người khai thác phải chọn chuỗi dài nhất nếu có thể; khi không có chuỗi dài nhất, người khai thác chọn Khối nhận được đầu tiên được thêm vào chuỗi chính. Về phần thưởng, các khối chuỗi chính sẽ nhận được tất cả phần thưởng và các khối mồ côi sẽ không nhận được gì.
Điều này có đủ an toàn không?
Phân tích ban đầu về sự đồng thuận của Nakamoto có xu hướng tin rằng bản thân chuỗi khối có chất lượng chuỗi hoàn hảo, nghĩa là những kẻ tấn công có ít hơn 50% sức mạnh tính toán của toàn bộ mạng không thể sửa đổi chuỗi khối. Tuy nhiên, trên thực tế, kẻ tấn công có thể sửa đổi blockchain với tỷ lệ thành công rất cao.
Có ba loại tấn công làm thay đổi chuỗi khối: Khai thác ích kỷ, Chi tiêu gấp đôi và Tấn công kiểm duyệt. Trong số đó, những kẻ tấn công khai thác ích kỷ có thể nhận được phần thưởng khối không công bằng không tỷ lệ thuận với sức mạnh tính toán của chúng. Họ có thể tập trung sức mạnh tính toán khai thác để nhận được phần thưởng khối tương đối cao hơn, do đó phá hủy bản chất phi tập trung của chuỗi khối; trong một cuộc tấn công chi tiêu gấp đôi, kẻ tấn công có thể đảo ngược giao dịch đã xác nhận và tối đa hóa lợi ích của chính họ; Trong trường hợp tấn công kiểm duyệt, kẻ tấn công kẻ tấn công ngăn không cho giao dịch được xác nhận, gây thiệt hại kinh tế cho những người khai thác trung thực.
khai thác ích kỷ
khai thác ích kỷ
tấn công chi tiêu gấp đôi
tấn công kiểm duyệt
Các ô vuông màu đỏ biểu thị thời điểm khối được truyền vào mạng, sau đó các vòng tròn màu cam biểu thị khối của kẻ tấn công và các hình tam giác biểu thị khối được khai thác bởi người khai thác trung thực. Kẻ tấn công đã may mắn tìm thấy khối đầu tiên, nhưng thay vì xuất bản nó lên mạng, lại chọn giữ lại nó.
Khi một người khai thác trung thực tìm thấy một khối, kẻ tấn công sẽ phát khối bị giữ lại trước người khai thác trung thực vào thời điểm này và sau đó tất cả những người khai thác sẽ khai thác trên khối của kẻ tấn công thay vì khối của người khai thác trung thực.
Nếu kẻ tấn công đủ may mắn để tìm thấy nhiều khối liên tiếp, kẻ tấn công có thể cô lập một khối trung thực mà không gặp rủi ro. Trong trường hợp này, chuỗi của kẻ tấn công trở nên dài hơn và sức mạnh tính toán của toàn bộ mạng sẽ chuyển sang chuỗi của nó để khai thác. Bằng cách này, kẻ tấn công đã tăng thành công tỷ lệ tương đối của phần thưởng khối tổng thể kiếm được.
Các cuộc tấn công chi tiêu gấp đôi rất giống với các cuộc tấn công khai thác ích kỷ, nhằm nhận được phần thưởng bổ sung thông qua khai thác bí mật. Ví dụ, trong Bitcoin, theo quy ước, có 6 khối để xác nhận giao dịch, về cơ bản là đã được xác nhận hoàn toàn. Nếu kẻ tấn công bí mật giữ lại 6 khối và phát chúng lên mạng cùng một lúc, hắn có thể đảo ngược giao dịch sau khi nhận được hàng hóa hoặc dịch vụ.
Các cuộc tấn công kiểm duyệt cố gắng cô lập tất cả các khối không đáp ứng yêu cầu kiểm duyệt, tức là tôi sẽ phát các giao dịch mà tôi muốn kiểm duyệt này, nếu bạn không tuân theo lệnh của tôi, tôi sẽ cố gắng cô lập các khối của bạn
hai giải pháp
Hãy nói về hai cách để giải quyết vấn đề bảo mật đồng thuận Nakamoto.
Loại đầu tiên chúng tôi gọi là giao thức “chất lượng chuỗi tốt hơn”. Có nhiều giao thức trong danh mục rộng này như được hiển thị, tuyên bố rằng chúng có thể cải thiện chất lượng của chuỗi. Lần này tôi sẽ tập trung vào "Giao thức phá vỡ ràng buộc băm nhỏ nhất (viết tắt là SHTB)" và "Giao thức phá vỡ ràng buộc xác định không thể đoán trước (viết tắt là UDTB)".
Danh mục rộng thứ hai được gọi là "Các giao thức chống tấn công". Các giao thức này tuyên bố rằng chúng có thể chống lại các cuộc tấn công mà không cần chất lượng của chuỗi là hoàn hảo, vì vậy chúng không cần cải thiện chất lượng của chuỗi.
Ba loại giao thức chống tấn công
Đầu tiên là giao thức Phần thưởng-tất cả. Loại giao thức này thưởng cho bằng chứng công việc gần đây nhất và các khối đủ điều kiện sẽ được thưởng, do đó kẻ tấn công không thể tiến hành một cuộc tấn công khai thác ích kỷ để làm mất hiệu lực phần thưởng của những người khai thác trung thực, vì vậy kẻ tấn công không có động cơ để khai thác ích kỷ tấn công.
Thứ hai được gọi là giao thức "Trừng phạt". Các giao thức này sẽ mất phần thưởng cho các khối đáng ngờ. Quy tắc phạt hy vọng rằng thông qua tâm lý sợ mất mát, mọi người phải tuân theo thỏa thuận.
Thứ ba được gọi là giao thức "Phần thưởng may mắn". Các giao thức này thưởng cho một số khối may mắn nhất định dựa trên nội dung của các khối, hy vọng rằng những khối may mắn này sẽ đóng vai trò là "điểm neo" cho một mạng ổn định.
Tiếp theo chúng ta hãy xem xét kỹ hơn các giao thức này.
Trước hết, chúng tôi phân tích loại thỏa thuận "chất lượng chuỗi tốt hơn" và loại thỏa thuận đầu tiên là "thỏa thuận phá vỡ ràng buộc hàm băm tối thiểu". Trong giao thức này, bất cứ khi nào có sự ràng buộc, giao thức sẽ yêu cầu tất cả các công cụ khai thác chọn khối có hàm băm nhỏ nhất, bất kể ai nhận được trước.
Thứ hai được gọi là "Giao thức phá vỡ ràng buộc xác định không thể đoán trước". Giao thức tuyên bố rằng bất cứ khi nào có sự ràng buộc, mọi người đều sử dụng hàm giả ngẫu nhiên xác định không thể đoán trước để tính toán thứ tự của tất cả các chuỗi tham gia, bất kể khối nào được nhận trước. Lý do đằng sau một giao thức xác định không thể đoán trước là vì kẻ tấn công không thể dự đoán liệu anh ta có giành chiến thắng trong cuộc cạnh tranh khối với hơn 50% cơ hội hay không, nên sẽ không khôn ngoan (và do đó không phải là một lựa chọn) để tiến hành một cuộc tấn công khai thác ích kỷ.
Đối với giao thức chống tấn công, tôi sẽ chọn một giao thức từ mỗi phương pháp kỹ thuật để phân tích. Đối với giao thức "tất cả phần thưởng", hãy phân tích chuỗi trái cây. Trong Fruitchain, cùng một quy trình khai thác được sử dụng cho hai sản phẩm khác nhau. Nếu k bit đầu tiên của giá trị băm của một khối ứng cử viên nhỏ hơn một ngưỡng nhất định, thì nó được đánh giá là một khối; nếu k bit cuối cùng của giá trị băm của một khối ứng cử viên nhỏ hơn một ngưỡng nhất định, thì nó được đánh giá Đó là trái cây. Vì vậy, khi bạn chạy thuật toán băm, bạn có thể nhận được một khối hoặc bạn có thể nhận được một loại trái cây.
Giao thức, giống như sự đồng thuận của Nakamoto, tuân theo nguyên tắc chuỗi dài nhất và phá vỡ các mối quan hệ dựa trên khối nhận được đầu tiên.
Đối với tất cả các giao thức chống tấn công, chúng tôi sử dụng sự đồng thuận của Nakamoto làm quy tắc cho giải pháp phân nhánh của chúng. Do đó, khi chúng tôi phân tích khả năng chống tấn công của chúng, chúng được đặt theo cùng một quy tắc.
Trái cây được nhúng trong khối. Bạn có thể coi trái cây như một giao dịch trong sự đồng thuận của Nakamoto, vốn chỉ được nhúng trong trái cây.
Mỗi trái cây có một khối con trỏ, là khối gần nhất và người khai thác trái cây sẽ không bị mồ côi. Con trỏ khối chuối trong hình là một trường hợp như vậy, nếu khối con trỏ nằm trong chuỗi chính thì trái cây đó hợp lệ. Nếu khối con trỏ là một khối mồ côi, giống như quả cà chua trên biểu đồ, thì quả đó không còn là quả hợp lệ nữa.
Có một quy tắc bổ sung là khoảng thời gian chặn trái cây cần phải nhỏ hơn ngưỡng thời gian chờ được xác định trước. Gap được định nghĩa là chênh lệch chiều cao khối giữa khối chính và khối con trỏ.
Ví dụ, khoảng cách của chuối là 2, bởi vì khối chính là 2 khối sau khối con trỏ. Vì vậy, các loại trái cây hợp lệ sẽ nhận được toàn bộ phần thưởng, trong khi các khối không nhận được gì.
Đối với giao thức trừng phạt, chúng tôi chọn phiên bản sửa đổi của giao thức DECOR làm trường hợp giải thích. Trong phiên bản sửa đổi của chúng tôi, chúng tôi gọi nó là giao thức Chia phần thưởng (RS), trong đó, như tên cho thấy, phần thưởng được chia đều cho tất cả các khối cạnh tranh có cùng chiều cao. Giao thức này cho phép một khối tham chiếu đến khối mồ côi trước đó dưới dạng khối chú. Nếu khoảng thời gian này thấp hơn ngưỡng thời gian chờ, thì khối chú là hợp lệ (và cũng sẽ nhận được một số phần thưởng nhất định).
Điều này tương tự như định nghĩa về khoảng thời gian trong giao thức phân phối phần thưởng và chuỗi trái cây. Sự khác biệt là trong giao thức này, khoảng được xác định là chênh lệch chiều cao giữa khối chính và khối chú, chứ không phải là chênh lệch chiều cao giữa khối chính và khối con trỏ. Vì vậy, chúng tôi không xem xét mối quan hệ họ hàng của khối, chỉ xem xét chiều cao của chính khối đó. Mỗi phần thưởng khối được phân bổ đồng đều giữa các khối cạnh tranh và các khối chú có cùng chiều cao. Ví dụ: trong sơ đồ này, mỗi khối B và C nhận được một nửa phần thưởng khối, trong khi khối A và D nhận được toàn bộ phần thưởng khối.
Cái cuối cùng là chuỗi con. Chuỗi con cũng sử dụng quy trình khai thác tương tự, nhưng đó là hai sản phẩm khác nhau. Các quy tắc tạo khối trong chuỗi con giống như Bitcoin. Nếu hàm băm của khối ứng cử viên thấp hơn một ngưỡng nhất định, thì khối đó được đánh giá là hợp lệ. Nếu giá trị băm của một khối ứng viên lớn hơn ngưỡng khối nhưng nhỏ hơn ngưỡng khác, thì chúng tôi coi đó là một khối yếu (Weak Block). Các khối yếu cũng được bao gồm trong chiều dài chuỗi và thực hiện chức năng xác nhận giao dịch. Tuy nhiên, các khối yếu không nhận được bất kỳ phần thưởng khối nào. Chỉ các khối kiếm được phần thưởng khối.
Các số liệu chung để đo lường tính bảo mật của giao thức
Tôi rất hào hứng, vì tiếp theo chúng ta sẽ thiết lập một số chỉ số chung để đo lường tính bảo mật của giao thức. Bạn tuyên bố rằng đây là giao thức an toàn nhất, nếu bạn muốn chứng minh điều đó với tôi, bạn cần phải đo lường mức độ an toàn của giao thức của bạn từ các kích thước của các chỉ số này.
Có bốn chỉ số trong nghiên cứu này, hãy phân tích chúng.
Số liệu đầu tiên mà chúng tôi gọi là Chất lượng Chuỗi đề cập đến tỷ lệ phần trăm khối tối thiểu của những người khai thác trung thực trên chuỗi chính. Trong ví dụ này, chất lượng chuỗi là ba trên sáu, bởi vì có sáu khối trong chuỗi chính, ba trong số đó là của những người khai thác trung thực.
Thứ hai, được gọi là Khả năng tương thích khuyến khích, đo lường khả năng chống lại các cuộc tấn công khai thác ích kỷ và được định nghĩa là tỷ lệ phần thưởng khối tối thiểu dành cho những người khai thác trung thực.
Trong trường hợp này, vì ba trong số sáu khối chuỗi chính đến từ những người khai thác trung thực, khả năng tương thích khuyến khích là 50%. Theo sự đồng thuận của Nakamoto, hai chỉ số này (đề cập đến chất lượng chuỗi và khả năng tương thích khuyến khích) là như nhau. Tuy nhiên, đối với các giao thức khác, hai số liệu này không giống nhau. Chất lượng chuỗi chỉ được sử dụng để đánh giá các đối thủ Byzantine (còn gọi là các nút độc hại), nhưng khả năng tương thích khuyến khích sẽ tính đến phần thưởng.
Chỉ số thứ ba là một chỉ số khác về khả năng chống tấn công, được gọi là "Subversion Gain", đo lường hiệu suất của các cuộc tấn công chống chi tiêu gấp đôi. Nó được định nghĩa là "phần thưởng khối trung bình có thể nhận được trên mỗi khoảng thời gian khối cộng với giá trị tối đa của phần thưởng chi tiêu gấp đôi."
Trong trường hợp này, giả sử cứ 10 phút lại tìm được một khối, nếu có tổng cộng 8 khối thì sẽ mất tổng cộng 80 phút (trong đó kẻ tấn công có 3 khối). Trong ví dụ này, trung bình cứ sau 10 phút, kẻ tấn công nhận được 3/8 phần thưởng khối. Phần thưởng chi tiêu gấp đôi là 0 vì phần thưởng chi tiêu gấp đôi yêu cầu sáu khối được tách biệt liên tiếp.
Vì không có phần thưởng phần trăm đầy đủ trong cuộc tấn công chống chi tiêu gấp đôi, nên chỉ báo được đặt thành "trung bình đạt được phần thưởng khối tối đa cho mỗi khoảng thời gian khối". Trên biểu đồ này, không có phần thưởng tấn công chi tiêu gấp đôi, vì bạn cần cách ly ít nhất 6 khối liên tiếp để nhận được phần thưởng chi tiêu gấp đôi.
Số liệu cuối cùng được gọi là Mức độ nhạy cảm với kiểm duyệt, là tỷ lệ phần trăm tối đa mà những người khai thác trung thực bị mất do từ chối các yêu cầu kiểm duyệt. Bởi vì nếu tôi từ chối yêu cầu xem xét, kẻ tấn công sẽ bắt đầu mồ côi các khối của tôi. Số liệu này đo lường tỷ lệ phần trăm các khối của tôi có thể bị bỏ trống. Trong trường hợp này có 5 khối trung thực, trong đó có 2 khối mồ côi nên độ nhạy kiểm duyệt là 2/5.
kết quả đánh giá
Bây giờ hãy xem kết quả đánh giá. Trong bài chia sẻ này, tôi đã phân tích 5 giao thức, hãy cùng xem chất lượng của chuỗi chỉ báo đầu tiên.
Trước tiên, chúng tôi xác định một biến γ , là tỷ lệ phần trăm sức mạnh tính toán của những người khai thác trung thực khai thác trên chuỗi của kẻ tấn công so với tất cả sức mạnh tính toán của những người khai thác trung thực trong trường hợp hòa.
Nếu γ bằng 0, thì tất cả sức mạnh tính toán của những người khai thác trung thực sẽ được sử dụng để khai thác chuỗi của những người khai thác trung thực và không có sức mạnh tính toán của những người khai thác trung thực nào sẽ khai thác trên chuỗi của kẻ tấn công. Nếu γ bằng 1, thì tất cả hashrate của những người khai thác trung thực sẽ khai thác trên chuỗi của kẻ tấn công và không ai sẽ khai thác trên chuỗi của những người khai thác trung thực.
Đây là thông số chung dùng để đánh giá sự đồng thuận của Nakamoto. Dưới đây là năm trường hợp, sự đồng thuận của Nakamoto, giao thức phá vỡ ràng buộc băm tối thiểu (SHTB) và giao thức phá vỡ ràng buộc xác định không thể đoán trước (UDTB) trong trường hợp lần lượt là γ = 0, 0,5, 1, cái nào có chất lượng chuỗi tốt nhất?
Trong số năm giao thức này, Minimal Hash Tie Breaker (SHTB) và Unpredictable Deterministic Tie Breaker (UDTB) chỉ tập trung vào cách phá vỡ các ràng buộc. Vì vậy, bạn không thể làm tốt hơn sự đồng thuận của Nakamoto trong trường hợp hòa với γ = 0. Bởi vì khi γ = 0, tất cả sức mạnh khai thác sẽ nằm trên chuỗi trung thực. Và bạn không thể tệ hơn sự đồng thuận của Nakamoto với γ = 1, trong đó kẻ tấn công giành được tất cả các mối quan hệ.
Vậy trong ba giao thức còn lại (SHTB, UDTB, giao thức Nakamoto với γ = 0,5) thì giao thức nào kém nhất? Nó thực sự là ràng buộc băm tối thiểu phá vỡ giao thức. Vậy cái nào tốt hơn trong hai giao thức còn lại (UDTB, giao thức Nakamoto với γ = 0,5)?
Tôi ở đây để khám phá câu trả lời. Nakamoto đồng thuận với γ = 0,5 là tốt hơn. Tại sao? Ví dụ: trong Giao thức phá vỡ ràng buộc xác định không thể đoán trước (UDTB), khi kẻ tấn công tìm thấy một khối, nhưng những người khai thác trung thực đóng gói khối đó và phát nó trước kẻ tấn công, thì có thể kẻ tấn công sẽ tính toán hàm giả ngẫu nhiên và nhận ra rằng nếu anh ấy xuất bản khối của mình, sẽ không có ai tiếp tục khai thác trên khối của anh ấy, bởi vì anh ấy đã thua trong cuộc thi khối . Vậy kẻ tấn công này có thể làm gì?
Theo sự đồng thuận của Nakamoto, kẻ tấn công chắc chắn sẽ thất bại vì khối nhận được đầu tiên vi phạm quy tắc ràng buộc và nếu bạn không xuất bản khối càng sớm càng tốt, thì sẽ không có ai khai thác khối của bạn. Nhưng trong UDTB thì khác, ngay cả khi khối tiếp theo đã được đào ra, kẻ tấn công vẫn có thể tiếp tục khai thác trên khối này, miễn là kẻ tấn công có thể giành được quyền sản xuất khối tiếp theo, kẻ tấn công sẽ có khả năng xuất bản hai khối đồng thời sau khối thợ mỏ trung thực.
Nếu chức năng giả ngẫu nhiên này chỉ ra rằng kẻ tấn công đã giành chiến thắng trong cuộc thi khối, thì kẻ tấn công có thể nhận được phần thưởng khối. Bởi vì UDTB cho phép một hành vi tấn công đặc biệt được gọi là "post-strike", tính bảo mật của UDTB sẽ kém hơn so với sự đồng thuận của Nakamoto với γ = 0,5.
Vậy tại sao giao thức bẻ khóa hàm băm tối thiểu lại được bảo mật kém như vậy? Bởi vì khi kẻ tấn công tìm thấy một khối và giá trị băm thực sự rất nhỏ, kẻ tấn công có xác suất khoảng 99% rằng anh ta sẽ có thể giành được quyền tạo khối bất kể hàm băm của người khác là gì. Bất kể tôi phát sóng khối nào trước, tôi có thể dự đoán chính xác xác suất mà tôi có thể thắng trận hòa này. Điều này cho phép kẻ tấn công khởi động một cuộc tấn công khối nếu anh ta đủ may mắn.
Khi người khai thác trung thực tìm thấy khối tiếp theo, vì hàm băm của khối của kẻ tấn công đủ nhỏ, nên anh ta có xác suất cao giành được quyền của khối, vì vậy anh ta có thể xuất bản khối và lấy được khối đúng . Lần tiếp theo khi kẻ tấn công không may mắn như vậy, anh ta sẽ nhận được một khối có hàm băm tương đối lớn và kẻ tấn công có thể xuất bản khối này và nhận phần thưởng trực tiếp.
Kết luận chung cho các giao thức chất lượng chuỗi tốt hơn
Dưới đây là một số kết luận chung từ nghiên cứu của chúng tôi về các giao thức chất lượng chuỗi tốt hơn.
Không có giao thức nào có thể đạt được chất lượng của một chuỗi khối lý tưởng khi sức mạnh tính toán của kẻ tấn công α > 1/4. Miễn là sức mạnh tính toán của kẻ tấn công vượt quá 1/4 sức mạnh tính toán của toàn mạng, thì thu nhập của kẻ tấn công có thể cao hơn thu nhập bình thường được tính theo tỷ lệ sức mạnh tính toán của nó.
Miễn là sức mạnh tính toán của kẻ tấn công vượt quá 1/4 sức mạnh tính toán của toàn mạng, thì thu nhập của kẻ tấn công có thể cao hơn thu nhập bình thường được tính theo tỷ lệ sức mạnh tính toán của nó.
Đối với bất kỳ giá trị nào của α, với γ = 0, không có giao thức nào hoạt động tốt hơn sự đồng thuận của Nakamoto về mặt bảo mật.
Có thể đối với một tình huống cụ thể, một giao thức nhất định có tính bảo mật tốt hơn so với sự đồng thuận của Nakamoto, nhưng nói chung, sự đồng thuận của Nakamoto là tốt nhất về bảo mật.
tại sao vậy? Bởi vì giao thức không thể phân biệt giữa khối trung thực và khối của kẻ tấn công.
Tại sao giao thức không thể phân biệt giữa các khối này?
Điều này là do thông tin bất đối xứng. Kẻ tấn công hành động dựa trên tất cả các thông tin có sẵn, có nghĩa là anh ta biết anh ta đã phát hành bao nhiêu khối, anh ta đã giữ lại bao nhiêu khối, khi nào tôi sẽ phát hành các khối này, v.v., kẻ tấn công biết mọi thứ. Tuy nhiên, những người khai thác trung thực chỉ hành động trên cơ sở thông tin công khai hạn chế.
Tại sao?
Điều này là do PoW có các giả định bảo mật yếu. Họ cố gắng hoạt động không đồng bộ, quy định rằng tất cả những người khai thác chỉ hành động/hoạt động trên thông tin công khai rất hạn chế.
Vì vậy, bây giờ hãy phân tích khả năng chống tấn công của chúng đối với giao thức đồng thuận Nakamoto, chuỗi trái cây, phân phối phần thưởng (Tách phần thưởng, RS) và các chuỗi con, trước hết là khả năng tương thích khuyến khích.
Trong số đó, giao thức phân phối phần thưởng (thực thi) hoạt động tốt nhất, bởi vì hình phạt luôn là cách hiệu quả nhất để khuyến khích hành vi đúng đắn. Chuỗi con hoạt động kém nhất.
Chuỗi trái cây đôi khi hoạt động tốt hơn và đôi khi kém hơn so với sự đồng thuận của Nakamoto. Chuỗi con cho phép kẻ tấn công vô hiệu hóa các khối trung thực bằng các khối yếu không có giá trị. Nếu mọi thứ đều có giá trị, kẻ tấn công sẽ gặp rủi ro khi giữ lại các khối. Nhưng bản thân một khối yếu là vô giá trị và kẻ tấn công có thể giữ lại khối yếu này mà không có nguy cơ mất phần thưởng khối. Vì không có rủi ro, tại sao không thử một hành vi táo bạo hơn là giữ lại các khối?
Càng nhiều khối yếu, hoạt động của giao thức càng tệ. Vì vậy, nhiều khối yếu hơn thực sự làm cho mọi thứ tồi tệ hơn. Trường hợp tốt nhất là không sử dụng các khối yếu.
Khi giá trị thời gian chờ của chuỗi trái cây nhỏ, nó hoạt động kém hơn so với sự đồng thuận của Nakamoto. Kẻ tấn công có thể sử dụng các khối vô dụng để vô hiệu hóa trái cây của mình. Điều này cũng có một vấn đề tương tự, bởi vì khối không có bất kỳ phần thưởng nào trong chuỗi trái cây, vì vậy kẻ tấn công không có động cơ để xuất bản khối, vì không có rủi ro giữ lại khối và kết quả là kẻ tấn công có thể thử hành vi giữ lại khối táo bạo hơn.
Kết quả là những kẻ tấn công có thể thực hiện các hành vi nắm giữ tích cực hơn.
Sẽ tốt hơn một chút nếu có nhiều trái cây hơn. Có một bài toán Newton-Pepys nổi tiếng, đó là một bài toán xác suất, cụ thể là
A. 6 con xúc xắc thường gieo độc lập với nhau thì ít nhất có 1 con 6 xuất hiện
B. 12 con xúc sắc bình thường tung độc lập với ít nhất 2 mặt 6
Nếu tung 6 con xúc xắc thì xác suất được 1 mặt 6 sẽ lớn hơn so với việc tung 12 con xúc xắc và được 2 mặt 6.
Có bốn sản phẩm khai thác trong chuỗi trái cây: trái cây trung thực, khối trung thực, trái cây tấn công và khối tấn công.
Chúng ta có thể coi "kẻ tấn công có 1 khối thời gian chờ so với người khai thác trung thực" - tức là kẻ tấn công có thể cô lập thành công một số loại trái cây - như một sự kiện có điều kiện. Sự kiện này hoàn toàn độc lập với việc tạo quả vì nó chỉ xem xét các khối. Chúng ta có thể coi nó như một điều kiện trong bài toán Newton-Pepy - vì nó độc lập nên chúng ta có thể vứt nó đi. Nhưng khi gặp điều kiện, nếu ít quả hơn thì khả năng “tấn công nhiều quả” là rất thấp.
Nhiều trái cây hơn có nghĩa là nhiều trái cây tấn công hơn. Vì bên tấn công là thiểu số nên nếu tổng số trái cây nhiều hơn có nghĩa là tổng tỷ lệ trái cây của bên tấn công sẽ nhiều hơn thực tế. Tốt hơn là sử dụng cờ bạc như một phép loại suy ở đây, bởi vì chúng ta có nhiều trái cây hơn, có nghĩa là khi kẻ tấn công có nhiều trái cây hơn, thì anh ta sẽ tham gia đánh bạc ít hơn. Một người sẵn sàng đánh bạc hơn khi anh ta không còn gì để mất, nhưng anh ta không muốn đánh bạc nếu nhiều vốn hơn có khả năng bị mất, điều đó có nghĩa là nhiều trái cây hơn sẽ góp phần nhỏ vào khả năng tương thích khuyến khích.
Tiếp theo, trong khả năng chống lại cuộc tấn công, chúng tôi phân tích "lợi nhuận xấu" của cuộc tấn công. Chỉ số càng nhỏ càng tốt. Như thể hiện trong hình, giao thức phân phối phần thưởng tốt hơn so với sự đồng thuận của Nakamoto, tốt hơn chuỗi trái cây và tốt hơn chuỗi con.
Chúng tôi đã phân tích một biện pháp thú vị khác được gọi là "tiền thưởng xấu". Chúng tôi định nghĩa nó là phần thưởng chi tiêu gấp đôi tối thiểu để nghiên cứu xu hướng khuyến khích. (Có nghĩa là, khi phần thưởng cho một cuộc tấn công chi tiêu gấp đôi lớn hơn tiền thưởng cho việc làm điều ác, kẻ tấn công có động cơ để làm điều ác). (Bảng ở góc dưới bên phải của hình là tiền thưởng được tính toán bởi giao thức phân phối phần thưởng và đồng thuận Nakamoto khi số lượng xác nhận khối là 3 hoặc 6, α (khi tỷ lệ sức mạnh tính toán của kẻ tấn công là 0,1 trên 0,4).
Bằng cách tính toán "tiền thưởng ác" của mỗi giao thức, có thể thấy rằng chuỗi trái cây và chuỗi con về cơ bản có thể bị phá hủy mà không tốn chi phí và thậm chí có thể thử chi tiêu gấp đôi mà không có phần thưởng vì không có rủi ro.
Chúng ta có thể thấy rằng khi số lượng xác nhận giao dịch tăng lên, đối với một kẻ tấn công yếu kém, sự gia tăng của phần thưởng xấu xa gần như tăng theo cấp số nhân. Điều này có nghĩa là nhiều xác nhận giao dịch hơn sẽ giúp chống lại chi tiêu gấp đôi, nhưng hiệu quả không quá rõ ràng đối với những kẻ tấn công mạnh.
Đối với khả năng chống kiểm duyệt, chúng tôi tính toán tất cả các số và xếp hạng như sau:
Đối với α nhỏ, nghĩa là khi tỷ lệ sức mạnh tính toán của kẻ tấn công thấp, chuỗi trái cây là tốt nhất, sau đó là sự đồng thuận của Nakamoto, sau đó là giao thức phân phối phần thưởng và chuỗi con.
Đối với α lớn, nghĩa là khi tỷ lệ sức mạnh tính toán của kẻ tấn công tương đối cao, giao thức phân phối phần thưởng trở nên tốt nhất, tiếp theo là chuỗi trái cây, sự đồng thuận của Nakamoto và chuỗi phụ.
Điều hiển nhiên là đối với Fruitchain, nếu bạn muốn vô hiệu hóa các khối khác thì khó hơn nhiều so với các giao thức khác, bởi vì chúng được thưởng theo nhiều điều kiện, ngay cả khi bạn là một khối mồ côi.
Tại sao giao thức phân phối phần thưởng tốt hơn chuỗi trái cây khi α đủ lớn, nghĩa là khi khả năng tính toán của kẻ tấn công tương đối cao? Bởi vì trên chuỗi trái cây, khoảng được xác định là chênh lệch chiều cao khối giữa khối chính và khối con trỏ. Trong khi đó, trong giao thức phân phối phần thưởng, khoảng thời gian được định nghĩa là sự khác biệt về chiều cao khối giữa khối chính và khối chính nó.
Do đó, trong chuỗi trái cây, nếu kẻ tấn công giành chiến thắng trong cuộc thi khối dài hạn, phần thưởng của các trái cây trung thực sẽ bị lấy đi vì các khối con trỏ của chúng đều bị cô lập. Đó là, nếu bạn cô lập con trỏ của họ, trò chơi sẽ kết thúc với họ. Tuy nhiên, trong giao thức phân phối phần thưởng, một số khối trung thực cuối cùng vẫn có thể nhận được một số phần thưởng. Đối với những người khai thác trung thực để mất tất cả phần thưởng, việc tách các con trỏ của họ là chưa đủ, bạn cần phải tách một số lượng lớn các khối liên tiếp. (Điều này thêm một trở ngại cho kẻ tấn công).
Những hình ảnh minh họa những vấn đề này.
Trong chuỗi trái cây, nếu bạn cô lập con trỏ, thì bạn có thể yên tâm nhận được tất cả các phần thưởng. Tuy nhiên, trong giao thức phân phối phần thưởng, ngay cả khi bạn đã cô lập các khối này trong một thời gian dài trong cuộc cạnh tranh khối, các khối này vẫn sẽ quay trở lại chuỗi chính. Bởi vì mối quan hệ quan trọng không được tính đến, khối này vẫn chiếm một nửa phần thưởng khối của kẻ tấn công, điều này khiến nó có khả năng chống lại các cuộc tấn công kiểm duyệt cao hơn. (Bởi vì những người khai thác trung thực vẫn có thể nhận được một phần phần thưởng ngay cả khi họ bị kiểm duyệt.)
Kết luận chung cho các giao thức chống tấn công
Hãy nói về một số kết luận chung về giao thức chống tấn công trong nghiên cứu.
Thiết lập hợp lý thời gian xác nhận khối dài hơn và băng thông lớn hơn sẽ tăng tính bảo mật.
Có một tình thế tiến thoái lưỡng nan, một cơ chế mà chúng tôi gọi là "thưởng cho kẻ xấu, trừng phạt kẻ tốt". Điều này thay đổi sự hiểu biết của mọi người về phần thưởng giao thức. Bởi vì ngay cả khi bạn fork ở đây, bạn vẫn có thể nhận được phần thưởng khối và không có rủi ro khi bạn fork. Vì vậy, điều này thay vào đó thúc đẩy những kẻ tấn công rẽ nhánh và khởi động các cuộc tấn công chi tiêu gấp đôi.
Trong một giao thức trừng phạt, bởi vì những kẻ tấn công kiểm duyệt không quan tâm đến phần thưởng khối của chính họ, thay vào đó, các quy tắc trừng phạt của bạn cung cấp cho những kẻ tấn công một công cụ khác để khiến những người khai thác trung thực từ bỏ phần thưởng khối.
Và đối với giao thức phần thưởng may mắn, nếu bạn không phá vỡ sự bất đối xứng thông tin, thì may mắn không có nghĩa là tốt. Đôi khi một khối may mắn hóa ra lại là một khối xấu, khiến mọi thứ trở nên tồi tệ hơn.
Kết luận là để giải quyết tất cả các cuộc tấn công, chúng ta cần vượt ra ngoài phần thưởng trong các quy tắc cơ bản. (Quy tắc khen thưởng không giải quyết tốt vấn đề tấn công)
Làm thế nào để làm nó? Tôi đề xuất một số ý tưởng để thảo luận với bạn.
Chúng ta không nên thiết kế một giao thức quá phức tạp và quá khó phân tích. Chúng ta cần thiết kế một giao thức mà nhà thiết kế có thể phân tích. Đơn giản là tốt, phức tạp là kẻ thù của an ninh.
Phân tích bảo mật chỉ nhằm vào một chiến lược tấn công duy nhất là nguy hiểm. Đối với nhiều giao thức, các nhà thiết kế của họ đã mô phỏng rằng giao thức của họ có thể chống lại một phương pháp tấn công cụ thể, nhưng một giao thức như vậy đã truyền cảm hứng cho những kẻ tấn công nghiên cứu các chiến lược tấn công khác. Phân tích bảo mật chỉ nhằm vào một động cơ tấn công duy nhất cũng rất nguy hiểm.
Những kẻ tấn công có thể tập trung vào lợi ích ngắn hạn, lợi ích dài hạn hoặc gây hại cho lợi ích của những người khai thác khác. Để chống lại một cuộc tấn công, bạn có thể truyền cảm hứng cho kẻ tấn công khởi động một hình thức tấn công khác dựa trên mục tiêu khác. Bạn cần tính đến tất cả những kẻ tấn công với các động cơ khác nhau trong mô hình của mình.
