[Guest Post] Bước vào thế giới blockchain: Hướng dẫn chi tiết xây dựng một ứng dụng dApp
Giới thiệu
Xin chào mọi người, mình là Hoàng BA – làm công việc phân tích nghiệp vụ trong mảng blockchain.
Mình có hơn 2 năm làm các dự án blockchain với vai trò Product Owner, Product Manager cho các dự án về DEX, User Identity, Token Swap, Bridge, Private Chain, SocialFi,…
Với kinh nghiệm làm việc tại các dự án như vậy, mình muốn chia sẻ đến bạn đọc trên blog NIVIKI về tổng quan xây dựng một dự án blockchain thì sẽ qua các bước như thế nào.
Giới thiệu về các dự án mình từng làm
Thật ra thì mình làm thiên về các dự án dùng công nghệ blockchain xây dựng các ứng dụng liên quan đến crypto, hay nhiều bạn nhắc tới là Coin, tiền ảo.
Cũng có thời gian trước khi bắt đầu làm liên quan đến crypto thì có làm dự án liên quan đến ngân hàng và dùng công nghệ blockchain để xử lý giao dịch.
Nhưng trong phạm vi bài viết này mình sẽ tập trung nói về các dự án liên quan đến thị trường crypto nhé.
Tại sao nên học làm sản phẩm blockchain?
Với sự phát triển của công nghệ blockchain, đặc biệt với sự phổ biến của crypto tại Việt Nam.
Những năm gần đây Việt Nam luôn nằm trong “Top Countries for Cryptocurrency Adoption” – top 1 năm 2022, top 2 năm 2021.
Học cách làm sản phẩm dapp trên blockchain mang lại nhiều lợi ích và cơ hội, đặc biệt trong bối cảnh công nghệ blockchain ngày càng phổ biến.
Tiềm Năng Công Nghệ Mới: Blockchain là một trong những công nghệ mới nhất trong thập kỷ qua.
Nhu cầu thị trường ngày càng tăng, và đang thiếu hụt nhân lực, vì lý do đó mà mức lương tại mảng này đang cao hơn so với những bạn làm công việc liên quan đến IT ngoài Blockchain.
Là cơ hội để tiếp cận công nghệ mới, thị trường mới và có thể có cơ hội phát triển những sản phẩm đột phá, mang lại nhiều lợi nhuận.
Đóng góp vào sự phát triển công nghệ, làm việc với blockchain cho phép bạn góp phần vào sự phát triển của một công nghệ đang thay đổi thế giới.
Có nhiều cơ hội học hỏi và hợp tác với nhiều chuyên gia, đặc biệt khi tham gia sớm bạn thậm chỉ sẽ trở thành một chuyên gia hàng đầu trong lĩnh vực.
Nhưng hiện tại khá nhiều bạn đang khá lo lắng về việc học và hiểu về công nghệ blockchain, không biết có khác gì so với xây dựng sản phẩm phần mềm thông thường, từ đó mà làm chậm quá trình tiếp cận với công nghệ blockchain với nhiều lợi ích, tiềm năng và cơ hội đang chờ đón.
Chính vì lý do đó mà mình có xây dựng khoá học “Nghiệp vụ Blockchain cho Business Analyst” nhằm giúp nhiều bạn đi tắt, tiết kiệm thời gian để hiểu về Blockchain và các sản phẩm trên blockchain và cách xây dựng sản phẩm blockchain.
Xem thêm:
Giải thích về các blockchain khác nhau.
Như nhiều bạn tìm hiểu thì biết blockchain là gì đúng không?
Blockchain là một công nghệ lưu trữ và truyền thông tin kiểu khối dữ liệu, và nó được mã hoá, phân tán. Thường thì những giao dịch xảy ra trên blockchain, sẽ được lưu trữ vào block, và nối với nhau tạo thành chuỗi => vì lý do đó mà nó minh bạch, không thể thay đổi, không giống như database có thể vào sửa cập nhật lại dữ liệu, mà đây chỉ có thể ghi dữ liệu mới vào một block mới khi cập nhật dữ liệu, dữ liệu cũ vẫn còn nằm trên block cũ.
Và dựa vào công nghệ này thì sẽ giải quyết được nhiều bài toán, trong các dự án ngoài crypto thì có thể áp dụng cho các hoạt động như ngân hàng, bảo hiểm, giáo dục,… vì nó khá bảo mật, minh bạch, giảm thiểu rủi ro bị tấn công.
Còn trong crypto, dựa vào ứng dụng của blockchain, người tay xây dựng ra nhiều chain khác nhau với các mục đích khác nhau, điển hình như:
Bitcoin Blockchain: Đây là blockchain đầu tiên và nổi tiếng nhất, phục vụ chủ yếu cho việc giao dịch tiền điện tử Bitcoin. Điểm nổi bật là tính bảo mật cao và sự đơn giản.
Ethereum (và EVM – Ethereum Virtual Machine): Ngoài việc hỗ trợ tiền điện tử (Ether), Ethereum còn cho phép tạo và vận hành các ứng dụng phi tập trung (dApps) thông qua hợp đồng thông minh (smart contracts). EVM là môi trường ảo cho phép thực thi hợp đồng thông minh trên Ethereum.
Binance Smart Chain (BSC/BNB Chain): Tương thích với EVM và hỗ trợ hợp đồng thông minh, BSC nổi bật với tốc độ giao dịch nhanh và chi phí thấp, thu hút nhiều dự án DeFi và NFT.
Solana: Một blockchain hiệu suất cao với thời gian xử lý giao dịch nhanh và chi phí thấp, phù hợp cho các ứng dụng cần tốc độ và quy mô lớn. Và không thuộc hệ EVM, không tương thích với EVM.
Cosmos: Hệ thống này cho phép các blockchain khác nhau hoạt động độc lập nhưng vẫn có thể giao tiếp với nhau thông qua giao thức IBC (Inter-Blockchain Communication).
… và nhiều blockchain khác nhau.
Vì nó là các hệ blockchain khác nhau, nên có thể những ứng dụng trên chain này không thể sử dụng trên chain kia, cũng như các token/coin ở chain này cần phải bridge (bắt cầu) qua chain kia để có thể sử dụng.
Kiểu như ứng dụng native xây trên iOS không thể sử dụng trên Android được vì nó sử dụng thư viện, API khác nhau. Tương tự đó trên các blockchain khác nhau đều có một “hệ điều hành” riêng biệt, với quy tắc riêng, do đó mà ứng dụng chạy trên blockchain cụ thể không thể chạy trực tiếp trên một blockchain khác mà không có sự điều chỉnh, hoặc viết lại để phù hợp với quy tắc của môi trường mới.
Nhưng với hệ EVM (ETH, BSC, Polygon…) thì đỡ hơn, nó có một hệ tiêu chuẩn riêng, và các chain khác nhau khi build trên EVM sẽ dễ tương thích với các ứng dụng viết bằng smart contract trên hệ EVM, nhờ đó có thể tái sử dụng code của ứng dụng này trên chain EVM A để sử dụng và build lại trên EVM B.
Các bước làm một dự án blockchain
Bước 1: Ý tưởng và xác định nhu cầu, thị trường.
Về ý tưởng:
Ở mảng crypto thì có rất nhiều blockchain mới được xây dựng ra, và thường phân ra hệ EVM, Non-EVM (Cosmos, Solana, MoveVM, ..). Và các dự án mình sẽ chia làm 3 nhóm.
1. Nhóm dự án sẽ build lại một sản phẩm đã có trên chain khác, nhưng chưa có trên chain mới hoặc có nhưng chưa đủ xịn xò nên build cho có sản phẩm xịn như trên chain khác và 2 chain đang nói tới cùng một hệ (kiểu như cùng là hệ EVM, cùng là hệ Cosmos,…).
Ví dụ: Bên chain Binance Smart Chain thuộc EVM có ứng dụng PancakeSwap (DEX), và có 1 chain mới xây trên EVM, chain này chưa có DEX nào thì có thể clone code từ bên PancakeSwap và chỉnh sửa lại cho tương thích với chain mới xây.
2. Cũng như nhóm 1, nhưng ứng dụng cần xây dựng lại khác hệ
Ví dụ: Có ứng dụng A trên chain Solana, và có xây 1 chain mới trên hệ Cosmos – tất cả những chain sử dụng hệ Cosmos lại không có ứng dụng A như trên Solana => Phải tự code từ đầu vì cấu trúc lõi/công nghệ của blockchain khác nhau.
3. Nhóm dự án với ý tưởng mới hoàn toàn, không giống những sản phẩm đã hiện diện trên thị trường.
Thì cần phải nghiên cứu thị trường kỹ, phân tích tính năng mới từ đầu.
Thì với 3 nhóm trên:
Nếu có clone code được thì sẽ clone, và cố gắng build được MVP chạy tương ứng và giống với những sản phẩm có sẵn, sau đó mới nghĩ ra tính năng mới gắn thêm
Nếu là khác hệ thì có thể mượn các tính năng đã hoạt động, rồi đánh giá tính năng nào phù hợp trên chain đang build để có thể sao chép và code ra ứng dụng tương tự.
Còn nếu ý tưởng mới thì cần phân tích dài hơi hơn, cũng như cần định nghĩa lại logic từ đầu.
Về xác định nhu cầu và thị trường:
Thường các ứng dụng sao chép là đã hoạt động tốt trên một chain nào đó, lượng user và có thể là doanh thu đạt được một mức tốt nên mình sẽ đánh giá nhu cầu ở chain mình đang build có tương tự như chain mình sao chép không? => Đánh giá và đưa ra những tính năng phù hợp để xây dựng, target audience.
Còn với ứng dụng hoàn toàn mới thì khá giống với build các sản phẩm thông thường, phải thực hiện bước research, đánh giá các đối thủ cạnh tranh, nhóm đối tượng khách hàng hướng tới và nhiều bước khác để đưa ra được nhận định đúng cũng như xây dựng nên bộ tính năng cần thiết và phù hợp.
Bước 2: Lập kế hoạch và thiết kế sản phẩm:
Với nhóm 1 và nhóm 2 thường chỉ sao chép và đánh giá lại tính năng, sau đó sẽ lên kế hoạch để xây dựng sản phẩm như trong bao lâu xong, các bước từ phân tích, thiết kế giao diện, trải nghiệm người dùng, …
Thường thì nếu nhóm 1 là sẽ tập trung thời gian vào giao diện và branding, vì phần cốt lõi đã có thể clone.
Nhóm thứ 2 thì thêm bước code lại Smart Contract, BE nên cần nhiều thời gian hơn, nhưng giảm bớt bước phân tích logic vì đã có ứng dụng chạy sẵn và mình có thể được đọc code để sao chép logic.
Còn với nhóm số 3, phải đi từng bước 1 từ đánh giá, khảo sát, khơi gợi và cuối cùng chốt danh sách tính năng, sau đó sẽ phân tích và xây dựng logic, cấu trúc hệ thống, thiết kế luồng hoạt động, UI/UX,….
Bước 3: Phát triển ứng dụng
Sau khi đã phân tích, tuỳ theo đội ngũ của bạn đang theo mô hình waterfall hay Agile thì có thể tuỳ cách mà có process phù hợp, thường bước này kết hợp code, tích hợp module để build ra sản phẩm.
Trong thời gian đó có thể thay đổi lại luồng, chỉnh sửa tính năng cho phù hợp với ứng dụng thực tế.
Bước 4: Kiểm thử
Khi xây dựng ứng dụng trên blockchain, bước kiểm thử rất quan trọng, vì tránh xảy ra lỗi cho người dùng, kiểm tra các trường hợp chống bị hack,…
Đặc biệt là cần phải Audit code của smart contract để tránh dự án bị hack mất tiền trong các pool (chứa tiền) của người dùng, bước này cần liên hệ với các công ty về bảo mật và audit code cho smart contract (giá khá cao) => Các code mà clone từ những dự án uy tín, chưa bị hack có thể không cần audit vì code đó đã được audit trước đó rồi.
Thường thì ứng dụng sẽ chạy trên môi trường testnet hoặc devnet (kiểu như staging/testing env/sandbox env trên xây dựng ứng dụng thông thường), cho người dùng vào dùng thử trước khi cho sản phẩm chạy thực tế.
Bước 5: Kiểm tra liên quan đến pháp luật, chính sách
Thường các ứng dụng blockchain mà xây không cẩn thận dễ bị vi phạm hay liên quan đến pháp luật, nên các sản phẩm này phải được đánh giá xuyên suốt từ lúc bắt đầu ra ý tưởng đến khi triển khai sản phẩm ra thị trường.
Bước 6: Marketing và triển khai dự án.
Ở blockchain thì các ứng dụng cần marketing rộng rãi để người dùng tham gia sử dụng, đôi lúc cần phải có các chiến dịch như airdrop, tặng reward cho user vào sử dụng ở thời điểm ban đầu. Thường là xây dựng các kênh telegram, twitter để truyền thông hoặc kết hợp với bên thứ 3 hỗ trợ cho việc truyền thông và triển khai.
Thường các dự án mình làm thì bước truyền thông được lên kế hoạch từ khi có ý tưởng, còn triển khai truyền thông khi dự án xây dựng gần xong hoặc lúc ra môi trường testnet cho mọi người sử dụng, và rầm rộ hơn khi thực hiện launch trên môi trường mainnet (giống như golive)
Kết luận
Vậy là toàn bộ quy trình mà mình hay áp dụng cho việc xây dựng ứng dụng blockchain, về tính tương đồng thì nó khá giống với xây dựng một ứng dụng thông thường khi đều có các bước từ ý tưởng, lập kế hoạch, phát triển, kiểm thử và release.
Nhưng trong các bước lại có đôi chút khác biệt như việc clone code từ ứng dụng có sẵn và cấu hình lại để chạy tương thích với blockchain mới, hay việc tham khảo hoặc bê y nguyên tính năng từ một ứng dụng đã có sẵn về và bỏ bớt qua các bước về nghiên cứu về người dùng. Hoặc là thường phải audit để đảm bảo ứng dụng chạy và tránh né việc bị hack (thường là ứng dụng public).
Về xu hướng tương lai, mình nghĩ blockchain vẫn còn khá mới và khá tiềm năng, hiện tại thì thấy rộng rãi trong việc áp dụng vào thị trường crypto, một vài công ty sử dụng cho các sản phẩm của họ với việc xây dựng private chain nhưng chưa phổ biến. Do đó còn rất nhiều cơ hội tuyệt vời và tiềm năng cho những bạn yêu thích công nghệ tham gia vào thị trường blockchain này.
Hi vọng qua bài blog này sẽ cung cấp cái nhìn toàn diện về quá trình phát triển một sản phẩm blockchain, từ ý tưởng ban đầu đến khi triển khai sản phẩm trên thị trường.