Kế hoạch làm sạch Ethereum: Giải pháp lâu dài để đối phó với sự mở rộng và phức tạp trên chuỗi.

Tương lai có thể của Ethereum: The Purge

Tác giả: Vitalik Buterin

Một trong những thách thức mà Ethereum phải đối mặt là, theo mặc định, sự phình to và phức tạp của bất kỳ giao thức blockchain nào sẽ tăng lên theo thời gian. Điều này xảy ra ở hai nơi:

Dữ liệu lịch sử: Tất cả các giao dịch và tài khoản được tạo ra vào bất kỳ thời điểm nào trong lịch sử đều cần được tất cả các khách hàng lưu trữ vĩnh viễn và được tải xuống bởi bất kỳ khách hàng mới nào, để hoàn toàn đồng bộ với mạng. Điều này sẽ dẫn đến việc tải và thời gian đồng bộ của khách hàng ngày càng tăng theo thời gian, ngay cả khi dung lượng của chuỗi vẫn không thay đổi.

Chức năng của giao thức: Việc thêm chức năng mới dễ hơn nhiều so với việc xóa chức năng cũ, dẫn đến độ phức tạp của mã tăng lên theo thời gian.

Để Ethereum có thể duy trì lâu dài, chúng ta cần áp dụng sức ép mạnh mẽ lên hai xu hướng này, giảm độ phức tạp và sự phình to theo thời gian. Nhưng đồng thời, chúng ta cần giữ lại một trong những thuộc tính chính khiến blockchain trở nên vĩ đại: tính bền vững. Bạn có thể đặt một NFT, một bức thư tình trong dữ liệu cuộc gọi giao dịch, hoặc một hợp đồng thông minh trị giá 1 triệu đô la lên chuỗi, vào một cái hang trong mười năm, và khi ra ngoài, bạn sẽ thấy nó vẫn đang chờ bạn đọc và tương tác. Để các DApp yên tâm hoàn toàn phi tập trung và xóa khóa nâng cấp, họ cần chắc chắn rằng các phụ thuộc của họ sẽ không nâng cấp theo cách phá hoại họ - đặc biệt là L1 chính nó.

Nếu chúng ta quyết tâm cân bằng giữa hai nhu cầu này và tối đa hóa việc giảm thiểu hoặc đảo ngược sự cồng kềnh, phức tạp và suy giảm trong khi duy trì tính liên tục, điều này là hoàn toàn có thể. Các sinh vật có thể làm điều này: trong khi hầu hết các sinh vật sẽ lão hóa theo thời gian, một số ít may mắn thì không. Ngay cả các hệ thống xã hội cũng có thể có tuổi thọ rất dài. Trong một số trường hợp, Ethereum đã đạt được thành công: chứng minh công việc đã biến mất, mã lệnh SELFDESTRUCT đã hầu hết biến mất, các nút chuỗi tín hiệu đã lưu trữ dữ liệu cũ tối đa lên đến sáu tháng. Tìm ra con đường này cho Ethereum theo cách tổng quát hơn và tiến tới kết quả cuối cùng ổn định lâu dài là thách thức tối thượng cho khả năng mở rộng lâu dài, tính bền vững công nghệ và thậm chí là an ninh của Ethereum.

Vitalik: Tương lai có thể của Ethereum, The Purge

The Purge: Mục tiêu chính.

Giảm yêu cầu lưu trữ của khách hàng bằng cách giảm hoặc loại bỏ nhu cầu mỗi nút lưu trữ vĩnh viễn tất cả các hồ sơ lịch sử thậm chí là trạng thái cuối cùng.

Giảm độ phức tạp của giao thức bằng cách loại bỏ các chức năng không cần thiết.

Mục lục bài viết:

Lịch sử hết hạn(历史记录到期)

State expiry(状态到期)

Dọn dẹp tính năng

Lịch sử hết hạn

Giải quyết vấn đề gì?

Tính đến thời điểm viết bài này, một nút Ethereum hoàn toàn đồng bộ cần khoảng 1.1 TB không gian đĩa để thực hiện khách hàng, và cần thêm hàng trăm GB không gian đĩa cho khách hàng đồng thuận. Trong đó phần lớn là lịch sử: dữ liệu về các khối lịch sử, giao dịch và biên lai, phần lớn trong số đó đã có từ nhiều năm trước. Điều này có nghĩa là ngay cả khi giới hạn Gas hoàn toàn không tăng, kích thước của nút cũng sẽ tiếp tục tăng hàng trăm GB mỗi năm.

Nó là gì, nó hoạt động như thế nào?

Một đặc điểm đơn giản hóa quan trọng của vấn đề lưu trữ lịch sử là, vì mỗi khối liên kết với khối trước đó thông qua hàm băm (và các cấu trúc khác), nên việc đạt được sự đồng thuận hiện tại đủ để đạt được sự đồng thuận lịch sử. Chỉ cần mạng lưới đạt được sự đồng thuận về khối mới nhất, bất kỳ khối lịch sử, giao dịch hoặc trạng thái nào (số dư tài khoản, số ngẫu nhiên, mã, lưu trữ) đều có thể được cung cấp bởi bất kỳ người tham gia nào cũng như bằng chứng Merkle, và bằng chứng đó cho phép bất kỳ ai khác xác minh tính chính xác của nó. Sự đồng thuận là mô hình tin cậy N/2-of-N, trong khi lịch sử là mô hình tin cậy N-of-N.

Điều này cung cấp cho chúng ta nhiều lựa chọn về cách lưu trữ lịch sử. Một lựa chọn tự nhiên là một mạng lưới mà mỗi nút chỉ lưu trữ một phần nhỏ dữ liệu. Đây là cách mà mạng lưới hạt giống hoạt động trong nhiều thập kỷ: mặc dù mạng lưới lưu trữ và phân phối hàng triệu tệp, nhưng mỗi người tham gia chỉ lưu trữ và phân phối một vài tệp trong số đó. Có thể ngược lại với trực giác, phương pháp này thậm chí không nhất thiết sẽ làm giảm tính bền vững của dữ liệu. Nếu thông qua việc làm cho việc chạy các nút trở nên kinh tế hơn, chúng ta có thể xây dựng một mạng lưới có 100,000 nút, trong đó mỗi nút lưu trữ 10% lịch sử một cách ngẫu nhiên, thì mỗi dữ liệu sẽ được sao chép 10,000 lần - giống hệt với yếu tố sao chép của mạng lưới 10,000 nút - mỗi nút đều lưu trữ toàn bộ nội dung.

Hiện nay, Ethereum đã bắt đầu thoát khỏi mô hình lưu trữ vĩnh viễn tất cả lịch sử của tất cả các nút. Khối đồng thuận (tức là phần liên quan đến đồng thuận chứng minh cổ phần) chỉ lưu trữ khoảng 6 tháng. Blob chỉ lưu trữ khoảng 18 ngày. EIP-4444 nhằm mục đích giới thiệu thời gian lưu trữ một năm cho các khối lịch sử và biên nhận. Mục tiêu dài hạn là thiết lập một khoảng thời gian thống nhất (có thể khoảng 18 ngày), trong đó mỗi nút chịu trách nhiệm lưu trữ tất cả nội dung, sau đó thiết lập một mạng ngang hàng gồm các nút Ethereum, lưu trữ dữ liệu cũ theo cách phân tán.

Mã xóa có thể được sử dụng để tăng cường tính bền vững, đồng thời giữ nguyên hệ số sao chép. Trên thực tế, Blob đã được thực hiện mã xóa để hỗ trợ việc lấy mẫu khả năng dữ liệu. Giải pháp đơn giản nhất có thể là tái sử dụng mã xóa này và đưa cả thực thi và dữ liệu khối đồng thuận vào blob.

Vitalik:Ethereum的可能未来,The Purge

Liên hệ với các nghiên cứu hiện có là gì?

EIP-4444;

Torrents và EIP-4444;

Mạng Portal;

Mạng Portal và EIP-4444;

Lưu trữ và truy xuất phân tán của đối tượng SSZ trong Portal;

Làm thế nào để tăng giới hạn gas (Paradigm).

Còn cần làm gì nữa, cần cân nhắc điều gì?

Công việc chính còn lại bao gồm xây dựng và tích hợp một giải pháp phân phối cụ thể để lưu trữ lịch sử - ít nhất là lịch sử thực thi, nhưng cuối cùng còn bao gồm đồng thuận và blob. Giải pháp đơn giản nhất là (i) đơn giản là nhập khẩu thư viện torrent hiện có, cũng như (ii) được gọi là giải pháp gốc Ethereum Portal. Khi một trong hai cái được đưa vào, chúng ta có thể mở EIP-4444. EIP-4444 bản thân nó không cần phải phân nhánh cứng, nhưng nó thực sự cần một phiên bản giao thức mạng mới. Do đó, việc kích hoạt nó đồng thời cho tất cả các khách hàng là có giá trị, nếu không sẽ có rủi ro khách hàng gặp sự cố do kết nối với các nút khác mong đợi tải xuống lịch sử hoàn chỉnh nhưng thực tế không nhận được.

Sự đánh đổi chính liên quan đến việc chúng tôi cố gắng cung cấp dữ liệu lịch sử "cổ đại". Giải pháp đơn giản nhất là ngừng lưu trữ lịch sử cổ đại vào ngày mai và dựa vào các nút lưu trữ hiện có và các nhà cung cấp tập trung khác để sao chép. Điều này thì dễ dàng, nhưng nó làm suy yếu vị thế của Ethereum như một nơi lưu giữ hồ sơ vĩnh viễn. Cách khó khăn hơn nhưng an toàn hơn là trước tiên xây dựng và tích hợp một mạng torrent để lưu trữ lịch sử theo cách phân tán. Tại đây, "chúng tôi đã cố gắng đến mức nào" có hai chiều:

Chúng tôi làm thế nào để đảm bảo rằng tập hợp các nút lớn nhất thực sự lưu trữ tất cả dữ liệu?

Chúng tôi tích hợp độ sâu của lưu trữ lịch sử vào giao thức là bao nhiêu?

Một phương pháp cực đoan cho (1) sẽ liên quan đến chứng minh lưu ký: thực tế yêu cầu mỗi trình xác thực chứng minh quyền sở hữu phải lưu trữ một tỷ lệ nhất định của hồ sơ lịch sử và kiểm tra chúng theo cách mã hóa thường xuyên để xem chúng có làm như vậy hay không. Phương pháp nhẹ nhàng hơn là đặt một tiêu chuẩn tự nguyện cho tỷ lệ phần trăm lịch sử được lưu trữ bởi mỗi khách hàng.

Đối với (2), việc triển khai cơ bản chỉ liên quan đến công việc đã hoàn thành hôm nay: Portal đã lưu trữ tệp ERA chứa toàn bộ lịch sử Ethereum. Việc triển khai hoàn thiện hơn sẽ liên quan đến việc kết nối thực tế nó với quá trình đồng bộ, để nếu có ai đó muốn đồng bộ các nút lưu trữ lịch sử đầy đủ hoặc nút lưu trữ, ngay cả khi không có các nút lưu trữ khác trực tuyến, họ vẫn có thể đạt được điều đó thông qua việc đồng bộ trực tiếp từ mạng Portal.

Nó tương tác như thế nào với các phần khác của lộ trình?

Nếu chúng ta muốn việc chạy hoặc khởi động nút trở nên cực kỳ dễ dàng, thì việc giảm yêu cầu lưu trữ lịch sử có thể nói là quan trọng hơn cả tính không trạng thái: trong 1.1 TB mà nút cần, khoảng 300 GB là trạng thái, phần còn lại khoảng 800 GB đã trở thành lịch sử. Chỉ khi thực hiện tính không trạng thái và EIP-4444, chúng ta mới có thể hiện thực hóa tầm nhìn về việc chạy nút Ethereum trên đồng hồ thông minh và chỉ cần vài phút để thiết lập.

Việc giới hạn lưu trữ lịch sử cũng giúp cho việc triển khai các nút Ethereum mới hơn trở nên khả thi hơn, chỉ hỗ trợ phiên bản mới nhất của giao thức, điều này làm cho chúng trở nên đơn giản hơn. Ví dụ, bây giờ có thể an toàn xóa nhiều dòng mã, vì các khe lưu trữ trống được tạo ra trong cuộc tấn công DoS năm 2016 đã được xóa hoàn toàn. Khi việc chuyển sang chứng minh cổ phần đã trở thành lịch sử, khách hàng có thể an toàn xóa tất cả mã liên quan đến chứng minh công việc.

Hết hạn trạng thái

Giải quyết vấn đề gì?

Ngay cả khi chúng ta loại bỏ nhu cầu lưu trữ lịch sử của khách hàng, nhu cầu lưu trữ của khách hàng vẫn sẽ tiếp tục tăng, khoảng 50 GB mỗi năm, vì trạng thái tiếp tục tăng: số dư tài khoản và số ngẫu nhiên, mã hợp đồng và lưu trữ hợp đồng. Người dùng có thể trả một khoản phí một lần, từ đó mang lại gánh nặng vĩnh viễn cho các khách hàng Ethereum hiện tại và tương lai.

Trạng thái khó "hết hạn" hơn lịch sử, bởi vì EVM về cơ bản được thiết kế dựa trên giả thiết rằng: một khi đối tượng trạng thái được tạo ra, nó sẽ luôn tồn tại và có thể được bất kỳ giao dịch nào đọc vào bất kỳ lúc nào. Nếu chúng ta giới thiệu tính không trạng thái, có người cho rằng vấn đề này có thể không tồi tệ như vậy: chỉ có các lớp nhà xây dựng khối chuyên dụng cần thực sự lưu trữ trạng thái, trong khi tất cả các nút khác (thậm chí cả việc tạo danh sách!) có thể hoạt động mà không có trạng thái. Tuy nhiên, có quan điểm rằng chúng ta không muốn quá phụ thuộc vào tính không trạng thái, cuối cùng chúng ta có thể muốn làm cho trạng thái hết hạn để duy trì tính phi tập trung của Ethereum.

Vitalik:Ethereum的可能未来,The Purge

Nó là gì, nó hoạt động như thế nào

Hôm nay, khi bạn tạo một đối tượng trạng thái mới (có thể xảy ra theo một trong ba cách sau: (i) gửi ETH đến tài khoản mới, (ii) tạo tài khoản mới bằng mã, (iii) thiết lập khe lưu trữ chưa được chạm tới trước đó), đối tượng trạng thái đó sẽ luôn ở trong trạng thái đó. Ngược lại, điều chúng tôi muốn là đối tượng sẽ tự động hết hạn theo thời gian. Thách thức then chốt là làm điều này theo cách đạt được ba mục tiêu:

Hiệu suất: Không cần nhiều tính toán bổ sung để thực hiện quá trình đáo hạn.

Tính thân thiện với người dùng: Nếu ai đó vào hang trong năm năm và trở về, họ không nên mất quyền truy cập vào vị trí ETH, ERC20, NFT, CDP...

Tính thân thiện với nhà phát triển: Các nhà phát triển không cần phải chuyển sang một mô hình tư duy hoàn toàn không quen thuộc. Hơn nữa, các ứng dụng hiện tại đã bị đóng băng và không được cập nhật nên vẫn có thể tiếp tục hoạt động bình thường.

Không đáp ứng được những mục tiêu này thì rất dễ giải quyết vấn đề. Ví dụ, bạn có thể để mỗi đối tượng trạng thái cũng lưu trữ một bộ đếm ngày hết hạn (có thể gia hạn ngày hết hạn bằng cách đốt Ether, điều này có thể xảy ra tự động khi đọc hoặc ghi bất kỳ lúc nào), và có một quy trình lặp qua trạng thái để xóa các đối tượng trạng thái có ngày hết hạn. Tuy nhiên, điều này dẫn đến việc tính toán thêm (ngay cả nhu cầu lưu trữ), và chắc chắn không thể đáp ứng yêu cầu về tính thân thiện với người dùng. Các nhà phát triển cũng gặp khó khăn trong việc suy luận về các trường hợp biên liên quan đến giá trị lưu trữ đôi khi được đặt lại thành không. Nếu bạn thiết lập bộ đếm thời gian hết hạn trong phạm vi hợp đồng, điều này về mặt kỹ thuật sẽ làm cho cuộc sống của các nhà phát triển dễ dàng hơn, nhưng nó sẽ khiến kinh tế trở nên khó khăn hơn: các nhà phát triển phải xem xét cách "chuyển giao" chi phí lưu trữ liên tục cho người dùng.

Những vấn đề này đều là những gì mà cộng đồng phát triển cốt lõi của Ethereum đã nỗ lực giải quyết trong nhiều năm, bao gồm các đề xuất như "thuê blockchain" và "tái sinh". Cuối cùng, chúng tôi đã kết hợp những phần tốt nhất trong các đề xuất và tập trung vào hai loại "giải pháp đã biết là không tệ nhất":

  • Giải pháp hết hạn một phần
  • Đề xuất hết hạn trạng thái dựa trên chu kỳ địa chỉ.

Hết hạn trạng thái một phần

Một số đề xuất trạng thái hết hạn đều tuân theo cùng một nguyên tắc. Chúng tôi chia trạng thái thành các khối. Mỗi người sẽ lưu trữ "bản đồ hàng đầu" vĩnh viễn, trong đó các khối có thể là rỗng hoặc không rỗng. Dữ liệu trong mỗi khối chỉ được lưu trữ khi dữ liệu đó được truy cập gần đây. Có một cơ chế "tái sinh", nếu không còn được lưu trữ.

Sự khác biệt chính giữa các đề xuất này là: (i) Chúng tôi như

Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • 6
  • Chia sẻ
Bình luận
0/400
ProposalManiacvip
· 14giờ trước
Xóa không bằng thêm á
Xem bản gốcTrả lời0
GasGrillMastervip
· 14giờ trước
Việc giảm dung lượng dữ liệu là rất cần thiết.
Xem bản gốcTrả lời0
SchrödingersNodevip
· 14giờ trước
Ông V nói rất có lý.
Xem bản gốcTrả lời0
staking_grampsvip
· 14giờ trước
Đầu tiên là gầy đi rồi mới phát triển
Xem bản gốcTrả lời0
MEVVictimAlliancevip
· 14giờ trước
on-chain rác quá nhiều
Xem bản gốcTrả lời0
HypotheticalLiquidatorvip
· 14giờ trước
Ethereum lộ trình rõ ràng
Xem bản gốcTrả lời0
  • Ghim
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)