Ý kiến: Hiểu Ethereum và tương lai của nó từ góc độ "nhà nước"
Bài viết này có khoảng 8109 từ, đọc toàn bộ bài viết mất khoảng 12 phút
Các hướng phát triển khác nhau tận dụng và thay đổi mô hình Ethereum như thế nào?
Tóm tắt AI
Các hướng phát triển khác nhau tận dụng và thay đổi mô hình Ethereum như thế nào?
Lưu ý của biên tập viên: Bài viết này đến từNhững người đam mê Ethereum (ID: ethfans), được in lại bởi Odaily với sự cho phép.
Lưu ý của biên tập viên: Bài viết này đến từ
Những người đam mê Ethereum (ID: ethfans)Những người đam mê Ethereum (ID: ethfans), được in lại bởi Odaily với sự cho phép.tiêu đề cấp đầu tiên
I. Giới thiệu
Kể từ khi được tạo ra vào năm 2015, chuỗi khối Ethereum đã trải qua năm mùa đông và mùa hè. Năm năm không chỉ biến Giao thức Ethereum 1 như một khái niệm thành hiện thực, làm cho giao thức này hoàn thiện hơn và cụ thể hơn, mà còn phơi bày các đặc điểm và sự đánh đổi của một tập hợp các thiết kế như vậy. Những sự đánh đổi này, như một thách thức về thiết kế, tự nhiên thu hút và tiếp tục thu hút vô số tài năng để cố gắng cải thiện khả năng sử dụng của Ethereum; trong số đó, thứ tập hợp nhiều nỗ lực và trí tưởng tượng nhất là cải thiện hàng loạt kế hoạch "khả năng mở rộng".Điều mà bài viết này muốn chỉ ra là giống như mô hình Ethereum phải đối mặt với sự đánh đổi về mặt thiết kế, tất cả các giải pháp về khả năng mở rộng này cũng phải đối mặt với sự đánh đổi; và để đánh giá liệu những sự đánh đổi này có đáng hay không, chúng ta cần quay lại Ethereum chính nó, đối với Ethereum Các vấn đề thực sự và nhu cầu thực sự của các nút Ethereum và người dùng Ethereum. Quan điểm "trạng thái", như một quan điểm để hiểu chính Ethereum, chỉ có thể giúp chúng tôi làm rõ thiết kế của các kế hoạch này và tiết lộ những khoản lãi và lỗ của chúng tôi.Bài viết này sẽ bắt đầu bằng cách giải thích ý nghĩa của "trạng thái", tiết lộ ngọn giáo cuối cùng và gót chân Achilles của Ethereum, sau đó khám phá các hướng cải tiến khác nhau. "Trạng thái giàu có" là nguồn gốc của "khả năng kết hợp" trong hợp đồng thông minh Ethereum, nhưng nó cũng là điểm yếu lớn nhất của mạng Ethereum. Từ đó, chúng ta có thể thấy giải pháp nào thường được đề cập sẽ ảnh hưởng đến "khả năng kết hợp" và "khả năng mở rộng" có ý nghĩa rõ ràng hơn.2. Ethereum như một mô hình(1) Trạng thái phong phú và khả năng tổng hợp"trạng thái" là gì? Trạng thái là tình huống cụ thể của một hệ thống tại một thời điểm nhất định. Lấy chuỗi khối triển khai tiền mã hóa làm ví dụ, trạng thái của chuỗi khối tại một thời điểm nhất định là phân phối tài sản của tất cả các địa chỉ trên chuỗi khối tại thời điểm đó (địa chỉ A có 10 xu, địa chỉ B có 100 xu, v.v.) ( Trên thực tế, những gì chúng ta có chỉ là một số trạng thái, được tâm trí của chúng ta và sự đồng thuận xã hội diễn giải là "tài sản").Từ quan điểm này, mỗi bộ giao thức chuỗi khối có thể được chia thành hai phần, một phần là cơ chế đồng thuận và phần còn lại là các quy tắc chuyển đổi trạng thái (đôi khi được gọi là "quy tắc đồng thuận"); phần trước xác định các quy tắc tạo khối, cho biết khi tất cả các nút tham gia chuỗi khối cần cập nhật trạng thái của cơ sở dữ liệu chuỗi khối cục bộ (ví dụ: như một nút của chuỗi khối Ethereum, bất cứ khi nào nó nhận được một công việc đáp ứng các yêu cầu về độ khó, nút sẽ cập nhật trạng thái mới nhất của chuỗi khối cục bộ cơ sở dữ liệu); và các quy tắc chuyển đổi trạng thái xác định giao dịch nào là hợp lệ ("một tài khoản không thể tiêu nhiều tiền hơn số dư của chính nó"), đồng thời Xác định cách nút sẽ cập nhật trạng thái khi xử lý giao dịch ("giao dịch này có nghĩa là tài khoản đó A chuyển 5 xu vào tài khoản B, sau đó số dư tài khoản A sẽ giảm đi 5 và số dư tài khoản B sẽ tăng thêm 5").Đối với Bitcoin, cơ chế đồng thuận của nó là "Đồng thuận PoW + Nakamoto" và các quy tắc chuyển đổi trạng thái của nó dựa trên UTXO. Đối với Ethereum, cơ chế tạo khối của nó là "quy tắc PoW + Ghost" và các quy tắc chuyển đổi trạng thái của nó dựa trên tài khoản.Vì vậy, điều gì làm cho Ethereum trở thành một sự đổi mới đột phá như vậy?Chúng ta thường nghe rằng lý do khiến Ethereum trở nên đặc biệt là vì nó "giới thiệu một ngôn ngữ lập trình hoàn chỉnh Turing hỗ trợ khả năng lập trình", v.v. Trên thực tế, tuyên bố này không chính xác 2. Bởi vì cho phép một ngôn ngữ lập trình phức tạp hơn không có nghĩa gì cả, trên thực tế, Bitcoin cũng có thể được lập trình; cho phép Bitcoin sử dụng ngôn ngữ lập trình solidity không có được Ethereum. Điều khiến Ethereum thực sự đặc biệt là "tính trạng thái phong phú"3 của nó: nó cho phép một hợp đồng gọi một hợp đồng khác và, ngoài kích thước khối, không áp đặt giới hạn về số cấp độ của các lệnh gọi như vậy.Hợp đồng B có thể gọi hợp đồng A và thay đổi trạng thái của hợp đồng A theo mã được tiết lộ bởi hợp đồng A; hợp đồng C gọi hợp đồng B cũng có thể gián tiếp gọi hợp đồng A và thay đổi trạng thái của hợp đồng A, nhưng logic điều khiển của nó có thể chồng chéo và được tích lũy liên tục; nếu hiểu nhà nước là tài sản, thì điều này tương đương với việc cho phép quyền sử dụng (điều kiện sử dụng) tài sản đó bị kiểm soát liên tục chặt chẽ hơn, phức tạp hơn; nói về mặt lý thuyết, điều này có nghĩa là logic cập nhật trạng thái có thể vô cùng gần với các hợp đồng tài chính trong cuộc sống thực (vì tất cả các hợp đồng tài chính có thể được xếp chồng và kết hợp thông qua logic đơn giản). Thuộc tính này cho phép tích lũy các lớp điều khiển tùy ý là quan trọng nhất, nhưng cách lập trình điều khiển này chỉ là thứ yếu.Ngoài ra, Ethereum cũng cho phép người dùng ghi trạng thái vào chuỗi khối, làm cho các trạng thái này trở thành một phần của trạng thái toàn cầu và yêu cầu các nút cập nhật trạng thái theo logic được xác định bởi hợp đồng. Do đó, một hợp đồng có thể tiết lộ trạng thái của chính nó cho tất cả các tài khoản khác trên Ethereum và trạng thái phong phú nói trên thực sự phát huy tác dụng.Đúng vậy, bây giờ chúng tôi đã thu thập được ba thuộc tính giống như thu thập ngọc rồng:(1) Mô hình điện toán trên chuỗi: các hợp đồng có thể yêu cầu các nút thực hiện các phép tính theo logic được xác định riêng của chúng;
(2) Trạng thái toàn cầu: Trạng thái của hợp đồng có thể trở thành một phần của trạng thái toàn cầu và được tiết lộ cho tất cả các tài khoản khác;(3) Trạng thái phong phú: Các hợp đồng có thể gọi lẫn nhau và không có giới hạn về số lượng lớp ngăn xếp, do đó logic điều khiển có thể được tích lũy theo từng lớp;Bây giờ chúng ta có thể gọi ngọn giáo mạnh nhất của Ethereum: "Khả năng kết hợp" (đơn vị tiền tệ LEGO)!Phương thức tính toán trên chuỗi cho phép chúng ta có nhiều loại hợp đồng; trạng thái toàn cầu cho phép các hợp đồng này truy cập vào trạng thái của nhau; trạng thái phong phú cho phép sự kết hợp của các hợp đồng vô cùng đa dạng. Vì vậy, chúng tôi không chỉ có đồng tiền DAI ổn định mà còn có thị trường cho vay, ứng dụng xổ số, ứng dụng tự động quyên góp số tiền thu được từ xổ số và ứng dụng tự động cân bằng lại tỷ lệ tiết kiệm giữa các thị trường cho vay khác nhau... …(2) Vấn đề bùng nổ dữ liệu trạng thái"Khả năng kết hợp" là quá tốt để trở thành sự thật, phải không? Vâng, bộ ba của ba thuộc tính trên thực sự là một con dao hai lưỡi.Quá trình chuyển đổi trạng thái của Ethereum có thể được tóm tắt như sau: chức năng chuyển đổi trạng thái lấy trạng thái cũ và danh sách giao dịch làm đầu vào và xuất ra trạng thái mới. Điều này có nghĩa là các nút xác minh đầy đủ của Ethereum phải duy trì cục bộ trạng thái mới nhất của chuỗi khối Ethereum để chúng có thể thực thi các chức năng trạng thái và sử dụng kết quả để xác minh tính hợp lệ của một khối (và cũng đồng ý với các nút Ethereum khác).Mâu thuẫn là: đối với hợp đồng và nhà phát triển, trạng thái của hợp đồng được lưu trữ trên nút của Ethereum như một phần của trạng thái toàn cầu của Ethereum và cập nhật trạng thái của hợp đồng được tính toán bởi nút của Ethereum ( và cũng bởi nút bắt đầu yêu cầu tính toán. Người dùng trả tiền), kiến trúc "không có máy chủ" này rất thoải mái; tuy nhiên, các trạng thái này sẽ được lưu trữ vĩnh viễn trong nút xác minh đầy đủ của Ethereum miễn là một khoản thanh toán được thực hiện, mặc dù mỗi cập nhật yêu cầu thanh toán, nhưng không thể tránh được. Dữ liệu trạng thái sẽ tiếp tục tích lũy và mở rộng.Lý do tại sao việc mở rộng dữ liệu trạng thái là một vấn đề là nó sẽ mang lại gánh nặng đọc và ghi đĩa cứng (ngẫu nhiên) ngày càng cao hơn cho các nút xác minh đầy đủ. Dữ liệu trạng thái không giống như dữ liệu khối, dữ liệu khối là tĩnh và không cần đọc và ghi thường xuyên sau khi lưu trữ liên tục, tuy nhiên, dữ liệu trạng thái cần được đọc và ghi nhiều lần cho mỗi khối bổ sung, gánh nặng đọc và ghi sẽ trở nên nặng hơn và nặng hơn. Trong vài năm qua, chúng ta thường nghe mọi người nói rằng nút đầy đủ của Ethereum rất khó triển khai và đây là một trong những lý do chính. Cách đây một thời gian, dịch vụ nút Ethereum miễn phí của Infura đã gặp sự cố 4, khiến nhiều dịch vụ phụ thuộc vào Infura gặp sự cố.
Vấn đề này không dễ giải quyết. Trong vài năm qua, nhiều lần nâng cấp hard fork của Ethereum đã làm tăng mức tiêu thụ gas của các opcode truy cập trạng thái, chính xác là để hạn chế việc tạo ra các trạng thái mới bằng các hợp đồng với chi phí kinh tế. Nhưng đây rõ ràng chỉ là một giải pháp tạm thời, vì logic về cơ bản không thay đổi, dữ liệu trạng thái phải tiếp tục được lưu trữ trên nút Ethereum, nhưng người dùng tạo dữ liệu trạng thái chỉ cần trả một lần. Cũng có ý kiến cho rằng để thay đổi điều này, cần đưa ra một số loại cơ chế "tiền thuê nhà nước", yêu cầu hợp đồng tiết kiệm cho nhà nước phải trả tiền thuê liên tục, nếu không hợp đồng sẽ bị chấm dứt. Tuy nhiên, cơ chế này có sự phức tạp ngoài sức tưởng tượng, một mặt khó xác định phương thức thu tiền thuê hợp lý, mặt khác cũng khó xác định đối tượng thanh toán hợp lý. Vì vậy việc nghiên cứu cơ chế thuê nhà nước cũng bị đình trệ trong năm 20195. Ngoài ra còn có các dự án (chẳng hạn như Nervos) cố gắng xác định kích thước của không gian trạng thái khả dụng dựa trên lượng tiền tệ được nắm giữ, vì vậy kích thước của dữ liệu trạng thái sẽ luôn có giới hạn trên, giúp tránh được vấn đề mở rộng trạng thái. nhưng điều này cũng làm thay đổi tài sản ban đầu.thuộc tính kinh tế.Cho đến nay, tôi vẫn chưa thấy một giải pháp cơ bản thỏa đáng nào cho vấn đề này ngoài vấn đề “không quốc tịch”, mà thực tế mà nói, còn gặp nhiều thách thức. Chúng ta sẽ nói về điều này sau.
Nói chung, trạng thái toàn cầu, điện toán trên chuỗi và trạng thái giàu có, không chỉ làm cho các hợp đồng trên Ethereum có thể kết hợp được mà còn khiến mạng Ethereum có nguy cơ bị tập trung hóa; giống như Chúa tể của những chiếc nhẫn trong tiểu thuyết "Chúa tể của the Rings", không chỉ có thể triệu hồi một thế lực hùng mạnh mà còn có thể nuốt chửng chính người dùng. Tôi lo lắng rằng Ethereum sẽ chịu gánh nặng này trong một thời gian dài.Tiếp theo, chúng tôi sử dụng quan điểm "trạng thái" để hiểu thiết kế và sự đánh đổi của các giải pháp khả năng mở rộng khác nhau.3. Hướng phát triển của EthereumTrong chương này, chúng ta sẽ phân tích bốn hướng phát triển của Ethereum: Layer-2 scheme, sharding, stateless và Rollup scheme. Sự phân loại này là hoàn toàn không hợp lý, bởi vì rollup là một tập hợp con của các lược đồ Lớp 2; và trạng thái không trạng thái là một công nghệ tiền phân mảnh; thậm chí, thật không hợp lý khi đặt chúng cạnh nhau, bởi vì các lược đồ Lớp 2 hầu như không yêu cầu thay đổi lớp dưới cùng của Ethereum và sharding và tình trạng không quốc tịch có những yêu cầu như vậy. Điều này được thực hiện chỉ để thuận tiện cho việc mô tả và hiểu biết.(1) Lược đồ lớp 2Ý tưởng đằng sau sơ đồ Lớp 2 xuất phát từ một trực giác đơn giản nhưng rất chính xác: lý do tại sao Ethereum phải đối mặt với nút cổ chai thông lượng là do băng thông, sức mạnh tính toán và khả năng duy trì dữ liệu trạng thái của các nút tạo nên mạng Ethereum là tất cả. Hạn chế và khó cải thiện; chỉ cần yêu cầu các nút của toàn bộ mạng xử lý nhiều giao dịch hơn trên mỗi đơn vị thời gian, yêu cầu hoạt động của các nút chắc chắn sẽ tăng lên, điều này sẽ làm hỏng sự phân cấp; tuy nhiên, từ góc độ sử dụng, nó không không cần thiết phải đặt tất cả các trạng thái trên Ethereum và không cần thiết phải để tất cả các tính toán trạng thái xảy ra trên Ethereum; chúng ta có thể lưu trạng thái trung gian (hoặc tất cả các trạng thái) của hợp đồng ở những nơi khác và tương tác của người dùng (Điều đó cập nhật trạng thái) không xảy ra trên chuỗi khối Ethereum; chỉ khi người dùng cho rằng cần phải giải quyết một trạng thái nhất định, thì trạng thái đó mới được gửi đến Ethereum để xác nhận.Nói một cách dễ hiểu: Nếu chúng ta không thể làm cho mạng đạt được sự đồng thuận về nhiều giao dịch hơn trên mỗi đơn vị thời gian, thì hãy cải thiện ý nghĩa của một giao dịch đơn lẻ.
Lược đồ lớp 2 cổ điển "kênh trạng thái" thể hiện ý tưởng này một cách triệt để nhất: khi hai người dùng tham gia vào một kênh khóa tiền vào hợp đồng, các giao dịch giữa hai người sẽ không được gửi đến chuỗi sau đó và họ sử dụng các công cụ giao tiếp khác để trao đổi tin nhắn đã ký và đạt được sự đồng thuận về trạng thái của kênh (vì vậy cho dù họ gửi và nhận bao nhiêu tin nhắn và bao nhiêu dữ liệu trạng thái họ tạo ra, nó sẽ không trở thành gánh nặng cho Ethereum); cho đến khi hai người nghĩ rằng không có cần phải tương tác (hoặc cần phải giải quyết tạm thời một lần), vì vậy họ gửi trạng thái được công nhận lẫn nhau và chữ ký của hai người tới Ethereum, sau đó Ethereum cập nhật trạng thái của hợp đồng và theo trạng thái này, hai người quỹ quyết toán.
Nếu bạn coi giải pháp Lớp 2 là một mẫu thiết kế của hợp đồng, bạn sẽ thấy điều đó rõ ràng hơn - giải pháp Lớp 2 chọn không sử dụng trạng thái toàn cầu. Một hợp đồng khác không thể biết theo thời gian thực trạng thái nào bên trong hợp đồng Lớp 2 (người dùng A\B\C có bao nhiêu tiền), bởi vì các trạng thái này không nằm trong chuỗi và do đó, hợp đồng Lớp 2 là không thể kết hợp với các hợp đồng khác.Mặc dù vậy, giải pháp Layer-2 cũng đã đánh đổi những thứ vô cùng quý giá: tốc độ giao dịch nhanh hơn (mặc dù trạng thái trung gian được xác nhận không an toàn bằng trạng thái của chuỗi chính), phí xử lý thấp hơn và gánh nặng cho các nút chuỗi chính nhỏ hơn. .Nhưng tại sao giải pháp Lớp 2 không mang lại kết quả trong vài năm qua? Bởi vì trước khi kế hoạch Rollup xuất hiện, các kế hoạch khác, bao gồm các kênh trạng thái và Plasma, không thể chứng minh rằng số tiền bị khóa trong hợp đồng của chính họ cũng an toàn như số tiền bị khóa trong hợp đồng trạng thái (không bị đóng băng cũng như bị đánh cắp) . Trong sơ đồ kênh trạng thái, nếu bạn không giám sát chuỗi khối mọi lúc, đối tác của bạn có thể "đánh cắp" tiền của bạn bằng cách gửi trạng thái cũ cho chuỗi chính; trong sơ đồ Plasma, bạn thường phải dựa vào nhà điều hành để cung cấp bạn với bằng chứng về tình trạng của chính bạn, vì vậy rất khó để chính người điều hành bảo vệ.Điều này hoàn toàn khác với trải nghiệm sử dụng hợp đồng trạng thái trên mạng chính Ethereum. Loại trừ rủi ro về mã của hợp đồng, số tiền bạn gửi trong hợp đồng sẽ không bị đánh cắp trừ khi ai đó thực hiện cuộc tấn công 51% để hủy giao dịch của bạn; rút tiền của chính bạn. (Trong bài viết sau, chúng ta sẽ xem giải pháp Tổng số giải quyết vấn đề này như thế nào.)(2) Phân mảnhMột trực giác khác để cải thiện Ethereum và tăng thông lượng của Ethereum là: thông lượng của Ethereum bị hạn chế, bởi vì mỗi nút đầy đủ phải xử lý tất cả các giao dịch trên chuỗi; nếu chúng ta có thể để mỗi nút chỉ xử lý một phần của giao dịch, sự khác biệt giữa các nút trong nhóm xử lý các giao dịch khác nhau một cách riêng biệt (song song), thì thông lượng của toàn bộ hệ thống trên một đơn vị thời gian bằng tổng năng lực xử lý của một nhóm đơn lẻ của các nhóm nút này; nghĩa là gánh nặng của một nút duy nhất không không tăng, nhưng tổng thể Thông lượng của hệ thống được tăng lên (và các gói càng mịn thì hệ số nhân thông lượng càng lớn). Điều này được gọi là "sharding".Một câu hỏi thú vị về kiến trúc sharded là định nghĩa chính xác của nó. Trong kiến trúc chuỗi khối cổ điển, không phân mảnh, các nút đầy đủ phải (1) lặp lại tất cả các tính toán; (2) duy trì tất cả trạng thái; và (3) truyền bá tất cả các khối/giao dịch. Một số người nghĩ rằng chỉ cần một trong số chúng bị phá vỡ để được coi là phân mảnh, nhưng từ một góc độ chặt chẽ hơn, cả ba phải được phá vỡ để đạt được hiệu quả cải thiện thông lượng theo lý thuyết 6 . Các định nghĩa khác nhau có tác dụng khác nhau. Ở đây, định nghĩa tôi lấy là một nút ít nhất không cần duy trì tất cả trạng thái của toàn bộ hệ thống.
Nhưng một câu hỏi thú vị khác là kiến trúc này có thể có ý nghĩa như thế nào nếu tất cả các công nghệ mặt trước theo yêu cầu của kiến trúc sharding có thể được hiện thực hóa.Trong kiến trúc sharding do nhóm nghiên cứu của Ethereum Foundation hình thành, trạng thái của toàn bộ hệ thống được chia thành nhiều phần và mỗi phần được cập nhật song song. Khi hợp đồng A' trong phân đoạn A cố gắng gọi hợp đồng B' trên phân đoạn B, không thể giả định rằng bộ xử lý sở hữu trạng thái của phân đoạn B và do đó, kết quả xử lý phải đợi phân đoạn B hoàn thành cập nhật trạng thái trước khi quay lại. Do đó, các giao dịch giữa các phân đoạn phải chịu chi phí khó chịu nhất trong quá trình xử lý giao dịch: chậm trễ. Vấn đề là sự chậm trễ này không thể được trừu tượng hóa bằng chi phí tiền tệ. Bởi vì phân đoạn B không biết rằng một giao dịch cần gọi chính nó đã xảy ra trên phân đoạn A, vì vậy nó chỉ có thể đợi một lớp giao tiếp đáng tin cậy phát giao dịch này cho chính nó.Giá trị có thể được tạo trên mỗi đơn vị thời gian càng cao thì độ trễ càng không thể chịu đựng được; và điều này có nghĩa là, giả sử rằng có một phân đoạn ở nồng độ ứng dụng DeFi nhất định, các ứng dụng này sẽ không lên lịch xử lý trên các phân đoạn khác thông qua trao đổi chéo giao dịch shard ở mọi khả năng, bởi vì nó hoàn toàn vô nghĩa và không thể đáp ứng các yêu cầu về độ trễ của các ứng dụng DeFi. Tương tự, điều này cũng có nghĩa là sức mạnh xử lý của một phân đoạn duy nhất trong số các phân đoạn được ứng dụng DeFi này tổng hợp là giới hạn trên của sức mạnh xử lý của nó (không khác biệt so với một chuỗi khối). Xây nhà, làm đường trong núi sâu, rừng già không giải quyết được vấn đề không gian sống cho người dân nơi đô thị.(Một số người cho rằng thông lượng phân đoạn "nhàn rỗi" này có thể bị khai thác bởi nhiều ứng dụng thích hợp hơn. Tôi nghĩ rằng giải pháp Lớp 2 có thể đạt được hiệu quả tương tự, nhưng với ít thay đổi hơn đối với lớp bên dưới và an toàn hơn.)(3) Không quốc tịchKhông trạng thái là hướng nâng cấp duy nhất đối mặt trực tiếp với vấn đề mở rộng dữ liệu trạng thái 7.Trong giao thức Ethereum hiện tại, bản thân giao dịch không mang thông tin về trạng thái mà nó truy cập, vì lý do này mà nút xử lý giao dịch phải duy trì dữ liệu trạng thái làm điều kiện tiên quyết để thực hiện chức năng chuyển đổi trạng thái. Chính vì điều này mà việc mở rộng dữ liệu trạng thái là một vấn đề (tăng gánh nặng cho các nút).Chìa khóa của trạng thái không trạng thái là để giao dịch/khối tự đính kèm thông tin về trạng thái mà nó truy cập.
Trên thực tế, trạng thái không trạng thái là thay đổi phương thức xác minh của các khối Ethereum bằng cách thay đổi cấu trúc của các khối Ethereum. Không cần duy trì dữ liệu trạng thái, loại bỏ nhu cầu đọc và ghi đĩa cứng, đồng thời tốc độ xác minh khối cũng có thể nhanh hơn. Ngoài ra, mỗi nút có thể hoàn toàn không duy trì dữ liệu trạng thái hoặc duy trì dữ liệu trạng thái của một số hợp đồng theo nhu cầu riêng của mình.Nhưng, thành thật mà nói, tình trạng không quốc tịch hiện đang phải đối mặt với rất nhiều thách thức về thiết kế. Cụ thể: (1) Không trạng thái yêu cầu các khối/giao dịch phải được đính kèm bằng chứng (nhân chứng) về trạng thái được truy cập. Quy mô của phần dữ liệu này có thể rất lớn. Kích thước dữ liệu khối hiện tại của Ethereum là khoảng 20-40 KB. Tuy nhiên , kích thước của dữ liệu nhân chứng có thể ở mức MB (tùy thuộc vào kích thước của ổ đĩa trạng thái được truy cập); (2) Chỉ các nút duy trì tất cả các trạng thái mới có thể lắp ráp nhân chứng, vậy ai sẽ cung cấp trạng thái cho người dùng thông thường ? (Trên thực tế, đây có thể được coi là một sự thay đổi trong giả định hoạt động của Ethereum: tất cả các nút đầy đủ đều có thể tham gia khai thác; nhưng không phải sau khi nhận ra tình trạng không quốc tịch); (3) Làm thế nào để định giá mức tiêu thụ gas của các giao dịch? Đặc biệt là do tính kịp thời của nhân chứng, không thể xác định cần bao nhiêu tính toán để lắp ráp nhân chứng dựa trên opcode.Vì những khó khăn này, các nút đầy đủ của Ethereum có thể phải chạy ở chế độ duy trì tất cả trạng thái này trong một thời gian dài. Tuy nhiên, không quốc tịch chắc chắn là hướng thú vị nhất cho những cải tiến hiện tại đối với giao thức Ethereum. Bởi vì nó trực tiếp đối mặt với vấn đề cốt lõi của Ethereum và cố gắng giải quyết vấn đề này từ dưới lên. Ngoài ra, nghiên cứu về việc sử dụng dữ liệu trạng thái trong giao thức Ethereum cũng đã nuôi dưỡng các hướng nghiên cứu khác, chẳng hạn như các phương pháp đồng bộ hóa8.Tôi thiên vị khi tin rằng tương lai của Ethereum là một loại kế hoạch nào đó lấy cảm hứng từ tình trạng không quốc tịch, nếu không muốn nói là không quốc tịch.(4) Sơ đồ tổng sốLược đồ Rollup là lược đồ Lớp 2. Tính năng đặc biệt của nó là nó sẽ xuất bản các giao dịch được sử dụng trong mỗi lần cập nhật trạng thái trên chuỗi khối Ethereum.Giống như các lược đồ Lớp 2 khác, lược đồ Rollup cũng lưu trữ trạng thái ngoài chuỗi và không yêu cầu các nút Ethereum tính toán trạng thái mới của hợp đồng; tuy nhiên, tất cả các giao dịch sẽ thay đổi trạng thái của hợp đồng được xuất bản dưới dạng dữ liệu, có nghĩa là, bất kỳ bên thứ ba nào cũng có thể tính toán trạng thái của hợp đồng dựa trên các dữ liệu công khai và quy tắc công khai này (mặc dù hợp đồng trên Ethereum không thể sử dụng các trạng thái này).Như đã đề cập trước đó, khi hợp đồng Lyaer-2 chọn chuyển tính toán trạng thái ra khỏi chuỗi Ethereum và che khuất trạng thái hợp đồng của chính nó, nó sẽ gây ra rủi ro cho người dùng: người dùng không biết rằng người điều hành hợp đồng Lớp 2 sẽ Trạng thái không hợp lệ sẽ không được gửi đến chuỗi để được hoàn thiện bởi chuỗi khối, nếu người điều hành có thể làm được điều này, thì tương đương với việc trực tiếp ăn cắp tiền của người dùng, ngoài ra, người dùng không biết hoạt động của hợp đồng lớp 2 Các nhà đầu tư sẽ không kiểm duyệt các giao dịch của chính họ, do đó đóng băng tiền của chính họ.Có hai cách để giải quyết vấn đề tiền bị đánh cắp. tính toán. Chỉ sau khi xác minh được thông qua, hợp đồng mới được phép cập nhật trạng thái gốc. Đây là ý tưởng của zk-rollup, một ý tưởng khác là yêu cầu mọi người đính kèm một khoản tiền gửi khi yêu cầu cập nhật trạng thái gốc của hợp đồng. Nếu gốc trạng thái đã gửi không hợp lệ, Những người báo cáo gốc trạng thái này có thể nhận được khoản tiền gửi của người gửi ban đầu, đây là bản tổng hợp lạc quan. Nhưng ý tưởng thứ hai có một điều kiện tiên quyết: người tố giác phải có cách để đạt được trạng thái trước khi chuyển đổi trạng thái, nếu không sẽ không có cách nào tạo ra bằng chứng sai lệch về quá trình chuyển đổi.Chỉ có một cách để giải quyết vấn đề quỹ bị khóa: làm suy yếu khái niệm "nhà điều hành" càng nhiều càng tốt, để bất kỳ ai cũng có thể gửi giao dịch tới Ethereum để cập nhật trạng thái của hợp đồng Lớp 2. Nhưng điều này quay trở lại câu hỏi: nếu người đệ trình không có trạng thái của hợp đồng, làm thế nào anh ta có thể chứng minh tính hợp lệ của quyền truy cập trạng thái của mình và để hợp đồng giải phóng nó?Cuối cùng, giải pháp Rollup giải quyết vấn đề này bằng cách "xuất bản dữ liệu giao dịch phù hợp ở mỗi lần chuyển đổi trạng thái". Do đó, mặc dù hợp đồng Rollup không tiết lộ trạng thái trên chuỗi, nhưng bất kỳ ai—kể cả người dùng hợp đồng rollup—có thể tái cấu trúc trạng thái bên trong của hợp đồng rollup dựa trên các gói giao dịch công khai này. Điều này có nghĩa là, nếu được thiết kế phù hợp, số tiền trong hợp đồng tổng số có thể an toàn như các hợp đồng được lưu ở trạng thái trên chuỗi khối Ethereum (tức là các hợp đồng chúng ta thường sử dụng hiện nay)!
Lấy zk-rollup làm ví dụ, chương trình xác minh on-chain đảm bảo rằng hợp đồng rollup không thể cập nhật gốc trạng thái sai, giống như Maker DAO không thể tịch thu DAI của bạn mà không có sự cho phép của bạn; đồng thời, giả sử nó cũng tiết lộ tính toàn vẹn của tính toán phương pháp xây dựng, bạn có thể trực tiếp bắt đầu chuyển đổi trạng thái sang hợp đồng trên chuỗi bất kỳ lúc nào để rút tiền của chính mình. Điều này hoàn toàn giống như một hợp đồng bình thường, có trạng thái: không có cách nào để khôi phục trạng thái của hợp đồng tổng số nếu không có cuộc tấn công 51% và không có gì ngăn cản bạn lấy lại tiền của mình nếu không có cuộc tấn công 51% liên tục.Optimistic-rollup dựa trên một số giả định kinh tế tiền điện tử, do đó, nó yếu hơn một chút: ngoài trạng thái khôi phục cuộc tấn công 51%, kẻ tấn công cũng có thể đưa root trạng thái sai vào hợp đồng thông qua cuộc tấn công xem xét 51% kéo dài trong một khoảng thời gian; Hãy đặt cược rằng không ai đã tính toán trạng thái mới nhất của hợp đồng sẽ quan sát thấy lỗi (xác suất là cực kỳ nhỏ). Tuy nhiên, Optimistic-rollup cũng có thể cung cấp khả năng lưu ký miễn phí mạnh mẽ và bạn có thể lấy lại tiền của mình bất kỳ lúc nào.ETH
开发者
投资
Chào mừng tham gia cộng đồng chính thức của Odaily


