Tổng Quan
Một trong những khía cạnh hạn chế nhất để xây dựng dứng dụng trên Flow ngày nay là yêu cầu tất cả các hợp đồng thông minh phải trải qua quá trình đánh giá bảo mật trước khi triển khai trên mainnet. Mục tiêu của Cadence luôn luôn là để triển khai mainnet hoạt động giống như trên testnet.
Cadence là ngôn ngữ lập trình mới và đang trong quá trình hoàn thiện, vì vậy, để tránh tạo ra trải nghiệm xấu cho người dùng, nhóm Cadence đã làm việc với cộng đồng để đảm bảo rằng tất cả các hợp đồng thông minh được triển khai trên mạng mainnet đều tuân theo quy tắc “thử và đúng” của Cadence.
Nhóm nhấn mạnh rằng họ đang ưu tiên cao nhất về tính “Ổn định” của ngôn ngữ. Stable Cadence là một phiên bản của Cadence được kiểm tra và xác minh đến khi có thể triển khai hợp đồng thông minh trên mainnet mà không bị hạn chế, giống như testnet.
*** Tìm hiểu chi tiết về hệ sinh thái Flow => Tại đây
*** Flow dưới góc nhìn của Developer => Tại đây
Lộ trình với “Stable Cadence”
Có ba bước chính liên quan đến việc phát hành Stable Cadence:
- Giai đoạn code-hardening, trong đó hầu hết hoặc tất cả nỗ lực phát triển trên Cadence đều tập trung vào việc tìm kiếm và xử lý đúng mọi trường hợp khác nhau và khả năng khai thác.
- Quá trình Audit chuyên nghiệp code gốc của Cadence (nhóm audit sẽ hoàn thiện, nhưng sẽ được thiết lập độc lập và kết quả sẽ được công bố công khai).
- Giai đoạn “khuyến khích thử nghiệm chuyên sâu”, nhóm áp dụng chương trình tìm kiếm lỗi và nhận thưởng (bug bounty) để thu hút nhiều nhà nghiên cứu về bảo mật nhất có thể, kiểm tra kỹ lưỡng hơn trên Cadence.
Cơ hội
Khi chuyển sang Stable Cadence, đội ngũ nhận ra rằng có một số cải tiến nhỏ khó giới thiệu mà không cần thay đổi code hiện có ở Cadence. Khi Stable Cadence hoạt động và mọi người có thể tải code lên mainnet mà không cần tiết lộ danh tính, những thay đổi lớn đơn giản là không thể chấp nhận được. Nhưng có thể, một số thay đổi đột phá là chấp nhận được trong thời điểm này vì nhóm Cadence có quen biết với hầu hết các nhà phát triển đang hoạt động và có thể làm việc với họ để cập nhật code trên chuỗi. Chỉ cần những cải tiến đủ lớn thì mọi thứ đều đáng công sức bỏ ra.
Mỗi thay đổi được liệt kê dưới đây có khả năng làm cho Cadence trở nên mạnh mẽ hơn đáng kể trong tương lai. Nó sẽ giải quyết một trở ngại lớn mà các nhà phát triển đang gặp phải, và tất cả đều cần những sự thay đổi lớn đối với code hiện có trên mainnet; hầu như mọi thứ trên mainnet sẽ cần được cập nhật nếu nhóm thực hiện tất cả. Đối với mỗi vấn đề, nếu cộng đồng cho rằng quá trình cải tiến không đáng việc phải cập nhật code hiện có, nhóm Cadence sẽ tiếp tục với cấu trúc hiện tại. Và tất nhiên, nếu cộng đồng thấy những thay đổi nào sẽ đem lại nhiều lợi ích, Cadence sẽ làm việc với từng nhóm hiện đang hoạt động trên mainnet để đảm bảo code của họ hoạt động bình thường trong quá trình triển khai mới. Những cuộc thảo luận này không nên được xem như một cuộc bỏ phiếu đơn giản. Nhóm Cadence đã xác định các vấn đề và đề ra các giải pháp cụ thể, họ cũng luôn sẵn sàng chào đón các giải pháp thay thế. Họ chỉ muốn tạo ra ngôn ngữ tốt nhất để phát triển hợp đồng thông minh! Những thay đổi đang được xem xét Dưới đây là danh sách một số thay đổi mà nhóm đề ra để giải quyết các vấn đề trong phiên bản Cadence hiện tại:
- Sắp xếp hợp lý các token tiêu chuẩn – Các token tiêu chuẩn fungible và non-fungible token nhiện tại cho Flow chỉ có thể hỗ trợ một loại FT hoặc NFT cho mỗi hợp đồng. Sẽ rất có lợi nếu có thể xác định nhiều loại FT/NFT trên mỗi hợp đồng. Hiện tại, các tiêu chuẩn này cần yêu cầu về type, một ngôn ngữ nhằm hỗ trợ việc định nghĩa các tiêu chuẩn đó. Tuy nhiên, kể từ khi phát hành Cadence và sử dụng các tiêu chuẩn này, chúng bị hạn chế do các yêu cầu về type. Việc loại bỏ điều này sẽ cần đến thay đổi đối với interfaces của NFT và FT, do đó sẽ yêu cầu nâng cấp code cho tất cả các hợp đồng NFT và FT, mặc dù các thay đổi sẽ là tối thiểu, các tiêu chuẩn sẽ linh hoạt và mạnh mẽ hơn nhiều.
- Cải thiện các khả năng – Khả năng là một trong những khía cạnh mạnh mẽ nhất của Cadence. Hiện tại, một số vấn đề rằng chúng hơi khó học, khó sử dụng và code để tương tác với chúng quá dài dòng. Việc khiến chúng dễ sử dụng hơn cho các nhà phát triển sẽ đem lại nhiều lợi ích, bằng cách thay thế API hiện tại bằng một giải pháp khác, nhưng đây sẽ là một thay đổi cần thiết đối với cơ chế giúp xử lý các khả năng hiện tại. Ví dụ: nếu khái niệm “liên kết” bị xóa khỏi Cadence, thì cả code và các cập nhật trạng thái () sẽ trở nên cần thiết.
- Loại bỏ lỗi reentrancy – Cadence giúp bạn rất dễ dàng tránh các cuộc tấn công reentrancy: không cho phép chia sẻ truy cập vào trạng thái thay đổi toàn cục (tức là tránh các biến số của hợp đồng), đảm bảo code của bạn không bao giờ có hai tham chiếu đến cùng một đối tượng hoạt động cùng thời gian. Cả hai điều này đều có “mùi code xấu”, và là điều mà kiểm toán viên đề nghị cần hết sức tránh. Việc tránh những lỗi reentrancy là rất có lợi, việc này có thể cần thay đổi về ngôn ngữ cụ thể.
- Loại bỏ lỗi bảo mật – Kể từ lần phát hành đầu tiên của Cadence, khả năng thay đổi ngẫu nhiên thông qua các lĩnh vực công cộng có thể gây ra nhiều vấn đề bảo mật: Việc truy cập trực tiếp vào nguyên công cộng có thể có một vài tác dụng phụ. Do các tài nguyên chủ yếu nhằm đại diện cho tài sản có giá trị hoặc một cơ chế quản lý kiểm soát truy cập, cần có một thay đổi giúp các nhà phát triển tránh việc vô tình đưa lỗi vào hợp đồng. Các giải pháp tiềm năng cho vấn đề này đã được đề xuất trong FLIPs 703 và 739, đang mở để lấy ý kiến phản hồi của cộng đồng.
- Làm rõ và khắc phục hành vi của một số tính năng, chức năng – Ví dụ: các tham chiếu đến tùy chọn, chức năng lưu trữ, v.v. Các cải tiến tiềm năng đã được đề xuất trong FLIP 729 và 722, đang được mở để lấy ý kiến phản hồi của cộng đồng.
Kết Luận
Stable Cadence có thể sẽ bao gồm một số thay đổi nhỏ khác. Tuy nhiên, Stable Cadence không nên được xem như một bản phát hành tính năng, cũng như không ai nên cho rằng nhóm Cadence không quan tâm đến bất kỳ tính năng chính nào chỉ vì chúng không được xem như một phần của Stable Cadence. Có nhiều cách mà Cadence có thể (và sẽ!) cải thiện ngoài Stable Cadence. Nhưng phần lớn các tính năng này hoàn toàn là phụ và có thể được phát hành trong các phiên bản trong tương lai mà không cần thay đổi code hiện có. Do đó, nhóm Cadence không muốn để những tính năng đó trì hoãn việc phát hành Stable Cadence.
*** Những đề xuất của Cadence FLIPs -> Tại đây
*** Hãy cùng theo dõi sự phát triển của Flow qua các bài viết cập nhật sau này cùng GFS Blockchain thông qua chuyên đề Hệ sinh thái Flow -> Tại đây
Hàng tuần, GFS Blockchain sẽ cập nhật các thông tin mới nhất về thị trường Crypto, mọi người hãy thường xuyên theo dõi tại website và đừng quên tham gia vào nhóm cộng đồng của GFS để thảo luận với các thành viên khác nhé:
- Nhóm Telegram của Flow Vietnam -> Click tại đây
- Nhóm Telegram của GFS Blockchain -> Click tại đây
- Nhóm Facebook của GFS Blockchain -> Click tại đây
- Kênh thông tin Telegram của GFS Blockchain -> Click tại đây