đồ án 2 tìm hiểu solidity và xây dựng ứng dụng lottery

59 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 2 tìm hiểu solidity và xây dựng ứng dụng lottery

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Đồ án tập trung vào việc xây dựng một ứng dụng xổ số phi tập trung, sử dụng Ethereum Smart Contracts, và được hỗ trợ bởi công nghệ Chainlink VRF Verifiable Random Function để đảm bảo tín

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO MÔN HỌC

Giảng viên hướng dẫn: Ths Trần Anh Dũng

Sinh viên thực hiện:

TP HỒ CHÍ MINH, 2023

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO MÔN HỌC

Giảng viên hướng dẫn: Ths Trần Anh Dũng

Sinh viên thực hiện:

TP HỒ CHÍ MINH, 2023

Trang 3

Em đã và đang học tập và rèn luyện tại Trường Đại học Công Nghệ Thông Tin, chuyên ngành Software Engineering

Em xin cám ơn trường đã tạo điều kiện cho chúng em có thể giao lưu học tập và rèn luyện cùng nhau

Và em xin cám ơn thầy Trần Anh Dũng đã góp ý và hướng dẫn chúng em hoàn thành đồ án môn học này

Trong quá trình làm Đồ Án 2 Em đã có một số sai sót mong thầy giảng viên hướng dẫn bỏ qua Nhờ đó giúp Em không ngừng nỗ lực phát triển, hoàn thiện bản thân để chuẩn bị cho những bước tiếp theo trong tương lai

Một lần nữa, Em xin chân thành cám ơn thầy Trần Anh Dũng

Trang 4

1.2.3 Định hình tương lai của blockchain 22

1.3 Đối tượng nghiên cứu 22

1.3.1 Sinh Viên và Học Viên: 22

1.3.2 Giảng Viên và Người Hướng Dẫn: 23

1.3.3 Nhà Phát Triển và Quản Trị Website: 23

1.3.4 Người Dùng Kết Quả (End Users): 23

Trang 5

1.4.2.2 Chức năng nâng cao: 24

1.4.3 Phạm vi kỹ thuật 25

1.4.3.1 Phát triển hợp đồng thông minh: 25

1.4.3.2 Front-end và tương tác người dùng 25

Trang 6

3.2.2 Lưu trữ và quản lý ABI và địa chỉ hợp đồng 44

3.2.3 Tích hợp, tương tác với UI và tối ưu hóa hiệu suất 44

Trang 7

4.2 Mô tả chi tiết các màn hình 47

5.2.1 Kiểm thử hợp đồng thông minh 52

5.2.1.1 Công cụ và thư viện 52

5.2.1.2 Kiểm thử đơn vị (Unit testing) 52

Trang 9

Hình 3.1: Sơ đồ kiến trúc tổng quan 41

Hình 4.1: Màn hình Home (chưa kết nối ví điện tử) 47

Hình 4.2: Màn hình Home sau khi nhấn nút Connect Wallet 48

Hình 4.3: Màn hình sau khi kết nối ví thành công 49

Hình 5.1: Toàn bộ các kiểm thử Unit Tests thành công 53

Trang 10

10

DANH MỤC BẢNG

Bảng 4.1: Danh sách các màn hình 47

Bảng 4.2: Mô tả đối tượng trên màn hình Home 48

Bảng 4.3: Biến cố và xử lý trên màn hình Home 49

Bảng 4.4: Mô tả đối tượng sau khi kết nối ví thành công 50

Bảng 4.5: Biến cố xử lý sau khi kết nối ví thành công 50

Bảng 5.1: Các trường hợp kiểm thử của Unit Testing 53

Bảng 5.2: Các trường hợp kiểm thử của staging test 54

Trang 11

11

TÓM TẮT ĐỒ ÁN

Đồ án với đề tài “Tìm hiểu Solidity và xây dựng ứng dụng Lottery” tập trung vào việc khám phá và áp dụng ngôn ngữ lập trình Solidity để xây dựng ứng dụng và là một đồ án đầy thách thức và sáng tạo, kết hợp sự phức tạp của Blockchain và sự linh hoạt của phát triển web Full Stack Đồ án tập trung vào việc xây dựng một ứng dụng xổ số phi tập trung, sử dụng Ethereum Smart Contracts, và được hỗ trợ bởi công nghệ Chainlink VRF (Verifiable Random Function) để đảm bảo tính minh bạch và ngẫu nhiên trong việc chọn ra người chiến thắng

Đề tài được khởi đọng bằng việc phân tích và lựa chọn công nghệ phù hợp Nền tảng phát triển được chọn là Solidity cho phần back-end, cung cấp một môi trường mạnh mẽ để viết và triển khai các hợp đồng thông minh, trong khi phần front-end được xây dựng bằng React và Next.js, cung cấp một giao diện người dùng đẹp mắt và dễ sử dụng Sự kết hợp giữa hai phần này tạo nên một ứng dụng đa năng và hiệu quả

Đồ án được thiết kế để hoạt động trên mạng thử nghiệm Ethereum Sepolia, cho phép thử nghiệm các tính năng mà không cần lo lắng về chi phí và rủi ro liên quan đến mạng chính của Ethereum Sử dụng công cụ phát triển Hardhat và thư viện Ethers.js, dự án cung cấp một trải nghiệm phát triển mạnh mẽ và linh hoạt, từ viết mã đến triển khai và kiểm thử

Một trong những đặc điểm nổi bật của "Smart Contract Lottery" là việc tích hợp Chainlink Keepers để tự động hóa quá trình chọn người chiến thắng Điều này không chỉ đảm bảo tính công bằng và minh bạch mà còn giảm thiểu sự can thiệp của con người, làm cho quá trình xổ số trở nên tự động và hiệu quả hơn

Trong quá trình phát triển, đồ án đã trải qua các giai đoạn từ thiết kế, triển khai trên môi trường Local và testnet Sepolia, đến việc kiểm thử unit test và staging test một cách thành công

Cấu trúc của đồ án phân chia rõ rang và được thiết kế tổ chức một cách khoa học để bảo đảm tính login và dễ dàng trong việc quản lý code

Trang 13

13

ĐỀ CƯƠNG CHI TIẾT

Tên đồ án: Tìm hiểu Solidity và xây dựng ứng dụng Lottery

Thông tin người thực hiện và hướng dẫn:

Họ và tên sinh viên 1: Đặng Anh Khoa Ngành: Kỹ thuật phần mềm

MSSV:15520367

Email: 15520367@gm.uit.edu.vn Giảng viên hướng dẫn: THS Trần Anh Dũng Email: dungta@uit.edu.vn

Tổng quan đề tài:

1 Lý do chọn đề tài:

Ứ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

Trang 14

14

đỏ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

2 Đối tượng nghiên cứu 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ả

3 Phạm vi nghiên cứu Phạm vi chức năng:

Chức năng cơ bản:

Trang 15

15

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

Bảo mật và quản lý giao dịch: Tích hợp các biện pháp bảo mật để đảm bảo

an toàn cho các giao dịch và quản lý ví người dùng

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

Hỗ trợ nhiều mạng Blockchain: mở rộng ứng dụng để hỗ trợ nhiều mạng

blockchain khác nhau, tăng tính linh hoạt và tiếp cận rộng rãi hơn

Tích hợp AI và phân tích dữ liệu: Sử dụng trí tuệ nhân tạo và phân tích dữ

liệu để cung cấp insights về xu hướng chơi và hành vi người dùng, cũng như để tối

ưu hóa trải nghiệp người dùng

Trang 16

16

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

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

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ể

Trang 17

17

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

4 Phương pháp nghiên cứu:

Nghiên cứu tài liệu trực tuyến: Được sử dụng thông qua các công cụ tìm kiếm trực tuyến và các diễn đàn công nghệ Cũng như là các trang web chính chủ về công

5 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

Trang 18

18

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

Nội dung thực hiện:

1 Xác định mục tiêu và phạm vi của đồ án:

Tìm hiểu về công nghệ và đưa ra mục tiêu rõ ràng

2 Nghiên cứu công nghệ và chuẩn bị học tập:

Nắm vững kiến thức về blockchain, Ethereum, Solidity, và các công nghệ liên

3 Phân tích và thiết kế hệ thống:

Phác thảo cấu trúc và chức năng của hợp đồng thông minh, bao gồm cơ chế

tham gia, chọn người chiến thắng và xử lý thanh toán

Dự trù và xử lý các trường hợp ngoại lệ nếu có lỗi hoặc xử lý Event khi thành

Trang 19

4 Phát triển giao diện người dùng:

Thiết kế UI/UX giao diện người dùng thân thiện và dễ sử dụng

Phát triển giao diện người dùng với React và Next.js, tích hợp với Web3 để

tương tác với hợp đồng thông minh

5 Tích hợp hệ thống:

Kết nối Front-end và Back-end: Tích hợp giao diện người dùng với hợp đồng

thông minh, đảm bảo tương tác mượt mà

6 Kiểm thử và sửa lỗi:

Thực hiện các kiểm thử chất lượng để đảm bảo rằng ứng dụng hoạt động đúng và không có lỗi

Sửa các lỗi và cải thiện hiệu suất dựa trên phản hồi từ các phiên kiểm thử

7 Tối ưu hóa và bảo mật:

Tối ưu hóa chi phí Gas và cải thiện hiệu suất của hợp đồng thông minh Áp dụng các biện pháp bảo mật để bảo vệ hệ thống khỏi các rủi ro và tấn công

8 Triển khai và đánh giá:

Triển khai hợp đồng thông minh lên môi trường testnet và sau đó là mainnet Hosting front-end trên Vercel hoặc IPFS để người dùng có thể sử dụng và tương tác với hợp đồng thông minh

Thu thập và phân tích phản hồi từ người dùng để cải thiện và điểu chỉnh ứng dụng

Trang 20

20

9 Quản lý, duy trì và bảo trì:

Tiếp tục quản lý và duy trì ứng dụng và hợp đồng thông minh sau khi chúng đã được triển khai

Cập nhật và bảo mật theo thời gian

10 Chia sẽ và kết luận:

Chia sẻ dự án với cộng đồng lập trình và người dùng để thu hút sự quan tâm và sử dụng

Kết luận dự án và tổng kết các kết quả và học hỏi

11 Chuẩn bị tài liệu và báo cáo:

Chuẩn bị tài liệu kỹ thuật chi tiết về cách thức phát triển và hoạt động của hệ thống

Tổng hợp toàn bộ quá trình nghiên cứu, phát triển và kết quả đạt được vào báo cáo đồ án cuối kỳ

Kế hoạch thực hiện:

Thời gian Nội dung thực hiện

Từ 01/10/2023 đến 04/10/2023 (4 ngày) Nghiên cứu sơ bộ, lập kế hoạch chi tiết

Từ 5/10/2023 đến 19/10/2023 (2 tuần) Phát triển hợp đồng thông minh Từ 19/10/2023 đến 4/11/2023 (2 tuần) Phát triển giao diện người dùng Từ 4/11/2023 đến 14/11/2023 (10 ngày) Kiểm tra và tích hợp

Từ 14/11/2023 đến 19/11/2023 (5 ngày) Triển khai và kiểm tra trên mạng Local

Từ 19/11/2023 đến 24/11/2023 (5 ngày) Triển khai trên mạng thử nghiệm Từ 24/11/2023 đến 26/11/2023 (3 ngày) Triển khai và duy trì giám sát Từ 26/11/2023 – 30/11/2023 (4 ngày) Hướng dẫn sử dụng, thu thập phản

hồi và hoàn thiện báo cáo đồ án

Thời gian dự kiến theo kế hoạch là như trên, thời gian phát sinh kéo dài thêm 1 tháng

Trang 21

21

NỘI DUNG ĐỒ ÁN

Chương 1: MỞ ĐẦU 1.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

Trang 22

22

1.2 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ế

1.2.2 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.2.3 Đị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.3 Đối tượng nghiên cứu 1.3.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

Trang 23

23

1.3.2 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

1.3.3 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ọ

1.3.4 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ả

1.4 Phạm vi nghiên cứu 1.4.1 Công nghệ nghiên cứu

1.4.1.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

o Ethers.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

Trang 24

24

1.4.1.2 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

1.4.2 Phạm vi chức năng: 1.4.2.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

1.4.2.2 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

Trang 25

25

1.4.3 Phạm vi kỹ thuật

1.4.3.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

1.4.3.2 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.4.3.3 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

1.4.3.4 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

1.4.3.5 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

Trang 26

26

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.5 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

Trang 27

27

Chương 2: KIẾN THỨC NỀN TÀNG 2.1 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

Trang 28

28

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

o Bất biến: dữ liệu trong Blockchain không thể sửa (có thể sửa nhưng sẽ để lại dấu vết) và sẽ lưu trữ mãi mãi

o Bảo mật: Các thông tin, dữ liệu trong Blockchain được phân tán và an toàn tuyệt đối

o Minh bạch: Ai cũng có thể theo dõi dữ liệu Blockchain đi từ địa chỉ này tới địa chỉ khác và có thể thống kê toàn bộ lịch sử trên địa chỉ đó o Hợp đồng thông minh: là hợp đồng kỹ thuật số được nhúng vào đoạn

code if-this-then-that (IFTTT), cho phép chúng tự thực thi mà không cần bên thứ ba

2.2 Ethereum [2]

Hình 2.2: Ethereum

Trang 29

29

Ethereum là nền tảng điện toán phân tán, mã nguồn mở dựa trên công nghệ chuỗi khối (blockchain) có khả năng thực thi hợp đồng thông minh (smart contract) - tức là điều khoản được ghi trong hợp đồng sẽ được thực thi một cách tự động khi các điều kiện trước đó được thỏa mãn, không ai có thể can thiệp vào

Ethereum là một dự án Blockchain Layer 1 cho phép nhiều lập trình viên xây dựng ứng dụng phi tập trung (DApps) và tổ chức tự trị phi tập trung (DAOs) Trong đó:

Ứng dụng phi tập trung (DApps - Decentralized Application) là phần mềm được triển khai độc lập, không nằm trên một máy chủ duy nhất mà được lưu trữ một cách phân tán trên kho lưu trữ phi tập trung và có thể được viết bằng bất kỳ ngôn ngữ nào

Tổ chức tự trị phi tập trung (DAOs - Decentralized Autonomous

Organizations) là tổ chức được vận hành bởi các thành viên dựa trên một bộ quy tắc được mã hóa bằng code Tất cả thành viên đều có quyền biểu quyết để đưa ra quyết định quan trọng của DAOs

Hợp đồng thông minh (Smart contract):

Hợp đồng thông minh là điểm nổi bật nhất của Ethereum Công nghệ này cho phép người dùng số hóa điều kiện chi phối mối quan hệ, tương tác giữa các bên tham gia giao dịch

Chẳng hạn, người A quyết định vay từ người B 1.000 tether (USDT) chỉ khi B gửi ether trị giá 2.000 đô la làm tài sản thế chấp Bằng cách sử dụng hợp đồng thông minh, A có thể xác định một độc lập các điều kiện xác thực thỏa thuận này, thay vì tin tưởng vào một người trung gian môi giới

Nếu thực hiện đúng, hợp đồng thông minh sẽ tự động giải phóng 1.000 USDT cho B sau khi anh ấy gửi và khóa 2.000 USD làm tài sản thế chấp Ngoài ra, khi A hoàn trả khoản vay, hợp đồng thông minh sẽ giải phóng tài sản thế chấp và gửi lại khoản vay cho B

Ngày đăng: 15/05/2024, 09:24

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan