TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN 1: Tìm hiểu blockchain và ứng dụng xây dựng hệ thống hỗ trợ chuyển đổi các token

40 16 0
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN 1: Tìm hiểu blockchain và ứng dụng xây dựng hệ thống hỗ trợ chuyển đổi các token

Đ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

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO ĐỒ ÁN 1 Tìm hiểu blockchain và ứng dụng xây dựng hệ thống hỗ trợ chuyển đổi các token ERC20 trên Ethe.

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM BÁO CÁO ĐỒ ÁN Tìm hiểu blockchain ứng dụng xây dựng hệ thống hỗ trợ chuyển đổi token ERC20 Ethereum Giảng viên hướng dẫn: ThS NGUYỄN TẤN TỒN Sinh viên thực hiện: ƠN TRẦN NGỌC HIỂN – 16520369 TP HỒ CHÍ MINH, 2022 LỜI CẢM ƠN Đầu tiên, Em xin phép gửi lời cảm ơn đến tập thể quý thầy cô Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh q thầy thuộc Khoa Cơng nghệ Phần mềm giúp nhóm em có kiến thức tảng vững để thực đề tài Đặc biệt, em xin gửi lời cảm ơn chân thành đến thầy Nguyễn Tấn Toàn, người tạo điều kiện hướng dẫn chúng em việc thực đề án Nhờ kiến thức kinh nghiệm từ thầy mà em tận dụng để thực đề tài Tuy nhiên, q trình thực đề tài khơng thể tránh khỏi hạn chế, thiếu sót Em mong nhận nhận xét, góp ý từ thầy giảng viên khác, để chúng em ngày tốt để đóng góp nhiều Em biết ơn điều Một lần nữa, em xin trân trọng cảm ơn! Thành phố Hồ Chí Minh, ngày 12 tháng 06 năm 2022 Ôn Trần Ngọc Hiển NHẬN XÉT CỦA GIẢNG VIÊN Contents CHƯƠNG I GIỚI THIỆU .5 Thông tin chung .5 1.1 Đề tài 1.2 Tổng quan đề tài .5 1.3 Công nghệ 1.4 Người thực Lý chọn đề tài .6 Mục tiêu đề tài CHƯƠNG II TỔNG QUAN BLOCKCHAIN 2.1 Giới thiệu chung 2.2 Lịch sử đời .7 2.3 Phân loại Blockchain 2.3.1 Blockchain mở .7 2.3.2 Blockchain đóng 2.4 Kiến trúc Blockchain .7 2.4.1 Hàm băm mật mã 2.4.2 Giao dịch 2.4.3 Mật mã khóa bất đối xứng .7 2.4.4 Địa 2.4.5 Sổ .7 2.4.6 Khối 2.4.7 Chuỗi khối 2.5 Một số mơ hình đồng thuận phổ biến 2.6 HỆ SINH THÁI BLOCKCHAIN CHƯƠNG III SMART CONTRACT VÀ CRYPTOCURRENCY 3.1 Tiền mã hóa (Cryptocurrency) 3.2 Hợp đồng thông minh (Smart Contract) .8 CHƯƠNG IV ETHEREUM 11 4.1 Ethereum (ETH) 12 4.1 Ethereum blockchain 12 4.2 Ethereum node client 12 4.3.1 Geth (Go ethereum ) & Mist 12 4.3.2 Parity .12 4.3.3 Web3.js 12 4.3.4 Metamask 12 4.4 Solidity 12 4.4.1 Truffle & Embrak 12 4.5 Swarm & IPFS 12 4.6 ENS 12 CHƯƠNG V SOLIDITY .11 5.1 Solidity gì? .12 5.2 Kiểu liệu .12 5.3 Contract .12 5.4 Function .12 5.5 Các công cụ Solidity cung cấp 12 CHƯƠNG VI ỨNG DỤNG CHUYỂN ĐỔI TOKEN 12 CHƯƠNG I GIỚI THIỆU Thơng tin chung 1.1 Đề tài Tìm hiểu blockchain ứng dụng xây dựng hệ thống hỗ trợ chuyển đổi token ERC20 Ethereum 1.2 Tổng quan đề tài Blockchain – Cơng nghệ chuỗi khối – xem sổ công khai, chống giả mạo tất giao dịch lưu trữ danh sách khối Chuỗi liên tục phát triển khối thêm vào Với hàm mật mã bất đối xứng chế đồng thuận phân tán làm cho Blockchain bảo mật, quán sổ truyền thống Ngày nay, đồng tiền điện tử trở nên phổ biến, thông dụng giới Một đồng tiền điện tử thành công không kể đến Bitcoin Với cấu trúc lưu trữ liệu thiết kế đặc biệt, giao dịch mạng Bitcoin xảy mà khơng cần bên thứ ba, cốt lõi công nghệ để xây dựng nên Bitcoin Blockchain, đề xuất vào năm 2008 triển khai vào năm 2009 Vì khả cho phép hồn thành tốn mà không cần ngân hàng hay trung gian nào, Blockchain dùng dịch vụ tài khác tài sản kỹ thuật số, chuyển tiền hay tốn Thêm vào đó, cịn áp dụng cho lĩnh vực khác hợp đồng thông minh, dịch vụ công cộng, Internet vạn vật, hệ thống danh tiếng dịch vụ bảo mật 1.3 Công nghệ • Ngôn ngữ: Solidity • Framework: Truffle, ReactJS • Nền tảng: o Web 1.4 Người thực STT Họ tên MSSV Ôn Trần Ngọc Hiển 16520369 Lý chọn đề tài Trong năm gần đây, công nghệ chuỗi khối (Blockchain) trở thành xu hướng “hot” tồn cầu Việt Nam Cơng nghệ có tiềm ứng dụng to lớn ngành từ dịch vụ tài chính, sản xuất khu vực công chuỗi cung ứng, giáo dục lượng Trong đó, Ethereum tảng mã nguồn mở dựa công nghệ chuỗi khối (Blockchain) chuỗi khối lập trình hàng đầu giới giúp nhà phát triển sử dụng để xây dựng loại ứng dụng Trong trình học tập, em mong muốn học hỏi tìm hiểu nhiều đề tài cơng nghệ có cơng nghệ Blockchain Cảm thấy hứng thú muốn tìm hiểu cơng nghệ Blockchain nên nhóm em lựa chọn tìm hiểu blockchain cụ thể Ethereum Solidity, nghiên cứu, ứng dụng công nghệ Blockchain việc xây dựng hệ thống chuyển đồi token ERC-20 Ethereum Mục tiêu đề tài Về Lý thuyết: Tìm hiểu lịch sử hình thành phát triển công nghệ chuỗi khối Blockchain Hiểu kiến trúc hoạt động tảng Blockchain, chế đồng thuận Blockchain Về Ứng dụng: Xây dựng ứng dụng hỗ trợ chuyển đổi token ERC-20 Ethereum CHƯƠNG II TỔNG QUAN BLOCKCHAIN 2.1 Giới thiệu chung Blockchain sổ kỹ thuật số chống giả mạo triển khai theo mơ hình phân tán (tức khơng có kho lưu trữ trung tâm) thường không cần đơn vị đáng tin cậy chứng thực (như ngân hàng, cơng ty, phủ) Ở mức độ bản, cho phép cộng đồng người dùng ghi giao dịch vào sổ chia sẻ, mà đó, với điều hành bình thường mạng Blockchain khơng giao dịch bị thay đổi sau xuất Vào năm 2008, ý tưởng Blockchain kết hợp với vài cơng nghệ khái niệm điện tốn khác để tạo đồng tiền mã hóa đại: tiền điện tử bảo vệ chế mật mã học thay nhờ vào bên chứng thực kho lưu trữ trung tâm Hình 1.Blockchain Cơng nghệ biết đến rộng rãi vào năm 2009 với đời mạng Bitcoin – đồng tiền mã hóa đại Ở hệ thống Bitcoin hệ thống tương tự, việc chuyển thông tin kỹ thuật số với đại diện tiền điện tử diễn hệ thống phân tán Người dùng Bitcoin ký chữ ký số chuyển tài sản sang người khác Bitcoin ghi lại giao dịch công khai, cho phép người tham gia mạng xác minh độc lập tính hợp lệ giao dịch Cơng nghệ Blockchain xem giải pháp chung cho đồng tiền mã hóa sau Blockchain định nghĩa thơng thường sau: “Blockchain sổ kỹ thuật số giao dịch ký mật mã Mỗi khối liên kết mã hóa với khối trước sau xác thực trải qua định đồng thuận Khi khối thêm vào, khối cũ trở nên khó bị chỉnh sửa Cuốn sổ sau chép đến tồn mạng xung đột giải tự động thông qua quy tắc thiết lập.” 2.2 Lịch sử đời Ý tưởng đứng sau cơng nghệ Blockchain lên vào cuối năm 1980, đầu năm 1990 Vào năm 1989, Leslie Lamport phát triển giao thức Paxos Năm 1990, ơng có báo The Part-Time Parliament1 gửi đến ACM Transaction on Computer Systems; báo phát hành cuối vào số năm 1998 Bài báo miêu tả mô hình đồng thuận giúp đạt thỏa thuận kết mạng lưới máy tính – nơi mà máy tính thân mạng khơng ổn định Năm 1991, chuỗi thông tin ký dùng sổ điện tử cho tài liệu có chữ ký kỹ thuật số theo cách mà không dễ dàng để tài liệu ký bị thay đổi Các khái niệm kết hợp áp dụng vào tiền điện tử năm 2008 miêu tả báo – Bitcoin: A Peer to Peer Electronic Cash System – xuất giả Satoshi Nakamoto , sau năm 2009 với đời tiền điện tử Bitcoin Việc sử dụng Blockchain cho phép Bitcoin triển khai theo kiểu phân tán, khơng có người dùng đơn lẻ điều khiển tiền điện tử khơng có khuyết điểm tồn đơn lẻ Lợi ích cho phép giao dịch trực triếp người dùng mà không cần bên thứ ba đáng tin cậy Nó cho phép phát hành tiền theo cách định nghĩa đến người quản lý việc xuất khối trì sổ cái, gọi miner Bitcoin Bằng cách sử dụng chế đồng thuận để trì chế tự kiểm soát tạo để đảm bảo có giao dịch khối hợp lệ thêm vào Blockchain 2.3 Phân loại Blockchain Mạng Blockchain phân loại dựa mơ hình quyền hạn mà xác định trì chúng (chẳng hạn xuất khối) Nếu xuất khối mới, gọi Blockchain mở Nếu có người dùng cụ thể xuất khối, gọi Blockchain đóng Hiểu đơn giản, mạng Blockchain đóng giống mạng Intranet tổ chức, Blockchain mở lại giống mạng Internet công cộng 2.3.1 Blockchain mở Mạng Blockchain mở tảng sổ phi tập trung mở rộng đến muốn xuất khối mà không cần quyền chứng thực Nền tảng Blockchain mở thường phần mềm mã nguồn mở, có sẵn miễn phí cho người muốn tải xuống Bởi có quyền xuất khối, nên kết đọc Blockchain phát hành giao dịch Blockchain (các giao dịch nằm khối xuất bản) Người dùng có ý đồ xấu xuất khối nhằm đánh sập hệ thống Để ngăn chặn điều này, mạng Blockchain mở thường triển khai thỏa thuận đa bên hay gọi hệ thống “đồng thuận”, yêu cầu người dùng chi tiêu trì tài nguyên muốn xuất khối Đồng thời, hệ thống “đồng thuận” thường thúc đẩy hành vi đắn thông qua việc trao thưởng cho nhà xuất khối tuân thủ giao thức với loại tiền điện tử tương ứng 2.3.2 Blockchain đóng Mạng Blockchain đóng tảng sổ cái, nơi mà người dùng xuất khối phải chứng thực quan (làm cho tập trung phi tập trung) Bởi có người dùng chứng thực trì Blockchain nên có hạn chế quyền tiếp cận hạn chế phát hành giao dịch Do đó, Blockchain đóng quy định đọc phải chứng thực để đọc Ngược lại, phát hành giao dịch hạn chế cá nhân chứng thực từ trước Blockchain đóng khởi tạo trì phần mềm mã nguồn mở đóng Mạng Blockchain đóng Blockchain mở giống đặc điểm: khả truy xuất tài sản kỹ thuật số Blockchain; hệ thống phân tán; phục hồi lưu trữ liệu dự phịng; mơ hình đồng thuận; có khơng có chi tiêu trì tài ngun Trong mạng Blockchain đóng, có phân loại mức độ tin tưởng thu hồi chứng thực làm sai Mạng Blockchain đóng có lẽ sử dụng tổ chức muốn kiểm soát chặt chẽ bảo vệ Blockchain họ Tuy nhiên, thực thể kiểm soát xuất khối, người dùng cần phải tin tưởng vào thực thể Một mạng Blockchain đóng tổ chức muốn làm việc với tổ chức khác khơng hồn tồn tin tưởng lẫn Họ thành lập mạng mời đối tác kinh doanh ghi lại giao dịch sổ phân tán chia sẻ Các tổ chức xác định mơ hình đồng thuận dùng dựa mức độ tin tưởng lẫn Bên cạnh đó, mạng cung cấp minh bạch hiểu biết mà giúp thông báo định kinh doanh tốt buộc bên làm sai chịu trách nhiệm Một vài mạng Blockchain đóng hỗ trợ khả tiết lộ giao dịch có chọn lọc dựa danh tính người dùng Với tính này, vài mức độ riêng tư giao dịch áp dụng Ví dụ, người biết có giao dịch hai người dùng diễn ra, nội dung thật giao dịch có người liên quan tiếp cận 2.4 Kiến trúc Blockchain 2.4.1 Hàm băm mật mã Một thành phần quan trọng công nghệ Blockchain sử dụng hàm băm mật mã cho hoạt động Băm phương pháp áp dụng hàm băm mật mã vào liệu nhằm tạo đầu tương ứng (được gọi tóm tắt thơng điệp – message digest, tóm tắt – digest) từ đầu vào kích thước (chẳng hạn tập tin, văn hình ảnh) Nó cho phép cá nhân chứng minh khơng có thay đổi liệu, kể thay đổi nhỏ đầu vào (chẳng hạn thay đổi bit) dẫn đến kết hoàn toàn khác Hàm băm mật mã có thuộc tính bảo mật quan trọng sau:  Preimage resistant (Chống nghịch ảnh): Có nghĩa giá trị từ hàm băm chiều; khơng thể tính tốn xác giá trị đầu vào dựa vào giá trị đầu Ví dụ: Cho giá trị hàm băm h, tìm thơng điệp m cho h = hash(m) khó  Second preimage resistant (Chống nghịch ảnh thứ hai): Có nghĩa khơng thể tìm đầu vào mà giống với đầu cụ thể Cụ thể hơn, hàm băm mật mã thiết kế để từ đầu vào cụ thể, khơng thể tính tốn để tìm đầu vào thứ hai mà hai có đầu Ví dụ: Cho thơng điệp m1, việc tìm thông điệp m2 ≠ m1 cho hash(m1) = hash(m2) khó Cách tiếp cận vét cạn tồn giá trị từ khơng gian đầu vào hội thành cơng khơng có  Collision resistant (Chống xung đột): Có nghĩa khơng thể tìm hai đầu vào mà băm thành đầu giống Cụ thể hơn, khơng thể tính tốn để tìm hai đầu vào mà tạo tóm tắt giống Ví dụ: Việc tìm hai thơng điệp m1 ≠ m2 cho hash(m1) = hash(m2) khó Cryptographic nonce Số mật mã dùng lần (Cryptographic nonce) số tùy ý sử dụng lần Nó kết hợp với liệu để tạo tóm tắt mã băm khác cho nonce: hash (data + nonce) = digest Thay đổi giá trị nonce cung cấp chế thu giá trị tóm tắt khác giữ liệu Kỹ thuật triển khai mơ hình đồng thuận chứng cơng việc (xem phần tiếp theo) 10 Người ta chia Dapps thành nhóm: sàn giao dịch, ví, ứng dụng cá cược, game, tài chính, mạng xã hội số lĩnh vực khác Tuy nhiên, dựa vào đặc tính sở hữu blockchain riêng hay xây dựng blockchain khác, người ta lại chia thành loại: - Loại 1: Loại DApps có blockchain riêng nó, chẳng hạng Bitcoin hay Ethereum - Loại 2: Đây ứng dụng phân quyền sử dụng blockchain ứng dụng phân quyền loại Dapp loại thực giao thức phát hành mã token để thực chức cho ứng dụng Ví dụ DApp loại Omni Protocol - Loại 3: Cũng Dapp loại 2, ứng dụng phân quyền loại sử dụng giao thức blockchain loại Ứng dụng thực chức cần thiết dựa vào giao thức mã token Ví dụ, SAFE network sử dụng Omni Protocal để phát hành SafeCoin sử dụng để tạo file storage phân phối 26 CHƯƠNG IV ETHEREUM  Ethereum Được phát hành năm 2015, Ethereum gọi Bitcoin 2.0 Ethereum đồng tiền điện tử phổ biến thứ hai giới, sau Bitcoin Đây tảng phần mềm mở dựa Công nghệ Blockchain, thông qua việc sử dụng chức Hợp đồng thông minh (Smart Contract) Hình 2.8 Đồng Ethereum ETH hay cịn gọi Ether đồng tiền mã hóa hệ thống Blockchain Ethereum Tương tự Bitcoin, Ether dùng để chi trả khoản phí giao dịch dịch vụ toán mạng lưới Ethereum, ETH hoạt động Blockchain, ta khai thác ETH thông qua đơn vị tiền tệ Ether Điểm khác biệt lớn Ethereum Bitcoin mục đích sử dụng công nghệ cốt lõi chúng Ethereum tạo với mục tiêu trở thành tảng dành cho việc phát triển Hợp đồng thông minh Trong đó, Bitcoin sinh với mục đích trở thành phương tiện toán nơi lưu trữ giá trị 27  Sơ lược thành phần hệ sinh thái Ethereum 4.1 Ethereum (ETH) ETH hay Ether đồng tiền điện tử thức chuỗi khối Ethereum Trong mạng lưới Ethereum, ETH có vai trị nhiên liệu để thực thi hoạt động liên quan đến giao dịch Mọi tính tốn xảy mạng Ethereum phải trả phí, với giao dịch, người gửi phải cung cấp lượng Ether Lý bước tính tốn Máy ảo Ethereum tốn Do đó, hợp đồng thông minh Ethereum sử dụng tốt cho tác vụ đơn giản, chạy logic business đơn giản, xác minh chữ ký, 4.1 Ethereum blockchain Ethereum Blockchain cấu thành mạng lưới máy tính hay gọi Nodes Các nodes phải chạy chương trình máy ảo có tên Ethereum Virtual Machine (EVM) Khi nhà phát triển muốn xây dựng ứng dụng phi tập trung (dapps) Ethereum, họ cần phải triển khai smart contract thơng qua ngơn ngữ lập trình Solidity EVM chịu trách nhiệm thực thi smart contract Để kích hoạt việc thực thi hoạt động smart contract, lệnh giao dịch mạng lưới cần đến lượng phí gọi “Gas" Phí “Gas” mạng Ethereum toán đồng tiền kỹ thuật số gọi Ether (ETH) Khi giao dịch thực thi, lúc cần đến việc xác nhận giao dịch có hợp lệ hay khơng Trong mạng Ethereum, thành phần đảm nhiệm việc xác nhận giao dịch có tên Miner Node Để mạng lưới vận hành độc lập, quán miner nodes phải 28 tuân theo luật đồng thuận – Consensus (hay gọi chế đồng thuận) Ethereum sử dụng luật đồng thuận có tên Proof of Work (PoW) hay cịn gọi chứng công việc Tức miner nodes phải chứng minh cơng việc họ hồn thành thơng báo đến tồn mạng lưới Sau đó, miner nodes khác mạng lưới xác nhận xem chứng có hợp lệ hay khơng 4.2 Ethereum node client Ethereum node dùng để mơ tả chương trình tương tác trực tiếp với mạng Ethereum theo cách Node Ethereum ví ứng dụng điện thoại máy tính lưu trữ toàn blockchain Bằng cách đó, tất node hoạt động điểm giao tiếp Tuy nhiên, có nhiều node khác mạng Ethereum Hình 2.9 Ethereum Blockchain Network 29 4.3.1 Geth (Go ethereum ) & Mist Hình 2.8 Geth (Go ethereum ) & Mist  Geth Daemon: Khi khởi động geth, tiến trình thực tìm kiếm node client khác mạng Ethereum để đồng liệu block chain mạng xuống local, đảm bảo liệu blockchain ln cập nhật Tiến trình đóng vai trị vừa đồng blockchain, vừa kênh giao tiếp từ client với mạng Ethereum Các ứng dụng client giao tiếp với tiến trình thơng qua Json RPC  Geth console: Geth cung cấp cơng cụ dịng lệnh để kết nối với node client tham gia vào mạng Ethereum thực thao tác quản lý tài khoản, truy vấn thông tin blockchain,  Mist: Là ví Ethereum phát triển Ethereum Foundation, thực tế, Mist ứng dụng client thơng qua kết nối với tiến trình Geth Daemon local để giao tiếp với mạng Ethereum Tuy nhiên, so với công cụ Geth Console, Mist cung cấp giao diện trực quan để quản lý tài khoản Smart Contract 30 4.3.2 Parity Là phiên phát triển Parity Inc, Parity hướng đến khả đồng nhanh nhẹ Thực tế qua số thực nghiệm, so với geth, Parity cho phép đồng tốc độ nhanh với tài nguyên tiêu tốn thấp Ngồi ra, có điểm khác biệt Parity client khơng thể tham gia Rinkeby testnet (sử dụng Proof-of-Authority), thay vào Parity có testnet riêng sử dụng Proof-ofAuthority Kovan 4.3.3 Web3.js Bên cạnh công cụ Geth Console hay Mist để tương tác với client nodes Ethereum network, Ethereum có thư viện JS Web3.js Thư viện sử dụng để xây dựng DApps web 4.3.4 Metamask Đối với nhiều người muốn chạy DApps không muốn chạy Ethereum node client, Metamask giải pháp hợp lí Metamask cho phép kết nối với Ethereum network trình duyệt thơng qua kết nối với Ethereum node Metamask 4.4 Solidity Solidity ngôn ngữ phổ biến để viết smart contract mạng Ethereum Đây ngơn ngữ lập trình bậc cao, hướng contract phát triển với mục tiêu tập trung vào khái niệm smart contract mạng Ethereum 4.4.1 Truffle & Embrak Là tảng phổ biến để phát triển DApp, cung cấp công cụ hỗ trợ triển khai, kiểm thử trình phát triển DApp 31 4.5 Swarm & IPFS Blockchain cấu trúc phù hợp để lưu trữ lượng liệu nhỏ, nhiên, liệu lớn, cần lưu trữ thời gian dài, việc sử dụng blockchain tốn không hiệu Swarm sinh để giải vấn đề Đây hệ thống lưu trữ phân tán mạng Ethereum Khi bạn chạy Ethereum node đồng thời bạn chạy Swarm node mạng lưu trữ Swarm Tương tự Swarm, IPFS hệ thống lưu trữ phân tán Tuy IPFS khơng dùng mạng Ethereum tích hợp với Ethereum network 4.6 ENS Dịch vụ tương tự DNS địa tài khoản Điều có nghĩa là, giống dịch vụ DNS, địa IP tương ứng với tên miền, dịch vụ ENS, địa tài khoản tương ứng với tên miền Thông qua ENS, thay phải nhớ địa tài khoản, địa đăng ký ứng với tên miền dễ nhớ Khi đó, người dùng cần sử dụng tên miền, dịch vụ ENS phân giải tên miền thành địa tài khoản tương ứng CHƯƠNG V SOLIDITY 5.1 Solidity gì? Solidity ngơn ngữ high-level lập trình hướng contract, có cấu trúc tập lệnh gần giống với Javascript C, sử dụng để xây dựng contract - thành phần 32 hệ sinh thái Ethereum, thiết kế dành riêng cho Ethereum Virtual Machine (EVM) Một tập tin mã nguồn Solidity lưu tên có kết thúc với “.sol” nên bắt đầu với “version pragma” để định nghĩa phiên trình biên dịch Solidity sử dụng Solidity bao gồm chức năng: Hỗ trợ đa kế thừa với tuyến tính hóa C3 Hỗ trợ đối tượng biến trạng thái, kiểu liệu nhiều chức lập trình khác Các biến thành viên phức tạp cho hợp đồng chứa cấu trúc ánh xạ phân cấp tùy ý Nhiều tảng blockchain bao gồm Ethereum, Ethereum Classic, Counterparty, Tendermint ErisDB 5.2 Kiểu liệu Trong Solidity có kiểu chỗ lưu variale: storage memory Một variable lưu memory tạm thời, variable lưu storage vĩnh viễn Ví dụ như, state variable (maxAge, minAge, Developer), khai báo ngồi function lưu storage Các variables randId, id, rand store memory 5.3 Contract Solidity xây dựng xoay quanh thành phần contract Về bản, contract tương tự class OOP với thuộc tính (state variables) phương thức (functions) Các khái niệm abstract contract (contract với phương thức chưa thực thi), interface (chỉ gồm chữ ký thao tác) tương tự OOP Contract solidity cho phép đa kế thừa Việc dễ đến nhiều vấn đề, số có Diamond Problem Solidity sử dụng thuật toán C3 Linearzation tương tự python để xử lí đa kế thừa Do thứ tự khai báo kế thừa sau từ khóa is quan trọng 33 Hình 5.1 Minh họa contract 5.4 Function Solidity giống nhiều ngơn ngữ lập trình khác hỗ trợ chức cần thiết để để viết modular code sử dụng functions Hình 5.2 Cấu trúc function Solidity 34 Hình 5.3 Minh họa function Solidity 5.5 Các công cụ Solidity cung cấp Các công cụ mà nhà lập trình viên Solidity sử dụng để xây dựng contract thơng minh dựa Solidity  Solgraph: Nó sử dụng để tạo đồ thị DOT hiển thị luồng điều khiển chức contracts Solidity nêu lỗ hổng bảo mật  Solidity REPL: Solidity REPL sử dụng để viết mã dòng lệnh Solidity Console  EVM Lab: Đây gói cơng cụ phong phú kèm với khả tương tác với Máy ảo Ethereum (EVM) Nó bao gồm API Etherchain, trình xem theo dõi máy ảo  Evmdis: Evmdis viết tắt EVM Disassembler thực phân tích tĩnh bytecode để cung cấp mức độ trừu tượng cao so với hoạt động EVM thô 35 CHƯƠNG VI ỨNG DỤNG CHUYỂN ĐỔI TOKEN Hình 6.1 Mơ hình Tổng quan Hình 6.2 Contract Token ERC-20 36 Hình 6.3 Functions Token Hình 6.4 Contract EthSwap 37 Hình 6.5 Functions EthSwap Hình 6.6 Viết test với Chaijs 38 Hình 6.7 Dùng Reactjs để tạo frontend cho web Github repo: https://github.com/ngochien18/CryptoExchange TÀI LIỆU THAM KHẢO [1] https://ethereum.org/en/developers/docs/ [2] https://docs.soliditylang.org/en/v0.8.2/# [ 3] https://viblo.asia/p/ethereum-hoat-dong-nhu-the-nao-6J3ZgwoEZmB [4] https://www.youtube.com/c/DappUniversity [5] https://www.oreilly.com/library/view/mastering-bitcoin/9781491902639/ [6] https://www.geeksforgeeks.org/blockchain-technology-introduction/?ref=rp 39 40 ... cơng nghệ có cơng nghệ Blockchain Cảm thấy hứng thú muốn tìm hiểu cơng nghệ Blockchain nên nhóm em lựa chọn tìm hiểu blockchain cụ thể Ethereum Solidity, nghiên cứu, ứng dụng công nghệ Blockchain. .. 5.5 Các công cụ Solidity cung cấp 12 CHƯƠNG VI ỨNG DỤNG CHUYỂN ĐỔI TOKEN 12 CHƯƠNG I GIỚI THIỆU Thơng tin chung 1.1 Đề tài Tìm hiểu blockchain ứng dụng xây dựng hệ thống hỗ trợ. .. việc xây dựng hệ thống chuyển đồi token ERC-20 Ethereum Mục tiêu đề tài Về Lý thuyết: Tìm hiểu lịch sử hình thành phát triển công nghệ chuỗi khối Blockchain Hiểu kiến trúc hoạt động tảng Blockchain,

Ngày đăng: 09/08/2022, 16:36

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

Tài liệu liên quan