Sơ đồ công nghệ không trạng thái: reGenesis Edition

Rate this post

Tuần này, chúng tôi sẽ sửa đổi Cây công nghệ để phản ánh một số cột mốc quan trọng mới đối với Ethereum 1.x R&D, không phải là sự hiện thực hóa hoàn toàn của Ethereum không trạng thái, nhưng có thể đạt được một cách hợp lý hơn nhiều trong trung hạn. Sự bổ sung quan trọng nhất cho cây công nghệ là đề xuất reGenesis của Alexey. Đây không phải là một nâng cấp được chỉ định rõ ràng, nhưng cảm nhận chung từ R&D là reGenesis mang đến một bước tiến ít kịch tính hơn nhưng dễ đạt được hơn nhiều để hướng tới mục tiêu cuối cùng của tầm nhìn “hoàn toàn không trạng thái”. Theo nhiều cách, miễn phí cho reGenesis là một mạng trạng thái tĩnh sẽ giúp phân phối ảnh chụp nhanh trạng thái và dữ liệu chuỗi lịch sử trong một mạng dựa trên DHT kiểu bittorrent. Đồng thời, các cải tiến ngắn hạn hơn như hợp nhất mã và biểu diễn trạng thái bộ ba nhị phân đang ngày càng tiến gần hơn đến việc sẵn sàng cho EIP. Dưới đây, tôi sẽ giải thích và làm rõ những thay đổi đã được thực hiện và liên kết đến các cuộc thảo luận có liên quan nếu bạn muốn tìm hiểu sâu hơn về bất kỳ tính năng cụ thể nào.

Binary Trie

Trong khi Ethereum hiện đang sử dụng một hệ lục thức Merkle-Patricia Trie để mã hóa trạng thái, có những lợi ích đáng kể về hiệu quả bằng cách chuyển sang định dạng nhị phân, đặc biệt là ở kích thước dự kiến ​​của các nhân chứng. Việc mã hóa lại hoàn toàn trạng thái của Ethereum yêu cầu định dạng mới phải được chỉ định và một chiến lược chuyển đổi rõ ràng. Cuối cùng, cần phải quyết định xem mã hợp đồng thông minh cũng sẽ được hợp nhất hay không và liệu mã đó có nên được kết hợp vào quá trình chuyển đổi bộ ba nhị phân hay như một sự thay đổi độc lập hay không.

Định dạng Binary Trie

Ý tưởng chung về trie nhị phân đơn giản hơn một chút (ý định chơi chữ :)) so với cấu trúc trie lục phân hiện tại của Ethereum. Thay vì có một trong 16 con đường có thể có để đi từ gốc của trie xuống tới các nút con, một trie nhị phân có 2. Với đặc điểm kỹ thuật lại hoàn chỉnh của trie trạng thái mang đến cơ hội bổ sung để cải thiện sự thiếu hiệu quả đã được thiết lập tốt. Bây giờ họ biết rằng Ethereum đã hoạt động được hơn 5 năm. Đặc biệt, nó có thể là một cơ hội để làm cho trạng thái dễ dàng hơn nhiều đối với những thách thức về hiệu suất trong thế giới thực của mã hóa cơ sở dữ liệu (được nêu trong một bài báo trước về tăng trưởng tiểu bang).

Có thể tìm thấy cuộc thảo luận về đặc điểm kỹ thuật trie nhị phân chính thức và các quy tắc hợp nhất trên ethresearch.

Chuyển đổi Trie nhị phân

Điều quan trọng không chỉ là đích đến (định dạng trie nhị phân), mà còn là chính cuộc hành trình! Trong một quá trình chuyển đổi lý tưởng sẽ không có sự gián đoạn đối với quá trình xử lý giao dịch trên nework, có nghĩa là khách hàng sẽ cần phải xây dựng bộ ba nhị phân mới đồng thời như xử lý các khối mới lăn sau mỗi 15 giây. Chiến lược chuyển đổi tiếp tục có vẻ hứa hẹn nhất được mệnh danh là phương pháp lớp phủmột phần dựa trên giao thức đồng bộ hóa ảnh chụp nhanh mới của geth. Tóm lại, các thay đổi trạng thái mới sẽ được thêm vào trie (hexary) hiện có ở định dạng nhị phân, tạo thành một loại kết hợp nhị phân / lục phân trong quá trình chuyển đổi. Trạng thái chưa chạm được chuyển đổi dưới dạng một quá trình nền. Khi quá trình chuyển đổi hoàn tất, hai lớp sẽ được làm phẳng thành một bộ ba nhị phân duy nhất.

Điều quan trọng cần lưu ý là quá trình chuyển đổi nhị phân là một trong những bối cảnh mà sự đa dạng của máy khách là rất quan trọng. Mọi khách hàng sẽ cần phải triển khai phiên bản chuyển đổi của riêng họ hoặc dựa vào các ứng dụng khách khác để chuyển đổi và chờ đợi trie mới ở phía bên kia của chuyển đổi. Đây chắc chắn sẽ là một loại tình huống ‘đo hai lần, cắt một lần’, với tất cả các nhóm khách hàng làm việc cùng nhau để triển khai thử nghiệm và điều phối chuyển đổi. Có thể vì lợi ích an toàn và bảo mật, mạng sẽ cần tạm dừng dịch vụ trong thời gian ngắn (ví dụ: khai thác một vài khối trống) trong quá trình chuyển đổi, nhưng việc đồng ý về bất kỳ kế hoạch cụ thể nào là quá xa để dự đoán tại thời điểm này .

Hợp nhất mã

Mã Hợp đồng thông minh chiếm một phần đáng kể trong bộ ba trạng thái Ethereum (khoảng 1 GB của ~ 50 GB trạng thái). Nhân chứng cho bất kỳ tương tác hợp đồng thông minh nào sẽ nhất thiết phải cung cấp mã mà nó tương tác để tính toán codeHashvà đó có thể là khá nhiều dữ liệu bổ sung. Code Merkleization là một phương tiện tách mã hợp đồng thành các phần nhỏ hơn và thay thế codeHash với gốc của một trie merkle khác. Làm như vậy sẽ cho phép nhân chứng thay thế các phần lớn tiềm năng của mã hợp đồng thông minh bằng các hàm băm tham chiếu, loại bỏ hàng kilobyte quan trọng của dữ liệu nhân chứng.

Có một số phương pháp tiếp cận đối với các kế hoạch hợp nhất mã, từ phân khúc phổ biến (ví dụ: thành các phần 64 byte) ở khía cạnh đơn giản đến các phương pháp phức tạp hơn như phân tích tĩnh dựa trên Solidity. functionId hoặc TỪ JUMPS hướng dẫn. Chiến lược tối ưu để hợp nhất mã cuối cùng sẽ dựa trên những gì có vẻ hoạt động tốt nhất với dữ liệu thực được thu thập từ mainnet.

reGenesis

Nơi tốt nhất để xử lý đề xuất reGenesis là lời giải thích này của @mandrigin hoặc đề xuất đầy đủ của @realLedgerwatchnhưng TL; DR là reGenesis về cơ bản là “mùa xuân dọn dẹp cho blockchain”. Trạng thái đầy đủ sẽ được chia theo khái niệm thành trạng thái “hoạt động” và “không hoạt động”. Theo định kỳ, toàn bộ trạng thái ‘đang hoạt động’ sẽ bị hủy kích hoạt và các giao dịch mới sẽ bắt đầu xây dựng lại trạng thái hoạt động từ hầu hết không có gì (do đó có tên là “reGenesis”). Nếu một giao dịch cần một phần trạng thái cũ, nó sẽ cung cấp một nhân chứng rất giống với những gì sẽ được yêu cầu đối với Ethereum Không trạng thái: một bằng chứng Merkle chứng minh rằng sự thay đổi trạng thái phù hợp với một số phần của trạng thái không hoạt động. Nếu một giao dịch chạm vào phần ‘không hoạt động’ của trạng thái, nó sẽ tự động nâng nó lên thành ‘đang hoạt động’ (cho dù giao dịch có thành công hay không) ở nơi nó vẫn tồn tại cho đến sự kiện reGenesis tiếp theo. Điều này có đặc tính tốt là tạo ra một số giới hạn kinh tế đối với việc sử dụng trạng thái mà tiền thuê nhà nước có mà không thực sự xóa bất kỳ trạng thái nào và cho phép người gửi giao dịch không thể tạo nhân chứng để chỉ tiếp tục thử giao dịch một cách mù quáng cho đến khi mọi thứ nó chạm vào ‘hoạt động’ trở lại .

Phần thú vị về reGenesis là nó đưa Ethereum đến gần hơn nhiều với mục tiêu cuối cùng của Stateless, nhưng phải vượt qua một số thách thức lớn nhất với Statelessness, tức là cách tính toán khí nhân chứng hoạt động trong quá trình thực thi EVM. Nó cũng nhận được một số phiên bản của nhân chứng giao dịch di chuyển xung quanh mạng, cho phép các khách hàng gọn gàng hơn, nhẹ hơn và nhiều cơ hội hơn cho các nhà phát triển dapp để làm quen với mô hình không trạng thái và sản xuất nhân chứng. Không trạng thái “thực sự” sau reGenesis sau đó sẽ là một vấn đề về mức độ: Ethereum không trạng thái thực sự chỉ là reGenesis sau mỗi khối.

Mạng nhà nước

Một giao thức mạng tốt hơn đã là một ‘nhiệm vụ phụ’ trên cây công nghệ ngay từ đầu, nhưng với việc bổ sung reGenesis vào phạm vi của Stateless Ethereum, việc tìm kiếm các nguyên tắc mạng thay thế để chia sẻ dữ liệu chuỗi Ethereum (bao gồm cả trạng thái) giờ đây dường như phù hợp tốt hơn rất nhiều vào nhiệm vụ chính. Giao thức mạng hiện tại của Ethereum là một khối, trong khi thực tế có một số loại dữ liệu riêng biệt có thể được chia sẻ bằng cách sử dụng các ‘mạng con’ khác nhau được tối ưu hóa cho những thứ khác nhau.

ba mạng

Trước đây, điều này đã được nói đến như “Ba mạng” trên các cuộc gọi Không trạng thái trước đóvới một Dựa trên DHT mạng có thể phân phối hiệu quả hơn một số dữ liệu không thay đổi theo từng thời điểm. Với sự ra đời của reGenesis, trạng thái ‘không hoạt động’ sẽ phù hợp với danh mục dữ liệu không thay đổi này và về mặt lý thuyết có thể được phục vụ bởi một mạng hỗn hợp kiểu bittorrent thay vì từng phần từ một ứng dụng được đồng bộ hóa hoàn toàn như hiện tại.

Một mạng chuyển xung quanh trạng thái không thay đổi kể từ sự kiện reGenesis cuối cùng sẽ là mạng trạng thái tĩnhvà có thể được xây dựng bằng cách mở rộng Thông số kỹ thuật Discovery v5.1 trong thư viện devp2p (Giao thức mạng của Ethereum). Các đề xuất trước đây chẳng hạn như Đồng bộ Merry-go-Round và (trưởng thành hơn) Giao thức SNAP để đồng bộ hóa tích cực trạng thái vẫn sẽ là các bước có giá trị đối với một mạng trạng thái động cho các khách hàng đang cố gắng đồng bộ hóa nhanh chóng trạng thái đầy đủ.

Kết thúc

Một phiên bản kỹ thuật và cô đọng hơn của mọi lá trong Sơ đồ công nghệ không trạng thái (không chỉ những lá được cập nhật) có sẵn trên repo thông số kỹ thuật Ethereum không trạng tháivà các cuộc thảo luận tích cực về tất cả các chủ đề được đề cập ở đây nằm trong Sự bất hòa về R&D của Eth1x / 2 – vui lòng yêu cầu lời mời trên ethresear.ch nếu bạn muốn tham gia. Như thường lệ, hãy tweet @gichiba hoặc @JHancock để nhận phản hồi, câu hỏi và đề xuất cho các chủ đề mới.

Thuc Quyen

Leave a Reply

Your email address will not be published. Required fields are marked *