Một trong những thách thức mà Ethereum phải đối mặt là, theo mặc định, sự mở rộng 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ử: Mọi 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ử 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 tải trọng của khách hàng và thời gian đồng bộ 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 giao thứ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 áp lực mạnh mẽ lên hai xu hướng này, giảm độ phức tạp và sự mở rộng 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 làm cho 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 chứa 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 thấy nó vẫn ở đó chờ bạn đọc và tương tác. Để DApp có thể hoàn toàn yên tâm đi 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 được nâng cấp theo cách phá hoại họ - đặc biệt là L1 bản thân nó.
Nếu chúng ta quyết tâm đạt được sự cân bằng giữa hai nhu cầu này và tối thiểu hóa hoặc đảo ngược sự cồng kềnh, phức tạp và suy thoái trong khi duy trì tính liên tục, điều này hoàn toàn có thể. Sinh vật có thể làm điều này: mặc dù hầu hết các sinh vật sẽ lão hóa theo thời gian, nhưng 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ọ cực kỳ dài. Trong một số trường hợp, Ethereum đã thành công: chứng minh công việc đã biến mất, mã lệnh SELFDESTRUCT phần lớn đã biến mất, và các nút chuỗi beacon đã lưu trữ dữ liệu cũ 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à hướng tới kết quả cuối cùng ổn định lâu dài, là thách thức cuối cù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.
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 bớt hoặc loại bỏ nhu cầu lưu trữ vĩnh viễn tất cả các lịch sử hoặc thậm chí trạng thái cuối cùng của mỗi nút.
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:
Lịch sử hết hạn( lịch sử ghi lại đến hạn)
Trạng thái hết hạn( trạng thái hết hạn)
Feature cleanup(dọn dẹp đặc điểm)
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 thi khách hàng, ngoài ra còn cần hàng trăm GB không gian đĩa cho khách hàng đồng thuận. Phần lớn trong số đó là lịch sử: dữ liệu về các khối lịch sử, giao dịch và biên nhận, 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 không tăng, kích thước của nút 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 chính của vấn đề lưu trữ lịch sử là, vì mỗi khối được liên kết bằng băm ( và các cấu trúc khác ) chỉ vào khối trước đó, nên việc đạt được đồng thuận hiện tại là đủ để đạt được đồng thuận lịch sử. Chỉ cần mạng lưới đạt được đồ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 (, 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 và 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ó. Đồ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 tổng cộng 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 phải giảm độ bền của dữ liệu. Nếu bằng cách cho phép các nút hoạt động rẻ hơn, chúng ta có thể xây dựng một mạng lưới với 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 - hoàn toàn giống với hệ số sao chép của mạng lưới 10,000 nút, trong đó mỗi nút 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ử trên tất cả các nút. Khối đồng thuận ( liên quan đến phần đồng thuận bằng chứng 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 lai. Mục tiêu dài hạn là xây dựng một khoảng thời gian thống nhất ( có thể kéo dài khoảng 18 ngày ), trong đó mỗi nút chịu trách nhiệm lưu trữ mọi thứ, sau đó xây dựng một mạng lưới ngang hàng bao gồm các nút Ethereum, lưu trữ dữ liệu cũ theo phương thức phân tán.
Mã xóa có thể được sử dụng để tăng cường độ bền, đồng thời giữ nguyên hệ số sao chép. Thực tế, Blob đã được thực hiện mã xóa để hỗ trợ lấy mẫu khả năng truy cập 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à cũng đưa dữ liệu khối thực thi và đồng thuận vào blob.
Có mối liên hệ nào với nghiên cứu hiện tại?
EIP-4444;
Torrents và EIP-4444;
Mạng cổng;
Cổng mạng và EIP-4444;
Lưu trữ và truy xuất phân tán đố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ì, 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 tán cụ thể để lưu trữ lịch sử------ít nhất là lịch sử thực hiện, 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à giới thiệu các 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 này được giới thiệu, chúng ta có thể mở EIP-4444. EIP-4444 bản thân nó không cần một hard fork, 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ó cho tất cả các khách hàng cùng một lúc là có giá trị, nếu không có nguy cơ khách hàng gặp sự cố do kết nối tới các nút khác với mong đợi tải xuống lịch sử đầy đủ nhưng thực tế không được lấy.
Các yếu tố chính liên quan đến việc chúng tôi nỗ lực cung cấp dữ liệu lịch sử "cổ đại". Giải pháp đơn giản nhất là dừ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 dễ dàng, nhưng nó làm suy yếu vị thế của Ethereum như một nơi lưu trữ hồ sơ vĩnh viễn. Một cách khó khăn nhưng an toàn hơn là xây dựng và tích hợp trước một mạng lưới torrent để lưu trữ lịch sử theo cách phân tán. Tại đây, "chúng tôi đã nỗ lực bao nhiêu" 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?
Độ sâu của việc tích hợp lưu trữ lịch sử vào giao thức là bao nhiêu?
Một phương pháp cực đoan để xử lý ( sẽ liên quan đến việc chứng minh quyền sở hữu: thực tế yêu cầu mỗi trình xác thực quyền sở hữu lưu trữ một tỷ lệ nhất định của lịch sử và thường xuyên kiểm tra chúng bằng cách mã hóa để đảm bảo họ làm như vậy. Một phương pháp nhẹ nhàng hơn là thiết lập một tiêu chuẩn tự nguyện về tỷ lệ phần trăm lịch sử mà mỗi khách hàng lưu trữ.
Đố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 chỉnh hơn sẽ liên quan đến việc kết nối thực tế với quy trình đồng bộ, để nếu ai đó muốn đồng bộ hóa nút lưu trữ lịch sử đầy đủ hoặc nút lưu trữ, ngay cả khi không có nút lưu trữ khác trực tuyến, họ cũng có thể thực hiện 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 so với 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, còn lại khoảng 800 GB đã trở thành lịch sử. Chỉ khi đạt được tính không trạng thái và EIP-4444, mới có thể thực hiện được 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 làm 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ụ, giờ đây có thể xóa an toàn 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 vào năm 2016 đã bị xóa hoàn toàn. Khi việc chuyển sang bằng chứng 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 bằng chứng công việc.
Thời hạn hết hiệu lực
Giải quyết vấn đề gì?
Ngay cả khi chúng tôi loại bỏ nhu cầu lưu trữ lịch sử trên client, nhu cầu lưu trữ của client 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ừ đó sẽ mãi mãi tạo gánh nặng 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ử, vì EVM được thiết kế dựa trên giả thuyết rằng: một khi một đố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 bất cứ lúc nào. Nếu chúng ta giới thiệu tính không trạng thái, một số người cho rằng vấn đề này có thể không tệ như vậy: chỉ có các lớp 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í bao gồm cả danh sách tạo! ( đều có thể hoạt động không trạng thái. Tuy nhiên, có một quan điểm cho 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ì sự phi tập trung của Ethereum.
![Vitalik: Tương lai khả thi của Ethereum, The Purge])https://img-cdn.gateio.im/webp-social/moments-a97b8c7f7927e17a3ec0fa46a48c9f24.webp(
)# 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 ( sử dụng mã để tạo tài khoản mới, ) iii ( thiết lập các khe lưu trữ chưa được chạm đến trước đó ), đối tượng trạng thái đó sẽ luôn ở trạng thái đó. Ngược lại, điều chúng tôi muốn là đối tượng tự động hết hạn theo thời gian. Thách thức chính là làm điều đó theo cách đạt được ba mục tiêu.
Hiệu suất: Không cần tính toán bổ sung lớn để thực hiện quy trình đáo hạn.
Tính thân thiện với người dùng: Nếu ai đó vào hang năm năm và quay lại, họ không nên mất quyền truy cập vào 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 đã cứng nhắc và không được cập nhật nên có thể tiếp tục hoạt động bình thường.
Không đạt được những mục tiêu này dễ dàng 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ể được gia hạn bằng cách đốt ETH, điều này có thể xảy ra tự động bất cứ lúc nào khi đọc hoặc ghi (, 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ủa ngày hết hạn. Tuy nhiên, điều này mang lại yêu cầu tính toán bổ sung ) thậm chí là yêu 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 rất khó để suy luận về các trường hợp biên liên quan đến việc lưu trữ giá trị đôi khi được đặt lại thành không. Nếu bạn đặt bộ đếm hết hạn trong phạm vi hợp đồng, điều này về mặt kỹ thuật sẽ giúp cuộc sống của các nhà phát triển trở nê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 vấn đề 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 của các đề xuất và tập trung vào hai loại "giải pháp được biết đến là không tệ nhất":
Giải pháp cho trạng thái đã 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ỉ.
Một số đề xuất hết hạn trạng thái đề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 đều lưu trữ vĩnh viễn "bản đồ hàng đầu", trong đó các khối có thể rỗng hoặc không rỗng. Chỉ khi tối đa
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.
24 thích
Phần thưởng
24
5
Chia sẻ
Bình luận
0/400
0xSherlock
· 6giờ trước
Quá khó rồi, ai nghe hiểu thì giơ tay.
Xem bản gốcTrả lời0
WalletDetective
· 07-25 22:52
Đây cũng là một vấn đề lớn ha~
Xem bản gốcTrả lời0
DeFiGrayling
· 07-25 22:51
Blockchain phình to hơn giá coin.
Xem bản gốcTrả lời0
0xLuckbox
· 07-25 22:51
Thỏa hiệp dễ hơn đổi mới
Xem bản gốcTrả lời0
CryptoFortuneTeller
· 07-25 22:50
Đ滴滴 lần đầu tiên đồng bộ thật giống như máy chạy bộ啊 never ending
Tầm nhìn tương lai của Ethereum: The Purge sẽ định hình lại hệ sinh thái Blockchain
Tương lai có thể của Ethereum: The Purge
Một trong những thách thức mà Ethereum phải đối mặt là, theo mặc định, sự mở rộng 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ử: Mọi 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ử 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 tải trọng của khách hàng và thời gian đồng bộ 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 giao thứ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 áp lực mạnh mẽ lên hai xu hướng này, giảm độ phức tạp và sự mở rộng 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 làm cho 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 chứa 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 thấy nó vẫn ở đó chờ bạn đọc và tương tác. Để DApp có thể hoàn toàn yên tâm đi 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 được nâng cấp theo cách phá hoại họ - đặc biệt là L1 bản thân nó.
Nếu chúng ta quyết tâm đạt được sự cân bằng giữa hai nhu cầu này và tối thiểu hóa hoặc đảo ngược sự cồng kềnh, phức tạp và suy thoái trong khi duy trì tính liên tục, điều này hoàn toàn có thể. Sinh vật có thể làm điều này: mặc dù hầu hết các sinh vật sẽ lão hóa theo thời gian, nhưng 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ọ cực kỳ dài. Trong một số trường hợp, Ethereum đã thành công: chứng minh công việc đã biến mất, mã lệnh SELFDESTRUCT phần lớn đã biến mất, và các nút chuỗi beacon đã lưu trữ dữ liệu cũ 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à hướng tới kết quả cuối cùng ổn định lâu dài, là thách thức cuối cù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.
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 bớt hoặc loại bỏ nhu cầu lưu trữ vĩnh viễn tất cả các lịch sử hoặc thậm chí trạng thái cuối cùng của mỗi nút.
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:
Lịch sử hết hạn( lịch sử ghi lại đến hạn)
Trạng thái hết hạn( trạng thái hết hạn)
Feature cleanup(dọn dẹp đặc điểm)
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 thi khách hàng, ngoài ra còn cần hàng trăm GB không gian đĩa cho khách hàng đồng thuận. Phần lớn trong số đó là lịch sử: dữ liệu về các khối lịch sử, giao dịch và biên nhận, 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 không tăng, kích thước của nút 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 chính của vấn đề lưu trữ lịch sử là, vì mỗi khối được liên kết bằng băm ( và các cấu trúc khác ) chỉ vào khối trước đó, nên việc đạt được đồng thuận hiện tại là đủ để đạt được đồng thuận lịch sử. Chỉ cần mạng lưới đạt được đồ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 (, 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 và 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ó. Đồ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 tổng cộng 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 phải giảm độ bền của dữ liệu. Nếu bằng cách cho phép các nút hoạt động rẻ hơn, chúng ta có thể xây dựng một mạng lưới với 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 - hoàn toàn giống với hệ số sao chép của mạng lưới 10,000 nút, trong đó mỗi nút 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ử trên tất cả các nút. Khối đồng thuận ( liên quan đến phần đồng thuận bằng chứng 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 lai. Mục tiêu dài hạn là xây dựng một khoảng thời gian thống nhất ( có thể kéo dài khoảng 18 ngày ), trong đó mỗi nút chịu trách nhiệm lưu trữ mọi thứ, sau đó xây dựng một mạng lưới ngang hàng bao gồm các nút Ethereum, lưu trữ dữ liệu cũ theo phương thức phân tán.
Mã xóa có thể được sử dụng để tăng cường độ bền, đồng thời giữ nguyên hệ số sao chép. Thực tế, Blob đã được thực hiện mã xóa để hỗ trợ lấy mẫu khả năng truy cập 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à cũng đưa dữ liệu khối thực thi và đồng thuận vào blob.
Có mối liên hệ nào với nghiên cứu hiện tại?
EIP-4444;
Torrents và EIP-4444;
Mạng cổng;
Cổng mạng và EIP-4444;
Lưu trữ và truy xuất phân tán đố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ì, 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 tán cụ thể để lưu trữ lịch sử------ít nhất là lịch sử thực hiện, 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à giới thiệu các 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 này được giới thiệu, chúng ta có thể mở EIP-4444. EIP-4444 bản thân nó không cần một hard fork, 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ó cho tất cả các khách hàng cùng một lúc là có giá trị, nếu không có nguy cơ khách hàng gặp sự cố do kết nối tới các nút khác với mong đợi tải xuống lịch sử đầy đủ nhưng thực tế không được lấy.
Các yếu tố chính liên quan đến việc chúng tôi nỗ lực cung cấp dữ liệu lịch sử "cổ đại". Giải pháp đơn giản nhất là dừ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 dễ dàng, nhưng nó làm suy yếu vị thế của Ethereum như một nơi lưu trữ hồ sơ vĩnh viễn. Một cách khó khăn nhưng an toàn hơn là xây dựng và tích hợp trước một mạng lưới torrent để lưu trữ lịch sử theo cách phân tán. Tại đây, "chúng tôi đã nỗ lực bao nhiêu" 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?
Độ sâu của việc tích hợp lưu trữ lịch sử vào giao thức là bao nhiêu?
Một phương pháp cực đoan để xử lý ( sẽ liên quan đến việc chứng minh quyền sở hữu: thực tế yêu cầu mỗi trình xác thực quyền sở hữu lưu trữ một tỷ lệ nhất định của lịch sử và thường xuyên kiểm tra chúng bằng cách mã hóa để đảm bảo họ làm như vậy. Một phương pháp nhẹ nhàng hơn là thiết lập một tiêu chuẩn tự nguyện về tỷ lệ phần trăm lịch sử mà mỗi khách hàng lưu trữ.
Đố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 chỉnh hơn sẽ liên quan đến việc kết nối thực tế với quy trình đồng bộ, để nếu ai đó muốn đồng bộ hóa nút lưu trữ lịch sử đầy đủ hoặc nút lưu trữ, ngay cả khi không có nút lưu trữ khác trực tuyến, họ cũng có thể thực hiện 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 so với 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, còn lại khoảng 800 GB đã trở thành lịch sử. Chỉ khi đạt được tính không trạng thái và EIP-4444, mới có thể thực hiện được 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 làm 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ụ, giờ đây có thể xóa an toàn 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 vào năm 2016 đã bị xóa hoàn toàn. Khi việc chuyển sang bằng chứng 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 bằng chứng công việc.
Thời hạn hết hiệu lực
Giải quyết vấn đề gì?
Ngay cả khi chúng tôi loại bỏ nhu cầu lưu trữ lịch sử trên client, nhu cầu lưu trữ của client 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ừ đó sẽ mãi mãi tạo gánh nặng 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ử, vì EVM được thiết kế dựa trên giả thuyết rằng: một khi một đố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 bất cứ lúc nào. Nếu chúng ta giới thiệu tính không trạng thái, một số người cho rằng vấn đề này có thể không tệ như vậy: chỉ có các lớp 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í bao gồm cả danh sách tạo! ( đều có thể hoạt động không trạng thái. Tuy nhiên, có một quan điểm cho 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ì sự phi tập trung của Ethereum.
![Vitalik: Tương lai khả thi của Ethereum, The Purge])https://img-cdn.gateio.im/webp-social/moments-a97b8c7f7927e17a3ec0fa46a48c9f24.webp(
)# 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 ( sử dụng mã để tạo tài khoản mới, ) iii ( thiết lập các khe lưu trữ chưa được chạm đến trước đó ), đối tượng trạng thái đó sẽ luôn ở trạng thái đó. Ngược lại, điều chúng tôi muốn là đối tượng tự động hết hạn theo thời gian. Thách thức chính là làm điều đó theo cách đạt được ba mục tiêu.
Hiệu suất: Không cần tính toán bổ sung lớn để thực hiện quy trình đáo hạn.
Tính thân thiện với người dùng: Nếu ai đó vào hang năm năm và quay lại, họ không nên mất quyền truy cập vào 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 đã cứng nhắc và không được cập nhật nên có thể tiếp tục hoạt động bình thường.
Không đạt được những mục tiêu này dễ dàng 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ể được gia hạn bằng cách đốt ETH, điều này có thể xảy ra tự động bất cứ lúc nào khi đọc hoặc ghi (, 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ủa ngày hết hạn. Tuy nhiên, điều này mang lại yêu cầu tính toán bổ sung ) thậm chí là yêu 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 rất khó để suy luận về các trường hợp biên liên quan đến việc lưu trữ giá trị đôi khi được đặt lại thành không. Nếu bạn đặt bộ đếm hết hạn trong phạm vi hợp đồng, điều này về mặt kỹ thuật sẽ giúp cuộc sống của các nhà phát triển trở nê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 vấn đề 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 của các đề xuất và tập trung vào hai loại "giải pháp được biết đến là không tệ nhất":
![Vitalik:Ethereum的可能未来,The Purge])https://img-cdn.gateio.im/webp-social/moments-5cd0e9908a04986f83c85cabecd4a0ae.webp(
)# Hết hạn một phần trạng thái
Một số đề xuất hết hạn trạng thái đề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 đều lưu trữ vĩnh viễn "bản đồ hàng đầu", trong đó các khối có thể rỗng hoặc không rỗng. Chỉ khi tối đa