HỌC VIỆN HÀNG KHÔNG VIỆT NAM KHOA KỸ THUẬT HÀNG KHÔNG --- ĐỒ ÁN TỐT NGHIỆP Nghiên cứu ứng dụng công nghệ blockchain vào việc xây dựng hệ thống đặt giữ chỗ vé máy bay trên nền tảng Solana Giảng viên hướng dẫn: Lưu Văn Thuần Sinh viên thực hiện : Bùi Võ Ngọc Quế Trân MSSV : 1751200024 TP. HỒ CHÍ MINH 2022 MỤC LỤC Lời nói đầu .Tổng quan về hệ thống Booking vé máy bay và lí do chọn đề tài .Mục tiêu và cấu trúc luận văn.Tổng quan về blockchain .Thành phần của blockchain .Phân loại sơ bộ các loại blockchain hiện nay: .Mạng blockchain công khai (Public blockchain networks): .Mạng blockchain riêng tư (Private blockchain networks): .Mạng blockchain có phân quyền (Permissioned blockchain networks): .Trạng thái của blockchain (State) .Mô hình dựa trên giao dịch .Mô hình tài khoản (Account-based Model) .Cấu trúc chuỗi của blockchain .Node của blockchain .Node trong các Block: .Tổng quan về cơ chế đồng thuận và các thuật toán đồng thuận trong blockchain .Bài toán hai vị tướng (Two generals problem) .Bài toán các vị tướng Byzantine (Byzantine General's problem) .Cách giải bài toán đồng thuận của các nền tảng blockchain .Blockchain được lưu trữ ở đâu .Sơ lược về hợp đồng thông minh (smart contract) .Smart Contract hoạt động như thế nào? .Ưu & nhược điểm của Hợp đồng thông minh .Nền tảng mã hóa trong blockchain .Tổng quan về DeFi .Phân biệt giữa tài chính tập trung (CeFi) và tài chính phi tập trung (DeFi) .Những điểm lợi của DeFi.Các ứng dụng tiềm năng của DeFi .Vay và cho vay .Các dịch vụ ngân hàng liên quan đến tiền tệ .Các sàn phi tập trung .Vai trò của smart contract trong DeFi.Tiềm năng của DeFi .Thách thức của DeFi .Sơ lược về ứng dụng phi tập trung .Các đặc điểm của Dapp: .Phân loại Dapp: .Phân biệt giữa Coin và Token: .Các lỗi thường gặp khi phát triển một ứng dụng DeFi.Các tiêu chuẩn cho token trên mạng blockchain hướng ứng dụng (Smart contract blockchain) .Sơ lược về FT .Sơ lược về NFT .Tính chất của NFT .Các chuẩn của NFT của Ethereum.Tổng quan về Solana Network và xây dựng ứng dụng trên Solana .Cách thực hoạt động của Solana .Tiềm năng của dự án Solana .Điểm nổi bật trong cơ chế đồng thuận của Solana .Mô hình lập trình trên solana.Mô hình Account (Account Model) của Solana .So sánh với smart contract trên Ethereum .Cấu trúc của Solana Program .Native program và Solana Program Library .Solana Program Library .Deploy một program lên chain .Cấu trúc của một Program .Transaction fee để lan truyền và xử lý các transaction hay còn được hiểu là gas fee .Rent fee là chi phí để lưu trữ dữ liệu on-chain .Cross-Program Invocations .Program Derived Address .Cơ chế của PDA .Solana Program Library .Associated Token Account Program .Triển khai marketplace trao đổi boarding pass.Một số kí hiệu và ý nghĩa của sơ đồ minh hoạ .Các kí hiệu, sơ đồ liên quan đến Account: .Các kí hiệu sơ đồ liên quan đến PDAs [3]: .Các kí hiệu sơ đồ liên quan đến Instructions [3]: .Metaplex Token Metadata Program [3] .Các tiêu chuẩn JSON [3] .Fungible Asset Standard:.Non-Fungible Standard .NFT trong hệ sinh thái Solana và Metaplex [3]: .Semi-Fungible Token [3] .Flow để mint một NFT token [3]. 88 Quy trình deploy NFT, mint NFT và chuyển giao vé máy bay NFT trên 9.Người mua .Tài liệu tham khảo. 109 4 MỤC LỤC HÌNH ẢNH Hình 11: Kiến trúc của một hệ thống giữ chỗ vé máy bay đơn giản.
2 Hình 12: Các giai đoạn phát triển của web. 3 Hình 31: Tổng quan về blockchain. 5 Hình 41: Các thành phần của blockchain. 6 Hình 42: Cấu trúc header của các block.
7 Hình 43: Tổng kết các điểm chính giữa các loại blockchain. 9 Hình 44: Mô hình điện toán blockchain. 9 Hình 45: Flow giao dịch theo mô hình UTXO. 12 Hình 46: So sánh cơ chế PoW và PoS.
21 Hình 47: Merkle tree - cây nhị phân trong đó mỗi nút bên trong lưu trữ giá trị băm của nút con. 23 Hình 48: Thuật toán đào Proof-Of-Work trong Bitcoin. 24 Hình 49: Công dụng của smart contract để thay thế bên thứ ba trong giao dịch. 25 Hình 61: So sánh giữa CeFi và DeFi.
30 Hình 62: Các bước cơ bản của một giao dịch kí quỹ. 31 Hình 63: So sánh cơ chế giữa CLOB và AMM. 34 Hình 64: Số liệu ngày 21 tháng 11 năm 2020. 35 Hình 65: Số liệu ngày 3 tháng 7 năm 2021.
42 Hình 82: Dòng hoạt động trong mạng lưới Solana. 43 Hình 83: Mô hình lập trình trên Solana. 45 Hình 84: Input, output và state của EVM-based smart contract. 46 Hình 85: Data Account thuộc sở hữu của Program Account.
46 Hình 86: Cấu trúc dữ liệu của account. 47 Hình 87: Ánh xạ số dư trên Ethereum. 49 Hình 88: Hình ảnh thông tin sau khi deploy program. 52 Hình 89: Một program thì được hiểu là executable account và được sở hữu bởi BPF Loader.
53 Hình 810: Cấu trúc một program Solana. 54 Hình 811: Các RPC connection được cung cấp từ Solana. 54 Hình 812: Cấu trúc của một transaction Solana. 55 Hình 813: Sự thay đổi nonce của account trên ethereum transaction.
56 Hình 814: Một transaction trên solana sẽ bao gồm danh sách các accounts và giá trị “recentBlockhash”, ở đây là Previos Blockhash và các list signatures không được thể hiện ở trên trang explore vì lí do bảo mật. 57 Hình 815: Ví dụ của một instruction trong Solana transaction như đã giới thiệu ở trên. 59 Hình 816: Cách tìm PDA của Solana. 62 Hình 817 State của Mint Account.
63 Hình 818 Mối quan hệ giữa Token Account, Mint Account và Token Program. 64 Hình 91: Một vài kí hiệu và sơ đồ liên quan đến Account. 65 Hình 92: Một vài kí hiệu và sơ đồ giải thích liên quan đến Account. 66 Hình 93: Một vài kí hiệu và sơ đồ liên quan đến PDAs.
66 5 Hình 94: Một vài kí hiệu và sơ đồ liên quan đến PDAs. 67 Hình 95: Một vài kí hiệu và sơ đồ liên quan đến instruction. 67 Hình 96: Một vài kí hiệu và sơ đồ liên quan đến instruction. 68 Hình 97: Mối quan hệ giữa Token account và Mint account.
68 Hình 98: Các thuộc tính, field của metadata account. 69 Hình 99: Thuộc tính URI của Metadata account. 70 Hình 910: Token standard của Fungible Token trên Metaplex. 71 Hình 911: Token standard của Fungible Assets trên Metaplex.
72 Hình 912: Token standard của Non-Fungible Token trên Metaplex. 73 Hình 913: Ví dụ của JSON Schema của NFT theo Token standard. 73 Hình 914: Mối quan hệ giữa Metadata account với Mint account. 74 Hình 915: Seeds và Field của Master Edition Account.
75 Hình 916: Mint Authority và Freeze Authority của Mint Account được gán cho Master Edition Account. 76 Hình 917: Seed và Field của Edition Account. 77 Hình 918: Mint Account được đính kèm một trong hai Master Edition Account hoặc Edition Account. 77 Hình 919: Mối quan hệ của Metadata Account và (Master) Edition Account đối với mỗi loại token.
78 Hình 920: Sequence Diagram của bước 1. 79 Hình 921: Sequence Diagram của bước 2. 79 Hình 922: Sequence Diagram được cập nhật thêm bước 3. 80 Hình 923: Sequence Diagram khi thực hiện Instruction CreateAccountMetadata của Token Metadata Program.
81 Hình 924: Mô tả tổng quan về instruction CreateAccountMetadata. 81 Hình 925: Account cần thiết để thực hiện instruction CreateMetadataAccountV2. 82 Hình 926: Sequence Diagram sau khi bổ sung bước 4. 82 Hình 927: Sequence diagram của bước upload data.
83 Hình 928: Sequence diagram của transaction thứ 2 từ bước 6 trở đi. 83 Hình 929: Sequence Diagram của bước tạo Master Edition Account. 84 Hình 930: Sequence Diagram của transaction thứ để mint token và tạo Master Edition Account. 85 Hình 931: Metadata Account được lưu trữ on-chain và được đính kèm với Mint Account.
85 Hình 932: Giao diện để điền attribute cần thiết để khởi tạo NFT Metadata Account. 86 Hình 933: Các bước chạy của Token Metadata Program để khởi tạo Metadata Account cho Mint Account. 86 Hình 934: Các NFT Boarding sau khi được khởi tạo và thuộc sở hữu của Candy Machine Program. 87 Hình 935: Mint NFT Token từ Candy Machine Program.
88 Hình 936: JSON Schema của một NFT Boarding Pass đã mint. 88 Hình 937: Thông tin on-chain của NFT Boarding Pass. 90 6 Hình 938: Thông tin Off-chain được lấy bằng cách request URI field của Token Metadata Account. 91 Hình 939: Các NFT Boarding Pass thuộc cùng một collection Boarding Pass.
92 Hình 940: Kết nối đến ví hỗ trợ giao dịch trên Solana. 93 Hình 941: Sơ đồ kiến trúc của marketplace và các actor. 93 Hình 942: Người bán tạo Sell offer. 94 Hình 943: Người bán xác thực giao dịch Sell Offer.
94 Hình 944: Sell Offer sau khi được xác nhận bởi người bán. 95 Hình 945: Sell offer đang được hiển thị ở profile của người mua. 95 Hình 946: Người bán kí xác nhận mua. 96 Hình 947: Sell offer được chấp nhận và thực hiện thành công.
96 Hình 948: NFT Boarding Pass được hiển thị trong profile của người mua sau khi mua thành công. 97 Hình 949: NFT Boarding Pass đã được đổi Update Authority thành địa chỉ của người mua. 97 7 MỤC LỤC BẢNG Bảng 61: Thuộc tính và mô tả của một account. 47 Bảng 82: Mô tả thuộc tính nonce, balance.
50 Bảng 83: Thuộc tính lưu trữ của code account trên Sealevel. 50 8 Lời nói đầu Nhằm thích nghi với các xu hướng công nghệ đột phá, cụ thể là Web 3.0, Luận văn giới thiệu cơ sở về blockchain và giới thiệu một ứng dụng cơ bản của Blockchain vào hệ thống đặt giữ chỗ vé máy bay. Điều này giúp có một cái nhìn tổng quan về các hệ thống và thành phần cần phát triển để hệ thống đặt giữ chỗ vé máy bay ngày càng hoàn thiện và tương thích với Web 3.0, xu hướng công nghệ tương lai này. Cám ơn thầy Lưu Văn Thuần, thầy Lê Tấn Lộc đã chia sẻ nhiều góp ý quý báu, cảm ơn bạn bè đã động viên giúp em hoàn thành luận văn này.
Hồ Chí Minh, ngày 24 tháng 06 năm 2022.