Các smart contract – hợp đồng thông minh có khả năng tự động hóa các tác vụ và lưu trữ các ứng dụng phi tập trung (Decentralized apps – DApps) và mang lại sự tự tin. Do đó, các nhà phát triển DeFi thường xuyên sử dụng chúng để tự động hóa các khoản vay nhanh, khoản vay tiêu chuẩn, staking và các tính năng độc đáo khác. Các nhà phát triển có thể tạo các ứng dụng hợp đồng thông minh bằng cách sử dụng các giao diện đơn giản trên các nền tảng dựa trên blockchain
- 1. Smart contract – hợp đồng thông minh là gì ?
- 2. Các nền tảng phát triển Smart contract
- 3. So sánh các nền tảng Smart contract
- Execution environment (Môi trường thực thi)
- Turing completeness
- Applications of smart contracts (Các ứng dụng của hợp đồng thông minh)
- Supported languages (Các ngôn ngữ được hỗ trợ)
- Permission
- Consensus algorithms (Các thuật toán đồng thuận)
- Data model (Mô hình dữ liệu)
- 4. Tại sao việc phát triển Smart contract lại quan trọng đối với các công ty?
1. Smart contract – hợp đồng thông minh là gì ?
Smart contract – hợp đồng thông minh là một lớp công nghệ blockchain mang tính đột phá cho phép người dùng giao tiếp và giao dịch với nhau thông qua một “người trung gian robot”. Hợp đồng thông minh có thể được coi là một đống mã tự thực thi có thể thực hiện một số hoạt động nhất định mà nếu không sẽ phải thực hiện thủ công.
Vì vậy, ý nghĩa của hợp đồng thông minh là gì? Họ đưa ra yếu tố về sự không tin cậy mà các blockchain yêu cầu. Bạn có thể dựa vào một người không quen biết để theo dõi một giao dịch trực tuyến không? Rõ ràng là không.
Hơn nữa, các smart contract – hợp đồng thông minh có khả năng tự động hóa các tác vụ và lưu trữ các ứng dụng phi tập trung (Decentralized apps – DApps) và mang lại sự tự tin. Do đó, các nhà phát triển DeFi thường xuyên sử dụng chúng để tự động hóa các khoản vay nhanh, khoản vay tiêu chuẩn, staking và các tính năng độc đáo khác
Các nhà phát triển có thể tạo các ứng dụng hợp đồng thông minh bằng cách sử dụng các giao diện đơn giản trên các nền tảng dựa trên blockchain. Nhiều nền tảng blockchain hiện tại có khả năng hỗ trợ các hợp đồng thông minh. Bài viết này sẽ giới thiệu và phân tích năm nền tảng hợp đồng thông minh nổi bật nhất: Ethereum, Hyperledger Fabric, Corda, Stellar và Rootstock cũng như xem xét mức độ phổ biến và sự trưởng thành về kỹ thuật của chúng trong cộng đồng đang phát triển.
2. Các nền tảng phát triển Smart contract
Năm nền tảng hợp đồng thông minh phổ biến nhất như Ethereum, Hyperledger Fabric, Corda, Stellar và Rootstock, được thảo luận trong phần này.
Ethereum là gì ?
Ethereum là một nền tảng phi tập trung cho phép các smart contract – hợp đồng thông minh được thực thi. Trái ngược với hệ thống tập lệnh hoàn chỉnh Turing của Bitcoin, Ethereum đã tạo ra các ngôn ngữ hoàn chỉnh Turing như Serpent, Solidity, Low-level Lisp-like Language (LLL) và Mutan để phục vụ các ứng dụng của người dùng không phải tiền điện tử.
Ethereum chuyển đổi các hợp đồng thông minh Solidity, Serpent, LLL và Mutan thành mã máy, sau đó được tải vào máy ảo Ethereum (Ethereum Virtual Machine – EVM) và thực thi. Mặt khác, hợp đồng thông minh Ethereum có định dạng dữ liệu dựa trên tài khoản, trong đó mỗi người tham gia được công nhận bởi ví kỹ thuật số của họ.
Ethereum, giống như Bitcoin, sử dụng cơ chế đồng thuận bằng chứng công việc (Proof-of-Work – PoW) , rất tốn kém về mặt tính toán. Tuy nhiên, Ethereum sẽ sớm chuyển từ PoW sang bằng chứng cổ phần (Proof-of-Stake – PoS). Đây luôn là mục đích, vì nó là một thành phần thiết yếu trong kế hoạch phát triển Ethereum của cộng đồng thông qua các bản nâng cấp Eth2 . Để thưởng cho các thợ đào chi phí giải quyết vấn đề, Ether (ETH) được sử dụng thay vì Bitcoin (BTC). Nói cách khác, gas hoạt động như một khoản phí nội bộ để hoàn thành một giao dịch nhằm bù đắp cho giá trị biến động của ETH.
Một cách không chính thức, tổng chi phí của một giao dịch có thể được ước tính bằng cách sử dụng công thức: gas limit*gas price (trong đó gas limit là lượng gas tối đa có thể được sử dụng để tạo ra một khối và gas price là chi phí của một đơn vị gas (bằng ETH) )
Người dùng có thể chi tiêu số lượng gas khác nhau để giao dịch của họ được xác nhận sớm hay muộn (tức là một lượng gas lớn dẫn đến việc xác nhận nhanh chóng). Bởi vì PoW đòi hỏi tính toán cao, nó có thể tiêu tốn rất nhiều sức mạnh cho các công việc khai thác khối vô nghĩa. Nó được mong đợi nếu quá trình khai thác được sử dụng cho các hoạt động có giá trị, chẳng hạn như hỗ trợ các câu đố toán học và thực hiện các nhiệm vụ học máy.
Hyperledger Fabric là gì ?
Hyperledger Fabric là một công nghệ sổ cái phân tán cũng có thể được sử dụng để chạy các hợp đồng thông minh. Không giống như Ethereum, sử dụng máy ảo (Virtual Machines – VMs) để chạy các hợp đồng thông minh (ví dụ: EVM), hợp đồng thông minh Hyperledger Fabric sử dụng một vùng chứa Docker để chạy mã. Không giống như máy ảo, vùng chứa có thể cho phép các ứng dụng hợp đồng thông minh với chi phí giảm mà không ảnh hưởng đến sự cô lập (tức là các ứng dụng trong một vùng chứa đang chạy trên cùng một hệ điều hành).
Quỹ Linux giám sát dự án Hyperledger Fabric. Tuy nhiên, họ đã nhận được một khoản đầu tư đáng kể từ IBM. Trong mọi trường hợp, một số bạn có thể quen với nó như là IBM blockchain. Fabric cho phép các ngôn ngữ lập trình cấp cao truyền thống như Java và Go thay vì xây dựng các ngôn ngữ smart contract – hợp đồng thông minh Ethereum (hay còn gọi là Golang).
Ngoài ra, Fabric đã hoàn thành Turing và mô hình dữ liệu mà Fabric sử dụng là cặp khóa-giá trị (mô tả giá trị và giá trị).
Ví dụ cho các cặp khóa-giá trị như sau: “car”: “Mercedes.” Ở đây, chiếc xe là chìa khóa, và Mercedes là giá trị.
Mạng lưới blockchain của Fabric được cấp phép (tư nhân hoặc tập đoàn) – Permissioned (private or consortium) vì nó cung cấp các ứng dụng doanh nghiệp rộng rãi. Cơ quan cấp chứng chỉ (Certificate Authorities – CA) phải phê duyệt người dùng trước khi tham gia mạng. Nhiều loại CA cùng tồn tại trong mạng vì các trách nhiệm khác nhau được thực hiện.
Ví dụ: cơ quan cấp chứng chỉ đăng ký cho phép người dùng đăng ký với các blockchains. Ngoài ra, người dùng phải tìm kiếm chứng chỉ giao dịch từ cơ quan cấp chứng chỉ giao dịch sau khi đăng ký. Trong mạng lưới blockchain được cấp phép, có thể nhanh chóng đạt được sự đồng thuận.
Corda là gì ?
Không giống như Ethereum, có nhiều mục đích sử dụng, Corda tập trung vào các ứng dụng tiền tệ kỹ thuật số. Đó là một nền tảng sổ cái phân tán để lưu trữ và xử lý dữ liệu tài sản kỹ thuật số từ quá khứ. Nhưng, Corda có hỗ trợ hợp đồng thông minh không? Các hợp đồng thông minh Corda hoạt động trên Máy ảo Java (Java Virtual Machine – JVM) và sử dụng các ngôn ngữ lập trình cấp cao như Java và Kotlin. Trong khi đó, để cho phép xác minh, Corda là Turing chưa hoàn thiện. Hơn nữa, mô hình dữ liệu của Corda là một cách tiếp cận dựa trên giao dịch.
Corda thường được sử dụng để kích hoạt các nền tảng tư nhân, trong đó các doanh nghiệp tạo mạng của họ để trao đổi tài sản kỹ thuật số một cách an toàn. Sự đồng thuận có thể đạt được nhanh chóng trên các nền tảng blockchain riêng tư. Thuật toán đồng thuận trong Corda là Raft.
Raft là một crash-fault-tolerant (CFT) hoạt động trên cơ sở “leader and follower”, với một nút lãnh đạo được bầu chọn (trên mỗi kênh) và những người theo dõi sẽ lặp lại các quyết định của nó. CFT bổ sung một lớp mạnh mẽ cho giao thức, cho phép thuật toán tiếp tục quá trình và thiết lập thỏa thuận ngay cả khi các thành phần riêng lẻ không thành công.
Lựa chọn người lãnh đạo, sao chép nhật ký và đảm bảo an toàn là tất cả những cách để tạo ra sự đồng thuận trong Raft. Corda sử dụng hệ thống nhắn tin point-to-point thay vì truyền phát trên toàn thế giới trong các blockchain. Người nhận tin nhắn và thông tin cụ thể được truyền đi phải do người dùng chỉ định.
Stellar là gì ?
Stellar là một nền tảng chuyên biệt cho các ứng dụng tiền kỹ thuật số, tương tự như Corda. Stellar là một loại tiền điện tử đơn giản và dễ tiếp cận hơn Ethereum. Mặt khác, Stellar có thể hỗ trợ nhiều loại ngôn ngữ, bao gồm Python, JavaScript, Golang và PHP. Nhưng liệu Stellar có hợp đồng thông minh không?
Có, Stellar hỗ trợ các hợp đồng thông minh, nhưng các hợp đồng Stellar không phải là Turing hoàn chỉnh, vậy một hợp đồng thông minh Stellar được tạo ra như thế nào? Hợp đồng thông minh Stellar là một tập hợp các giao dịch được kết nối và thực hiện bằng cách sử dụng các ràng buộc khác nhau và được thiết kế để gửi, lưu trữ và giao dịch giá trị.
Multisignature – một khái niệm yêu cầu chữ ký của nhiều bên để ký kết các giao dịch bắt nguồn từ một tài khoản – và Batching/Atomicity – khái niệm kết hợp nhiều thao tác trong một giao dịch – là hai ví dụ về các hạn chế đối với hợp đồng thông minh Stellar. Tính nguyên tử là lời hứa rằng nếu một hoạt động trong chuỗi không thành công, phần còn lại của giao dịch sẽ vẫn hoạt động.
Stellar, giống như Fabric, thực thi mã chương trình trên các vùng chứa Docker, dẫn đến chi phí thấp hơn. Ví dụ, chi phí thực hiện của một giao dịch tại Stellar chỉ là $0,0000002, gần như không đáng kể. Hơn nữa, trung bình một giao dịch trong Stellar mất khoảng 5 giây để hoàn thành, so với 3,5 phút trong Ethereum.
Do đó, Stellar là một nền tảng tuyệt vời cho các ứng dụng tiền kỹ thuật số. Stellar, giống như Ethereum, sử dụng phương pháp dựa trên tài khoản làm mô hình dữ liệu của nó. Giao thức đồng thuận Stellar (Stellar Consensus Protocol – SCP) là thuật toán đồng thuận của công ty. SCP cho phép các bên thỏa thuận mà không cần dựa vào một hệ thống khép kín để theo dõi các giao dịch tài chính. Vì Stellar được ủy quyền nên việc đạt được sự đồng thuận rất đơn giản.
Rootstock – RSK là gì ?
RSK hoạt động dựa trên Bitcoin và cho phép xử lý giao dịch nhanh hơn.
Ví dụ: RSK có thể xác nhận một giao dịch trong vòng chưa đầy 20 giây. Trong khi đó, RSK tương thích với Ethereum (ví dụ: sử dụng Solidity để thực hiện các hợp đồng). Các hợp đồng thông minh Rootstock cũng đã hoàn thành Turing. RSK cũng tạo ra các máy tính ảo để chạy các hợp đồng thông minh. Mô hình dữ liệu của RSK cũng dựa trên tài khoản, mặc dù RSK là một hệ thống blockchain công khai.
RSK đã tạo ra một cơ chế đồng thuận dựa trên PoW và triển khai nó một cách gọn nhẹ, giảm thiểu chi phí. RSK, giống như Corda và Stellar, được thiết kế để cho phép các ứng dụng chủ yếu là tiền kỹ thuật số.
RSK có giá trị ở chỗ nó an toàn hơn đáng kể so với các hệ thống không dựa trên blockchain vì nó được xây dựng trên nền tảng của Bitcoin. Tuy nhiên, nó có thể gây thêm căng thẳng cho Blockchain Bitcoin. RSK cần tìm ra cách khắc phục tình trạng này.
3. So sánh các nền tảng Smart contract
Các khía cạnh chính của các nền tảng Smart contract – hợp đồng thông minh nêu trên được giải thích trong phần này.
Execution environment (Môi trường thực thi)
EVM được sử dụng để thực hiện các hợp đồng Ethereum. Máy ảo JVM và RSK lần lượt được sử dụng bởi Corda và Rootstock. Mặt khác, Fabric và Stellar thực hiện các hợp đồng thông minh trên đầu các vùng chứa Docker, giảm chi phí trong khi vẫn ảnh hưởng đến việc phân tách ứng dụng.
Turing completeness
Ethereum, Fabric và RSK đều có hợp đồng thông minh hoàn chỉnh Turing; tuy nhiên, Corda và Stellar có các hợp đồng thông minh không hoàn chỉnh Turing. Các hợp đồng hoàn chỉnh Turing thường biểu đạt hơn các hợp đồng không hoàn chỉnh Turing. Tuy nhiên, tính hoàn chỉnh của Turing làm tăng khả năng các lỗi phần mềm trở nên dễ bị tấn công bởi các cuộc tấn công ác ý.
Applications of smart contracts (Các ứng dụng của hợp đồng thông minh)
Không giống như Corda, Stellar và RSK chỉ hỗ trợ tiền kỹ thuật số, trong khi Ethereum và Fabric cung cấp nhiều ứng dụng hơn, bao gồm tiền kỹ thuật số, quản lý tài sản kỹ thuật số, đầu tư vốn, chính phủ và nền kinh tế chia sẻ. Corda, Stellar, RSK và con cháu của chúng có thể hỗ trợ nhiều mục đích sử dụng chung hơn trong tương lai.
Supported languages (Các ngôn ngữ được hỗ trợ)
Ethereum hỗ trợ các ngôn ngữ lập trình dành riêng cho Ethereum là Solidity, Serpent và Mutan. Vải và Golang hiện được hỗ trợ, trong khi Corda sử dụng Java và Kotlin. Python, Javascript, Golang và PHP chỉ là một vài ngôn ngữ mà Stellar có thể hỗ trợ. RSK sử dụng Solidity làm ngôn ngữ hợp đồng của nó để có thể tương tác với Ethereum.
Permission
Ethereum và RSK là các nền tảng hợp đồng thông minh công khai (tức là không được phép), có nghĩa là bất kỳ ai cũng có thể tham gia mạng bất kỳ lúc nào. Ngược lại, Corda và Hyperledger là những nền tảng riêng tư mà chỉ những người dùng đã được xác thực mới có thể truy cập. Stellar là một chuỗi khối liên hợp bao gồm nhiều lĩnh vực công ty và nằm giữa các public và private blockchains (hoặc các organizations).
Consensus algorithms (Các thuật toán đồng thuận)
PoW được Ethereum và RSK sử dụng để xác thực độ tin cậy của khối tương tự như giải pháp của một vấn đề khó tính toán (ví dụ: một câu đố). Phần lớn các thuật toán đồng thuận PoW đòi hỏi tính toán cao.
Fabric lựa chọn cơ chế đồng thuận Practical Byzantine Fault Tolerance (PBFT), bao gồm nhiều vòng bỏ phiếu giữa các nút đã xác thực để đạt được quyết định. Do đó, PBFT chuyên sâu về mạng. Thay vì một hệ thống toàn cầu, Corda sử dụng một cơ chế đồng thuận cơ bản được gọi là Raft để đạt được sự đồng thuận giữa các lĩnh vực khác nhau ở cấp độ các giao dịch riêng lẻ. Mặt khác, Stellar thực hiện một kỹ thuật đồng thuận đơn giản được gọi là SCP để đạt được sự đồng thuận.
Data model (Mô hình dữ liệu)
Tương tự như Bitcoin, Corda sử dụng cơ chế đầu ra giao dịch chưa sử dụng (Unspent Transaction Output – UTXO). Mỗi khoản thanh toán trong mô hình UTXO phải đề cập đến giao dịch chưa được sử dụng trước đó làm đầu vào. Giao dịch đã nêu sau đó được hoàn tất. Đối với các giao dịch chưa được chi tiêu mới, các điều chỉnh sẽ được thực hiện.
Ngược lại, các mô hình dựa trên tài khoản được sử dụng bởi Ethereum, Stellar và RSK. Trong các mô hình dựa trên tài khoản, số dư của một địa chỉ được ghi lại trực tiếp thay vì tính toán tất cả các số tiền giao dịch chưa sử dụng. Fabric sử dụng khái niệm khóa-giá trị trong đó dữ liệu được lưu trữ trong các chuỗi khối dưới dạng các cặp key-value
Đặc điểm của các nền tảng hợp đồng thông minh nêu trên được tóm tắt trong bảng dưới đây.
4. Tại sao việc phát triển Smart contract lại quan trọng đối với các công ty?
Một trong những vấn đề quan trọng nhất mà các công ty phải đối mặt là sự thiếu tin tưởng khi giao dịch với bên thứ ba. Các tổ chức hành động thận trọng và dành nhiều thời gian và tiền bạc cho các tổ chức trung gian trong khi giải quyết các thỏa thuận do thiếu sự tin cậy và minh bạch.
Khi các điều kiện hợp đồng có thể được nhìn thấy công khai, hợp đồng thông minh có thể giúp đỡ bằng cách loại bỏ các bên trung gian. Sử dụng công nghệ blockchain, các hợp đồng này làm tăng sự tin cậy và minh bạch giữa hai bên. Ngoài ra, họ có thể tạo ra các hợp đồng bất biến và có thể truy cập được.
Hợp đồng thông minh là một công nghệ mới có thể thúc đẩy hiệu quả trong nhiều ngành khác nhau. Khi công nghệ được cải thiện, nhiều doanh nghiệp sẽ sử dụng nó để cắt giảm chi phí và tạo điều kiện cho các giao dịch nhanh chóng và an toàn. Khi các chi tiết thỏa thuận có thể được nhìn thấy công khai và kỹ thuật số, các hợp đồng thông minh có thể đảm nhận vị trí của các tác nhân trung gian các thỏa thuận. Ví dụ, hợp đồng thông minh có thể thay thế luật sư trong các quy trình pháp lý dựa vào sơ đồ truyền thống, tài sản, thủ tục dân sự, bằng chứng hoặc phân tích hợp đồng bằng cách tự động hóa các hoạt động tốn nhiều công sức.
Việc hoàn thiện hợp đồng vì các bên trung gian và các thủ tục giấy tờ liên quan đến các hợp đồng điển hình rất tốn thời gian. Tuy nhiên, hợp đồng thông minh có thể được ký kết nhanh chóng hơn vì chúng không yêu cầu người trung gian. Ngoài ra, vì hợp đồng thông minh được viết bằng mã máy tính, ít bên sẽ mắc lỗi thủ công hơn trong suốt quá trình soạn thảo hợp đồng.
Hơn nữa, công nghệ blockchain giúp các giao dịch an toàn hơn vì cấu trúc phi tập trung của nó. Ví dụ: nếu tin tặc muốn thay đổi số lượng đô la trong một giao dịch, họ cần phải kiểm soát ít nhất một nửa sức mạnh tính toán của blockchain. Mặc dù công nghệ này không làm cho hệ thống không thể xâm nhập, nhưng nó làm cho quy trình trở nên khó khăn hơn.