
Khám phá trải nghiệm người dùng ZKRollup từ góc nhìn của nhà phát triển
Tuyển chọn TechFlowTuyển chọn TechFlow

Khám phá trải nghiệm người dùng ZKRollup từ góc nhìn của nhà phát triển
Bài viết này sẽ đi sâu vào trải nghiệm người dùng của các ZKRollup khác nhau dưới góc nhìn của nhà phát triển, thông qua các câu trả lời định lượng từ góc độ kỹ sư Solidity.
Tác giả: Yiping, IOSG Ventures
TL;DR
Starknet ra mắt Alpha Mainnet vào ngày 29 tháng 11 năm 2022.
Scroll ra mắt Goerli Alpha Testnet vào ngày 27 tháng 2 năm 2023.
zkSync ra mắt zkSync Era Mainnet vào ngày 24 tháng 3 năm 2023.
Polygon ra mắt zkEVM Mainnet Beta vào ngày 27 tháng 3 năm 2023.
Với nhiều ZK Rollup như vậy, một nhà phát triển Solidity có thể tự hỏi:
-
Nền tảng nào mang lại trải nghiệm phát triển phù hợp hơn với bạn?
-
Nền tảng nào cung cấp hỗ trợ phát triển mà bạn cần nhiều hơn?
-
Nếu bạn định xây dựng dự án của mình, nền tảng nào là lựa chọn tốt nhất?
Cùng với việc lần lượt ra mắt các ZK Rollup, hiện tại là thời điểm lý tưởng để nghiên cứu trải nghiệm phát triển trên ZK Rollup. Khi tất cả các ZK Rollup đều đang quảng bá tính tương thích EVM của họ, hành trình khám phá trải nghiệm nhà phát triển của chúng tôi sẽ bắt đầu từ góc nhìn của một kỹ sư Solidity, hãy cùng tìm hiểu sâu vào những câu hỏi này bằng các câu trả lời dựa trên dữ liệu.
So sánh mã nguồn mở của các ZK Rollup
Mã nguồn mở nâng cao trải nghiệm phát triển thông qua việc thúc đẩy chất lượng, bảo mật và hợp tác. Tính minh bạch cho phép các nhà phát triển toàn cầu giải quyết lỗi và các vấn đề an toàn, liên tục cải thiện phần mềm. GitHub đóng vai trò như một nền tảng học tập, cung cấp quyền truy cập vào nhiều phong cách lập trình, công nghệ tiên tiến và tiêu chuẩn ngành, làm phong phú thêm hành trình phát triển. Các nhà phát triển có thể tùy chỉnh mã theo nhu cầu cụ thể. Mã nguồn mở khuyến khích hợp tác và đổi mới thông qua cộng đồng đa dạng, thúc đẩy sự phát triển của dự án.
Các dự án thường công bố mã nguồn sau khi đạt được các mốc quan trọng, thường là khi mã ít nhất đã ở phiên bản Alpha. Mã còn đang trong quá trình phát triển lớn không phù hợp để công bố vì có thể chưa mang lại lợi ích mong đợi như cải thiện chất lượng, tăng cường bảo mật hay học tập hợp tác. Do đó, số lượng mã nguồn mở thường liên quan đến giai đoạn phát triển của dự án.
Tất cả các ZK Rollup đều đầu tư rất nhiều công sức vào GitHub của họ, mặc dù nội dung họ cung cấp khác nhau.

Lựa chọn ngôn ngữ lập trình của dự án
Rust trở thành ngôn ngữ ưu tiên để xây dựng trình biên dịch, nút, công cụ chuỗi, công cụ CLI và máy ảo trong nhiều dự án.

Tài liệu phát triển
Tài liệu phát triển cực kỳ quan trọng đối với trải nghiệm nhà phát triển. Những tài nguyên này hiệu quả nối liền khoảng cách giữa độ phức tạp của giải pháp Layer2 và hệ sinh thái phát triển tương thích với Máy ảo Ethereum (EVM).
Các dự án khác nhau cung cấp cấu trúc và nội dung tài liệu hơi khác nhau.
zkSync cung cấp tài liệu chi tiết và mã tham khảo cho các tính năng đặc trưng AA và giao tiếp Layer1 <> Layer2.
Chúng tôi nhận thấy những điểm cải thiện sau đây:
-
Bao gồm tên file và đường dẫn: Nên đề cập tên file và đường dẫn ở phần bắt đầu của mọi khối mã. Điều này giúp người dùng biết nơi tìm hoặc đặt mã.
-
Hiển thị kết quả thực thi CLI: Khi cung cấp hướng dẫn giao diện dòng lệnh (CLI), hãy bao gồm đầu ra mẫu của lệnh. Điều này giúp người dùng biết điều gì nên mong đợi và xác minh xem họ đã thực hiện lệnh đúng chưa.
-
Giới hạn độ dài dòng mã: Đặt giới hạn độ dài tối đa cho các ví dụ mã của bạn. Điều này đảm bảo mã dễ đọc, không cần cuộn ngang.
-
Sử dụng ví dụ thực tế: Thay vì dùng placeholder hoặc 'xxx', hãy cung cấp địa chỉ hợp đồng mẫu hoặc khóa bí mật. Điều này giúp người dùng hiểu rõ hơn về loại dữ liệu họ nên sử dụng.
-
Cung cấp giao diện dự án cho hướng dẫn phức tạp: Với các hướng dẫn phức tạp hơn, hãy cung cấp giao diện dự án bên cạnh hướng dẫn. Khi người dùng duyệt qua hướng dẫn, hãy làm nổi bật các phần mã tương ứng.
-
Ví dụ tương tác: Bao gồm ví dụ tương tác để hỗ trợ đưa nhà phát triển vào nhanh chóng. Có thể là một khu vực chơi, nơi người dùng có thể chỉnh sửa và chạy các đoạn mã, hoặc môi trường phát triển đám mây.
-
Tổ chức tài liệu: Đảm bảo tài liệu của bạn được cấu trúc tốt, dễ điều hướng. Sử dụng tiêu đề rõ ràng, mục lục.
-
Duy trì cập nhật: Khi dự án phát triển, hãy đảm bảo tài liệu luôn được cập nhật. Điều này có thể nghĩa là cập nhật ảnh chụp màn hình, sửa lại ví dụ mã, hoặc viết lại phần nào để phản ánh tính năng mới hoặc thay đổi.

Cộng đồng và đóng góp của nhóm
Số lượng người đóng góp phản ánh mức độ tham gia của cộng đồng mã nguồn mở. Tần suất cập nhật và mức độ tham gia là rất quan trọng để duy trì tài liệu mới nhất và toàn diện.

Số lượng người đóng góp càng nhiều thì cộng đồng mã nguồn mở càng sôi động. Hầu hết các dự án đều đạt đỉnh tần suất cập nhật tài liệu ngay sau khi ra mắt.


Trải nghiệm lập trình
Trải nghiệm lập trình phụ thuộc vào công cụ, trải nghiệm trình soạn thảo và framework.
Công cụ liên quan quyết định việc thiết lập môi trường phát triển cục bộ, gỡ lỗi và chạy mã có dễ dàng hay không.
Trải nghiệm trình soạn thảo quyết định tốc độ lập trình. Một trải nghiệm trình soạn thảo tốt nên bao gồm đánh dấu cú pháp rõ ràng, định nghĩa và tự động hoàn thành.
Framework cung cấp một môi trường có cấu trúc, giúp tăng tốc đáng kể quá trình phát triển. Chúng đi kèm các chức năng đã được cấu hình sẵn và thư viện có thể tái sử dụng, cho phép các nhà phát triển tận dụng để viết hợp đồng thông minh hiệu quả mà không cần viết từng dòng mã từ đầu.

Hỗ trợ phần mềm kiểu Remix có thể giúp nhà phát triển nhanh chóng bắt đầu công việc phát triển mà không cần thiết lập môi trường riêng. Hiện tại, trải nghiệm phát triển đám mây này chỉ áp dụng cho hợp đồng thông minh phía backend. Nó vẫn cần được cải thiện để phù hợp với phát triển Dapp, bao gồm cả hợp đồng thông minh và frontend.

Warp hoạt động kém. Kakarot sẽ là giải pháp duy nhất tương thích với StarkNet cho EVM. Kakarot cung cấp trải nghiệm phát triển Solidity rất mượt mà. Tương thích với tất cả các công cụ Ethereum hiện có như trình biên dịch, Remix và Hardhat.
Kakarot cung cấp một EVM được viết bằng Cairo. Với tư cách là một EVM, Kakarot có khả năng thực thi chương trình bytecode EVM, cho phép hợp đồng thông minh Ethereum chạy trên StarkNet.

Kiểm thử
Kiểm thử là khía cạnh quan trọng trong phát triển hợp đồng thông minh, đảm bảo chất lượng, chức năng và độ tin cậy của hợp đồng thông minh. Quá trình này bao gồm xác minh từng chức năng có hoạt động như mong đợi hay không và tìm ra bất kỳ lỗi hay vấn đề nào cần sửa chữa trước khi triển khai. Thông qua kiểm thử kỹ lưỡng, các nhà phát triển có thể tự tin rằng phần mềm sẽ hoạt động chính xác trong nhiều tình huống và điều kiện khác nhau. Quá trình này không chỉ ngăn ngừa sự cố tiềm tàng ảnh hưởng đến trải nghiệm người dùng mà còn giúp duy trì tính toàn vẹn và bảo mật của hợp đồng thông minh. Kiểm thử cũng giúp các nhà phát triển nhận ra các cơ hội tối ưu hóa tiềm năng, góp phần cải tiến liên tục cho hợp đồng thông minh.
Tenderly là một trong những công cụ gỡ lỗi tốt nhất cho phát triển hợp đồng thông minh. Nó cung cấp mô phỏng thực thi hợp đồng thông minh, trình gỡ lỗi, phân tích phí gas, fork và cảnh báo để giúp nhà phát triển xây dựng Dapp tốt hơn. Tuy nhiên, Tenderly không hỗ trợ bất kỳ ZK Rollup nào.
Hy vọng trong tương lai gần, chúng ta sẽ thấy nhiều công cụ phát triển và gỡ lỗi hợp đồng thông minh hỗ trợ ZK Rollup hơn nữa, điều này sẽ góp phần thúc đẩy sự phát triển và ứng dụng công nghệ blockchain.
Triển khai
Quy trình triển khai đóng vai trò then chốt trong vòng đời phát triển hợp đồng thông minh. Công cụ triển khai tốt cung cấp trải nghiệm tự động, nhất quán và đáng tin cậy khi chuyển từ phát triển sang triển khai hợp đồng thông minh lên môi trường chuỗi. Công cụ triển khai tốt có thể giảm đáng kể gánh nặng công việc triển khai thủ công, từ đó rút ngắn thời gian giao hàng và giảm thiểu sai sót do con người.
Các bước triển khai của StarkNet chia thành hai bước Declare và Deploy, do đó mất thời gian khá dài.

Tính năng mới của Layer2
Các giải pháp Layer2 đóng vai trò then chốt trong việc giải quyết các thách thức về khả năng mở rộng, hiệu quả và trải nghiệm người dùng. ZK Rollup vẫn ở giai đoạn sơ khai nhưng đã cho thấy tiềm năng lớn trong việc mở khóa những khả năng mới cho nhà phát triển.
Bằng cách cung cấp những đột phá đổi mới như trạng thái khác biệt (State-diff), giao tiếp liền mạch giữa Layer1 và Layer2, cũng như trừu tượng hóa tài khoản, ZK Rollup cho phép các nhà phát triển tạo ra các dự án sáng tạo, đẩy ranh giới những gì blockchain có thể đạt được. Những tính năng nâng cao này không chỉ tăng cường năng lực của ứng dụng phi tập trung mà còn mở đường cho việc chấp nhận đại trà công nghệ blockchain.
Trạng thái khác biệt (State-diff)
StarkNet và zkSync Era sử dụng công nghệ trạng thái khác biệt, về mặt lý thuyết có thể tạo ra chi phí thấp hơn. Họ chỉ công bố trạng thái khác biệt thay vì đầu vào giao dịch, cho phép nén dữ liệu và giảm chi phí lưu trữ. Điều này sẽ mang lại lợi ích cho các nhà phát triển game.
Polygon zkEVM công bố tất cả đầu vào giao dịch trên chuỗi, dựa vào việc chi phí lưu trữ dữ liệu dự kiến sẽ giảm trong vài năm tới.
Giao tiếp Layer1 <> Layer2
Hầu hết các ZK Rollup đều cung cấp chức năng giao tiếp Layer1 <> Layer2. Ví dụ, zkSync Era cung cấp một ví dụ về quản trị sử dụng giao tiếp Layer1 <> Layer2. Trên Layer1, hợp đồng có thể khởi động thực thi hợp đồng Layer2. Trên Layer2, hợp đồng Layer2 chỉ có thể gửi thông điệp đến hợp đồng Layer1. Sau đó, chúng ta có thể xử lý thông điệp nhận được trên Layer1. Tương tự, Polygon cung cấp một ví dụ mã về Nft-bridge sử dụng giao tiếp xuyên chuỗi để chia sẻ thông tin giữa L1 và L2.
Trừu tượng hóa tài khoản
Trừu tượng hóa tài khoản là một tính năng thú vị khác. zkSync Era cung cấp AA gốc. Tài khoản zkSync Era có thể khởi động giao dịch như EOA, nhưng cũng có thể thực hiện logic tùy ý bên trong như hợp đồng thông minh. Vì zkSync triển khai AA gốc, tài khoản không cần hợp đồng proxy bổ sung. Ngay cả EOA thông thường cũng có thể thực hiện giao dịch không cần thanh toán phí gas, điều này không thể thực hiện chỉ với EIP-4337. Polygon zkEVM và Scroll triển khai AA tương thích với EVM. StarkNet cũng đang tiến hành công việc về trừu tượng hóa tài khoản. Họ tìm cách thực hiện trừu tượng hóa chữ ký và trừu tượng hóa thanh toán.
Những cải tiến trong tương lai cho trải nghiệm nhà phát triển
Trong nghiên cứu này, chúng tôi cảm nhận sâu sắc nỗ lực to lớn của các dự án ZK Rollup trong việc liên tục cải thiện sản phẩm và hỗ trợ nhà phát triển. Tuy nhiên, xét đến việc chúng ta vẫn đang ở giai đoạn sơ khai của ứng dụng blockchain, đối tượng nhà phát triển tương đối nhỏ, do đó, nỗ lực nâng cao trải nghiệm nhà phát triển chắc chắn sẽ giúp dự án thu hút các nhà phát triển tương lai và cuối cùng định hình tương lai của ngành này.
Dưới đây là một số đề xuất phổ biến nhằm nâng cao hỗ trợ chu kỳ phát triển:
1, Tài liệu:
-
Tài liệu chất lượng cao: Tài liệu toàn diện, rõ ràng và được cập nhật kịp thời cực kỳ quan trọng để nâng cao trải nghiệm nhà phát triển. Đảm bảo tính đầy đủ, rõ ràng, có ví dụ minh họa và thường xuyên cập nhật.
-
Thiết kế API trực quan: API nên nhất quán, trực quan và được tài liệu hóa tốt. Đánh giá thiết kế API dựa trên mức độ rõ ràng và dễ tiếp cận của tài liệu API, cũng như mức độ dễ dàng khi hoàn thành các tác vụ phổ biến.
-
Tài liệu tham chiếu API đầy đủ và nhật ký thay đổi: Cung cấp tài liệu tham chiếu API chi tiết, bao gồm hàm, tham số, giá trị trả về và mã lỗi. Duy trì nhật ký thay đổi để theo dõi các bản cập nhật, tính năng mới, sửa lỗi và các tính năng đã ngừng hỗ trợ.
-
Nghiên cứu điển hình: Trình bày các ví dụ ứng dụng sản phẩm để truyền cảm hứng và giáo dục nhà phát triển giải quyết vấn đề hiệu quả.
-
Trải nghiệm bắt đầu mượt mà: Rút ngắn thời gian để nhà phát triển mới bắt đầu bằng cách đơn giản hóa việc thiết lập môi trường, giải thích các khái niệm cốt lõi và hỗ trợ tạo ứng dụng cơ bản.
2, Khả năng sử dụng và hiệu quả:
-
Khả năng sử dụng của công cụ: Đảm bảo các công cụ cung cấp thân thiện với người dùng và trực quan. Đo lường sự tiện lợi khi sử dụng bằng cách đánh giá thời gian nhà phát triển cần để thực hiện các nhiệm vụ phổ biến.
-
Thông báo lỗi và hỗ trợ gỡ lỗi: Nâng cao trải nghiệm nhà phát triển thông qua thông báo lỗi hữu ích và hỗ trợ gỡ lỗi mạnh mẽ. Bạn có thể đo lường điều này bằng cách cố ý tạo ra các lỗi phổ biến, sau đó kiểm tra hệ thống phản hồi hữu ích đến đâu.
-
Tích hợp và tương thích: Đánh giá mức độ tích hợp của công cụ hoặc nền tảng với các công cụ phổ biến khác trong hệ sinh thái.
3, Minh bạch và cập nhật:
-
Tình trạng sản phẩm: Cập nhật kịp thời thông tin về sự cố vận hành, kế hoạch bảo trì và thời gian ngừng hệ thống có thể giúp nhà phát triển lập kế hoạch công việc hiệu quả.
Cùng với sự tiến bộ nhanh chóng của công nghệ trong lĩnh vực Web3, duy trì mức độ trải nghiệm nhà phát triển nhất quán cao một cách có thể mở rộng và bền vững là một thách thức đáng kể đối với các dự án Web3.
Để đối phó với thách thức này, chúng tôi đề xuất các dự án khám phá hai hướng: tận dụng AI để tăng cường tự động hóa và năng suất, giảm nhu cầu nhân lực quy mô lớn, và tận dụng sức mạnh cộng đồng, khuyến khích đóng góp.
-
Hỗ trợ bởi AI: Tạo và duy trì khối lượng lớn tài liệu có thể đòi hỏi nhiều nguồn lực. Mô hình ngôn ngữ lớn có thể giúp nhà phát triển viết và duy trì tài liệu chất lượng cao. Ngoài ra, robot Q&A điều khiển bởi AI có thể cung cấp câu trả lời kịp thời và chính xác cho các truy vấn của nhà phát triển, nâng cao hơn nữa trải nghiệm của họ.
-
Kích thích sự tham gia của cộng đồng: Để thúc đẩy sự tham gia của cộng đồng, các dự án có thể cung cấp nhiều loại kích thích, bao gồm cả kích thích tài chính và phi tài chính. Ví dụ, các chương trình thưởng tương tự có thể được mở rộng để bao gồm đóng góp trong mã nguồn, kiểm thử kho mã, cải thiện tài liệu, công việc dịch thuật và phản hồi quý giá từ người dùng thực tế, phản ánh nhu cầu thực tế có thể định hướng đội ngũ dự án cải thiện sản phẩm. Phương pháp này không chỉ có khả năng nâng cao chất lượng tài nguyên mà còn có thể giúp giảm chi phí bảo trì. Ghi nhận đóng góp thông qua các kênh cộng đồng sôi động (như Discord, Substack...) và khen ngợi các đóng góp viên.
Bằng cách nhấn mạnh thiết kế lấy nhà phát triển làm trung tâm và cung cấp trải nghiệm nhà phát triển hấp dẫn thông qua nỗ lực chung của cộng đồng, chúng ta có thể nuôi dưỡng một hệ sinh thái nhà phát triển sôi động và bao gồm trong thế giới Web3!
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News














