Smart Contract (Hợp đồng thông minh) là một bước phát triển tiếp theo cho các loại hợp đồng truyền thống dựa trên công nghệ blockchain. Tuy nhiên, việc xây dựng Smart Contract ở thời điểm hiện tại đang gặp phải rất nhiều vấn đề khó khăn, ảnh hưởng trực tiếp đến người dùng, các nhà phát triển cũng như doanh nghiệp đang triển khai dự án sử dụng chúng.
Ark Logic là một giải pháp của ARK hướng đến khắc phục các tình trạng mà Smart Contract hiện nay đang gặp phải. Vậy các vấn đề đó là gì? Hãy cùng tìm hiểu thông qua các quá trình phát triển Smart Contract trước đó để hiểu vì sao Ark Logic được cho là một giải pháp toàn diện. Trước khi vào bài viết, mời xem qua đoạn video ngắn do delegate cams_yellow_jacket thực hiện.
“Smart Contract” của Bitcoin
Bitcoin không phải là tiền kỹ thuật số đầu tiên ra đời, nhưng lại là đồng tiền kỹ thuật số có sức sống mạnh mẽ, đồng thời cũng là một trong những dự án đầu tiên đề cập đến cụm từ “Blockchain” trong mã nguồn mở của dự án. Đó là tiền đề để các dự án Blockchain cũng như tiền kỹ thuật số ra đời và phát triển rực rỡ như ngày nay.
Bitcoin hướng đến sự xóa bỏ trung lập, xây dựng và đặt nền móng cho một nền kinh tế phi tập trung. Sau khoảng một thời gian được phát hành, Satoshi mang đến nhiều chức năng hơn thay vì chỉ nhận và chuyển thông qua “Bitcoin Scripts”, cho phép áp dụng các Logic xử lý trong các giao dịch.
Tuy nhiên Bitcoin Scripts lại vô cùng đơn giản và không đáp ứng được sự phức tạp và Bitcoin Scripts không được phát triển quá nhiều vì cơ bản là nó không cần thiết với Bitcoin. Dù vậy, có thể nói, Bitcoin Scripts là ý tưởng khởi đầu cho Smart Contract mà hiện tại đang được sử dụng rộng rãi.
Smart Contract từ Ethereum
Ethereum có lẽ đã để ý đến Bitcoin Scripts, sau đó phát triển và mở rộng khái niệm để hình thành ra định nghĩa về Smart Contract.
Có thể hiểu Smart Contract đơn giản là 1 ứng dụng chạy trên Blockchain, chứa các logic nghiệp vụ để thực hiện một số yêu cầu hoặc hành động nào đó một cách tự động khi được đáp ứng đủ các yêu cầu cần thiết.
Nếu so sánh Bitcoin Scripts và Smart Contract của Ethereum thì giống như chúng ta đang so sánh 1 phần mềm cũ kỹ, chạy được các chức năng cơ bản với cả một hệ điều hành có khả năng xử lý mọi thứ.
Ethereum mang đến một ngôn ngữ lập trình mới mang tên Solidity, có khả năng thực thi 1 chương trình đơn giải với các cú pháp if… else (nếu gặp điều kiện nào đó thì thực thi hành động nào đó) đến một chương trình hoàn chỉnh. So với Bitcoin Scripts thì có lẽ Solidity không yêu cầu kỹ thuật quá nặng nề như Bitcoin Scripts.
Smart Contract của Ethereum mang lại một bước tiến lớn cho tương lai của công nghệ Blockchain và ngành tài chính của thế giới.
Mọi thứ có đang hoạt động tốt không?
Smart Contract của Ethereum vô cùng lợi hại, nhưng rất tiếc, đường dài mới biết ngựa hay. Smart Contract của Ethereum lại đang gặp rất nhiều vấn đề, AVC sẽ điểm qua 3 vấn đề phổ biến mà hiện tại Smart Contract đang gặp phải.
Bất biến, không có khả năng thay đổi
Mình sẽ liên hệ về thực tế về ứng dụng trên điện thoại, nếu ứng dụng gặp một lỗi khá vớ vẩn, ảnh hưởng đến trải nghiệm sử dụng của bạn thì 90% nhà phát triển sẽ nhận được nhật ký lỗi (error log) từ ứng dụng để tiến hành sửa lỗi. Sau khi sửa lỗi, nhà phát triển cập nhật lên lại App Store, điện thoại của bạn lúc này sẽ tự động cập nhật ứng dụng (hoặc thủ công), mọi chuyện đâu lại vào đấy, bạn sẽ không gặp lại lỗi ứng dụng phiền phức đó nữa. Bạn vui, nhà phát triển cũng vui. Win – win!
Nhưng… Smart Contract thì lại không theo chiều hướng ở phía trên. Năm 2018, dữ liệu chỉ ra rằng có 25% các ứng dụng Smart Contract chứa lỗ hổng bảo mật. Điều nguy hiểm ở đây là: Nếu contract được tạo ra từ Smart Contract đã hoàn thành và đưa vào quá trình vận hành, bạn không có cách nào để chỉnh sửa nó nữa… Đây chính là vấn đề bất biến của Smart Contract.
Việc không thể cập nhật lỗ hổng sẽ đặt nền móng cho các hợp đồng trao đổi không tin cậy, trong khi Smart Contract hoạt động dựa trên sự tin cậy từ phía người dùng. Điều này sẽ khiến các dự án khó khăn trong khi xây dựng Smart Contract, vì một lỗ hổng xảy ra, công ty có thể thất thoát lợi nhuận/doanh thu. Gánh nặng này sẽ đặt lên đôi vai của nhà phát triển và kỹ thuật viên kiểm thử. Khi thiếu hiểu biết về Solidity, việc triển khai vội vàng và không có khả năng phản ứng nhanh với các thông tin mới, tất cả đều gây ra các mối đe dọa đối với việc thực hiện hợp Smart Contract một cách an toàn.
Nặng nề
Kiến trúc tiêu chuẩn của Smart Contract hiện tại yêu cầu phải được chạy trên máy ảo của Ethereum (Ethereum Virtual Machine hay EVM). Nó cung cấp ‘Runtime Engine’ (Bộ công cụ ở thời điểm vận hành) cần thiết cho các ứng dụng xung quanh nó. Tức EVM không chỉ chứa mỗi ứng dụng Smart Contract mà còn chứa các ứng dụng xung quanh nó, từ đó nó sẽ cần các tài nguyên của máy để vận hành các ứng dụng xung quanh, và cần một nguồn tài nguyên lớn chỉ để chạy 1 ứng dụng đơn giản.
Phức tạp đến từ ngôn ngữ
Cá nhân mình nghĩ, đây là lý do cũng như là nguồn cội của các lỗ hổng. Ngôn ngữ Solidity là một ngôn ngữ mới, nhà phát triển sẽ mất rất nhiều thời gian để học hỏi và làm quen với nó. Tuy nhiên, Solidity trao cho các nhà phát triển quá nhiều sức mạnh thô kệch (raw power), có nghĩa là mang đến nhiều chức năng nhưng chưa được chau chuốt dẫn đến nguy cơ tạo ra lỗ hổng tiềm ẩn trong hệ thống.
Và bên cạnh đó, trong thời đại chạy đua công nghệ, các dự án đua nhau tạo ra một thứ gì đó mới, hay cơ bản là về đích trước các đối thủ cạnh tranh để kiếm lợi nhuận mà bất chấp việc quy trình phát triển cẩu thả và ứng dụng chứa nhiều lỗi.
Smart Contract thông minh và dễ hơn với ARK Logic
Từ ban đầu, Ark phát triển rất nhiều các ứng dụng, giải pháp cho vấn đề Trilemma (Bảo mật, linh hoạt, phi tập trung) hay còn được biết đến như các giới hạn mà công nghệ Blockchain đang gặp phải. Các giải pháp được tích hợp vào SmartBridge, nơi hệ sinh thái của các chain được liên kết, mang lại khả năng mở rộng và linh hoạt tốt hơn.
Đồng thời, ARK Logic cũng xử lý các vấn đề phổ biến mà mình đã đề cập ở trên. Thông qua mô hình mô đun hóa dựa trên các plugin, các chủ dự án có thể tận dụng những hiểu biết về công nghệ, ngôn ngữ lập trình yêu thích mình để xây dựng blockchain một cách hiệu quả và bảo mật.
Ark plugin hoạt động như một ứng dụng Typescript (Ngôn ngữ lập trình tường minh và đơn giản, hiệu quả hơn Javascript) bình thường, điểm khác biệt là nó được chạy trên Ark Core là có thể tận dụng các lợi thế của bộ công cụ phát triển của Ark.
Việc xây dựng plugin dường như có thể làm mọi thứ, như giao diện người dùng, Web server, các thiết lập lưu trữ, … tất cả đều có thể tận dụng công nghệ từ ARK Core.
Linh hoạt, mở rộng và đơn giản
Linh hoạt
Mang lại giải pháp linh hoạt, thân thiện với người dùng là bước đầu trong việc phổ biến rộng rãi. Giả tưởng, bạn muốn xây dựng Blockchain với ARK, hãy đến với ARK Deployer. Deployer cho phép bạn tùy chỉnh đến hơn 35 trường dữ liệu như: thời gian tối đa tạo block, số lượng delegate, phí giao dịch, phần thưởng khi forge block, số lượng giao dịch trên một giây… Những gì Deployer mang đến cho bạn sẽ ở “tầng” Blockchain.
Đến với “tầng” giao dịch, ARK Logic mang đến một định nghĩa mới là “Custom transaction type” giúp bạn có để khai báo các loại transaction khác nhau và mỗi loại có thể xử lý một business bất kỳ mà dự án bạn cần giải quyết. Các loại giao dịch này có thể được đóng gói thành các mô đun và có thể được sử dụng, sửa đổi ở các Bridgechain khác, mang đến sự thuận lợi tối đa cho các nhà phát triển.
Đội ngũ ARK chia sẻ về cách nhìn nhận về quá trình phát triển ứng dụng blockchain và triển khai trên những công nghệ cốt lõi của họ, cụ thể:
- Ứng dụng Blockchain hay Decentralized Application – DApp (ứng dụng phi tập trung), có thể triển khai dưới dạng mô-đun trong Blockchain.
- DApp có lớp backend (lớp xử lý các logic nghiệp vụ mà các ứng dụng đều có) chạy trên mạng lưới phi tập trung peer-to-peer (ARK). Khác với các app thông thường, nơi mà backend xử lý được vận hành trên server tập trung.
- DApp có thể có code frontend (các mã viết nên giao diện) và giao diện người dùng có thể viết với bất kỳ ngôn ngữ nào (Như các ứng dụng bình thường) và có thể giao tiếp với lớp backend thông qua một giao thức được triển khai dưới dạng một kênh giao thức trong mô-đun của DApp (Theo mô tả của ảnh).
- DApp có thể vận hành frontend trên mạng lưới phi tập trung, nên vì thế, ngôn ngữ sẽ bị giới hạn và bắt buộc phải phù hợp với công nghệ cốt lõi của ARK và phù hợp với các server trên mạng lưới blockchain.
- DApp có thể triển khai micro services (các dịch vụ nhỏ lẻ, chỉ hoạt động đúng với chức năng đã đề ra cho nó, việc mở rộng sẽ dễ dàng hơn), cho phép thiết kế ứng dụng theo dạng module hóa, sẽ sửa lỗi và nâng cấp như ứng dụng bình thường.
Bây giờ chúng ta có thể dễ dàng khởi chạy mô-đun như mọi ứng dụng thông thường một cách đơn giản… Nhưng phần “Blockchain” và “Sổ cái” thì sao? Vì sao chúng ta lại không đề cập về nó, cũng như nó dùng như thế nào?
Đừng lo quá, những vấn đề đó sẽ được Ark Logic xử lý, cho phép ứng dụng của bạn chạy theo kiểu mô đun trên mạng lưới phân tán. Toàn bộ vòng đời của ứng dụng sẽ được bảo trì bởi Ark Core, …
Lợi ích lớn nhất của ứng dụng/mô đun theo mô hình này đó là có khả năng truy cập cơ chế của Blockchain một cách dễ dàng và thân thiện với nhà phát triển. Tương tác với Blockchain là thứ gì đó mà đội ngũ ARK cực kỳ đề cao, và đây là giải pháp mà họ mang tới cho chúng ta
Khả năng mở rộng
Ngày nay, các dự án Blockchain hướng đến một máy tính có sức mạnh vượt trội để thực thi các tác vụ của họ. Bằng cách áp dụng kiến trúc mô đun hóa, đội ngũ của ARK tin chắc rằng nó sẽ giải quyết tốt vấn đề mở rộng hiện nay.
Nếu một doanh nghiệp xây dựng dự án Blockchain nhưng cấu hình hệ thống của họ có hạn, yêu cầu ứng dụng có tốc độ xác minh giao dịch nhanh hơn,… Giải pháp tốt nhất là khởi chạy một chain riêng cho dự án (bridgechain), phù hợp với yêu cầu ứng dụng và triển khai mô đun giải quyết các nghiệp vụ cần thiết. Giải pháp này mang lại các lợi ích như:
- Gánh nặng từ blockchain của ARK được giảm xuống khi truyền các tài nguyền yêu cầu từ mainnet đến bridgechain.
- Khả năng ổn định được tăng cường, vì bridgechain có thể vận hành độc lập và không bị phụ thuộc các thành phần nào của ARK. Vì độc lập và không phụ thuộc nên bridgechain loại bỏ được “vấn nạn” hệ thống cồng kềnh, tài nguyên máy sẽ được sử dụng tốt hơn.
- Nâng cấp trở nên dễ dàng hơn như sửa đổi và nâng cấp logic nghiệp vụ, không bị bất biến như Smart Contract. Từ đó ứng dụng có thể mở rộng không giới hạn bằng việc đạt được sự đồng thuận trong network.
Nói tóm lại, việc chuyển logic từ Ark mainnet sang các bridgechain riêng là một cách đơn giản và hiệu quả tương tự như giải pháp Sharding hay chia ra nhiều kênh thanh toán nhưng 2 cách này đều có một loạt các vấn đề về mở rộng và bảo mật, đó là kết quả từ sự phức tạp của 2 cách này, do đó việc đơn giản hóa bằng cách tách ra sử dụng multichain là vô cùng sáng suốt.
Sự đơn giản
Đội ngũ của ARK là những thành viên từng có kinh nghiệm xương máu với Blockchain, từ đó họ có những ý tưởng, giải pháp để giải quyết vấn đề Trilemma bằng những công nghệ, sản phẩm mà ARK đang, đã và sẽ xây dựng từ năm 2016 đến nay.
Ark có một bộ tài liệu phát triển minh bạch, dễ đọc, cộng đồng đầy nhiệt huyết. Ark hướng dẫn và phổ cập đến với người dùng thông qua các bài giới thiệu, tài liệu, hướng dẫn hay những buổi giao lưu AMA.
Các thành phần Ark Logic như plugin mô-đun và mẫu TX (transaction, giao dịch) sẽ kết hợp với các yếu tố trên để làm cho việc tạo và triển khai các ứng dụng phi tập trung trở nên cực kỳ đơn giản,.
Trong tương lai, đội ngũ Ark sẽ thêm các mẫu TX có sẵn cho tất cả mọi người tham khảo và sử dụng, đồng thời họ cũng dự đoán trước sự phát triển mạnh mẽ và rộng rãi của cộng đồng Bridgechain, qua đó cộng đồng sẽ cung cấp chia sẻ các mẫu TX mới.
Các template TX mới sẽ mở rộng các trường hợp sử dụng phổ biến của ARK đến với các công cụ soạn mã phổ biến (như Visual Code), từ đó, các nhà phát triển sẽ phát triển những công cụ giúp tạo ra những đoạn mã (code snippet) phổ biến. Điều này giúp cho các nhà phát triển dễ dàng và bớt thời gian trong quá trình phát triển, điều duy nhất họ cần làm đó là viết những logic nghiệp vụ vào các phương thức (method/function) đã được tạo ra.
Phương pháp ‘keep it simple’ (đơn giản nhất có thể) của ARK Logic được thiết kế để cho phép mọi người tạo hoặc nâng cao dự án của họ theo cách hiệu quả và tiêu chuẩn nhất.
Làm gì với Custom Transactions
Hầu như các cách tương tác thực tế được dựa trên giao dịch (transaction-based) hoặc dựa trên sự kiện (event-based). Với Custom transaction, cung cấp cho nhà phát triển khả năng dễ dàng thêm các phương thức tùy chỉnh trên công nghệ sổ cái phân tái và có thể tái sử dụng
Từ đây, chúng ta có thể xây dựng bất kỳ thứ gì được thực hiện bằng các hợp đồng thông minh mà không gặp rắc rối với ngôn ngữ phức tạp như Solidity hoặc Move! Một số ví dụ sản phẩm/chức năng mà chúng ta có thể làm với Custom Transaction:
- audit log, chức năng theo dõi
- Quản lý chuỗi cung ứng
- Chăm sóc y tế
- Hỗ trợ mang lưới IoT
- Hỗ trợ NFT Tokens
- Stable coins
- … và còn nhiều hơn nữa – dường như danh sách sẽ không kết thúc.
Bên trên là kết quả tìm hiểu, nghiên cứu về Ark Logic của hai thành viên của AVC là: Phong và Binhdev. Hy vọng đem lại cái nhìn tổng quát về Ark Logic cho những ai quan tâm đến Hệ sinh thái ARK và những ai cần một giải pháp Smart Contract thông minh hơn, hiệu quả hơn nhưng lại đơn giản hơn.