Vào ngày 5/1, StarkWare công bố ra mắt phiên bản công khai của ngôn ngữ lập trình Cairo 1.0, chính thức thay thế phiên bản thử nghiệm và xem trước hai năm, đồng thời đánh dấu rằng có thể sử dụng ngôn ngữ này để viết hợp đồng thông minh (smart contract) trên StarkNet, đồng thời cũng tính đến việc thực thi hiệu quả đã trở thành một sự kiện quan trọng của trường công nghệ Rollup Layer2 của dòng ZK.
Chúng ta có thể tóm tắt chức năng của bản cập nhật thành ba điểm chính:
- Thông minh hơn: Triển khai thiết kế Sierra, đảm bảo mã Cairo có thể chứng minh được, hợp đồng thông minh StarkNet sẽ được triển khai trong phiên bản tiếp theo.
- Hiệu quả hơn: Theo sát các ý tưởng thiết kế của ngôn ngữ Rust chẳng hạn như gõ mạnh, cơ chế sở hữu và vay mượn, có tính đến hiệu quả thực thi và các tiêu chuẩn viết.
- An toàn hơn: Tính hoàn chỉnh của Turing được duy trì và tính bảo mật của cơ chế STARK được đảm bảo bằng các bằng chứng toán học.
Hướng tới zk-EVM
Trong “cuộc chiến” của các Ethereum Layer-2, STARK và SNARK trong series ZK đã trở thành hai tuyến chính, nhưng khả năng tương thích và hiệu quả thực thi của EVM cũng trở thành tâm điểm chú ý của tất cả các bên và khả năng tương thích tốt hơn sẽ được mạng chính Ethereum công nhận. Phúc lợi bảo mật và hiệu quả thực thi cao hơn sẽ tăng tốc độ thực thi của chính Layer-2.
Nhưng có một nghịch lý ở đây là khả năng tương thích EVM và hiệu quả thực thi thường không thể đạt được đồng thời, khi khả năng tương thích Layer-1 càng tốt sẽ làm giảm hiệu quả thực thi của Layer-2, ngược lại sẽ phát sinh vấn đề bảo mật.
Do đó, StarkWare hy vọng sẽ sử dụng ngôn ngữ Cairo làm chất kết dính giữa hai bên. Các hợp đồng thông minh được viết thông qua ngôn ngữ này không chỉ có thể chạy ở tốc độ tối đa trên StarkNet mà còn duy trì khả năng tương thích cao với mạng chính Ethereum. Đây là bản chất thực sự của ZK-EVM.
Trong bản cập nhật này, Cairo sẽ hỗ trợ Cairo-VM hoàn chỉnh, chìa khóa là lớp trình bày trung gian Sierra. Nói một cách đơn giản, Sierra sẽ đóng vai trò là một lớp dịch thuật giữa mã được viết bằng ngôn ngữ Cairo và mã byte bên dưới và quá trình dịch này sẽ tăng tốc trên cơ sở đảm bảo tính bảo mật mà không cần thiết lập trạng thái thực thi của giao dịch, có sẵn trực tiếp chứng thực được thực hiện dựa trên trạng thái hiện tại.
Đây là một cải tiến về cú pháp riêng của Cairo. Ngoài ra, các hợp đồng thông minh của StarkWare sẽ dần dần chuyển sang ngôn ngữ Cairo hoàn chỉnh để hoàn thành việc thống nhất các tiêu chuẩn ngôn ngữ của riêng mình.
Vì mức độ tương thích đáng kể với mạng chính Ethereum được duy trì, nên việc chuyển đổi giữa các hợp đồng thông minh được viết bằng Cairo và Solidity cũng sẽ dễ dàng hơn Warp, trình dịch của ứng dụng client Ethereum Nethermind, đã hỗ trợ viết lại Uniswap V3 thành mã Cairo.
Trên thực tế, vào cuối tháng 10/2022, StarkNet đã tuyên bố sử dụng Cairo để phát triển ZK-EVM và sau đó khi StarkNet thực sự được đưa vào môi trường sản xuất, hiệu quả thực tế của khả năng tương thích này có thể được xác minh.
>> Đọc thêm: Tìm hiểu những thành phần của StarkNet
Các tính năng cân bằng
Trên thực tế, bản thân Cairo có thể được coi là một ngôn ngữ được viết bằng ngôn ngữ Rust, thừa hưởng nhiều tính năng Rust hơn. Bản thân Rust khác với những ngôn ngữ được gọi là hiện đại như Python/Go, hiệu quả hoạt động gần với các ngôn ngữ phát triển cấp thấp hơn, nhưng đồng thời nó cũng tính đến khả năng đọc, cơ chế quản lý bộ nhớ – quyền sở hữu đặc biệt (quyền sở hữu) và mượn thiết kế.
Nói chính xác, quyền sở hữu của Cairo/Rust đề cập đến yêu cầu rõ ràng về quản lý bộ nhớ. Do cơ chế vận hành nút đặc biệt của chuỗi khối, nó là một môi trường phát triển nhạy cảm với bộ nhớ điển hình. Lấy C/C++ và Java làm ví dụ, có hiện có ba cơ chế sử dụng tài nguyên bộ nhớ chính:
- C/C++: Quản lý bộ nhớ theo cách thủ công, hưởng lợi từ sự tiến bộ của thiết bị hiện đại, phần lớn các nhà phát triển chưa có thói quen giải phóng bộ nhớ kịp thời, điều này sẽ gây lãng phí tài nguyên nghiêm trọng;
- Java: Cơ chế tái chế tài nguyên tự động. JVM là một máy ảo cho thời gian chạy Java, nó có chức năng tự động quản lý bộ nhớ, nhưng nhìn chung để đảm bảo hiệu quả hoạt động, JVM sẽ duy trì một lượng tài nguyên bộ nhớ nhất định, điều này cũng sẽ gây ra sự không phù hợp giữa nguồn cung và nhu cầu;
- Cairo/Rust: Cơ chế sở hữu quản lý tài nguyên bộ nhớ. Bất kỳ biến nào trong Rust đều phải chỉ định chủ sở hữu và chỉ có thể có một chủ sở hữu tại một thời điểm. Khi thực thi, biến đó sẽ được giải phóng và không thể tiếp tục tồn tại trong bộ nhớ.
Thiết kế cơ chế sở hữu như vậy có thể đảm bảo rằng các tài nguyên bộ nhớ có giá trị chỉ được gọi trong quá trình thực thi, điều này có thể tính đến hiệu quả hoạt động của C/C++, nhưng tránh được các vấn đề như rò rỉ bộ nhớ. hữu ích cho việc giảm kích thước tổng thể của hợp đồng thông minh có ý nghĩa rất lớn.
Thứ hai là ý tưởng về đánh máy mạnh mẽ. Cairo/Rust liên quan đến việc viết và chạy nhiều hợp đồng thông minh, tất cả chúng đều nắm giữ token, NFT và dữ liệu cá nhân có giá trị cao, nên được xử lý đặc biệt và mọi thay đổi đều cần phải thận trọng.
Các ngôn ngữ được gõ mạnh và các ngôn ngữ được gõ yếu có liên quan đến định nghĩa của biến. Nói một cách đơn giản, các loại mạnh yêu cầu các biến phải được xác định theo “kiểu dữ liệu” trước khi sử dụng, chẳng hạn như số nguyên, số dấu phẩy động, chuỗi và những thứ khác, không rõ ràng hoạt động chuyển đổi và định nghĩa của nó không thể thay đổi theo ý muốn.
Các ngôn ngữ được gõ yếu không có các quy tắc nghiêm ngặt như vậy và kiểu dữ liệu của các biến có thể được thay đổi linh hoạt. Khi viết hợp đồng thông minh, loại và số lượng tài sản phải được xử lý rõ ràng để đảm bảo rằng quyền sở hữu của chúng rõ ràng và quy trình giao dịch và chuyển đổi rõ ràng. tránh các mối lo ngại về bảo mật khác.
Reborn: Thân thiện với nhà phát triển
Cairo 1.0 gánh vác trách nhiệm nặng nề trong việc kết nối mạng chính Layer-2 và Ethereum. Theo kế hoạch StarkNet sẽ chuyển đổi hoàn toàn sang Cairo trong quý 1/2023, chấm dứt tình trạng phân mảnh hiện tại và bước vào giai đoạn phát triển mới của cạnh tranh sinh thái sân khấu.
Tuy nhiên, do thiếu vắng những ứng dụng “sát thủ” thực sự, cộng với sự ra đi của những dự án hàng đầu như dYdX, con đường thăng tiến của StarkWare vẫn còn nhiều chông gai.
Trong mô hình phát triển chuỗi công khai/L2/dApp hiện tại, Solidity (Vyper) chiếm gần 98% vị trí độc quyền, trong khi Cairo chỉ chiếm chưa đến 1% không gian thị trường. Kể từ khi thành lập StarkNet và StarkEx, các dApp do Cairo cung cấp đã xử lý hơn 300 triệu giao dịch, tạo ra hơn 65 triệu NFT và xử lý các giao dịch trị giá 700 tỷ đô la, tất cả đều sử dụng ETH để thanh toán.
Trước khi Cairo 1.0 thực sự được áp dụng cho StarkNet, trải nghiệm của nhà phát triển là bước đầu tiên trong việc cạnh tranh để được tham gia vào hệ sinh thái StarkWare Ngoài hỗ trợ Warp của Nethermind, ConsenSys cũng đã đạt được sự hợp tác với StarkWare để cung cấp cho Cairo các hợp đồng thông minh nhằm cung cấp bảo mật dịch vụ kiểm toán
Tiến độ phát triển hiện tại của các chức năng khác nhau của Cairo 0 như sau: Chúng ta cũng có thể tham khảo hướng phát triển của Cairo 1.0 từ đó và giải thích rằng StarkWare sẽ tuân theo kế hoạch mở nguồn cho tất cả StarkNet và Cairo sẽ là bước đầu tiên của nó.
Dễ nhận thấy rằng tiến trình phát triển chức năng của Cairo tương đối nhanh và nhiều chức năng hơn dự kiến sẽ được hiện thực hóa và StarkNet cũng sẽ lấp đầy khoảng trống chức năng hiện tại sau khi triển khai Cairo và cuối cùng hiện thực hóa mô-đun đầy đủ tính năng do hệ thống StarkNet gọi cấp độ.
Không giống như lộ trình tổng quát hóa của StarkNet, StarkEx được định hướng cho một số dự án lớn có quy mô lớn, bao gồm Immutable X, Sorare, Rgino.Fi và dYdX. Số lượng người dùng đã sử dụng dịch vụ đã lên tới 20 triệu, cuộc sống trung bình hàng tháng là hàng chục nghìn..
Hiện tại, bạn có thể tham khảo dữ liệu của StarkEx một cách chính xác. Không giống như lộ trình tổng quát hóa của StarkNet, StarkEx được định hướng cho một số dự án lớn có quy mô lớn, bao gồm Immutable X, Sorare, Rgino.Fi và dYdX. Số người dùng đã sử dụng dịch vụ đã lên tới 20 triệu người.
Với sự trợ giúp của việc hợp tác với DeFi trưởng thành và các trò chơi chuỗi, con đường tiếp thị hóa của StarkEx nhìn chung tương đối suôn sẻ, nhưng StarkNet sẽ tham gia vào các cuộc thi Layer-2 khác nhau với tư cách là Layer-2 chung và Cairo dự kiến sẽ tiếp tục thúc đẩy sự gia tăng thị phần của StarkNet.
Tổng kết
Cairo 1.0 không chỉ đơn giản là một bản cập nhật ngôn ngữ mà còn đảm nhận vai trò phong phú hơn, bao gồm kích hoạt khả năng tương thích EVM của StarkNet và hiệu quả thực thi, đồng thời giảm độ khó phát triển bằng cách tận dụng các mô hình lập trình trưởng thành của Rust, chẳng hạn như quyền sở hữu và gõ mạnh.
Đồng thời, cần lưu ý rằng Cairo 1.0 vẫn còn một số chức năng chưa được triển khai đầy đủ và trạng thái đầy đủ của nó có thể cần một chu kỳ phát triển dài hơn và thời gian phát hành token cũng sẽ được điều chỉnh cho phù hợp.
Tóm lại, Cairo có ý nghĩa to lớn trong việc chấm dứt phiên bản StarkNet “chưa hoàn thiện” hiện tại, kết hợp với các công cụ mới như Sierra và trình biên dịch, đồng thời kết hợp với các công cụ phát triển chính thống, nó sẽ giảm đáng kể áp lực cho các nhà phát triển viết hợp đồng thông minh.