Xử lý ngoại chuỗi là tất cả những gì bạn cần

Trung cấp1/4/2024, 5:43:45 PM
Bài viết này giới thiệu các khái niệm về các bộ xử lý cộng tác và Rollup, cũng như sự tách rời mô-đun của việc tính toán và xác minh blockchain trong tương lai.

Giới thiệu

Blockchain là các cuốn sách phân phối toàn cầu đạt được sự nhất quán trên trạng thái toàn cầu. Một số blockchain đi kèm với môi trường thực thi hoàn chỉnh Turing cho phép lập trình trên cơ sở trạng thái toàn cầu này. Các chương trình nhắm mục tiêu vào môi trường thực thi của blockchain được gọi là hợp đồng thông minh, và các blockchain cơ bản được gọi là nền tảng hợp đồng thông minh. Ethereum, Solana và Avalanche là một số nền tảng hợp đồng thông minh được biết đến rộng rãi nhất. Chúng ta có thể tưởng tượng nền tảng hợp đồng thông minh như các máy tính phân tán, với môi trường thực thi (hoặc máy ảo) hoạt động giống như CPU và trạng thái thực hiện vai trò của bộ nhớ.

Cách tiếp cận này về các chuỗi khối như máy tính sẽ quan trọng để thúc đẩy lý do tại sao bộ xử lý phụ/tính toán ngoài chuỗi là không thể tránh khỏi, đặc biệt trong ngữ cảnh của các chuỗi khối. Trong tính toán truyền thống, bộ xử lý phụ xuất phát từ cấu trúc vi mạch để tăng hiệu suất. Tương tự, các bộ xử lý phụ trên Ethereum hứa hẹn truy cập vào dữ liệu lịch sử và tính toán ngoài chuỗi có hiệu suất cao để bổ sung các tính năng và không gian thiết kế của giao thức tầng cơ bản. Hãy xem bài viết giới thiệu này về các bộ xử lý phụ để biết thêm chi tiết.

Bài viết này khám phá về các bộ xử lý phụ từ cơ bản, mục tiêu là làm sáng tỏ về sự quan trọng và các thuộc tính siêu. Chúng tôi sau đó so sánh chúng với rollups, chứng minh cách hai khái niệm này, mặc dù khác nhau, nhưng lại có mối liên quan chặt chẽ. Chúng tôi cũng cung cấp các ví dụ về khi nào rollups và bộ xử lý phụ có thể được sử dụng cùng nhau. Ví dụ, ngay cả một rollup hoặc L1 mạnh mẽ nhất cũng có thể cần một bộ xử lý phụ để xử lý các nhiệm vụ nặng nề.

Chúng tôi kết luận bài viết này bằng việc quan sát rằng các chuỗi khối đang tiến tới một tương lai trong đó tính toán được tập trung, nhưng việc xác minh vẫn giữ ở tình trạng phân tán. Rollups, coprocessors và bất kỳ hình thức tính toán ngoại vi có thể xác minh khác đều là các phiên bản khác nhau của tương lai này.

Lịch sử hình thành của chúng tôi:

Trong bài viết “Giới Hạn về Khả năng Mở Rộng Blockchain,” Vitalik đã đề cập rằng để đạt được sự phân quyền trên blockchain, điều quan trọng là người dùng thông thường có thể vận hành một node.

Như đã đề cập trước đó, Ethereum có thể được hiểu như một máy tính toàn cầu phi tập trung ở nhiều khía cạnh. Đó là một mạng lưới các nút chạy phần mềm cung cấp tài nguyên tính toán để thực thi các hợp đồng thông minh. Blockchain Ethereum lưu trữ thông tin trạng thái và mã, tương tự như bộ nhớ và lưu trữ của máy tính. Và Máy ảo Ethereum (EVM) chạy trên mỗi nút, xử lý giao dịch và thực thi mã như một CPU. Tuy nhiên, Ethereum là phi cấp phép và phi tập trung, sử dụng sự đồng thuận giữa các nút không tin cậy. Nếu một số nút bị ngắt kết nối, mạng vẫn tiếp tục hoạt động. Để đảm bảo tính chính xác của các hoạt động EVM, các nhà xác minh trên các mạng Proof-of-Stake (PoS) như Ethereum phải thực hiện tất cả các chuyển đổi trạng thái để xác minh chúng. Điều này giới hạn tốc độ của mạng PoS đến các nút chậm nhất, hạn chế lượng tính toán mà các nhà phát triển ứng dụng có sẵn.

Khác với một máy tính thông thường, Ethereum giới hạn tính toán và lưu trữ để ngăn chặn lạm dụng mạng. Phí được tính cho mỗi hoạt động, làm cho việc lặp vô hạn không khả thi về mặt tài chính. Phương pháp này giữ cho rào cản tham gia thấp, cho phép phần cứng hàng ngày như Raspberry Pi chạy các nút mạng. Những hạn chế này cho phép hệ thống bao gồm mọi người có thể giúp vận hành mạng lưới Ethereum phi tập trung.

Doanh nghiệp không thể chạy trực tiếp trên Ethereum vào ngày hôm nay do các hạn chế tính toán của các nút Ethereum, như các mô hình Học máy, trò chơi hoặc ứng dụng tính toán khoa học phức tạp.

Đó là một sự đánh đổi để làm cho Ethereum dễ dàng truy cập, an toàn và bền vững như một nền tảng cho các ứng dụng cơ bản. Nhưng không thể tránh khỏi, một số hạn chế tồn tại so với một máy tính không hạn chế về tính toán. Nó có hạn chế khi so sánh với một bộ xử lý cổ điển như Pentium 5:

Không có toán học dấu phẩy động phức tạp - EVM chỉ hỗ trợ các phép toán cơ bản và logic. Các tính toán số học nâng cao như mạng nơ-ron không khả thi. (Một điều thú vị là việc không thể xử lý dấu phẩy động cũng khiến việc trao đổi tài sản rebase như Ampleforth, v.v., khó khăn trong lịch sử gần đây và đôi khi thậm chí không tương thích với một số DEXs).

Hạn chế tính toán mỗi block - Phí gas đo lường các phép tính, vì vậy phần mềm phức tạp như trò chơi sẽ rất đắt đỏ. Giới hạn gas mỗi block là 30 triệu gas.

Bộ nhớ hạn chế - Hợp đồng thông minh có giới hạn lưu trữ cố định nhỏ, làm cho việc tạo chương trình lớn trở nên khó khăn.

Không có lưu trữ tệp cố định - Không có cách để lưu trữ các tệp như đồ họa, âm thanh, hoặc video trên blockchain.

Tốc độ chậm - Tốc độ giao dịch trên Ethereum hiện đang ở mức khoảng ~15 TPS, nhiều hàng động chậm hơn nhiều lần so với một CPU.

Cuối cùng, việc lưu trữ và tính toán có hạn chế tự do sẵn có cho các ứng dụng (những hạn chế này khác nhau từ blockchain này sang blockchain khác, nhưng chúng luôn tồn tại). Mọi người đã so sánh blockchain với môi trường tính toán bị hạn chế của thập niên 1970-1980, nhưng chúng tôi nghĩ rằng có một số sự khác biệt lớn giữa hai cái này:

Sự phát triển của máy tính trong những năm 1970-1980 đã diễn ra nhanh chóng (với số lượng transistor trong bộ vi xử lý tăng từ ~1.000 lên đến ~1.000.000 trong khoảng thời gian đó). Nhưng sự phát triển này không có nghĩa là người ta thường xuyên mua hoặc cập nhật máy tính của họ. Khi các nền tảng hợp đồng thông minh bị hạn chế bởi các nút chậm nhất của chúng, một tăng tốc tại đỉnh cao của máy tính không nhất thiết dẫn đến việc blockchain thấy được một tăng tốc tính toán tương ứng. Một tăng tốc chỉ có thể xảy ra nếu các yêu cầu cơ bản cho các nút trên blockchain được cập nhật.

Cũng có một sự đánh đổi rõ ràng giữa việc liên tục cập nhật yêu cầu phần cứng tối thiểu cho các nút và sự phân quyền. Người chơi đơn có thể không muốn nâng cấp phần cứng mỗi vài năm (và chắc chắn họ không muốn theo dõi hiệu suất hàng ngày), dẫn đến chỉ có các chuyên gia muốn vận hành cơ sở hạ tầng blockchain.

Tất cả những điều này là để nói rằng, trong những năm qua, CPU đã được cải thiện và chúng tôi có nhiều lõi CPU hơn trên mọi thiết bị để cho phép chúng tôi thực hiện các tác vụ phức tạp dần dần. Nếu chúng ta nghĩ rằng các máy tính blockchain sẽ không tăng tốc nhanh như điện toán truyền thống (do yêu cầu nút cơ bản), thì việc cố gắng tìm các nguồn tính toán thay thế là điều hợp lý. Một sự tương tự thú vị để kéo ở đây là CPU trong điện toán truyền thống không giỏi trong các tác vụ xử lý đồ họa, dẫn đến sự gia tăng của GPU trong hầu hết mọi máy tính. Tương tự, vì các blockchain đang tập trung vào việc trở thành các kho lưu trữ trạng thái an toàn với pin tính toán đơn giản được bật, nên có một cơ hội rõ ràng cho tính toán ngoài chuỗi để mở rộng không gian thiết kế ứng dụng. Ngày nay, blockchain chỉ có ý nghĩa đối với các ứng dụng tính toán thấp muốn các thuộc tính như truy cập mở, tự chủ quyền, chống kiểm duyệt và khả năng kết hợp. Để đưa nhiều ứng dụng hơn vào chuỗi, chúng ta cần dỡ bỏ các ràng buộc mà chúng ta đặt ra cho các nhà phát triển ứng dụng. Chúng tôi nói điều này với sự hiểu biết rằng những ràng buộc này cũng là một lợi ích cho thử nghiệm. Ví dụ: CLOB không thể chạy hiệu quả trên Ethereum do các hạn chế về tính toán, vì vậy AMM đã được áp dụng, kể từ đó đã đạt được khối lượng hàng nghìn tỷ đô la.

Có hai phương pháp phổ biến để cung cấp thêm tài nguyên tính toán cho các ứng dụng blockchain:

Tăng yêu cầu nền tảng node tương đối thường xuyên. Điều này xấp xỉ con đường tích hợp các blockchain hiệu suất cao như Solana và Sui đi. Một nền tảng cao cho các node cho phép chúng xây dựng một blockchain rất nhanh và cũng loại bỏ một số ràng buộc thiết kế từ thiết kế ứng dụng. Phoenix, một Sàn giao dịch đặt lệnh giới hạn trên Solana, không thể được xây dựng trên Ethereum (hoặc bất kỳ L2 nào) hiện nay. Mặt trái của việc tăng yêu cầu nền tảng là nếu chúng tăng liên tục, thì việc vận hành node có thể chỉ khả thi đối với các nhà cung cấp cơ sở hạ tầng chuyên nghiệp. Yêu cầu RAM lịch sử đã thực hiện khá tốt việc trình bày cách yêu cầu về phần cứng đã tăng một cách liên tục trên Solana:

Lưu trữ Web (Lưu ý: Chúng tôi sử dụng yêu cầu RAM trung bình từ năm 2020)

Di chuyển tính toán ra khỏi chuỗi thành các bên thứ ba. Đây là chiến lược mà hệ sinh thái Ethereum đã áp dụng. Các bên thứ ba này có thể là chính các chuỗi khối (trong trường hợp của rollups), thiết bị tính toán có thể xác minh ngoại chuỗi (tức là, bộ xử lý phụ), hoặc các bên thứ ba đáng tin cậy (như trường hợp của tính toán ngoại chuỗi cụ thể ứng dụng như sổ lệnh của dydx).

Hướng tới việc thống nhất tính toán ngoại chuỗi

Gần đây, đã có nhiều cuộc trò chuyện về các bộ xử lý phụ, cung cấp tính toán có thể xác minh ngoại chuỗi. Các bộ xử lý phụ có thể được triển khai theo nhiều cách khác nhau, bao gồm nhưng không giới hạn ở Các bằng chứng không biết hoặc Môi trường Thực thi Đáng tin cậy (TEEs). Một số ví dụ là:

ZK bộ xử lý: Axiom, Risc Zero's Bonsai.

TEEs: Hàu của Marlin,

Đồng thời, khi đến việc giảm phần tính toán, lộ trình tập trung vào rollup của Ethereum giảm phần tính toán cho các rollup khác giải quyết trên Ethereum. Trong vài năm qua, một luồng liên tục các nhà phát triển và người dùng đã di chuyển sang rollups do sự kết hợp của giao dịch rẻ hơn, nhanh hơn và các động cơ do rollups cung cấp. Trong một thế giới lý tưởng, rollups cho phép Ethereum mở rộng khả năng tính toán tổng thể của mình thông qua thực thi ngoại chuỗi mà không cần thêm giả định về niềm tin. Việc tăng phần tính toán không chỉ đề cập đến việc thực thi nhiều giao dịch hơn mà còn đến việc thực hiện phần tính toán biểu đạt hơn cho mỗi giao dịch. Các loại giao dịch mới mở rộng không gian thiết kế có sẵn cho các ứng dụng, và tăng cường thông lượng giảm chi phí thực hiện các giao dịch biểu đạt này, đảm bảo việc truy cập chi phí phải chăng đến một loại ứng dụng cao cấp hơn.

Trước khi chúng ta tiến xa hơn, hãy định nghĩa ngắn gọn cả hai rollups và coprocessors để tránh hiểu lầm:

Rollups: Rollups duy trì trạng thái phân chia bền vững khác biệt so với chuỗi cơ sở/đầu mối của chúng nhưng vẫn kế thừa các thuộc tính bảo mật của chuỗi cơ sở bằng cách đăng dữ liệu/chứng minh cho nó. Bằng cách di chuyển trạng thái khỏi chuỗi đầu mối, rollups có thể sử dụng tính toán bổ sung để thực hiện các chuyển đổi trạng thái trước khi đăng chứng minh về tính nguyên vẹn của các chuyển đổi trạng thái này đến máy chủ. Rollups hữu ích nhất đối với người dùng không muốn trả các phí cao trên Ethereum nhưng muốn truy cập các thuộc tính bảo mật của Ethereum.

Trước khi đi sâu vào các bộ xử lý phụ, hãy cung cấp thêm một số thông tin về việc phát triển hợp đồng thông minh bị hạn chế trên Ethereum hiện nay. Ethereum có lưu trữ trạng thái cố định trong trạng thái toàn cục của nó - số dư tài khoản, dữ liệu hợp đồng, v.v. Dữ liệu này tồn tại trên blockchain mãi mãi. Tuy nhiên, có các hạn chế:

Kích thước tối đa của dữ liệu hợp đồng bị giới hạn (ví dụ, hiện tại là 24KB mỗi hợp đồng và được thiết lập trong EIP 170). Việc lưu trữ các tệp lớn sẽ vượt quá giới hạn này. (*Không được giải quyết bởi bộ xử lý phụ).

Việc đọc/viết lưu trữ hợp đồng chậm hơn so với hệ thống tệp hoặc cơ sở dữ liệu. Truy cập 1KB dữ liệu có thể tốn hàng triệu khí gas.

Trong khi trạng thái toàn cầu vẫn tồn tại, các nút cá nhân chỉ giữ lại trạng thái gần đây một cách cục bộ trong chế độ “cắt tỉa”. Lịch sử trạng thái đầy đủ yêu cầu một nút lưu trữ lưu trữ.

Không có nguyên tố hệ thống tệp địa phương để xử lý tệp như hình ảnh, âm thanh và tài liệu. Hợp đồng thông minh chỉ có thể đọc/ghi các loại dữ liệu cơ bản vào bộ nhớ.

Các giải pháp xung quanh điều này là:

Tập tin lớn có thể được chia thành các phần nhỏ hơn để vừa với giới hạn lưu trữ hợp đồng.

Các tham chiếu tệp có thể được lưu trữ trên chuỗi, với các tệp được lưu trữ ngoài chuỗi trong các hệ thống như IPFS.

Coprocessors: Coprocessors không duy trì bất kỳ trạng thái nào; chúng hoạt động giống như các hàm lambda trên AWS, nơi các ứng dụng có thể gửi một tác vụ tính toán đến chúng, và chúng trả lại kết quả với bằng chứng của việc tính toán. Coprocessors tăng mức độ tính toán có sẵn cho bất kỳ giao dịch cụ thể nào, nhưng vì việc chứng minh trên coprocessors cũng xảy ra trên cơ sở từng giao dịch, việc sử dụng chúng sẽ tốn kém hơn so với rollups. Với chi phí đó, có lẽ coprocessors sẽ hữu ích đối với các giao thức hoặc người dùng muốn thực hiện các tác vụ phức tạp một cách có thể xác minh. Một lợi ích khác của coprocessors là chúng cho phép các ứng dụng sử dụng tính toán ngoại chuỗi cũng truy cập vào toàn bộ trạng thái lịch sử của Ethereum mà không cần thêm bất kỳ giả định nào đối với ứng dụng chính nó; điều này không thể thực hiện trên một hợp đồng thông minh vanilla hiện nay.

Để làm rõ sự khác biệt giữa rollups và coprocessors, hãy tham khảo các biến thể ZK của cả hai nguyên tắc này. ZK rollups truy cập cả khả năng xác minh và khía cạnh nén của chứng minh zero-knowledge, cho phép họ tăng hiệu suất cơ bản cho hệ sinh thái của họ. Ngược lại, coprocessors chỉ truy cập vào thuộc tính xác minh của zk proofs, có nghĩa là tổng hiệu suất của hệ thống vẫn giữ nguyên. Ngoài ra, ZK rollups yêu cầu mạch có thể chứng minh bất kỳ chương trình nào dành cho máy ảo mục tiêu cho rollup đó (ví dụ, rollups trên Ethereum đã xây dựng zkEVMs cho các hợp đồng dành cho EVM). Ngược lại, ZK coprocessors chỉ cần xây dựng mạch cho các nhiệm vụ mà họ được giao thực hiện.

Vậy, dường như hai sự khác biệt lớn nhất giữa rollups và coprocessors là:

Rollups duy trì một trạng thái cố định được phân chia, và bộ xử lý không (họ sử dụng trạng thái của chuỗi máy chủ).

Rollups (như tên gợi ý) gom nhiều giao dịch cùng nhau, và bộ xử lý phụ thường được sử dụng cho các nhiệm vụ phức tạp như một phần của một giao dịch duy nhất (ít nhất là trong mô hình hiện tại).

Gần đây, Booster Rollups đã được đề xuất, thực thi giao dịch như thể chúng đang chạy trực tiếp trên chuỗi máy chủ, với quyền truy cập đầy đủ vào trạng thái của máy chủ. Tuy nhiên, Booster Rollups cũng có bộ nhớ riêng, cho phép họ mở rộng tính toán và lưu trữ trên cả máy chủ và rollup. Đề xuất Booster Rollup chỉ ra cách mà có một phổ trong thiết kế tính toán ngoại chuỗi, với các rollups truyền thống và bộ xử lý chính ngồi ở hai đầu của phổ này. Rollups, Booster Rollups và Coprocessors đều cung cấp quyền truy cập vào tính toán hơn và chỉ khác nhau ở việc giữ bao nhiêu trạng thái được phân chia từ L1 cơ bản của họ.

Trong một bài nói chuyện tại Modular Summit, 2023 có tên là “Giao dịch được bảo vệ là Rollups”, Henry De Valence đã nói về khái niệm chính xác này và trình bày một hình ảnh rất đơn giản để định nghĩa Rollup:

Bài thuyết trình cho rằng bất kỳ thực thi nào được chuyển giao bởi chuỗi cơ sở cho một bên thứ ba đều là một rollup. Theo định nghĩa của anh ấy, các bộ xử lý cộng tác cũng sẽ là rollups. Điều này hơi khác biệt so với quan điểm của chúng tôi về việc thống nhất rollups và bộ xử lý cộng tác dưới băng rôn của tính toán xác minh ngoại chuỗi nhưng tinh thần tổng thể vẫn giữ nguyên!

Trong tầm nhìn Endgame của mình, Vitalik thảo luận về một tương lai nơi sản xuất khối được tập trung và xác nhận khối là không đáng tin cậy và rất phân cấp. Chúng tôi tin rằng đây là mô hình chính xác để suy nghĩ về những gì đang diễn ra hiện nay. Trong một zk-rollup, sản xuất khối và tính toán chuyển đổi trạng thái được tập trung. Tuy nhiên, các bằng chứng cho phép việc xác minh trở nên rẻ và phân cấp. Tương tự, một zk-coprocessor không có sản xuất khối; nó chỉ truy cập dữ liệu lịch sử và tính toán chuyển đổi trạng thái trên dữ liệu này. Việc tính toán trên một zk-coprocessor có khả năng luôn được thực hiện trên một máy tập trung; tuy nhiên, bằng chứng về tính hợp lệ được trả về cùng với kết quả cho phép bất kỳ ai kiểm tra kết quả trước khi sử dụng chúng. Có lẽ đúng khi nói lại tầm nhìn của Vitalik là: "một tương lai nơi tính toán được tập trung, nhưng việc xác minh tính toán tập trung là không đáng tin cậy và rất phân cấp."

Giống nhau nhưng khác nhau

Mặc dù tương đồng về tổng thể, nhưng rollups và bộ xử lý phụ phục vụ hai thị trường khác nhau hiện nay. Một người có thể hỏi, “Nếu chúng ta có thể sử dụng một bộ xử lý phụ trên ETH L1 và truy cập thanh khoản của nó, tại sao chúng ta cần rollups?” mặc dù đây là một câu hỏi hợp lý, chúng tôi nghĩ rằng vẫn có một số lý do tại sao rollups vẫn hợp lý (và mang lại một cơ hội thị trường lớn hơn nhiều so với bộ xử lý phụ hiện nay):

Như đã đề cập trước đó, các bộ xử lý phụ cho phép bạn truy cập nhiều tính toán hơn trong cùng một giao dịch so với L1. Nhưng chúng không thể giúp di chuyển kim chỉ số về số giao dịch có thể được thực hiện bởi blockchain đang gọi bộ xử lý phụ (nếu bạn nghĩ về gom góp, voilà, bạn đã đến với một rollup). Bằng cách duy trì trạng thái cố định được phân vùng, rollups có thể tăng số lượng giao dịch có sẵn cho những người muốn truy cập không gian khối với các tính chất an ninh của Ethereum. Điều này là có thể vì rollups chỉ đăng lên Ethereum mỗi n khối và không yêu cầu tất cả các xác nhận viên Ethereum xác minh một chuyển tiếp trạng thái đã xảy ra. Các bên liên quan chỉ cần dựa vào chứng minh.

Ngay cả khi bạn sử dụng bộ xử lý phụ, bạn vẫn phải trả cùng mức phí xấp xỉ như bất kỳ giao dịch nào khác trên L1. Trong khi đó, rollups thông qua việc gom nhóm có thể giảm chi phí đáng kể.

Ngoài ra, vì rollups cung cấp khả năng chạy giao dịch trên trạng thái riêng này, chúng vẫn hoạt động như các chuỗi khối (nhanh hơn, ít phân cấp hơn, nhưng vẫn là chuỗi khối), vì vậy chúng cũng có giới hạn rõ ràng về việc truy cập bao nhiêu tính toán từ rollup chính. Trong tình huống này, một bộ xử lý song song có thể hữu ích cho rollups nếu người dùng muốn thực hiện giao dịch tùy ý phức tạp (và bây giờ bạn đang thực hiện giao dịch có thể xác minh trên một rollup, vì vậy bạn chỉ cần tuân theo các nguyên lý vật lý của rollup).

Một điểm quan trọng khác cần lưu ý ở đây là hầu hết thanh khoản hiện nay đều tồn tại trên ETH L1, vì vậy đối với nhiều giao thức phụ thuộc vào thanh khoản để cải thiện sản phẩm của họ, có thể là một ý kiến khôn ngoan vẫn là phải ra mắt trên Ethereum mainnet. Một ứng dụng trên Ethereum mainnet có thể truy cập vào nhiều tính toán hơn bằng cách thực hiện giao dịch định kỳ trên một bộ xử lý phụ. Ví dụ, một sàn giao dịch phi tập trung như Ambient hoặc Uniswap v4 có thể sử dụng hooks kết hợp với bộ xử lý phụ để thực hiện logic phức tạp về cách thay đổi phí hoặc thậm chí điều chỉnh hình dạng của đường cong thanh khoản dựa trên dữ liệu thị trường.

Một phép so sánh thú vị so sánh sự tương tác giữa rollups và bộ xử lý phụ với lập trình mệnh lệnh và lập trình hàm. Lập trình mệnh lệnh tập trung vào trạng thái có thể thay đổi và hiệu ứng phụ, chỉ định từng bước cách thực thi các nhiệm vụ. Lập trình hàm nhấn mạnh vào dữ liệu không thay đổi và hàm thuần, tránh thay đổi trạng thái và hiệu ứng phụ. Tương tự, rollups giống như các chương trình mệnh lệnh sửa đổi trạng thái mà chúng giữ, trong khi bộ xử lý phụ giống như các chương trình hàm mà chúng không biến đổi trạng thái mà tạo ra kết quả cùng với chứng minh tính toán. Hơn nữa, giống như lập trình mệnh lệnh và hàm, rollups và bộ xử lý phụ có vị trí của riêng mình và nên sử dụng phù hợp.

Một Tương Lai Dựa Trên Bằng Chứng

Nếu chúng ta kết thúc trong một thế giới nơi tính toán được tập trung, nhưng việc xác minh tính toán tập trung là không đáng tin cậy và phân cấp cao, thì Ethereum sẽ ở đâu? Liệu máy tính thế giới có bị giảm xuống chỉ là một cơ sở dữ liệu đơn thuần không? Điều này có phải là điều tồi tệ không?

Cuối cùng, mục tiêu của Ethereum là cung cấp cho người dùng quyền truy cập vào tính toán và lưu trữ không tin cậy. Trước đây, cách duy nhất để truy cập tính toán không tin cậy trên Ethereum là tính toán được thực hiện và xác minh bởi tất cả các nút. Với sự tiến bộ của các kỹ thuật chứng minh (đặc biệt là bằng chứng không có kiến thức), chúng ta có thể chuyển phần lớn tính toán đã xảy ra trên các nút xác thực sang tính toán ngoài chuỗi và chỉ có người xác thực xác minh kết quả trên chuỗi. Điều này về cơ bản biến Ethereum thành bảng thông báo bất biến của thế giới. Bằng chứng tính toán cho phép chúng tôi xác minh rằng một giao dịch đã được thực hiện chính xác và bằng cách đăng chúng lên Ethereum, chúng tôi có được dấu thời gian và kho lưu trữ lịch sử bất biến cho các bằng chứng này. Khi các bằng chứng không có kiến thức trở nên hiệu quả hơn đối với tính toán tùy ý, có khả năng đến một lúc nào đó chi phí để thực hiện tính toán trong ZK sẽ thấp hơn đáng kể so với chi phí để thực hiện trên blockchain (thậm chí có thể là chuỗi CometBFT 100 trình xác thực). Trong một thế giới như vậy, thật khó để tưởng tượng rằng các bằng chứng ZK sẽ không trở thành phương thức thống trị để truy cập vào máy tính không tin cậy. Những suy nghĩ tương tự cũng đã được David Wong lặp lại gần đây:

Một tương lai trong đó mọi tính toán đều có thể được chứng minh cũng cho phép chúng ta xây dựng cơ sở hạ tầng cho các ứng dụng không tin cậy mà người dùng yêu cầu thay vì cố gắng phổ biến lớp cơ sở Ethereum để trở thành nơi cho các ứng dụng đó. Trong trường hợp lý tưởng, cơ sở hạ tầng được tùy chỉnh sẽ tạo ra trải nghiệm người dùng mượt mà hơn và cũng sẽ mở rộng cùng với các ứng dụng được xây dựng trên đó. Điều này hy vọng sẽ cho phép các ứng dụng web3 cạnh tranh với những đối thủ web2 của họ và đưa vào tương lai không tin cậy, dựa trên chứng cứ mà những cypherpunks luôn mơ ước.

Tất cả trong tất cả, chúng tôi tin rằng chúng ta đang tiến về một mô hình sau:

————————————————————Không tin, xác minh————————————————————-

Tuyên bố từ chối trách nhiệm:

  1. Bài viết này được tái bản từ [Gategương]. Tất cả bản quyền thuộc về tác giả gốc [Jacob Ko]. Nếu có ý kiến ​​phản đối về việc tái bản này, vui lòng liên hệ Gate Họcđội ngũ và họ sẽ xử lý ngay lập tức.
  2. Liability Disclaimer: Quan điểm và ý kiến được thể hiện trong bài viết này hoàn toàn thuộc về tác giả và không đại diện cho bất kỳ lời khuyên đầu tư nào.
  3. Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được nêu, việc sao chép, phân phối hoặc vi phạm bản quyền các bài viết đã dịch là cấm.

Xử lý ngoại chuỗi là tất cả những gì bạn cần

Trung cấp1/4/2024, 5:43:45 PM
Bài viết này giới thiệu các khái niệm về các bộ xử lý cộng tác và Rollup, cũng như sự tách rời mô-đun của việc tính toán và xác minh blockchain trong tương lai.

Giới thiệu

Blockchain là các cuốn sách phân phối toàn cầu đạt được sự nhất quán trên trạng thái toàn cầu. Một số blockchain đi kèm với môi trường thực thi hoàn chỉnh Turing cho phép lập trình trên cơ sở trạng thái toàn cầu này. Các chương trình nhắm mục tiêu vào môi trường thực thi của blockchain được gọi là hợp đồng thông minh, và các blockchain cơ bản được gọi là nền tảng hợp đồng thông minh. Ethereum, Solana và Avalanche là một số nền tảng hợp đồng thông minh được biết đến rộng rãi nhất. Chúng ta có thể tưởng tượng nền tảng hợp đồng thông minh như các máy tính phân tán, với môi trường thực thi (hoặc máy ảo) hoạt động giống như CPU và trạng thái thực hiện vai trò của bộ nhớ.

Cách tiếp cận này về các chuỗi khối như máy tính sẽ quan trọng để thúc đẩy lý do tại sao bộ xử lý phụ/tính toán ngoài chuỗi là không thể tránh khỏi, đặc biệt trong ngữ cảnh của các chuỗi khối. Trong tính toán truyền thống, bộ xử lý phụ xuất phát từ cấu trúc vi mạch để tăng hiệu suất. Tương tự, các bộ xử lý phụ trên Ethereum hứa hẹn truy cập vào dữ liệu lịch sử và tính toán ngoài chuỗi có hiệu suất cao để bổ sung các tính năng và không gian thiết kế của giao thức tầng cơ bản. Hãy xem bài viết giới thiệu này về các bộ xử lý phụ để biết thêm chi tiết.

Bài viết này khám phá về các bộ xử lý phụ từ cơ bản, mục tiêu là làm sáng tỏ về sự quan trọng và các thuộc tính siêu. Chúng tôi sau đó so sánh chúng với rollups, chứng minh cách hai khái niệm này, mặc dù khác nhau, nhưng lại có mối liên quan chặt chẽ. Chúng tôi cũng cung cấp các ví dụ về khi nào rollups và bộ xử lý phụ có thể được sử dụng cùng nhau. Ví dụ, ngay cả một rollup hoặc L1 mạnh mẽ nhất cũng có thể cần một bộ xử lý phụ để xử lý các nhiệm vụ nặng nề.

Chúng tôi kết luận bài viết này bằng việc quan sát rằng các chuỗi khối đang tiến tới một tương lai trong đó tính toán được tập trung, nhưng việc xác minh vẫn giữ ở tình trạng phân tán. Rollups, coprocessors và bất kỳ hình thức tính toán ngoại vi có thể xác minh khác đều là các phiên bản khác nhau của tương lai này.

Lịch sử hình thành của chúng tôi:

Trong bài viết “Giới Hạn về Khả năng Mở Rộng Blockchain,” Vitalik đã đề cập rằng để đạt được sự phân quyền trên blockchain, điều quan trọng là người dùng thông thường có thể vận hành một node.

Như đã đề cập trước đó, Ethereum có thể được hiểu như một máy tính toàn cầu phi tập trung ở nhiều khía cạnh. Đó là một mạng lưới các nút chạy phần mềm cung cấp tài nguyên tính toán để thực thi các hợp đồng thông minh. Blockchain Ethereum lưu trữ thông tin trạng thái và mã, tương tự như bộ nhớ và lưu trữ của máy tính. Và Máy ảo Ethereum (EVM) chạy trên mỗi nút, xử lý giao dịch và thực thi mã như một CPU. Tuy nhiên, Ethereum là phi cấp phép và phi tập trung, sử dụng sự đồng thuận giữa các nút không tin cậy. Nếu một số nút bị ngắt kết nối, mạng vẫn tiếp tục hoạt động. Để đảm bảo tính chính xác của các hoạt động EVM, các nhà xác minh trên các mạng Proof-of-Stake (PoS) như Ethereum phải thực hiện tất cả các chuyển đổi trạng thái để xác minh chúng. Điều này giới hạn tốc độ của mạng PoS đến các nút chậm nhất, hạn chế lượng tính toán mà các nhà phát triển ứng dụng có sẵn.

Khác với một máy tính thông thường, Ethereum giới hạn tính toán và lưu trữ để ngăn chặn lạm dụng mạng. Phí được tính cho mỗi hoạt động, làm cho việc lặp vô hạn không khả thi về mặt tài chính. Phương pháp này giữ cho rào cản tham gia thấp, cho phép phần cứng hàng ngày như Raspberry Pi chạy các nút mạng. Những hạn chế này cho phép hệ thống bao gồm mọi người có thể giúp vận hành mạng lưới Ethereum phi tập trung.

Doanh nghiệp không thể chạy trực tiếp trên Ethereum vào ngày hôm nay do các hạn chế tính toán của các nút Ethereum, như các mô hình Học máy, trò chơi hoặc ứng dụng tính toán khoa học phức tạp.

Đó là một sự đánh đổi để làm cho Ethereum dễ dàng truy cập, an toàn và bền vững như một nền tảng cho các ứng dụng cơ bản. Nhưng không thể tránh khỏi, một số hạn chế tồn tại so với một máy tính không hạn chế về tính toán. Nó có hạn chế khi so sánh với một bộ xử lý cổ điển như Pentium 5:

Không có toán học dấu phẩy động phức tạp - EVM chỉ hỗ trợ các phép toán cơ bản và logic. Các tính toán số học nâng cao như mạng nơ-ron không khả thi. (Một điều thú vị là việc không thể xử lý dấu phẩy động cũng khiến việc trao đổi tài sản rebase như Ampleforth, v.v., khó khăn trong lịch sử gần đây và đôi khi thậm chí không tương thích với một số DEXs).

Hạn chế tính toán mỗi block - Phí gas đo lường các phép tính, vì vậy phần mềm phức tạp như trò chơi sẽ rất đắt đỏ. Giới hạn gas mỗi block là 30 triệu gas.

Bộ nhớ hạn chế - Hợp đồng thông minh có giới hạn lưu trữ cố định nhỏ, làm cho việc tạo chương trình lớn trở nên khó khăn.

Không có lưu trữ tệp cố định - Không có cách để lưu trữ các tệp như đồ họa, âm thanh, hoặc video trên blockchain.

Tốc độ chậm - Tốc độ giao dịch trên Ethereum hiện đang ở mức khoảng ~15 TPS, nhiều hàng động chậm hơn nhiều lần so với một CPU.

Cuối cùng, việc lưu trữ và tính toán có hạn chế tự do sẵn có cho các ứng dụng (những hạn chế này khác nhau từ blockchain này sang blockchain khác, nhưng chúng luôn tồn tại). Mọi người đã so sánh blockchain với môi trường tính toán bị hạn chế của thập niên 1970-1980, nhưng chúng tôi nghĩ rằng có một số sự khác biệt lớn giữa hai cái này:

Sự phát triển của máy tính trong những năm 1970-1980 đã diễn ra nhanh chóng (với số lượng transistor trong bộ vi xử lý tăng từ ~1.000 lên đến ~1.000.000 trong khoảng thời gian đó). Nhưng sự phát triển này không có nghĩa là người ta thường xuyên mua hoặc cập nhật máy tính của họ. Khi các nền tảng hợp đồng thông minh bị hạn chế bởi các nút chậm nhất của chúng, một tăng tốc tại đỉnh cao của máy tính không nhất thiết dẫn đến việc blockchain thấy được một tăng tốc tính toán tương ứng. Một tăng tốc chỉ có thể xảy ra nếu các yêu cầu cơ bản cho các nút trên blockchain được cập nhật.

Cũng có một sự đánh đổi rõ ràng giữa việc liên tục cập nhật yêu cầu phần cứng tối thiểu cho các nút và sự phân quyền. Người chơi đơn có thể không muốn nâng cấp phần cứng mỗi vài năm (và chắc chắn họ không muốn theo dõi hiệu suất hàng ngày), dẫn đến chỉ có các chuyên gia muốn vận hành cơ sở hạ tầng blockchain.

Tất cả những điều này là để nói rằng, trong những năm qua, CPU đã được cải thiện và chúng tôi có nhiều lõi CPU hơn trên mọi thiết bị để cho phép chúng tôi thực hiện các tác vụ phức tạp dần dần. Nếu chúng ta nghĩ rằng các máy tính blockchain sẽ không tăng tốc nhanh như điện toán truyền thống (do yêu cầu nút cơ bản), thì việc cố gắng tìm các nguồn tính toán thay thế là điều hợp lý. Một sự tương tự thú vị để kéo ở đây là CPU trong điện toán truyền thống không giỏi trong các tác vụ xử lý đồ họa, dẫn đến sự gia tăng của GPU trong hầu hết mọi máy tính. Tương tự, vì các blockchain đang tập trung vào việc trở thành các kho lưu trữ trạng thái an toàn với pin tính toán đơn giản được bật, nên có một cơ hội rõ ràng cho tính toán ngoài chuỗi để mở rộng không gian thiết kế ứng dụng. Ngày nay, blockchain chỉ có ý nghĩa đối với các ứng dụng tính toán thấp muốn các thuộc tính như truy cập mở, tự chủ quyền, chống kiểm duyệt và khả năng kết hợp. Để đưa nhiều ứng dụng hơn vào chuỗi, chúng ta cần dỡ bỏ các ràng buộc mà chúng ta đặt ra cho các nhà phát triển ứng dụng. Chúng tôi nói điều này với sự hiểu biết rằng những ràng buộc này cũng là một lợi ích cho thử nghiệm. Ví dụ: CLOB không thể chạy hiệu quả trên Ethereum do các hạn chế về tính toán, vì vậy AMM đã được áp dụng, kể từ đó đã đạt được khối lượng hàng nghìn tỷ đô la.

Có hai phương pháp phổ biến để cung cấp thêm tài nguyên tính toán cho các ứng dụng blockchain:

Tăng yêu cầu nền tảng node tương đối thường xuyên. Điều này xấp xỉ con đường tích hợp các blockchain hiệu suất cao như Solana và Sui đi. Một nền tảng cao cho các node cho phép chúng xây dựng một blockchain rất nhanh và cũng loại bỏ một số ràng buộc thiết kế từ thiết kế ứng dụng. Phoenix, một Sàn giao dịch đặt lệnh giới hạn trên Solana, không thể được xây dựng trên Ethereum (hoặc bất kỳ L2 nào) hiện nay. Mặt trái của việc tăng yêu cầu nền tảng là nếu chúng tăng liên tục, thì việc vận hành node có thể chỉ khả thi đối với các nhà cung cấp cơ sở hạ tầng chuyên nghiệp. Yêu cầu RAM lịch sử đã thực hiện khá tốt việc trình bày cách yêu cầu về phần cứng đã tăng một cách liên tục trên Solana:

Lưu trữ Web (Lưu ý: Chúng tôi sử dụng yêu cầu RAM trung bình từ năm 2020)

Di chuyển tính toán ra khỏi chuỗi thành các bên thứ ba. Đây là chiến lược mà hệ sinh thái Ethereum đã áp dụng. Các bên thứ ba này có thể là chính các chuỗi khối (trong trường hợp của rollups), thiết bị tính toán có thể xác minh ngoại chuỗi (tức là, bộ xử lý phụ), hoặc các bên thứ ba đáng tin cậy (như trường hợp của tính toán ngoại chuỗi cụ thể ứng dụng như sổ lệnh của dydx).

Hướng tới việc thống nhất tính toán ngoại chuỗi

Gần đây, đã có nhiều cuộc trò chuyện về các bộ xử lý phụ, cung cấp tính toán có thể xác minh ngoại chuỗi. Các bộ xử lý phụ có thể được triển khai theo nhiều cách khác nhau, bao gồm nhưng không giới hạn ở Các bằng chứng không biết hoặc Môi trường Thực thi Đáng tin cậy (TEEs). Một số ví dụ là:

ZK bộ xử lý: Axiom, Risc Zero's Bonsai.

TEEs: Hàu của Marlin,

Đồng thời, khi đến việc giảm phần tính toán, lộ trình tập trung vào rollup của Ethereum giảm phần tính toán cho các rollup khác giải quyết trên Ethereum. Trong vài năm qua, một luồng liên tục các nhà phát triển và người dùng đã di chuyển sang rollups do sự kết hợp của giao dịch rẻ hơn, nhanh hơn và các động cơ do rollups cung cấp. Trong một thế giới lý tưởng, rollups cho phép Ethereum mở rộng khả năng tính toán tổng thể của mình thông qua thực thi ngoại chuỗi mà không cần thêm giả định về niềm tin. Việc tăng phần tính toán không chỉ đề cập đến việc thực thi nhiều giao dịch hơn mà còn đến việc thực hiện phần tính toán biểu đạt hơn cho mỗi giao dịch. Các loại giao dịch mới mở rộng không gian thiết kế có sẵn cho các ứng dụng, và tăng cường thông lượng giảm chi phí thực hiện các giao dịch biểu đạt này, đảm bảo việc truy cập chi phí phải chăng đến một loại ứng dụng cao cấp hơn.

Trước khi chúng ta tiến xa hơn, hãy định nghĩa ngắn gọn cả hai rollups và coprocessors để tránh hiểu lầm:

Rollups: Rollups duy trì trạng thái phân chia bền vững khác biệt so với chuỗi cơ sở/đầu mối của chúng nhưng vẫn kế thừa các thuộc tính bảo mật của chuỗi cơ sở bằng cách đăng dữ liệu/chứng minh cho nó. Bằng cách di chuyển trạng thái khỏi chuỗi đầu mối, rollups có thể sử dụng tính toán bổ sung để thực hiện các chuyển đổi trạng thái trước khi đăng chứng minh về tính nguyên vẹn của các chuyển đổi trạng thái này đến máy chủ. Rollups hữu ích nhất đối với người dùng không muốn trả các phí cao trên Ethereum nhưng muốn truy cập các thuộc tính bảo mật của Ethereum.

Trước khi đi sâu vào các bộ xử lý phụ, hãy cung cấp thêm một số thông tin về việc phát triển hợp đồng thông minh bị hạn chế trên Ethereum hiện nay. Ethereum có lưu trữ trạng thái cố định trong trạng thái toàn cục của nó - số dư tài khoản, dữ liệu hợp đồng, v.v. Dữ liệu này tồn tại trên blockchain mãi mãi. Tuy nhiên, có các hạn chế:

Kích thước tối đa của dữ liệu hợp đồng bị giới hạn (ví dụ, hiện tại là 24KB mỗi hợp đồng và được thiết lập trong EIP 170). Việc lưu trữ các tệp lớn sẽ vượt quá giới hạn này. (*Không được giải quyết bởi bộ xử lý phụ).

Việc đọc/viết lưu trữ hợp đồng chậm hơn so với hệ thống tệp hoặc cơ sở dữ liệu. Truy cập 1KB dữ liệu có thể tốn hàng triệu khí gas.

Trong khi trạng thái toàn cầu vẫn tồn tại, các nút cá nhân chỉ giữ lại trạng thái gần đây một cách cục bộ trong chế độ “cắt tỉa”. Lịch sử trạng thái đầy đủ yêu cầu một nút lưu trữ lưu trữ.

Không có nguyên tố hệ thống tệp địa phương để xử lý tệp như hình ảnh, âm thanh và tài liệu. Hợp đồng thông minh chỉ có thể đọc/ghi các loại dữ liệu cơ bản vào bộ nhớ.

Các giải pháp xung quanh điều này là:

Tập tin lớn có thể được chia thành các phần nhỏ hơn để vừa với giới hạn lưu trữ hợp đồng.

Các tham chiếu tệp có thể được lưu trữ trên chuỗi, với các tệp được lưu trữ ngoài chuỗi trong các hệ thống như IPFS.

Coprocessors: Coprocessors không duy trì bất kỳ trạng thái nào; chúng hoạt động giống như các hàm lambda trên AWS, nơi các ứng dụng có thể gửi một tác vụ tính toán đến chúng, và chúng trả lại kết quả với bằng chứng của việc tính toán. Coprocessors tăng mức độ tính toán có sẵn cho bất kỳ giao dịch cụ thể nào, nhưng vì việc chứng minh trên coprocessors cũng xảy ra trên cơ sở từng giao dịch, việc sử dụng chúng sẽ tốn kém hơn so với rollups. Với chi phí đó, có lẽ coprocessors sẽ hữu ích đối với các giao thức hoặc người dùng muốn thực hiện các tác vụ phức tạp một cách có thể xác minh. Một lợi ích khác của coprocessors là chúng cho phép các ứng dụng sử dụng tính toán ngoại chuỗi cũng truy cập vào toàn bộ trạng thái lịch sử của Ethereum mà không cần thêm bất kỳ giả định nào đối với ứng dụng chính nó; điều này không thể thực hiện trên một hợp đồng thông minh vanilla hiện nay.

Để làm rõ sự khác biệt giữa rollups và coprocessors, hãy tham khảo các biến thể ZK của cả hai nguyên tắc này. ZK rollups truy cập cả khả năng xác minh và khía cạnh nén của chứng minh zero-knowledge, cho phép họ tăng hiệu suất cơ bản cho hệ sinh thái của họ. Ngược lại, coprocessors chỉ truy cập vào thuộc tính xác minh của zk proofs, có nghĩa là tổng hiệu suất của hệ thống vẫn giữ nguyên. Ngoài ra, ZK rollups yêu cầu mạch có thể chứng minh bất kỳ chương trình nào dành cho máy ảo mục tiêu cho rollup đó (ví dụ, rollups trên Ethereum đã xây dựng zkEVMs cho các hợp đồng dành cho EVM). Ngược lại, ZK coprocessors chỉ cần xây dựng mạch cho các nhiệm vụ mà họ được giao thực hiện.

Vậy, dường như hai sự khác biệt lớn nhất giữa rollups và coprocessors là:

Rollups duy trì một trạng thái cố định được phân chia, và bộ xử lý không (họ sử dụng trạng thái của chuỗi máy chủ).

Rollups (như tên gợi ý) gom nhiều giao dịch cùng nhau, và bộ xử lý phụ thường được sử dụng cho các nhiệm vụ phức tạp như một phần của một giao dịch duy nhất (ít nhất là trong mô hình hiện tại).

Gần đây, Booster Rollups đã được đề xuất, thực thi giao dịch như thể chúng đang chạy trực tiếp trên chuỗi máy chủ, với quyền truy cập đầy đủ vào trạng thái của máy chủ. Tuy nhiên, Booster Rollups cũng có bộ nhớ riêng, cho phép họ mở rộng tính toán và lưu trữ trên cả máy chủ và rollup. Đề xuất Booster Rollup chỉ ra cách mà có một phổ trong thiết kế tính toán ngoại chuỗi, với các rollups truyền thống và bộ xử lý chính ngồi ở hai đầu của phổ này. Rollups, Booster Rollups và Coprocessors đều cung cấp quyền truy cập vào tính toán hơn và chỉ khác nhau ở việc giữ bao nhiêu trạng thái được phân chia từ L1 cơ bản của họ.

Trong một bài nói chuyện tại Modular Summit, 2023 có tên là “Giao dịch được bảo vệ là Rollups”, Henry De Valence đã nói về khái niệm chính xác này và trình bày một hình ảnh rất đơn giản để định nghĩa Rollup:

Bài thuyết trình cho rằng bất kỳ thực thi nào được chuyển giao bởi chuỗi cơ sở cho một bên thứ ba đều là một rollup. Theo định nghĩa của anh ấy, các bộ xử lý cộng tác cũng sẽ là rollups. Điều này hơi khác biệt so với quan điểm của chúng tôi về việc thống nhất rollups và bộ xử lý cộng tác dưới băng rôn của tính toán xác minh ngoại chuỗi nhưng tinh thần tổng thể vẫn giữ nguyên!

Trong tầm nhìn Endgame của mình, Vitalik thảo luận về một tương lai nơi sản xuất khối được tập trung và xác nhận khối là không đáng tin cậy và rất phân cấp. Chúng tôi tin rằng đây là mô hình chính xác để suy nghĩ về những gì đang diễn ra hiện nay. Trong một zk-rollup, sản xuất khối và tính toán chuyển đổi trạng thái được tập trung. Tuy nhiên, các bằng chứng cho phép việc xác minh trở nên rẻ và phân cấp. Tương tự, một zk-coprocessor không có sản xuất khối; nó chỉ truy cập dữ liệu lịch sử và tính toán chuyển đổi trạng thái trên dữ liệu này. Việc tính toán trên một zk-coprocessor có khả năng luôn được thực hiện trên một máy tập trung; tuy nhiên, bằng chứng về tính hợp lệ được trả về cùng với kết quả cho phép bất kỳ ai kiểm tra kết quả trước khi sử dụng chúng. Có lẽ đúng khi nói lại tầm nhìn của Vitalik là: "một tương lai nơi tính toán được tập trung, nhưng việc xác minh tính toán tập trung là không đáng tin cậy và rất phân cấp."

Giống nhau nhưng khác nhau

Mặc dù tương đồng về tổng thể, nhưng rollups và bộ xử lý phụ phục vụ hai thị trường khác nhau hiện nay. Một người có thể hỏi, “Nếu chúng ta có thể sử dụng một bộ xử lý phụ trên ETH L1 và truy cập thanh khoản của nó, tại sao chúng ta cần rollups?” mặc dù đây là một câu hỏi hợp lý, chúng tôi nghĩ rằng vẫn có một số lý do tại sao rollups vẫn hợp lý (và mang lại một cơ hội thị trường lớn hơn nhiều so với bộ xử lý phụ hiện nay):

Như đã đề cập trước đó, các bộ xử lý phụ cho phép bạn truy cập nhiều tính toán hơn trong cùng một giao dịch so với L1. Nhưng chúng không thể giúp di chuyển kim chỉ số về số giao dịch có thể được thực hiện bởi blockchain đang gọi bộ xử lý phụ (nếu bạn nghĩ về gom góp, voilà, bạn đã đến với một rollup). Bằng cách duy trì trạng thái cố định được phân vùng, rollups có thể tăng số lượng giao dịch có sẵn cho những người muốn truy cập không gian khối với các tính chất an ninh của Ethereum. Điều này là có thể vì rollups chỉ đăng lên Ethereum mỗi n khối và không yêu cầu tất cả các xác nhận viên Ethereum xác minh một chuyển tiếp trạng thái đã xảy ra. Các bên liên quan chỉ cần dựa vào chứng minh.

Ngay cả khi bạn sử dụng bộ xử lý phụ, bạn vẫn phải trả cùng mức phí xấp xỉ như bất kỳ giao dịch nào khác trên L1. Trong khi đó, rollups thông qua việc gom nhóm có thể giảm chi phí đáng kể.

Ngoài ra, vì rollups cung cấp khả năng chạy giao dịch trên trạng thái riêng này, chúng vẫn hoạt động như các chuỗi khối (nhanh hơn, ít phân cấp hơn, nhưng vẫn là chuỗi khối), vì vậy chúng cũng có giới hạn rõ ràng về việc truy cập bao nhiêu tính toán từ rollup chính. Trong tình huống này, một bộ xử lý song song có thể hữu ích cho rollups nếu người dùng muốn thực hiện giao dịch tùy ý phức tạp (và bây giờ bạn đang thực hiện giao dịch có thể xác minh trên một rollup, vì vậy bạn chỉ cần tuân theo các nguyên lý vật lý của rollup).

Một điểm quan trọng khác cần lưu ý ở đây là hầu hết thanh khoản hiện nay đều tồn tại trên ETH L1, vì vậy đối với nhiều giao thức phụ thuộc vào thanh khoản để cải thiện sản phẩm của họ, có thể là một ý kiến khôn ngoan vẫn là phải ra mắt trên Ethereum mainnet. Một ứng dụng trên Ethereum mainnet có thể truy cập vào nhiều tính toán hơn bằng cách thực hiện giao dịch định kỳ trên một bộ xử lý phụ. Ví dụ, một sàn giao dịch phi tập trung như Ambient hoặc Uniswap v4 có thể sử dụng hooks kết hợp với bộ xử lý phụ để thực hiện logic phức tạp về cách thay đổi phí hoặc thậm chí điều chỉnh hình dạng của đường cong thanh khoản dựa trên dữ liệu thị trường.

Một phép so sánh thú vị so sánh sự tương tác giữa rollups và bộ xử lý phụ với lập trình mệnh lệnh và lập trình hàm. Lập trình mệnh lệnh tập trung vào trạng thái có thể thay đổi và hiệu ứng phụ, chỉ định từng bước cách thực thi các nhiệm vụ. Lập trình hàm nhấn mạnh vào dữ liệu không thay đổi và hàm thuần, tránh thay đổi trạng thái và hiệu ứng phụ. Tương tự, rollups giống như các chương trình mệnh lệnh sửa đổi trạng thái mà chúng giữ, trong khi bộ xử lý phụ giống như các chương trình hàm mà chúng không biến đổi trạng thái mà tạo ra kết quả cùng với chứng minh tính toán. Hơn nữa, giống như lập trình mệnh lệnh và hàm, rollups và bộ xử lý phụ có vị trí của riêng mình và nên sử dụng phù hợp.

Một Tương Lai Dựa Trên Bằng Chứng

Nếu chúng ta kết thúc trong một thế giới nơi tính toán được tập trung, nhưng việc xác minh tính toán tập trung là không đáng tin cậy và phân cấp cao, thì Ethereum sẽ ở đâu? Liệu máy tính thế giới có bị giảm xuống chỉ là một cơ sở dữ liệu đơn thuần không? Điều này có phải là điều tồi tệ không?

Cuối cùng, mục tiêu của Ethereum là cung cấp cho người dùng quyền truy cập vào tính toán và lưu trữ không tin cậy. Trước đây, cách duy nhất để truy cập tính toán không tin cậy trên Ethereum là tính toán được thực hiện và xác minh bởi tất cả các nút. Với sự tiến bộ của các kỹ thuật chứng minh (đặc biệt là bằng chứng không có kiến thức), chúng ta có thể chuyển phần lớn tính toán đã xảy ra trên các nút xác thực sang tính toán ngoài chuỗi và chỉ có người xác thực xác minh kết quả trên chuỗi. Điều này về cơ bản biến Ethereum thành bảng thông báo bất biến của thế giới. Bằng chứng tính toán cho phép chúng tôi xác minh rằng một giao dịch đã được thực hiện chính xác và bằng cách đăng chúng lên Ethereum, chúng tôi có được dấu thời gian và kho lưu trữ lịch sử bất biến cho các bằng chứng này. Khi các bằng chứng không có kiến thức trở nên hiệu quả hơn đối với tính toán tùy ý, có khả năng đến một lúc nào đó chi phí để thực hiện tính toán trong ZK sẽ thấp hơn đáng kể so với chi phí để thực hiện trên blockchain (thậm chí có thể là chuỗi CometBFT 100 trình xác thực). Trong một thế giới như vậy, thật khó để tưởng tượng rằng các bằng chứng ZK sẽ không trở thành phương thức thống trị để truy cập vào máy tính không tin cậy. Những suy nghĩ tương tự cũng đã được David Wong lặp lại gần đây:

Một tương lai trong đó mọi tính toán đều có thể được chứng minh cũng cho phép chúng ta xây dựng cơ sở hạ tầng cho các ứng dụng không tin cậy mà người dùng yêu cầu thay vì cố gắng phổ biến lớp cơ sở Ethereum để trở thành nơi cho các ứng dụng đó. Trong trường hợp lý tưởng, cơ sở hạ tầng được tùy chỉnh sẽ tạo ra trải nghiệm người dùng mượt mà hơn và cũng sẽ mở rộng cùng với các ứng dụng được xây dựng trên đó. Điều này hy vọng sẽ cho phép các ứng dụng web3 cạnh tranh với những đối thủ web2 của họ và đưa vào tương lai không tin cậy, dựa trên chứng cứ mà những cypherpunks luôn mơ ước.

Tất cả trong tất cả, chúng tôi tin rằng chúng ta đang tiến về một mô hình sau:

————————————————————Không tin, xác minh————————————————————-

Tuyên bố từ chối trách nhiệm:

  1. Bài viết này được tái bản từ [Gategương]. Tất cả bản quyền thuộc về tác giả gốc [Jacob Ko]. Nếu có ý kiến ​​phản đối về việc tái bản này, vui lòng liên hệ Gate Họcđội ngũ và họ sẽ xử lý ngay lập tức.
  2. Liability Disclaimer: Quan điểm và ý kiến được thể hiện trong bài viết này hoàn toàn thuộc về tác giả và không đại diện cho bất kỳ lời khuyên đầu tư nào.
  3. Các bản dịch của bài viết sang các ngôn ngữ khác được thực hiện bởi nhóm Gate Learn. Trừ khi được nêu, việc sao chép, phân phối hoặc vi phạm bản quyền các bài viết đã dịch là cấm.
今すぐ始める
登録して、
$100
のボーナスを獲得しよう!