Solidity là gì?
Solidity là một ngôn ngữ lập trình để xây dựng các hợp đồng thông minh (smart contract) trên Ethereum. Đây được xem là một nền tảng hợp đồng thông minh phi tập trung hàng đầu trong crypto. Về cơ bản, mọi thứ có thể xây dựng được trên các hệ thống phi tập trung đều có thể được xây dựng trên Ethereum, từ sàn giao dịch phi tập trung (DEX), thị trường nghệ thuật kỹ thuật số (NFT marketplace), tài chính phi tập trung (DeFi), Metaverse,…
Solidity là một ngôn ngữ lập trình cấp cao, đối tượng sử dụng của ngôn ngữ Solidity là các nhà lập trình muốn phát triển các ứng dụng trên Ethereum. Bằng cách sử dụng sự kết hợp giữa các chữ cái và số, ngôn ngữ lập trình Solidity giúp các nhà phát triển (developer) viết chương trình dễ dàng hơn.
Sau khi được đề xuất vào năm 2014 bởi Gavin Wood, ngôn ngữ này đã được phát triển bởi những người đóng góp cho dự án Ethereum, dẫn đầu bởi Christian Reitwiessner, Vitalik Buterin, Alex Beregszaszi và những người khác.
Cách hoạt động của Solidity trên Ethereum
Như mình đã trình bày phía trên, ngôn ngữ lập trình Solidity được sử dụng để tạo hợp đồng thông minh trên Ethereum, nó cho phép nhiều trường hợp sử dụng khác nhau như:
- Mint các Fungible, Non-Fungible token (NFT).
- Tạo ra các thị trường cho vay phi tập trung cho các Fungible token: Compound, Aave,…
- Tạo ra các thị trường trao đổi Non-Fungible token: Opensea, SuperRare,…
Sau khi các developer sử dụng Solidity để viết ra các chương trình, một trong những thành phần quan trọng giúp thực thi Solidity Code là EVM. EVM được mô tả như một máy tính ảo trên blockchain, nó giúp biến solidity code của các nhà phát triển thành các ứng dụng chạy trên Ethereum.
Ở cấp độ cao hơn, Solidity cho phép nhà phát triển viết ra các “machine level” code có thể thực thi được trên EVM. Sau đó, Trình biên dịch (compiler) được sử dụng để chia nhỏ các dòng code mà các nhà phát triển viết, biến thành các lệnh mà bộ xử lý có thể hiểu và thực thi.
Ưu điểm & Hạn chế của ngôn ngữ Solidity
Mặc dù là một trong những ngôn ngữ phổ biến nhất được sử dụng để viết các ứng dụng blockchain, nhưng Solidity vẫn giống như bất kỳ ngôn ngữ lập trình nào khác, Solidity đi kèm với những ưu điểm và nhược điểm của nó.
Ưu điểm
Solidity cho phép xây dựng nên các hợp đồng thông minh an toàn, minh bạch và đáng tin cậy. Nếu được triển khai đúng cách, chúng có thể tăng hiệu quả vận hành, giảm chi phí hành chính và sự phụ thuộc vào bên thứ ba.
Solidity sử dụng một số lượng lớn các nhận thức lập trình (Programming Perceptions) tồn tại trong các ngôn ngữ lập trình khác như các biến, thao tác chuỗi, lớp, hàm, phép toán số học,… Điều này là do Solidity bị ảnh hưởng chủ yếu bởi C ++, Python, JavaScript, vì vậy, nếu bạn biết một ngôn ngữ như Java hoặc C, quá trình học tập và sử dụng Solidity của bạn sẽ tương đối dễ dàng.
Solidity là một trong những ngôn ngữ lập trình blockchain phổ biến nhất hiện nay cho Ethereum và EVM chain, nó cung cấp khá nhiều tài liệu mã nguồn mở về cách các ứng dụng hoạt động và nhiều trường hợp sử dụng khác nhau, từ đó, bạn có thể dễ dàng xây dựng các ứng dụng phức tạp hơn từ các sản phẩm của người khác.
Ví dụ, nếu bạn đang xây dựng một sàn DEX cho mình, bạn hoàn toàn có thể fork mã nguồn của Uniswap và xây dựng thêm các tính năng sáng tạo hơn trên nền của nó như thêm tính năng Liquidity Farming, Lending,…
Nhược điểm`
Tính chất không thể thay đổi là một ưu điểm lớn, tuy nhiên trong một số trường hợp có thể là nhược điểm. Ví dụ, sau khi hợp đồng được thực hiện, nó không thể được nâng cấp, không thể thêm các tính năng bổ sung vào nó.
Bởi vì Ethereum chạy trên công nghệ Blockchain, nó không thể tự thu thập và cập nhật thông tin một cách nhanh chóng vào hệ thống ngoại trừ thông qua các hoạt động giao dịch. Đây có thể là một vấn đề lớn khi nói đến các yếu tố như dữ liệu biến động như giá của các cặp tiền tệ (Forex),…
Nhược điểm lớn nhất có thể thấy từ Solidity phải đối mặt đó là sự non trẻ (khi so sánh với các ngôn ngữ lâu đời như C hay Java). Đối với các nhà phát triển, điều này có nghĩa là có thể có rất ít thư viện và tài liệu tham khảo, khiến cho việc học Solidity trở thành một nhiệm vụ khó khăn đối với những người mới.
Có nên học Solidity không?
Nói về khoản thu nhập, Blockchain Developer đang làm một trong những ngành hút nhân lực nhất hiện nay, không chỉ ở VIệt Nam mà còn ở quy mô toàn cầu. Điều này xảy ra là do cầu vượt quá cung, nên lẽ thường là thu nhập của Blockchain Developer thường khá cao, dù bạn chọn làm việc ở một công ty nào đó hay là tự xây dựng một ứng dụng cho riêng mình.
Trong Blockchain Developer, Solidity Dev có vẻ là nhóm có nhu cầu cao nhất, bởi vì Solidity là ngôn ngữ lập trình được sử dụng để xây dựng các ứng dụng ở Ethereum và EVM chain, có thể xem Solidity là ngôn ngữ lập trình blockchain được sử dụng nhiều nhất hiện nay.
Nếu bạn đang nghĩ về việc học Solidity để nhắm tới một công việc trong thế giới web3 trong tương lai, mình nghĩ Solidity cũng là một ngôn ngữ bạn nên ưu tiên để học hỏi, vì:
- Ethereum đã phát triển được vài năm. Vì vậy, tài liệu học tập, các trường hợp sử dụng đã được khám phá khá nhiều (so sánh với coswasm, !ink,…), điều này rất hữu ích trong quá trình học tập của bạn.
- Hệ sinh thái Ethereum & EVM chain rộng lớn và phát triển bật nhất trong không gian Crypto vì vậy cơ hội phát triển sẽ rất lớn.