Xin chân thành cảm ơn Justin Drake, Tim Beiko, Matt Garnett, Piper Merriam, Marius van der Wijden và Tomasz Stanczak đã phản hồi và xem xét.
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ử: 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ử cần được lưu trữ vĩnh viễn bởi tất cả các khách hàng và được tải xuống bởi bất kỳ khách hàng mới nào, nhằm 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 của giao thức: Thêm chức năng mới dễ hơn rất 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ể tồn tại 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 cùng lúc đó, 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, đ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 ở đó chờ bạn đọc và tương tá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 được nâng cấp theo cách hủy hoại họ - đặc biệt là L1 bản thân.
Nếu chúng ta quyết tâm đạt được sự cân bằng giữa hai loại 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 thoái trong khi duy trì tính liên tục, thì điều đó hoàn toàn khả thi. 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, thì một số ít may mắn lại 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 đã thành công: bằng chứng công việc đã biến mất, mã lệnh SELFDESTRUCT chủ yếu đã 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.
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 lịch sử và thậm chí 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:
Lịch sử hết hạn
Ngày hết hạn trạng thái
Feature cleanup(特征清理)
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 đồng bộ hoàn toàn cần khoảng 1.1 TB dung lượng đĩa để thực hiện khách hàng, ngoài ra còn cần hàng trăm GB dung lượng đĩ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 lai, trong đó phần lớn đã 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 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 chính của vấn đề lưu trữ lịch sử là, vì mỗi khối liên kết đến khối trước đó thông qua hàm băm (và các cấu trúc khác), nên đạt được sự đồng thuận hiện tại cũng đủ để đạt được sự đồng thuận lịch sử. Chỉ cần mạng đạt được sự đồng thuận về khối mới nhất, bất kỳ khối, giao dịch hoặc trạng thái lịch sử 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 và chứng minh Merkle, và chứng minh đó 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 vài thập kỷ qua: 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ó lẽ 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 làm giảm tính ổn định của dữ liệu. Nếu bằng cách để các nút hoạt động trở nên kinh tế 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 - giống hệt như hệ số sao chép của mạng lưới 10.000 nút - mỗi nút đều lưu trữ tất cả 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 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 giới thiệu một 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 lâu dài 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 để cải thiện độ bền, đồng thời giữ nguyên hệ số sao chép. Thực tế, Blob đã được mã hóa để hỗ trợ sampling khả năng sẵn có của 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 thực thi và khối đồ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;
Cổng mạng;
Cổng mạng 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 tán 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ũng bao gồm đồng thuận và blob. Giải pháp đơn giản nhất là (i) đơn giản là đưa vào thư viện torrent hiện có, cũng như (ii) được gọi là giải pháp gốc Ethereum Portal. Một khi đưa vào bất kỳ cái nào trong số đó, chúng tôi 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ó đồng thời cho tất cả các khách hàng là có giá trị, nếu không có nguy cơ các khách hàng gặp sự cố do kết nối với các nút khác mà mong đợi tải xuống lịch sử đầy đủ nhưng thực tế không nhận được.
Các cân nhắc chính liên quan đến cách 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 nhau để 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 tiếp cận 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ạ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 bao nhiêu" có hai khía cạnh:
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 đối với (1) 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 bằng chứng 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 bằng cách mã hóa xem họ có làm như vậy hay không. Phương pháp nhẹ nhàng hơn là thiết lập 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 thực hiện 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 thực hiện hoàn chỉnh hơn sẽ liên quan đến việc thực sự kết nối nó với quy trình đồng bộ, để nếu có ai đó muốn đồng bộ 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ọ cũng có thể thực hiện đồ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 nhu cầu lưu trữ lịch sử có thể nói là quan trọng hơn 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ỉ 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 khi thực hiện tính không trạng thái và EIP-4444.
Việc giới hạn lưu trữ lịch sử cũng giúp cho 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ể xóa an toàn nhiều dòng mã, vì tất cả các kho lưu trữ trống được tạo ra trong cuộc tấn công DoS năm 2016 đã được xóa. Bây giờ 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ể xóa an toàn 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 máy khách, nhu cầu lưu trữ của máy khách vẫn sẽ tiếp tục tăng, mỗi năm khoảng 50 GB, 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ể thanh toán một khoản phí một lần, do đó gánh nặng sẽ được chuyể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à lịch sử, vì EVM về cơ bản được thiết kế dựa trên giả định 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 bất cứ 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ệ đến 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 sinh!) đều có thể hoạt động mà không cần 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ì tính phi tập trung của Ethereum.
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 một khe lưu trữ chưa được truy cập trước đó), đối tượng trạng thái đó sẽ mãi mãi ở trạng thái đó. Ngược lại, điều chúng ta 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 này 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 hết 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à trở 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 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.
Nếu bạn không đạt được những mục tiêu này, bạn sẽ 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 (ngày hết hạn có thể được kéo dài bằng cách đốt ETH, điều này có thể xảy ra tự động bất cứ lúc nào đọc hoặc ghi) và có một quy trình lặp lại trạng thái để xóa ngày hết hạn của đối tượng trạng thái. Tuy nhiên, điều này giới thiệu tính toán bổ sung (và thậm chí cả yêu cầu lưu trữ) và nó chắc chắn không đáp ứng các 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 khó có thể suy luận về các trường hợp cạnh liên quan đến các giá trị lưu trữ đôi khi được đặt lại về không. Nếu bạn đặt hẹn giờ hết hạn trong phạm vi hợp đồng, về mặt kỹ thuật, điều này sẽ làm cho cuộc sống của nhà phát triển dễ dàng hơn, nhưng nó sẽ khiến nền kinh tế trở nên khó khăn hơn: nhà phát triển sẽ phải suy nghĩ về cách "chuyển giao" chi phí lưu trữ đang diễn ra cho người dùng.
Những điều này đều là những vấn đề mà cộng đồng phát triển cốt lõi của Ethereum đã cố gắng 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 đã biết là không tồi tệ nhất":
Giải pháp 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ỉ.
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 đều lưu trữ vĩnh viễn "bản đồ hàng đầu", trong đó
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
18 thích
Phần thưởng
18
6
Chia sẻ
Bình luận
0/400
DAOplomacy
· 07-12 12:00
có thể nói rằng cuộc thanh trừng giới thiệu những tác động bên ngoài không tầm thường mà cần có những cuộc thảo luận sâu hơn về sự đồng thuận của các bên liên quan... sự phụ thuộc vào con đường là có thật ở đây thật lòng mà nói
Xem bản gốcTrả lời0
ChainMelonWatcher
· 07-11 06:35
Quá tốn dung lượng lưu trữ rồi.
Xem bản gốcTrả lời0
MultiSigFailMaster
· 07-09 20:41
Thua lỗ rồi trở lại nằm phẳng, chuyên gia dẫm vào bẫy nghiệp dư lâu năm
Câu trả lời của bạn nên là tiếng Trung
Dựa trên thiết lập trên, dưới đây là bình luận phù hợp với vai trò:
V thần có thể cứu tài khoản của tôi không?
Xem bản gốcTrả lời0
WalletWhisperer
· 07-09 20:41
Vitalik Buterin lại bắt đầu lộn xộn.
Xem bản gốcTrả lời0
CoffeeNFTrader
· 07-09 20:31
Cứng cáp như vậy, Vitalik Buterin suốt ngày suy nghĩ về những điều này.
Ethereum tương lai bản đồ: The Purge giảm bớt sự cồng kềnh của giao thức
Tương lai có thể của Ethereum: The Purge
Tác giả: Vitalik Buterin
Biên dịch: Phu Như Thế Nào
Xin chân thành cảm ơn Justin Drake, Tim Beiko, Matt Garnett, Piper Merriam, Marius van der Wijden và Tomasz Stanczak đã phản hồi và xem xét.
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ử: 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ử cần được lưu trữ vĩnh viễn bởi tất cả các khách hàng và được tải xuống bởi bất kỳ khách hàng mới nào, nhằm 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 của giao thức: Thêm chức năng mới dễ hơn rất 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ể tồn tại 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 cùng lúc đó, 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, đ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 ở đó chờ bạn đọc và tương tá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 được nâng cấp theo cách hủy hoại họ - đặc biệt là L1 bản thân.
Nếu chúng ta quyết tâm đạt được sự cân bằng giữa hai loại 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 thoái trong khi duy trì tính liên tục, thì điều đó hoàn toàn khả thi. 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, thì một số ít may mắn lại 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 đã thành công: bằng chứng công việc đã biến mất, mã lệnh SELFDESTRUCT chủ yếu đã 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.
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 lịch sử và thậm chí 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:
Lịch sử hết hạn
Ngày hết hạn trạng thái
Feature cleanup(特征清理)
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 đồng bộ hoàn toàn cần khoảng 1.1 TB dung lượng đĩa để thực hiện khách hàng, ngoài ra còn cần hàng trăm GB dung lượng đĩ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 lai, trong đó phần lớn đã 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 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 chính của vấn đề lưu trữ lịch sử là, vì mỗi khối liên kết đến khối trước đó thông qua hàm băm (và các cấu trúc khác), nên đạt được sự đồng thuận hiện tại cũng đủ để đạt được sự đồng thuận lịch sử. Chỉ cần mạng đạt được sự đồng thuận về khối mới nhất, bất kỳ khối, giao dịch hoặc trạng thái lịch sử 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 và chứng minh Merkle, và chứng minh đó 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 vài thập kỷ qua: 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ó lẽ 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 làm giảm tính ổn định của dữ liệu. Nếu bằng cách để các nút hoạt động trở nên kinh tế 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 - giống hệt như hệ số sao chép của mạng lưới 10.000 nút - mỗi nút đều lưu trữ tất cả 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 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 giới thiệu một 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 lâu dài 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 để cải thiện độ bền, đồng thời giữ nguyên hệ số sao chép. Thực tế, Blob đã được mã hóa để hỗ trợ sampling khả năng sẵn có của 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 thực thi và khối đồ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;
Cổng mạng;
Cổng mạng 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 tán 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ũng bao gồm đồng thuận và blob. Giải pháp đơn giản nhất là (i) đơn giản là đưa vào thư viện torrent hiện có, cũng như (ii) được gọi là giải pháp gốc Ethereum Portal. Một khi đưa vào bất kỳ cái nào trong số đó, chúng tôi 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ó đồng thời cho tất cả các khách hàng là có giá trị, nếu không có nguy cơ các khách hàng gặp sự cố do kết nối với các nút khác mà mong đợi tải xuống lịch sử đầy đủ nhưng thực tế không nhận được.
Các cân nhắc chính liên quan đến cách 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 nhau để 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 tiếp cận 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ạ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 bao nhiêu" có hai khía cạnh:
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 đối với (1) 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 bằng chứng 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 bằng cách mã hóa xem họ có làm như vậy hay không. Phương pháp nhẹ nhàng hơn là thiết lập 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 thực hiện 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 thực hiện hoàn chỉnh hơn sẽ liên quan đến việc thực sự kết nối nó với quy trình đồng bộ, để nếu có ai đó muốn đồng bộ 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ọ cũng có thể thực hiện đồ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 nhu cầu lưu trữ lịch sử có thể nói là quan trọng hơn 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ỉ 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 khi thực hiện tính không trạng thái và EIP-4444.
Việc giới hạn lưu trữ lịch sử cũng giúp cho 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ể xóa an toàn nhiều dòng mã, vì tất cả các kho lưu trữ trống được tạo ra trong cuộc tấn công DoS năm 2016 đã được xóa. Bây giờ 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ể xóa an toàn 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 máy khách, nhu cầu lưu trữ của máy khách vẫn sẽ tiếp tục tăng, mỗi năm khoảng 50 GB, 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ể thanh toán một khoản phí một lần, do đó gánh nặng sẽ được chuyể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à lịch sử, vì EVM về cơ bản được thiết kế dựa trên giả định 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 bất cứ 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ệ đến 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 sinh!) đều có thể hoạt động mà không cần 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ì tính phi tập trung của Ethereum.
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 một khe lưu trữ chưa được truy cập trước đó), đối tượng trạng thái đó sẽ mãi mãi ở trạng thái đó. Ngược lại, điều chúng ta 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 này 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 hết 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à trở 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 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.
Nếu bạn không đạt được những mục tiêu này, bạn sẽ 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 (ngày hết hạn có thể được kéo dài bằng cách đốt ETH, điều này có thể xảy ra tự động bất cứ lúc nào đọc hoặc ghi) và có một quy trình lặp lại trạng thái để xóa ngày hết hạn của đối tượng trạng thái. Tuy nhiên, điều này giới thiệu tính toán bổ sung (và thậm chí cả yêu cầu lưu trữ) và nó chắc chắn không đáp ứng các 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 khó có thể suy luận về các trường hợp cạnh liên quan đến các giá trị lưu trữ đôi khi được đặt lại về không. Nếu bạn đặt hẹn giờ hết hạn trong phạm vi hợp đồng, về mặt kỹ thuật, điều này sẽ làm cho cuộc sống của nhà phát triển dễ dàng hơn, nhưng nó sẽ khiến nền kinh tế trở nên khó khăn hơn: nhà phát triển sẽ phải suy nghĩ về cách "chuyển giao" chi phí lưu trữ đang diễn ra cho người dùng.
Những điều này đều là những vấn đề mà cộng đồng phát triển cốt lõi của Ethereum đã cố gắng 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 đã biết là không tồi tệ nhất":
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 đều lưu trữ vĩnh viễn "bản đồ hàng đầu", trong đó
Câu trả lời của bạn nên là tiếng Trung
Dựa trên thiết lập trên, dưới đây là bình luận phù hợp với vai trò:
V thần có thể cứu tài khoản của tôi không?