Logo Zephyrnet

Hard Fork, Soft Fork, Mặc định và Ép buộc

Ngày:

Một trong những lập luận quan trọng trong không gian blockchain là liệu hard fork hay soft fork là cơ chế nâng cấp giao thức được ưa thích. Sự khác biệt cơ bản giữa hai loại này là soft fork thay đổi các quy tắc của giao thức bằng cách giảm mạnh tập hợp các giao dịch hợp lệ, do đó các nút tuân theo các quy tắc cũ sẽ vẫn được đưa vào chuỗi mới (với điều kiện là phần lớn các công cụ khai thác/trình xác thực thực hiện phân nhánh), trong khi các nhánh cứng cho phép các giao dịch và khối không hợp lệ trước đó trở nên hợp lệ, vì vậy khách hàng phải nâng cấp khách hàng của họ để duy trì chuỗi hard-fork. Ngoài ra còn có hai loại hard fork phụ: mở rộng nghiêm ngặt phân nhánh cứng, mở rộng nghiêm ngặt tập hợp các giao dịch hợp lệ và do đó, các quy tắc cũ thực sự là một phân nhánh mềm đối với các quy tắc mới và song phương hard fork, trong đó hai bộ quy tắc không tương thích theo cả hai cách.

Đây là sơ đồ Venn để minh họa các loại fork:

Những lợi ích thường được trích dẫn cho cả hai như sau.
  • Hard fork cho phép các nhà phát triển linh hoạt hơn nhiều trong việc nâng cấp giao thức, vì họ không cần phải đảm bảo rằng các quy tắc mới “phù hợp” với các quy tắc cũ
  • Soft fork thuận tiện hơn cho người dùng vì người dùng không cần nâng cấp để duy trì chuỗi
  • Fork mềm ít có khả năng dẫn đến chia tách chuỗi
  • Soft fork chỉ thực sự cần có sự đồng ý của người khai thác/người xác thực (vì ngay cả khi người dùng vẫn sử dụng các quy tắc cũ, nếu các nút tạo chuỗi sử dụng quy tắc mới thì chỉ những thứ hợp lệ theo quy tắc mới mới được đưa vào chuỗi trong mọi trường hợp); hard fork yêu cầu opt-in sự đồng ý của người dùng

Bên cạnh đó, một lời chỉ trích lớn thường được đưa ra đối với hard fork là hard fork mang tính “ép buộc”. Loại ép buộc được ngụ ý ở đây không phải là sức mạnh vật chất; đúng hơn, đó là ép buộc thông qua hiệu ứng mạng. Nghĩa là, nếu mạng thay đổi quy tắc từ A thành B, thì ngay cả khi cá nhân bạn thích A, nếu hầu hết người dùng khác thích B và chuyển sang B thì bạn phải chuyển sang B bất chấp sự phản đối của cá nhân bạn về sự thay đổi để được bật. cùng một mạng như mọi người khác.

Những người ủng hộ hard fork thường bị chế giễu là đang cố gắng thực hiện một “sự tiếp quản thù địch” đối với mạng và “ép buộc” người dùng phải làm theo họ. Ngoài ra, nguy cơ chia tách chuỗi thường được coi là hard fork là “không an toàn”.


Quan điểm cá nhân tôi cho rằng những lời chỉ trích này là sai trái, hơn nữa trong nhiều trường hợp còn hoàn toàn ngược lại. Quan điểm này không dành riêng cho Ethereum, Bitcoin hay bất kỳ blockchain nào khác; nó phát sinh từ các đặc tính chung của các hệ thống này và có thể áp dụng cho bất kỳ hệ thống nào trong số chúng. Hơn nữa, các lập luận dưới đây chỉ áp dụng cho những thay đổi gây tranh cãi, trong đó phần lớn của ít nhất một khu vực bầu cử (người khai thác/người xác thực và người dùng) không chấp thuận chúng; nếu một thay đổi không gây tranh cãi thì nhìn chung nó có thể được thực hiện một cách an toàn bất kể định dạng của đợt phân nhánh là gì.

Trước hết chúng ta hãy thảo luận về vấn đề ép buộc. Fork cứng và fork mềm đều thay đổi giao thức theo những cách mà một số người dùng có thể không thích; bất kì thay đổi giao thức sẽ thực hiện việc này nếu nó có mức hỗ trợ ít hơn chính xác 100%. Hơn nữa, điều gần như không thể tránh khỏi là ít nhất một số Trong bất kỳ trường hợp nào, những người bất đồng chính kiến ​​đều coi trọng hiệu ứng mạng của việc gắn bó với nhóm lớn hơn là họ coi trọng sở thích của riêng họ về các quy tắc giao thức. Do đó, cả hai loại fork đều mang tính cưỡng chế, theo nghĩa hiệu ứng mạng của từ này.

Tuy nhiên, có một sự khác biệt cơ bản giữa hard fork và soft fork: các nhánh cứng được chọn tham gia, trong khi các nhánh mềm cho phép người dùng không "chọn" chút nào. Để người dùng tham gia chuỗi phân nhánh cứng, họ phải đích thân cài đặt gói phần mềm thực hiện các quy tắc phân nhánh và nhóm người dùng không đồng ý với thay đổi quy tắc thậm chí còn mạnh mẽ hơn mức họ coi trọng các hiệu ứng mạng về mặt lý thuyết có thể chỉ đơn giản là duy trì dây chuyền cũ – và, thực tế mà nói, một sự kiện như vậy đã xảy ra rồi.

Điều này đúng trong trường hợp cả hard fork mở rộng nghiêm ngặt và hard fork song phương. Tuy nhiên, trong trường hợp của soft fork, nếu fork thành công thì chuỗi không phân nhánh sẽ không tồn tại. Vì thế, fork mềm rõ ràng ủng hộ sự ép buộc hơn là ly khai, trong khi hard fork có xu hướng ngược lại. Quan điểm đạo đức của riêng tôi khiến tôi ủng hộ việc ly khai hơn là ép buộc, mặc dù những quan điểm khác có thể khác (lập luận phổ biến nhất được nêu ra là hiệu ứng mạng lưới thực sự rất quan trọng và điều cần thiết là “một đồng xu thống trị tất cả“, mặc dù các phiên bản ôn hòa hơn của điều này cũng tồn tại).

Nếu tôi phải đoán tại sao, bất chấp những lập luận này, soft fork thường được coi là “ít ép buộc” hơn hard fork, thì tôi sẽ nói rằng đó là vì nó có cảm giác như hard fork “ép buộc” người dùng cài đặt một bản cập nhật phần mềm, trong khi đó với soft fork, người dùng không “phải” làm bất cứ điều gì cả. Tuy nhiên, trực giác này đã sai lầm: điều quan trọng không phải là liệu người dùng cá nhân có phải thực hiện bước quan liêu đơn giản là nhấp vào nút “tải xuống” hay không, mà là liệu người dùng đó có bị ép buộc phải chấp nhận thay đổi các quy tắc giao thức mà họ thà không chấp nhận. Và theo số liệu này, như đã đề cập ở trên, cả hai loại fork cuối cùng đều mang tính cưỡng chế và hard fork tỏ ra tốt hơn một chút trong việc bảo vệ quyền tự do của người dùng.

Bây giờ, chúng ta hãy xem xét các phân nhánh gây nhiều tranh cãi, đặc biệt là các phân nhánh trong đó tùy chọn của người khai thác/trình xác thực và tùy chọn của người dùng xung đột với nhau. Ở đây có ba trường hợp: (i) hard fork song phương, (ii) hard fork mở rộng nghiêm ngặt và (iii) cái gọi là “fork mềm do người dùng kích hoạt” (UASF). Loại thứ tư là nơi thợ mỏ kích hoạt soft fork không có sự đồng ý của người dùng; chúng ta sẽ giải quyết vấn đề này sau.

Đầu tiên, hard fork song phương. Trong trường hợp tốt nhất, tình hình rất đơn giản. Hai đồng tiền được giao dịch trên thị trường và các nhà giao dịch quyết định giá trị tương đối của hai đồng tiền đó. Từ trường hợp ETC/ETH, chúng tôi có bằng chứng rõ ràng rằng các công ty khai thác có nhiều khả năng chỉ đơn giản chỉ định tỷ lệ băm của họ cho các đồng tiền dựa trên tỷ lệ giá để tối đa hóa lợi nhuận của họ, bất kể quan điểm tư tưởng riêng của họ.

Ngay cả khi một số thợ mỏ tuyên bố sở thích về mặt tư tưởng đối với bên này hay bên kia, rất có thể sẽ có đủ thợ mỏ sẵn sàng phân xử bất kỳ sự không phù hợp nào giữa tỷ lệ giá và tỷ lệ công suất băm và đưa cả hai về sự liên kết. Nếu một nhóm thợ mỏ cố gắng thành lập để không khai thác trên một chuỗi, thì sẽ có rất nhiều động cơ để đào tẩu.

Có hai trường hợp cạnh ở đây. Đầu tiên là có thể do thuật toán điều chỉnh độ khó không hiệu quả, giá trị khai thác đồng xu sẽ giảm do giá giảm nhưng độ khó không giảm để bù đắp, khiến việc khai thác rất không có lãi và không có người khai thác nào sẵn sàng khai thác ở mức mất mát để tiếp tục đẩy dây chuyền về phía trước cho đến khi độ khó của nó trở lại cân bằng. Đây không phải là trường hợp của Ethereum, nhưng có thể trường hợp tương tự với Bitcoin. Do đó, chuỗi thiểu số có thể đơn giản là không bao giờ khởi sắc được và vì vậy nó sẽ chết. Lưu ý rằng câu hỏi quy phạm của liệu đây có phải là điều tốt hay không phụ thuộc vào quan điểm của bạn về ép buộc và ly khai; như bạn có thể tưởng tượng từ những gì tôi đã viết ở trên, cá nhân tôi tin rằng các thuật toán điều chỉnh độ khó thù địch trong chuỗi thiểu số như vậy là không tốt.

Trường hợp cạnh thứ hai là nếu chênh lệch rất lớn thì chuỗi lớn có thể tấn công 51% chuỗi nhỏ hơn. Ngay cả trong trường hợp chia ETH/ETC với tỷ lệ 10:1, điều này vẫn chưa xảy ra; vì vậy nó chắc chắn không phải là một nhất định. Tuy nhiên, luôn có khả năng xảy ra nếu những người khai thác trên chuỗi thống trị thích ép buộc hơn là cho phép ly khai và hành động theo những giá trị này.

Tiếp theo, chúng ta hãy xem xét việc mở rộng hard fork một cách nghiêm túc. Trong SEHF, có một đặc tính là chuỗi không phân nhánh có hiệu lực theo các quy tắc phân nhánh và vì vậy nếu chuỗi phân nhánh có giá thấp hơn chuỗi không phân nhánh thì chuỗi đó sẽ có ít năng lượng băm hơn chuỗi không phân nhánh và vì vậy chuỗi không phân nhánh sẽ được chấp nhận là chuỗi dài nhất theo cả quy tắc khách hàng gốc và khách hàng rẽ nhánh – và thế là chuỗi chia đôi “sẽ bị tiêu diệt".

Do đó, có một lập luận cho rằng có một thành kiến ​​cố hữu mạnh mẽ chống lại sự thành công của một đợt phân nhánh như vậy, vì khả năng chuỗi phân nhánh bị hủy sẽ được tính vào giá, đẩy giá xuống thấp hơn, khiến nhiều khả năng chuỗi đó sẽ bị phá hủy. bị tiêu diệt… Lập luận này đối với tôi có vẻ mạnh mẽ, và vì vậy đó là một lý do rất chính đáng để đưa ra bất kì hard fork song phương gây tranh cãi thay vì mở rộng nghiêm ngặt.

Các nhà phát triển Bitcoin Unlimited đề xuất giải quyết vấn đề này bằng cách thực hiện hard fork song phương theo cách thủ công sau khi nó xảy ra, nhưng lựa chọn tốt hơn sẽ là tích hợp song phương; ví dụ: trong trường hợp bitcoin, người ta có thể thêm quy tắc cấm một số opcode không được sử dụng và sau đó thực hiện giao dịch có chứa opcode đó trên chuỗi không phân nhánh, để theo quy tắc phân nhánh, chuỗi không phân nhánh sẽ từ đó trở đi coi như vô hiệu vĩnh viễn. Trong trường hợp Ethereum, do có nhiều chi tiết khác nhau về cách hoạt động của tính toán trạng thái, gần như tất cả các hard fork đều được thực hiện song phương gần như tự động. Các chuỗi khác có thể có các thuộc tính khác nhau tùy thuộc vào kiến ​​trúc của chúng.

Loại fork cuối cùng được đề cập ở trên là soft fork do người dùng kích hoạt. Trong UASF, người dùng bật các quy tắc phân nhánh mềm mà không cần bận tâm đến việc nhận được sự đồng thuận từ các thợ mỏ; những người khai thác dự kiến ​​​​sẽ chỉ xếp hàng vì lợi ích kinh tế. Nếu nhiều người dùng không đồng ý với UASF thì sẽ có sự phân chia tiền xu và điều này sẽ dẫn đến một kịch bản giống như đợt hard fork mở rộng nghiêm ngặt, ngoại trừ – và đây là phần thực sự thông minh và lệch lạc của khái niệm này – cùng một áp lực “nguy cơ hủy diệt” làm bất lợi mạnh mẽ cho chuỗi phân nhánh trong một đợt phân nhánh cứng mở rộng nghiêm ngặt thay vào đó lại ủng hộ mạnh mẽ chuỗi phân nhánh trong UASF. Mặc dù UASF được chọn tham gia, nhưng nó sử dụng sự bất cân xứng về kinh tế để hướng bản thân đến thành công (mặc dù sự thiên vị không phải là tuyệt đối; nếu UASF nhất quyết không được ưa chuộng thì nó sẽ không thành công và đơn giản sẽ dẫn đến sự chia tách chuỗi).

Tuy nhiên, UASF là một trò chơi nguy hiểm. Ví dụ: giả sử rằng các nhà phát triển dự án muốn tạo một bản vá UASF để chuyển đổi một opcode không được sử dụng trước đây đã chấp nhận tất cả các giao dịch thành một opcode chỉ chấp nhận các giao dịch tuân thủ các quy tắc của một số tính năng mới thú vị, mặc dù đó là một tính năng mới. gây tranh cãi về mặt chính trị hoặc kỹ thuật và các thợ mỏ không thích. Thợ mỏ có cách đánh trả rất thông minh và ranh ma: họ có thể đơn phương triển khai một soft fork được kích hoạt bởi thợ đào khiến cho tất cả các giao dịch sử dụng tính năng do soft fork tạo ra luôn không thành công.

Bây giờ, chúng ta có ba bộ quy tắc:

  1. Các quy tắc ban đầu trong đó opcode X luôn hợp lệ.
  2. Các quy tắc trong đó opcode X chỉ hợp lệ nếu phần còn lại của giao dịch tuân thủ các quy tắc mới
  3. Các quy tắc trong đó opcode X luôn không hợp lệ.

Lưu ý rằng (2) là một soft-fork đối với (1) và (3) là một soft-fork đối với (2). Bây giờ, có áp lực kinh tế mạnh mẽ ủng hộ (3), và do đó soft-fork không đạt được mục tiêu của nó.

Kết luận là thế này. Soft fork là một trò chơi nguy hiểm và chúng càng trở nên nguy hiểm hơn nếu gây tranh cãi và các thợ mỏ bắt đầu chống trả. Việc mở rộng hard fork một cách nghiêm ngặt cũng là một trò chơi nguy hiểm. Các nĩa mềm được kích hoạt bởi thợ mỏ có tính chất cưỡng chế; những chiếc nĩa mềm do người dùng kích hoạt ít mang tính cưỡng bức hơn, mặc dù vẫn khá cưỡng bức vì áp lực kinh tế và chúng cũng có những nguy hiểm. Nếu bạn thực sự muốn thực hiện một thay đổi gây tranh cãi và đã quyết định rằng chi phí xã hội cao khi làm như vậy là xứng đáng, chỉ cần thực hiện một hard fork song phương rõ ràng, dành chút thời gian để thêm một số biện pháp bảo vệ lặp lại thích hợp và để thị trường giải quyết. .

nguồn: https://vitalik.eth.limo/general/2017/03/14/forks_and_markets.html

tại chỗ_img

Tin tức mới nhất

tại chỗ_img