MỞ ĐẦU 1. Lý do chọn đề tài Với sự phát triển nhanh chóng của công nghệ, đề tài này phản ánh sự hứng thú và mong muốn khám phá công nghệ mới, đồng thời cũng là cơ hội để phát triển kỹ năng và kiến thức về một lĩnh vực có nhiều tiềm năng như là blockchain. Ứng dụng thực tế và thú vị: Xây dựng ứng dụng Lottery tự động trên nền tảng Blockchain, một lĩnh vực công nghệ đang ngày càng phổ biến cách mạng hóa nhiều ngành công nghiệp. Việc này không chỉ giúp hiểu rõ hơn về cách thức hoạt động của các hợp đồng thông minh mà còn mang đến một trải nghiệm mới mẻ và thú vị trong việc phát triển ứng dụng.
Học hỏi về Blockchain, Ethereum và Solidity: Đồ án này giúp hiểu rõ hơn về blockchain, nền tảng Ethereum và ngôn ngữ lập trình chính cho việc xây dựng hợp đồng thông minh. Một lĩnh vực công nghệ mới đang phát triển mạnh mẽ, nó cung cấp cơ hội nắm bắt và áp dụng kiến thức về một công nghệ mới và tiên tiến, mở rộng hiểu biết của mình về lĩnh vực tiền mã hóa và cách hoạt động của mạng lưới tài chính phi tập trung. Phát triển kỹ năng kỹ thuật: Đồ án này giúp tôi cải thiện kỹ năng lập trình, đặc biệt là trong việc viết và tối ưu hóa hợp đồng thông minh. Ngoài ra, tôi cũng phát triển kỹ năng về quản lý dự án, kiểm thử phần mềm, và hiểu biết sâu hơn về các công cụ phát triển như Hardhat.
Thể hiện khả năng tự học và nghiên cứu: Xây dựng một ứng dụng từ đầu và mới mẻ đòi hỏi năng lực tự học và khả năng nghiên cứu của bản thân. Đề tài này đỏi hỏi tôi phải tự học và nghiên cứu nhiều khía cạnh mới mẻ, từ ngôn ngữ lập trình Solidity cho đến việc sử dụng các dịch vụ của Chainlink như VRF và Keeper. Nghiên cứu tương lai: Đề tài này là bước đầu tiên trong hướng nghiên cứu về Blockchain và phát triển các ứng dụng dựa trên nền tảng này trong tương lai. Mục đích nghiên cứu Mục đích chính của đề tài này không chỉ nhằm tạo ra một sản phẩm ứng dụng thực tế mà còn mở ra cánh cửa cho việc hiểu sâu hơn về công nghệ blockchain, khám phá tiềm năng của nó và áp dụng keién thức này vào việc giải quyết các vấn đề trong thực tế.
Khám phá đột phá công nghệ Blockchain: - Nắm bắt cốt lõi vào bản chất của blockchain, khám phá cách nó làm thay đổi các chúng ta tương tác với dữ liệu và giao dịch tài chính. - Khai phá ngôn ngữ mới, tìm hiểu sâu về Solidity, ngôn ngữ lập trình cho hợp đồng thông minh, mở ra một phạm vi mới của lập trình và ứng dụng công nghệ 1. Một ứng dụng hệ thống xổ số độc đáo: - Xây dựng một hệ thống xổ số trên blockchain, không chỉ minh bạch và công bằng mà còn mang tính cách mạng trong cách chơi xổ số truyền thống 1. Định hình tương lai của blockchain - Tiên phong trong ứng dụng, xác định và phát triển các ứng dụng mới của blockchain, mở rộng hiểu biết và khám phá những khả năng không giới hạn.
- Tạo dựng lộ trình nghiên cứu, định hình tương lai của công nghệ blockchain và ảnh hưởng của nó tới xã hội 1. Đối tượng nghiên cứu 1. Sinh Viên và Học Viên: Học Sinh Trung Học và Sinh Viên Đại Học: có thể sử dụng đồ án làm tài liệu tham khảo hoặc đồ án mẫu để tìm hiểu về phát triển ứng dụng trên blockchain. Giảng Viên và Người Hướng Dẫn: Giảng viên và người hướng dẫn có thể sử dụng đề tài này như một tài liệu giảng dạy về blockchain, solidity, và phát triển ứng dụng trên Ethereum.
Họ có thể đánh giá và hỗ trợ sinh viên trong quá trình thực hiện đề tài này. Nhà Phát Triển và Quản Trị Website: Đối với nhà phát triển và quản trị website, dự án này có thể cung cấp kiến thức về cách tích hợp blockchain vào các ứng dụng web. Họ có thể xem xét việc sử dụng công nghệ blockchain để bảo vệ thông tin và tích hợp chức năng vào các trang web của họ. Người Dùng Kết Quả (End Users): Người dùng kết quả của ứng dụng Lottery sẽ là những người tham gia vào các lần chơi.
Họ sẽ trải nghiệm cách ứng dụng hoạt động và có thể sử dụng nó để tham gia vào các lần chơi Lottery hoặc theo dõi kết quả. Phạm vi nghiên cứu 1. Công nghệ nghiên cứu 1. Back-end: o Solidity: ngôn ngữ lập trình hợp đồng thông minh.
o Hardhat: môi trường phát triển Ethereum cho việc triển khai, chạy và kiểm thử hợp đồng thông minh. o Chainlink: Dịch vụ để sử dụng VRF và Keepers. o Chai: Thư viện kiểm thử cho Javascript.js: Thư viện tương tác với Ethereum blockchain và hệ thống EVM. o Hardhat gas reporter: Công cụ để báo cáo gas sử dụng trong các giao dịch và kiểm thử hợp đồng.
o Solidity-coverage: Công cụ để đo lường mức độ kiểm thử của hợp đồng thông minh 23 1. Front-end: o Reach: Thư viện javascript để xây dựng giao diện người dùng o Next.js: Framework React cho phép phá triển ứng dụng web với server-side rendering và tạo ra các trang tính o Web3uikit: Bộ công cụ UI dành cho các ứng dụng web3, hỗ trợ tạo giao diện người dùng tương tác với blockchain o Moralis: Thư viện giúp tích hợp back-end block chain một cách nhanh chóng và dễ dàng. o Tailwind CSS: Framewỏk CSS để xây dựng giao diện người dùng một cách nhanh chóng o WalletConnect: Thư viện giúp kết nối với ví Ethereum từ các ứng dụng web. Phạm vi chức năng: 1.
Chức năng cơ bản: Tham gia xổ số: người dùng có thể tham gia xổ số bằng cách trả phí tham gia (ETH) qua giao diện người dùng Tự động chọn người chiến thắng: Sử dụng Chainlink VRF (Verifiable Random Function) để chọn ngẫu nhiên người chiến thắng một cách công bằng và minh bạch. Thanh toán và ghi nhận người chiến thắng: Tự động chuyển toàn bộ số tiền trong hợp đồng cho người chiến thắng và ghi nhận trong hệ thống. Chức năng nâng cao: Giao diện đáp ứng Real-time: Phát triển giao diện đáp ứng real-time, cho phép người dùng xem kết quả xổ số ngay lập tức khi có người chiến thắng được chọn. Tối ưu hóa gas và hiệu suát: Thực hiện tối ưu hóa gas cho hợp đồng thông minh, đảm bảo hiệu suát cao và chi phí giao dịch thấp.
Phạm vi kỹ thuật 1. Phát triển hợp đồng thông minh: Sử dụng ngôn ngữ lập trình chính là Solidity: đào sâu vào các khía cạnh nâng cao như quản lý trạng thái, xử lý sự kiện, và tích hợp bảo mật. Tối ưu hóa và kiểm soát Gas: Tối ưu hóa chi phí gas trong các giao dịch, đặc biệt trong việc xử lý các hàm và giao dịch trong hợp đồng thông minh. Front-end và tương tác người dùng React và Next.js: Tận dụng sức mạnh của Reach và Next.js để xây dựng giao diện người dùng động, tương tác và dễ sử dụng.
Web3 Integration: Tích hợp Web3 để kết nối giao diện người dùng với hợp đồng thông minh, cho phép tương tác trực tiếp với blockchain 1. Tích hợp công nghệ Chainlink: Chainlink VRF: Sử dụng Chainlink Verifiable Random Function để đảm bảo tính ngẫu nhiên và công bằng trong việc chọn người chiến thắng. Chainlink Keepers: Tích hợp Chainlink Keepers để tự động hóa việc kiểm tra điều kiện và thực hiện các chức năng của hợp đồng thông minh. Kiểm thử và tối ưu hóa: Kiểm thử tự động: sử dụng thư viện Chai Matcher, để thực hiện các bài unit tests và staging test.
Phân tích và đánh giá hiệu suất: Liên tục phân tích và đánh giá hiệu suất của hệ thống, bao gồm cả front-end và hợp đồng thông minh, để tìm ra và giải quyết các vấn đề tiềm ẩn. Phạm vi đánh giá và phản hồi Đánh giá hiệu suất hợp đồng thông minh: Kiểm tra và đánh giá hiệu suất, tính minh bạch, và độ an toàn của hợp đồng thông minh. 25 Phản hồi người dùng: Thu thập và phân tích phản hồi từ người dùng về giao diện và trải nghiệm sử dụng tổng thể. Kiểm thử: Thực hiện Unit Test và Staging Test để đảm bảo tính ổn định và chính xác của ứng dụng 1.
Mục tiêu đề tài Xây dựng hợp đồng thông minh: Mục tiêu chính là phát triển một hợp đồng thông minh (Smart Contract) sử dụng Solidity, đóng vai trò là nền tảng cho một ứng dụng xổ số tự động, công bằng và minh bạch trên blockchain. Tích hợp Chainlink VRF và Keepers: Tích hợp Chainlink Verifiable Random Function (VRF) để đảm bảo tính ngẫu nhiên và công bằng trong việc chọn người chiến thắng, cùng với Chainlink Keepers để tự động hóa quy trình chọn người chiến thắng và xác định thời điểm thực hiện. Phát Triển Giao Diện Người Dùng Thân Thiện: Tạo ra một giao diện người dùng trực quan và dễ sử dụng, được xây dựng với React và Next.js, cho phép người dùng dễ dàng tham gia và theo dõi xổ số. Đảm Bảo Bảo Mật và Hiệu Suất: Tập trung vào việc bảo đảm an ninh và tối ưu hóa hiệu suất của hợp đồng thông minh, bao gồm việc quản lý chi phí gas và bảo vệ khỏi các nguy cơ tấn công.
Kiểm Thử và Đánh Giá: Thực hiện các bài kiểm thử đơn vị và tích hợp sâu, sử dụng các công cụ như Chai Matchers, để đánh giá và đảm bảo tính chính xác, hiệu suất, và độ tin cậy của hợp đồng thông minh. Nghiên Cứu và Phát Triển Công Nghệ Blockchain: Mục tiêu rộng lớn hơn là tăng cường hiểu biết và kỹ năng về blockchain và các ứng dụng của nó, mở đường cho các nghiên cứu và phát triển tương lai trong lĩnh vực này. 26 Chương 2: KIẾN THỨC NỀN TÀNG 2. Blockchain [1] Hình 2.1: Blockchain Blockchain là công nghệ chuỗi – khối, cho phép truyền tải dữ liệu một cách an toàn dựa trên hệ thống mã hóa vô cùng phức tạp, tương tự như cuốn sổ cái kế toán của một công ty, nơi mà tiền được giám sát chặt chẽ và ghi nhận mọi giao dịch trên mạng ngang hàng.
Mỗi khối (block) đều chứa thông tin về thời gian khởi tạo và được liên kết với khối trước đó, kèm theo đó là một mã thời gian và dữ liệu giao dịch. Dữ liệu khi đã được mạng lưới chấp nhận thì sẽ không có cách nào thay đổi được. Blockchain được thiết kế để chống lại việc gian lận, thay đổi của dữ liệu.Các khái niệm của blockchain: Các đặc điểm của blockchain 27 o Không thể làm giả, không thể phá hủy các chuỗi Blockchain: theo như lý thuyết thì chỉ có máy tính lượng tử mới có thể giải mã Blockchain và công nghệ Blockchain biến mất khi không còn Internet trên toàn cầu.