Báo cáo Blockchain - Solidity

pdf 81 trang thiennha21 16/04/2022 7301
Bạn đang xem 20 trang mẫu của tài liệu "Báo cáo Blockchain - Solidity", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbao_cao_blockchain_solidity.pdf

Nội dung text: Báo cáo Blockchain - Solidity

  1. ĐẠI HỌC QUỐC GIA TP. HCM ĐẠI HỌC CÔNG NGHỆ THÔNG TIN   BÁO CÁO Môn: Thương mại điện tử Lớp : IS334.L21 ĐỀ TÀI: BLOCKCHAIN - SOLIDITY GIÁO VIÊN HƯỚNG DẪN: Ths.Đỗ Duy Thanh NHÓM THỰC HIỆN: Trương Văn Thành – 17521062 Nguyễn Lương Toàn – 18521510 Phạm Ngọc Anh Vũ – 19522536 TPHCM, Ngày 16 tháng 6 năm 2021
  2. LỜI CẢM ƠN Sau quá trình học tập và rèn luyện tại trường Đại học Công nghệ Thông tin chúng em đã được trang bị các kiến thức cơ bản, các kỹ năng thực tế để có thể hoàn thành đồ án môn học của mình. Chúng em xin gửi lời cảm ơn chân thành đến thầy Đỗ Duy Thanh đã quan tâm, hướng dẫn, truyền đạt những kiến thức và kinh nghiệm cho chúng em trong suốt thời gian học tập môn Thương Mại Điện Tử. Trong quá trình thực hiện nhóm chúng em chắc chăn không tránh khỏi được những sai sót, chính vì vậy, chúng em rất mong nhận được sự góp ý của thầy cô và các bạn nhằm hoàn thiện những kiến thức mà nhóm chúng em đã học tập và là hành trang để thực hiện tiếp các đề tài khác trong tương lai. Nhóm em xin chân thành cảm ơn quý Thầy Cô! TP. Hồ Chí Minh, ngày 16 tháng 6 năm 2021
  3. NHẬN XÉT (của giảng viên)
  4. MỤC LỤC LỜI CẢM ƠN 2 MỤC LỤC 4 PHẦN 0: MỤC ĐÍCH ĐỀ TÀI 7 PHẦN 1: TÌM HIỂU CÔNG NGHỆ BLOCKCHAIN 8 CHƯƠNG 1: TỔNG QUAN BLOCKCHAIN 8 1.1. Khái niệm 8 1.2. Các đặc tính của blockchain 9 1.3. Nguyên lý hoạt động 14 1.4. Ứng dụng của blockchain trong đời sống 14 CHƯƠNG 2: PHIÊN BẢN BLOCKCHAIN 15 2.1. Blockchain 1.0 (Tiền tệ) 15 2.2. Blockchain 2.0 (Smart contract) 17 2.3. Blockchain 3.0 (Ứng dụng phi tập trung Dapp) 17 2.4. Blockchain 4.0 (Ứng dụng thực tiễn) 19 CHƯƠNG 3: CÁC LOẠI BLOCKCHAIN 20 CHƯƠNG 4: THUẬT NGỮ QUAN TRỌNG TRONG BLOCKCHAIN 21 4.1. 51% Attack 21 4.2. Public Key 21 4.3. Private Key 22 4.4. Mining pool 22 PHẦN 2: TÌM HIỂU SMART CONTRACT & SOLIDITY 23 CHƯƠNG 1: SMART CONTRACT 23
  5. 1.1. Khái niệm 23 1.2. Cách hoạt động 24 1.3. Lợi ích của Smart contract 25 1.4. Ưu nhược điểm 26 1.5. Ứng dụng Smart contract (Blockchain 2.0) 27 CHƯƠNG 2: SOLIDITY 29 2.1. Khái niệm 29 2.2. Các khái niệm cơ bản của Solidity 29 2.3. Sử dụng Metamask triển khai Smart contract trong Solidity 30 PHẦN 3: HỆ SINH THÁI ETHEREUM 35 CHƯƠNG 1: TỔNG QUAN ETHEREUM 35 1.1. Ethereum (ETH) 35 1.2. Ethereum 2.0 35 1.3. Các giai đoạn để hoàn thành ETH 2.0 37 1.4. Cách thức hoạt động của Ethereum 38 1.5. Ưu điểm và nhược điểm của đồng Ethereum 39 1.6. Sử dụng Ethereum 40 1.7. Cách tạo ví Ethereum 43 CHƯƠNG 2: ỨNG DỤNG ĐƯỢC XÂY DỰNG TRÊN ETHEREUM 45 2.1. Tài chính phi tập trung (Defi) và Ethereum 45 2.2. Sàn giao dịch phi tập trung (DEX) và Ethereum 46 2.3. Ứng dụng phi tập trung (Dapps) 47 CHƯƠNG 3: CÁCH ĐỂ KIẾM ETHEREUM 49 3.1. Các cách đầu tư ETH 49
  6. 3.2. Hướng dẫn cách mua Ethereum. 53 PHẦN 4: TÌM HIỂU GRT 60 4.2.Phương thức hoạt động của The Graph 60 4.2.1. Vấn đề được giải quyết bằng The Graph 60 4.2.2. Giải pháp của The Graph 61 4.2.3. Hệ sinh thái của The Graph 62 4.3. Token GRT 63 4.4. Một số thông tin cơ bản về token GRT 63 4.4.1. Phân bố token GRT 63 4.4.2. Public sale 64 4.4.3. Đội ngũ phát triển dự án 65 4.4.5. Cách kiếm và sở hữu GRT Token 66 4.4.6. Sàn giao dịch GRT Token 66 4.4.7. Ví lưu trữ token GRT 66 4.5. Tương lai của GRT Token 67 PHẦN 5: MÔ TẢ QUY TRÌNH TRIỂN KHAI ỨNG DỤNG 68 Các bước để xây dựng một project 68 BẢNG PHÂN CHIA CÔNG VIỆC 79 TÀI LIỆU THAM KHẢO 81
  7. PHẦN 0: MỤC ĐÍCH ĐỀ TÀI - Tìm hiểu blockchain - Minh họa chi tiết, cụ thể Block Chain 1.0, 2.0. Các ứng dụng của nó. - Tìm hiểu smart contract và solidity - Tìm hiểu hệ sinh thái Etherium? - Mô tả quy trình triển khai smart contract lên mạng lưới ethereum test - Tìm hiểu GRT
  8. PHẦN 1: TÌM HIỂU CÔNG NGHỆ BLOCKCHAIN CHƯƠNG 1: TỔNG QUAN BLOCKCHAIN 1.1. Khái niệm Blockchain là một sổ cái công khai về thông tin được thu thập thông qua một hệ thống nằm trên internet. Điều làm cho nó độc đáo là không có cơ quan trung ương nào phụ trách tệp blockchain hoặc dữ liệu mà nó chứa. Thay vào đó, mỗi máy tính giữ bản sao riêng của tệp và bất kỳ bản cập nhật nào cũng cần có sự chấp thuận của phần lớn các máy bên trong hệ thống.
  9. Blockchain được tạo thành từ các “khối”- block, mỗi khối chứa một phần dữ liệu. Dữ liệu gần nhất luôn được thêm vào ở đầu chuỗi, trong khi dữ liệu lâu đời nhất đặt ở phía dưới đáy, bên trong cái được gọi là “Khối nguyên thủy - genesis block”. Hình 1.1. Chuỗi khối Các block được liên kết với nhau bằng mật mã (các thuật toán phức tạp), đó là cách chuỗi được hình thành. Toán học liên quan có nghĩa là bất kỳ thay đổi nào đối với dữ liệu hiện tại đều phá vỡ chuỗi, do đó, mọi cố gắng thay đổi đều có thể bị phát hiện và từ chối bởi hệ thống. Hình 1.2. Quy trình mã hóa khối 1.2. Các đặc tính của blockchain a. Cơ sở dữ liệu phân tán (phi tập trung) Hầu hết các Blockchain được thiết kế như một cơ sở dữ liệu phi tập trung thay vì quản lí sổ cái tập trung như ngân hàng hoặc một tổ chức nào khác. Các “tài sản” kỹ
  10. thuật số được phân phối thay vì sao chép hoặc chuyển giao trên Blockchain. Nhờ đó, mọi người trong cùng chuỗi có thể kiểm soát thông tin, dữ liệu có trong khối. Hình 1.3 Mô hình sổ cái phân tán b. Tính bền vững và tăng cường bảo mật Trong một Blockchain, mỗi khối đều có hàm băm riêng biệt cũng như tham chiếu đến hàm băm của khối nằm trước nó. Vì vậy, việc khai thác một chuỗi khá phức tạp, đặc biệt là trên các chuỗi lớn. Hinh 1.4. Liên kết block
  11. Những người khai thác chuỗi này sẽ sử dụng phần mềm chuyên dụng để giải quyết các vấn đề liên quan đến số học vô cùng phức tạp, khi muốn tìm ra một nonce tạo ra một hàm băm được chấp nhận. Bởi, mỗi nonce chỉ có 32bit trong khi mỗi hàm băm là 256bit, nên có khoảng bốn tỷ tổ hợp nonce và hàm băm cần phải được tìm kiếm trước khi tìm ra “nonce vàng” để khối của họ được thêm vào chuỗi. Ngoài ra, nếu có bất kì sự thay đổi nào đó ở một khối thì tất cả các khối ở sau đều bị ảnh hưởng vì khối sau liên kết với khối trước bằng mã băm. Dựa vào điều đó có thể xảy ra các cuộc tấn công hệ thống bằng cách thay đổi các khối đến khối cuối cùng tuy nhiên chỉ là có thể nhưng thực tế nó lại không thể. Tại sao? Mô hình trong blockchain là phi tập trung, mỗi máy được xem là một Node hệ thống càng nhiều Node thì càng mạnh mẽ Hình 1.5 Mạng lưới phi tập trung
  12. Mô hình này dựa trên Cơ chế đồng thuận phi tập trung. Khi một giao dịch được diễn ra và được thêm vào chuỗi thì nó cần phải được sự chấp nhận của đa số Node (máy đào) trong hệ thống này ( ở đây là các Node ) Hình 1.6. Cơ chế đồng thuận phi tập trung Vì vậy trên lý thuyết hệ thống này có thể xảy ra cuộc tấn công 51%. Khi một hacker hoặc tổ chức cá nhân có số lượng Node trên hệ thống này chiếm đến 51% thì mọi giao dich sẽ bị thao túng dựa vào cơ chế đồng thuận đại đa số. Giải quyết câu hỏi tại sao ở trên thì một hacker có thể sửa đổi một dãy block tuy nhiên trên hệ thống này mỗi cá nhân đều sở hữu một bản sổ cái vì vậy để hoàn toàn thay đổi các khối này thì phải thay đổi 51% Node trên hệ thống lúc này thông tin sửa đổi đó mới được chấp nhận.  Điều này chỉ diễn ra trên lý thuyết còn thực tế để tấn công hệ thống trên là một điều không thể c. Tính minh bạch Các block được nối tiếp nhau tạo thành chuỗi, một khi một block đã được cập nhật, bạn sẽ không thể xóa thông tin trong đó đi. Blockchain hoạt động dựa trên
  13. nguyên tắc ghi chép phổ biến trong tài chính là không được phép xóa bỏ dữ liệu đã cập nhật, thay vào đó cập nhật thêm các block mới, với nội dung cần chỉnh sửa và tên tuổi của người chỉnh sửa. Điều này vừa giúp rõ ràng thông tin lẫn sự toàn vẹn của các dữ liệu đã được tạo. Blockchain minh bạch để mỗi người có thể theo dõi dữ liệu nếu họ muốn. d. Tính bất biến Một khi dữ liệu được đưa vào một khối thì sẽ được mã hóa bằng thuật toán mã hóa băm kết hợp RSA security (mã hóa bất đối xứng) đảm bảo rằng dữ liệu không thể sửa đổi Hình 1.7. Thuật toán mã hóa
  14. 1.3. Nguyên lý hoạt động Hình 1.8. Nguyên lý hoạt động 1.4. Ứng dụng của blockchain trong đời sống Blockchain hiện đang được ứng dụng vào rất nhiều lĩnh vực trong đời sống. - Ứng dụng của blockchain trong thương mại điện tử - Ứng dụng của Blockchain trong chuỗi cung ứng - Ứng dụng của blockchain trong dịch vụ tài chính, ngân hàng - Ứng dụng của blockchain trong nông nghiệp - Ứng dụng của blockchain trong y tế - Ứng dụng của Blockchain trong Internet of Things (IoT) -
  15. CHƯƠNG 2: PHIÊN BẢN BLOCKCHAIN 2.1. Blockchain 1.0 (Tiền tệ) Năm 2005, người ta cho ra đời ý tưởng về việc tạo ra một loại tiền điện tử. Sổ cái Blockchain ra đời như một phương tiện hỗ trợ hoạt động của loại tiền này. Nói cách khác, Bitcoin, loại crypto đầu tiên cũng chính là ứng dụng đầu tiên của Blockchain. Hình 1.9. Bitcoin a. Blockchain 1.0 hoạt động như thế nào? Cụ thể khi khách hàng muốn sử dụng Bitcoin để thanh toán dịch vụ hay hàng hóa, người dùng sẽ ra lệnh ghi chép và xác nhận giao dịch. Giao dịch sẽ được ghi lại một cách công khai thành những khối block được xếp vào chuỗi, và được xác nhận bởi những người sử dụng Bitcoin khác. Trung bình cứ 10 phút, một khối block mới được tạo ra thông qua việc "đào" Bitcoin. Tức là, dựa vào giao thức của Bitcoin, cơ sở dữ liệu Blockchain được chia sẻ cho tất cả các máy tính tham gia vào hệ thống này. Mỗi máy tính sẽ có một bản sao chép của Blockchain có chứa dữ liệu ghi chép lại và là bằng chứng cho việc một giao dịch được hoàn tất.
  16.  Bởi chỉ cần liên tưởng với loại tài sản khác (thay vì tiền điện tử), chắc chắn sẽ nhìn thấy tiềm năng vô hạn của nó từ đó ra đời các phiên bản cao hơn blockchain 2.0, 3.0 và 4.0 đáp ứng tất cả nhu cầu thực tế. Hình 1.10. Giai đoạn phát triển b. Ứng dụng của blockchain 1.0 Hỗ trợ mọi giao dịch chuyển đổi tiền tệ, kiều hối và hệ thống thanh toán kỹ thuật số trong lãnh thổ tiền điện tử nói chung và Bitcoin nói riêng bằng các thuật toán về tiền tệ (ví blockchain).
  17. 2.2. Blockchain 2.0 (Smart contract) Blockchain đã thoát khỏi sự hạn hẹp bằng cách vượt ra khỏi lĩnh vực crypto mà tiến đến với Smart Contract. Công nghệ này có tác dụng bảo vệ các hợp đồng thông minh dưới sự can thiệp của những người có mục đích không tốt. Khi làm việc trên loại hợp đồng này, người sử dụng sẽ không cần tiêu tốn chi phí vào việc xác thực, vận hành và chống gian lận. Chi tiết chương 1 phần 2 Hình 1.11. Smart contract 2.3. Blockchain 3.0 (Ứng dụng phi tập trung Dapp) DApps là viết tắt của Decentralized application tức ứng dụng phi tập trung.
  18. Có thể hiểu đơn giản thông qua việc lấy ví dụ từ các ứng dụng trên CHPlay hay App Store là các ứng dụng được tạo ra bởi một tổ chức, cá nhân nào đó và chịu sự chi phối của họ. Trái lại, các ứng dụng xuất hiện trên Blockchain không chịu sự kiểm soát của bất cứ một cá nhân thay vào đó là một tập thể những người có mặt trong chuỗi. Đó chính là sự phi tập trung của ứng dụng trên Blockchain. Hình 1.12. Phân biệt App và Dapp - Mô hình website truyền thống: Frontend → API → Database - Mô hình website Dapps: Frontend → Smart Contract (ABI) → Blockchain
  19. 2.4. Blockchain 4.0 (Ứng dụng thực tiễn) Blockchain của thời đại này không chỉ tập trung vào lĩnh vực tài chính mà còn trở thành một giải pháp cho các vấn đề cơ bản của đời sống. Blockchain có tác dụng hỗ trợ các doanh nghiệp xây dựng một quá trình làm việc xuyên nền tảng, chẳng hạn như chuỗi cung ứng, hệ thống xử lý đơn hàng tự đồng, thanh toán, thu thập dữ liệu Internet. Hình 1.13. Ứng dụng blockchain
  20. CHƯƠNG 3: CÁC LOẠI BLOCKCHAIN Có 2 loại Blockchain - Blockchain công khai: Dữ liệu ở chế độ xem công khai, bất kỳ ai cũng có thể tải xuống một giao thức để đọc, ghi hoặc tham gia mạng (Bitcoin, Ethereum, Litecoin ) - Blockchain riêng tư: Cho phép các tổ chức sử dụng công nghệ sổ cái phân tán đó Dữ liệu không công khai, những người tham gia trên mạng này sẽ bị hạn chế một số quyền như đọc và ghi dữ liệu. Hình 1.14. Bảng so sánh hai loại blockchain
  21. CHƯƠNG 4: THUẬT NGỮ QUAN TRỌNG TRONG BLOCKCHAIN 4.1. 51% Attack Thuật ngữ này mô tả tình huống quá nhiều sức mạnh tính toán (hash power) của mạng lưới blockchain được tập trung tại một chỗ. Có thể một người hoặc một nhóm người dùng kiểm soát 51% sức mạnh tính toán, hệ thống có thể “bị” điều khiển một cách có chủ đích hoặc vô tình thực hiện các giao dịch xung đột xâm phạm đến hệ thống. 4.2. Public Key Là một mật mã cho phép người dùng nhận tiền điện tử vào tài khoản của mình. Khóa công khai cùng với khóa riêng là những công cụ quan trọng cần có để đảm bảo an ninh cho nền kinh tế tiền điện tử. Hình 1.15. Giải mã bằng public key
  22. 4.3. Private Key Là khóa riêng tư, là một hình thức mã hóa tinh vi cho phép người dùng truy cập vào tiền điện tử của mình. Khóa riêng là một khía cạnh không thể thiếu của bitcoin và altcoin, và bảo mật của nó giúp bảo vệ người dùng khỏi bị đánh cắp và truy cập trái phép vào tiền. Hình 1.16. Giải mã bằng private key 4.4. Mining pool Là một hệ thống phần mềm tập trung nhóm các thợ đào để có thể xác nhận khối (block) và xử lý giao dịch nhiều hơn. Lợi nhuận sẽ được phân chia cho các thành viên trong nhóm.
  23. PHẦN 2: TÌM HIỂU SMART CONTRACT & SOLIDITY CHƯƠNG 1: SMART CONTRACT 1.1. Khái niệm Hợp đồng thông minh được Nick Szabo định nghĩa là một công cụ kết hợp giao thức và giao diện người dùng giúp chính thức hóa và bảo mật mạng máy tính. Sử dụng trong nhiều lĩnh vực liên quan đến các thỏa thuận hợp đồng. Bitcoin (Một loại tiền mã hóa dưới dạng phần mềm mã nguồn mở, giúp trao đổi trực tiếp bằng Internet) đã đặt ra nền tảng cơ bản để thiết lập Smart Contract. Thế nhưng hợp đồng thông minh chỉ thực sự được thỏa mãn mọi yêu cầu và được nhiều người sử dụng khi Ethereum (Nền tảng điện toán có tính chất phân tán, công cộng, mã nguồn mở) ra đời. Toàn bộ quá trình được thực hiện tự động bởi các bên mà không cần gặp mặt trực tiếp và không có sự can thiệp từ bên ngoài. Phương thức thiết lập hợp đồng mới này vẫn đảm bảo tính minh bạch, có thể truy xuất, đảo chiều và không bị can thiệp từ bên ngoài. Hợp đồng thông minh Hợp đồng truyền thống Điểm giống nhau giữa hợp đồng truyền thống và hợp đồng thông minh nằm ở chỗ các điều khoản và hình phạt đều được nêu rõ ràng. - Được tạo ra bởi các chuyên gia pháp lý. - Được tạo bởi ngôn ngữ lập trình như - Biên soạn một lượng lớn tài liệu. C++, Go, Python, Java trên hệ thống - Cần phải có bên thứ ba để thực thi. máy tính. - Mất khá nhiều thời gian để thỏa thuận và đi - Toàn bộ mã được thực hiện bởi hệ đến ký kết. thống sổ cái phân tán Blockchain. - Không cần đến bên thứ ba trung gian.
  24. - Đảm bảo tính minh bạch và chính - Hợp đồng có thể tồn tại nhiều vấn đề, không xác trong việc thực thi. minh bạch. - Mất nhiều chi phí và phải dựa vào hệ thống tư pháp để giải quyết khi có sự cố. Bảng so sánh hợp đồng điện tử và hợp đồng truyền thống 1.2. Cách hoạt động Smart Contract chỉ tự động thực hiện khi những điều khoản đã được lập trình sẵn từ trước. Các điều khoản trong hợp đồng sẽ được viết bằng ngôn ngữ lập trình, sau đó mã hóa và chuyển vào một block thuộc Blockchain. Sau đó, hợp đồng thông minh được phân phối và sao chép lại bằng các Node đang hoạt động tại nền tảng đó. Sau khi có lệnh triển khai thì hợp đồng sẽ được triển khai theo đúng điều khoản. Đồng thời, tự động kiểm tra quá trình thực hiện những cam kết, điều khoản. Vì hệ thống hoạt động dựa trên câu lệnh “If - Then” và hàng trăm người giám sát nên sẽ không xảy ra lỗi sai trong quá trình giao nhận. Hình 2.1. Quá trình trao đổi hợp đồng
  25. Ví dụ: Nếu bạn muốn mua một chiếc xe từ công ty tôi và trả tiền điện tử qua hệ thống Blockchain. Biên nhận sau đó sẽ được đưa vào hợp đồng thông minh của công ty và có trách nhiệm giao mật mã và chiếc xe cho bạn với đúng thời hạn đã nêu trong hợp đồng. Nếu mật mã của công ty không giao đúng thời hạn thì tiền sẽ được chuyển lại vào tài khoản bạn. Nếu đến trước thời hạn thì hệ thống sẽ giữ lại cả tiền của bạn và mật mã của công ty tôi để chuyển vào đúng ngày. Hình 2.2. Quá trình thanh toán bằng hợp đồng thông minh 1.3. Lợi ích của Smart contract Smart Contract là một ứng dụng tận dụng tất cả những điểm mạnh của công nghệ Blockchain mang lại vì vậy nó có rất nhiều lợi ích, dưới đây là các lợi ích chính của nó. - Tự động hóa: Quá trình được thực hiện hợp đồng là tự động bằng. Đồng thời bạn chính là người tạo hợp đồng, không còn phải phụ thuộc vào môi giới, luật sư hay bất kì ai khác. Như vậy, nó cũng xóa bỏ những nguy cơ đến từ bên thứ ba
  26. - Không bị thất lạc: Tài liệu của bạn được mã hóa trên một cuốn sổ cái chung, có nghĩa là không thể bị thất lạc. Hình 2.3. Lợi ích của Smart contract - An toàn: Blockchain sẽ đảm bản sự an toàn cho tài liệu của bạn. Không một hacker nào có thể đe dọa đến chúng. - Tốc độ: Hợp đồng thông minh sử dụng các ngôn ngữ lập trình, code phần mềm để tự động hóa các điều khoản, tiết kiệm hàng tiếng đồng hồ cho những công việc không cần thiết. - Tiết kiệm: Hợp đồng thông minh tiết kiệm cho bạn hàng đống tiền nhờ xóa bỏ khâu trung gian. - Chính xác: Các hợp đồng tự động không chỉ nhanh và rẻ hơn mà còn tránh được các lỗi thường thấy khi viết giấy tờ. 1.4. Ưu nhược điểm a. Ưu điểm - Ứng dụng của hợp đồng thông minh có thể được sử dụng vào nhiều lĩnh vực khác nhau: Logistic, ngân hàng, bất động sản, bầu cử,
  27. - Tự do: Không nhận sự quản lý của bất kỳ một cơ quan nào. - Giảm thiểu rủi ro đến từ bên thứ ba. - An toàn và minh bạch. - Tiết kiệm và nhanh chóng. b. Nhược điểm - Rủi ro từ Internet: Có thể bị tấn công hoặc khai thác bởi các hacker nếu để lộ những thông tin quan trọng. - Không nhận được quyền pháp lý: Quyền lợi có thể không được bảo vệ vì chưa có chính sách. - Yêu cầu cao về trình độ triển khai của các lập trình viên và hệ thống. Từ đó, chi phí để trả cho họ và cơ sở hạ tầng là không hề nhỏ. 1.5. Ứng dụng Smart contract (Blockchain 2.0) a. Sử dụng cho các cuộc bầu cử Việc thao túng kết quả bầu cử là rất khó, tuy nhiên vẫn có thể xảy ra, nhưng hợp đồng thông minh thì sẽ bao giờ có thể thao túng. Bởi vì những phiếu vote được bảo vệ bởi sổ cái sẽ cần được giải mã và cần phải có một quyền truy cập đủ mạnh để tiếp cận nó. Và sự thực là không ai nắm trong tay quyền lực như vậy trong blockchain. b. Sử dụng cho các nhà quản lý Vào năm 2015, Tập đoàn Trust & Clearing (DTCC) đã sử dụng một sổ cái Blockchain để lưu trữ thông tin về tài sản chứng khoán trị giá 1.500 nghìn tỷ USD, đồng nghĩa với 345 triệu giao dịch. c. Logistics (Chuỗi cung ứng) Chuỗi cung ứng là một hệ thống kéo dài và mỗi bộ phận phải theo dõi và ghi lại thông tin để biết vấn đề phát sinh ở đâu.
  28. Do quá trình dài hơi và kém năng suất, với Smart contract mỗi bộ phận tham gia đều có thể theo dõi quá trình công việc => đảm bảo tính minh bạch, chống gian lận. d. Dịch vụ y tế Với Smart Contract thì hồ sơ bệnh lý của người bệnh sẽ được mã hóa và lưu trữ trên Blockchain với một khóa riêng, chỉ những người có khóa đó mới có thể truy cập vào xem hồ sơ được. Sổ cái cũng có thể được sử dụng trong việc quản lý chăm sóc y tế, ví dụ như giám sát thuốc men, kết quả xét nghiệm và quản lý các nguồn cung y tế.
  29. CHƯƠNG 2: SOLIDITY 2.1. Khái niệm Solidity là ngôn ngữ lập trình để cài đặt hợp đồng thông minh (smart contract). Solidity khá giống Javascript, hiện tại là ngôn ngữ phổ biến nhất cho lĩnh vực này. 2.2. Các khái niệm cơ bản của Solidity a. Contracts Mã của Solidity được đóng gói trong các hợp đồng. Một hợp đồng là khối xây dựng cơ bản của các ứng dụng Ethereum – tất cả các biến và chức năng thuộc về một hợp đồng, và đây là điểm khởi đầu của tất cả các dự án của bạn. VD về contract có tên HelloWorld: b. Version Pragma Tất cả các mã nguồn đều bắt đầu với một phiên bản “version pragma“-một tuyên bố của phiên bản của trình biên dịch Solidity. Đây là để ngăn chặn các vấn đề với các phiên bản trình biên dịch tương lai có khả năng giới thiệu những thay đổi có thể phá vỡ mã của bạn. Ở VD trên version pragma là: ^0.4.0 c. Biến Solidity yêu cầu khai báo biến và kiểu dữ liệu trước khi sử dụng. VD: uint public numberOne = 20; d. Structs
  30. Cho phép tạo các kiểu dữ liệu phức tạp hơn có nhiều thuộc tính. Kiểu cấu trúc này tương tự như trong ngôn ngữ lập trình C. e. Array Có hai loại mảng trong Solidity: mảng cố định và mảng động. Bạn có thể khai báo một mảng như là public, và Solidity sẽ tự động tạo ra một phương thức getter cho nó. Cú pháp như sau: Person[] public people; Các hợp đồng khác sau đó sẽ có thể đọc (nhưng không viết) cho mảng này. Vì vậy, đây là một mô hình hữu ích để lưu trữ dữ liệu công cộng trong hợp đồng của bạn. 2.3. Sử dụng Metamask triển khai Smart contract trong Solidity a. IDE Để viết và thực thi mã solidity, IDE phổ biến nhất được sử dụng là REMIX. hoặc có thể sử dụng Mist (trình duyệt Ethereum DApp). Sau khi viết mã và biên dịch nó, chúng ta có thể triển khai nó theo 3 cách: - JavaScriptVM - Injected Web3 - Web3 Provider
  31. Các bước dưới đây triển khai hợp đồng bằng cách sử dụng MetaMask dưới dạng Injected Web3. b. Cài đặt ví thử nghiệm Metamask Tìm kiếm từ khóa “Metamask” trong Extension. Hình 2.4. Metamask Extension Sau khi cài đặt và thiết lập tài khoản B1. Chọn Ropsten Test Network từ danh sách mạng lưới có sẵn Hình 2.4. Test Network B2. Nhận đồng eth thử nghiệm tại
  32. B3. MetaMask đã sẵn sàng để triển khai Note: Các bạn có thể chọn mạng thử nghiệm Rinkeby và tham khảo cách nhận đồng ETH test tại c. Các bước triển khai contract B1. Tạo một file mới với đuôi .sol Hình 2.5. Tạo file solidity B2. Viết một đoạn mã đơn giản cho việc biên dịch và thử nghiệm pragma solidity ^0.4.26; // Creating a contract contract shreyansh_05 { // Defining a function to function get_output() public pure returns (string) { return ("Hi, your contract ran successfully"); } } Hình 2.6. Compile mã code solidity
  33. B3. Sau khi biên dịch và chuyển sang phần Deploy ngay bên dưới phần Compile và chọn Injected Web3 thay cho JavaScriptVM như hình dưới đây Hình 2.7. Thiêt lập môi trường deploy
  34. B4. Bây giờ hợp đồng đã sẵn sàng để được triển khai. Nhấp nút Deploy và MetaMask sẽ yêu cầu xác nhận như sau Hình 2.8. Xác nhận đã triển khai B5. Bây giờ, để xác minh xem giao dịch (quy trình) của bạn có được thực hiện thành công hay không, bạn có thể kiểm tra số dư của mình trên MetaMask. Hợp đồng của bạn đã hoàn toàn sẵn sàng hoạt động. Đảm bảo rằng phiên bản trình biên dịch khớp với phiên bản mã solidity của bạn. Đây là cách triển khai cơ bản của MetaMask với Solidity.
  35. PHẦN 3: HỆ SINH THÁI ETHEREUM CHƯƠNG 1: TỔNG QUAN ETHEREUM 1.1. Ethereum (ETH) Ethereum là một nền tảng điện toán phân tán chuỗi khối chạy trên công nghệ Blockchain, thông qua việc sử dụng chức năng hợp đồng thông minh (Smart Contract). Ethereum có thể thực hiện các giao dịch, hợp đồng mạng ngang hàng thông qua Ether (ETH). Ethereum được giới thiệu vào cuối năm 2013 bởi Vitalik Buterin. Theo lộ trình phát triển gồm: 1. Frontier 2. Homestead 3. Metropolis 4. Serenity (Ethereum 2.0) Tính đến tháng 12 năm 2019, Ethereum đã hoàn tất 3 giai đoạn và chuẩn bị bước vào giai đoạn thứ 4. 1.2. Ethereum 2.0 Ethereum 2.0 còn được biết đến là Serentity. Đây là một tên gọi chung cho một số cập nhật lớn của Ethereum.
  36. Bản cập nhật này sẽ giải quyết bộ ba bất khả thi của Blockchain: bảo mật, khả mở rộng mạng lưới, phân tán. Cách phần chính để giải quyết 3 vấn đề nan giải này: • Beacon Chain • Proof of Stake (PoS) • Sharding • eWASM Hình 3.1. Cấu trúc Ethereum 2.0
  37. ➢ Beacon Chain Beacon chain là cốt lõi của Ethereum 2.0. Chuỗi này sẽ chạy song song và liên kết chéo giữa Main chain và và Shard Chain. ➢ Proof of Stake (PoS) PoS là cơ chế đồng thuận sẽ thay thế cho cơ chế hiện tại là PoW (Proof of Work). Việc chuyển đổi sẽ thông qua một cơ chế đồng thuận lai giữa PoS và PoW – Casper Friendly Finality Gadget (FFG). Vì thế hệ thống sẽ ngày càng mạnh hơn và không còn chịu sự ảnh hưởng hay chi phối từ các thợ mỏ. Thông thường, một giao dịch Ethereum cần có thợ đào xác nhận, nếu không thì giao dịch đó sẽ không thành công. ➢ Sharding Sharding là một phương thức nhân rộng thông lượng giao dịch trên chuỗi. Phương thức được thực hiện bằng cách tách cơ sở dữ liệu lớn thành các cơ sở dữ liệu nhỏ. Những dữ liệu nhỏ đậy được gọi là “shard”. ➢ eWASM Ethereum-flavored WebAssembly (eWASM) là một tập con hạn chế của WebAssembly(Wasm) được sử dụng cho hợp đồng tương lai. Mỗi shard sẽ bao gồm 1 eWASM tương đương với máy ảo Ethereum (Ethereum Virtual Machine). Hiện tại, chưa có sự đồng thuận của nhà phát triển cho việc thay thế EVM. Nhưng nhà phát triển sẽ có kế hoạch. 1.3. Các giai đoạn để hoàn thành ETH 2.0
  38. Để hoàn thành ETH 2.0, chúng ta cần trải qua 3 giai đoạn, gồm: ➢ Giai đoạn 0 Giai đoạn đầu tiên là sự ra mắt của Beacon Chain sẽ triển khai PoS trên chuỗi. Trong giao đoạn này cũng sẽ ra mắt một loại tài sản trên chuỗi Beacon. Loại tài sản này được gọi Beacon ether (BETH). BETH được xem như là phần thưởng xác thực dùng để trả thưởng cho những người Staking. Ngoài ra, bạn cũng có thể sở hữu BETH bằng cách dùng ETH để mua. Mỗi ETH sẽ bằng 1 Beacon ether. Giai đoạn này chưa hỗ trợ sharding, smart contracts và chuyển giao tài sản. Nên bạn sẽ không thể rút được BETH đến khi sharding có thể thực thi trong giai đoạn 2. ➢ Giai đoạn 1 Giai đoạn tiếp theo sẽ chuyển tập trung vào Shard Chain. Sharding sẽ chia nhỏ thông tin trạng thái thành các ‘shard’ để đạt mục tiêu về khả năng mở rộng và cải thiện tốc độ mạng lưới. ➢ Giai đoạn 2 Giai đoạn 2 được coi là giai đoạn cuối cùng của Serenity khi nó hoàn thành nâng cấp lớp cơ sở và giai đoạn này được thiết lập để diễn ra vào khoảng năm 2021. Trong giai đoạn này, chuỗi shard sẽ chuyển sang trạng thái chuỗi cấu trúc hỗ trợ các hợp đồng thông minh và chuyển giao tài sản 1.4. Cách thức hoạt động của Ethereum
  39. Hình 3.2. Cách thức hoạt động Ethereum 2.0 Chuỗi khối Ethereum rất giống với bitcoin, nhưng với hợp đồng thông minh, ngôn ngữ lập trình của nó cho phép các nhà phát triển viết phần mềm thông qua các giao dịch blockchain quản lý và tự động hóa các kết quả cụ thể. Hợp đồng thông minh đảm bảo các điều khoản được thực hiện bằng cách viết nó vào mã. Hợp đồng sẽ tự động thực hiện thỏa thuận ngay khi đáp ứng các điều kiện được xác định trước. Ví dụ, một người dùng Ethereum có thể tạo một hợp đồng thông minh để gửi một lượng ether nhất định cho bạn bè vào một ngày nhất định. Họ sẽ viết mã này vào blockchain và ngay khi hợp đồng hoàn tất ether sẽ tự động được chuyển cho bên kia. Chi tiết chương 1 phần 2 1.5. Ưu điểm và nhược điểm của đồng Ethereum ➢ Ưu điểm: Có hầu hết các đặc tính của blockchain.
  40. Không chịu ảnh hưởng của bên thứ 3 vì thế quỹ DAO được triển khai trong mạng không bị kiểm soát bởi bấy kì ai. Sử dụng cơ chế đồng thuận phi tập trung Toàn bộ nền tảng được phân cấp. Do đó tất cả các ứng dụng luôn ở trạng thái trực tuyến và không bao giờ tắt. Tính phi tập trung và bảo mật bằng mật mã giúp cho mạng Ethereum chống lại hacker và các hoạt động lừa đảo ➢ Nhược điểm: Đã từng bị tấn công quỹ DAO và tổn thất hơn 3,6 triệu token Ether. Kẻ tấn công đã khai thác 1 lỗi từ mã. Tổn thẩt không chỉ ở lượng token bị đánh cắp. Mà nó còn làm suy yếu niền tin của người dùng trên toàn bộ mạng etherum, giá trị của Ether đã giảm từ hơn 20 đôla xuống con 12 đôla vào thời điểm đó. Được thiết kế là các hợp đồng thông minh, nên sai sót sẽ xảy ra ở khâu viết mã. Và bất kì lỗi nhỏ nào cũng có thể bị khai thác. Nếu lỗi xảy ra sẽ không có cách nào trực tiếp ngăn cản các cuộc tấn công. Cách duy nhất là đạt được sự đồng thuận và viết lại 1 mã cơ bản. => Tuy nhiên điều này đi ngược với bản chất của Blockchian-1 sổ cái không thể thay đổi và bất biến. 1.6. Sử dụng Ethereum Ngoài việc nó được các nhà phát triển sử dụng để thúc đầy các dự án của mình trên mạng lưới Ethereum thì ETH giống như 1 tài sản kỹ thuật số. Đối với các nhà đầu tư thì nó cũng giống như các đồng tiền điện tử khác. ➢ Giao dịch ETH với các tiền điện tử khác trên Sàn giao dịch Hiện tại có hàng trăm mã thông báo thay thế trong hệ sinh thái Blockchain. Các Altcoin này có giá trị dao động, đôi khi hàng ngàn phần trăm trong một ngày và mua hoặc bán những đồng tiền này với hy vọng kiếm được lợi nhuận lớn đã trở thành một thông lệ.
  41. Khi bạn có ví Ether, quá trình giao dịch Ethereum của bạn cũng đơn giản như đăng ký trao đổi lựa chọn của bạn, tìm kiếm các giao dịch mong muốn của bạn và sau đó thực hiện chúng. Bạn cũng có thể giao dịch ETH lấy Bitcoin hoặc các tài sản tiền điện tử khác như Litecoin, Ripple Dash, v.v. thông qua hầu hết các trao đổi trực tuyến. ➢ Tham gia vào ICO ICO-Hình thức gọi vốn đầu tư, là một quá trình mà một dự án mới bán các loại tiền điện tử mới, thường để đổi lấy Bitcoin hoặc Ethereum. Điều này tương tự như gây quỹ cộng đồng, hoặc IPO (Phát hành lần đầu ra công chúng) nơi khởi nghiệp bán cho các cổ đông ban đầu. IPO được thiết kế để cung cấp cho các công ty khởi nghiệp vốn đầu tư mạo hiểm mà họ cần để thành công trong việc biến dự án của họ thành hiện thực. Điều này hấp dẫn người nắm giữ ETH vì họ có thể giao dịch ETH của họ lấy một phần tài sản tiền điện tử của công ty với giá chiết khấu so với giá trị tài sản * có thể * được định giá khi mã thông báo mới được công khai. Nếu mọi việc suôn sẻ, chủ sở hữu của các mã thông báo mới này có thể chọn bán khi dự án được công khai và nếu dự án đạt được lực kéo trên thị trường, điều này khả năng sẽ tạo ra lợi nhuận khổng lồ. Tuy nhiên, nếu mọi thứ không ổn và các mã thông báo mới được thị trường coi là vô giá trị, thì những người tham gia ICO có thể sẽ mất trắng. ➢ Giao dịch Ether cho hàng hóa và dịch vụ Cũng như Bitcoin và các đồng tiền điện tử khác, Ethereum có thể được giao dịch với bất kỳ ai có địa chỉ ví liên quan. Ethereum Blockchain rất tốt trong việc tạo điều kiện cho các giao dịch ngang hàng, và nó rẻ và nhanh hơn nhiều so với Bitcoin Blockchain. ETH cũng có thêm lợi ích cho việc sử dụng các hợp đồng thông minh của Wap, một quy trình cải tiến nhằm đưa các tham số vào giao dịch và sau đó yêu cầu các thỏa thuận được phải được đáp ứng trước khi có thể trao đổi tiền. Điều này giúp loại bỏ sự cần thiết của bên thứ ba, chẳng hạn như luật sư hoặc tổ chức ngân hàng. Và nó cho phép bạn tìm kiếm trong cộng đồng hoặc các thị trường P2P (ngang
  42. hàng) các cá nhân có hàng hóa, dịch vụ và thậm chí cả tiền tệ pháp định mà bạn muốn giao dịch Ethereum của mình. ➢ Đổi ETH lấy tiền thật (tiền pháp định) Trao đổi ETH của bạn với các loại tiền pháp định là một quá trình khá đơn giản. Phổ biến nhất là thông qua một trao đổi trực tuyến được thiết lập. Bước đầu tiên là tìm một sàn giao dịch có thể cung cấp cho bạn loại tiền bạn muốn để đổi lấy ETH. Khi bạn trao đổi, bạn chỉ cần làm theo hướng dẫn của họ để thiết lập tài khoản của bạn. Tất nhiên bạn sẽ cần xác minh danh tính của mình để ràng buộc trao đổi với tài khoản ngân hàng của bạn, mặc dù có một số trao đổi với các khoản rút tiền nhỏ mà không cần xác minh danh tính để duy trì tính ẩn danh mà một số người dùng tiền điện tử coi trọng. Một tùy chọn phổ biến khác là chuyển đổi Ethereum của bạn thông qua thẻ ghi nợ trả trước. Có rất nhiều tùy chọn có sẵn và một khi được tài trợ, thẻ hoạt động gần như giống hệt với thẻ ghi nợ truyền thống mà bạn quen thuộc. Một số thẻ này được gắn trực tiếp vào ví điện tử, có nghĩa là bạn có thể chi tiêu ETH được lưu trữ trong ví của mình mọi lúc, mọi nơi. Khi có thông báo cầu bạn phải nộp một khoản thanh toán Ethereum vào tài khoản, tức là bạn cần “nạp” thêm tiền vào thẻ của bạn trước khi sử dụng. Các phương thức trao đổi không phổ biến khác bao gồm sử dụng thị trường ngang hàng, trong đó người dùng tự do trao đổi tài sản của họ với nhau trong một môi trường an toàn và được mã hóa, bỏ qua nhu cầu trao đổi của bên thứ ba. Hãy nghĩ về điều này như một diễn đàn trực tuyến nơi bạn giao dịch trực tiếp với các cá nhân khác muốn giao dịch hàng hóa, dịch vụ và tài sản của họ, bao gồm cả tiền pháp định. Tất nhiên, bạn luôn có thể cố gắng tìm ai đó muốn mua ETH trực tiếp từ bạn trong cộng đồng, như một giao dịch cá nhân giữa các bên.
  43. Hãy nhớ luôn luôn biết rằng bất kỳ trao đổi Ethereum nào với tiền pháp định đều phải chịu thuế ở hầu hết các quốc gia và bạn sẽ phải nộp thuế theo quy định của quốc gia bạn khi giao dịch và khi bạn nhận lợi nhuận. 1.7. Cách tạo ví Ethereum Ví Ethereum là công cụ cho phép người dùng tạo địa chỉ ví Ethereum để lưu trữ các token được phát hành trên chuỗi khối của Ethereum, bao gồm cả ETH. ➢ Các loại ví Etherum phổ biến: • Ví Giấy (Paper Wallet): Loại ví cơ bản nhất được biết đến là một loại ví giấy, tên là một loại giấy có khóa riêng được viết hoặc in trên đó. Thông tin trên mảnh giấy này là tất cả những gì cần thiết để kiểm soát tất cả các tài sản trên tài khoản Ethereum. • Ví phần cứng (Hardware Wallet ): Đây là loại ví lưu trữ Private Key trong một thiết bị phần cứng, rất dễ sử dụng và an toàn. Nhưng, loại ví này người dùng phải dùng tiền để mua. Một số ví cứng lưu trữ Ethereum uy tín: Ledger Nano S, Ledger Nano X, Trezor, KeepKey • Ví phần mềm (Software Wallet): Đây là loại ví lưu trữ Ethereum trên ổ cứng của máy tính hay điện thoại. Dễ sử dụng nhưng cũng dễ bị hacker tấn công và không bảo mật bằng ví cứng. • Ví sàn: Cách phổ biến nhất để mọi người mua tài sản tiền điện tử đầu tiên của họ là thông qua một sàn giao dịch cho phép mọi người giao dịch giữa tiền tệ fiat và cryptocurrency. Sàn giao dịch cũng hoạt động như ví vì nền tảng kiểm soát các khóa riêng thay mặt cho người dùng.
  44. Lợi ích của việc có một nền tảng kiểm soát các khóa riêng của bạn là tiền hoặc tài sản của bạn có thể được phục hồi nếu bạn mất mật khẩu. ➢ Cách tạo ví Ethereum B1: Truy cập vào myetherwallet.com để bắt đầu quá trình đăng ký. B2: Điền Password và bấm Create New Wallet B3: Download Keystore File (UTC / JSON). Sau khi download xong, bấm vào I understand. Continue. Lúc này, Private Key của ví sẽ hiện ra. B4: Lưu Private Key cũng như Keystore/JSON File. Tiếp theo bấm vào Print Paper Wallet và lưu lại.
  45. CHƯƠNG 2: ỨNG DỤNG ĐƯỢC XÂY DỰNG TRÊN ETHEREUM 2.1. Tài chính phi tập trung (Defi) và Ethereum Hình 3.3.Ứng dụng tài chính phi tập trung trên Ethereum Khi giao dịch các dịch vụ tài chính dựa trên Ethereum, kết nối các cá nhân ngang hàng sẽ cho phép họ truy cập tài sản dễ dàng hơn và chi phí hợp lý hơn khi bạn thực hiện các giao dịch thông thường như hiện nay. Vì hầu hết các dịch vụ tài chính của bạn như chuyển tiền, mua bán tài sản, hoặc cho vay đều được kiểm soát và tính phí bởi một bên trung gian. ➢ Ứng dụng tài chính phi tập trung trên Ethereum Ethereum hiện là nền tảng có nhiều ứng dụng defi hoạt động nhất. Phần này chắc cũng là những ứng dụng cho các nhà đầu sử dụng nhiều nhất nên mình sẽ liệt kê nó trước: • Stablecoin: Là các loại tiền điện tử được thiết kế để giảm thiểu tác động của biến động giá. • Coinbase Wallet: Ví đa tiền tệ, được cung cấp quyền truy cập vào Ứng dụng phân cấp Web (dApps) bởi các hợp đồng thông minh Ethereum.
  46. • Huobi Wallet: Ví đa tiền tệ, trình duyệt dApps và staking như một dịch vụ cho các mạng PoS. • MyEtherWallet: Miễn phí, mã nguồn mở, giao diện phía máy khách để tạo ví Ethereum và tương tác với dApps. • Trust Wallet: Ví tiền điện tử đa năng để lưu trữ các mã thông báo BEP2, ERC20 và ERC721. Những ứng dụng trên được rất nhiều người sử dụng vì tính tiện ích của nó. Ngoài ra còn các ứng dụng tiện ích của ethereum với Defi như: Đầu tư, thanh toán, cho vay, bảo hiểm, dự đoán thị trường 2.2. Sàn giao dịch phi tập trung (DEX) và Ethereum Hình thức trao đổi phi tập trung có thể kể đến như: Mạng ngang hàng (peer-to-peer), Cùng với đó là ứng dụng phi tập trung dapp, nơi mà người dùng tương tác với hợp đồng thông minh. Một trong những sàn giao dịch ngang hàng tốt nhất hiện nay tại Việt Nam đó là Binance P2P. Các nhà đầu tư có thể thực hiện mua bán Ether trực tiếp bằng VND.
  47. 2.3. Ứng dụng phi tập trung (Dapps) Hình 3.4. Các ứng dụng trên Ethereum Dapps cho các nhà đầu tư. Ứng dụng phi tập trung Dapp cùng với mạng ngang hàng giúp người dùng tương tác với hợp đồng thông minh. ➢ Các ứng dụng trên Ethereum cho các nhà đầu tư Dưới đây là danh sách các Ethereum dapps có thể sử dụng ngay bây giờ. Hầu hết đều có sẵn để tải xuống miễn phí thông qua các cửa hàng Apple hoặc Google Play hoặc trực tiếp thông qua các trang web của họ dưới dạng bản demo, betas hoặc bản phát hành đầy đủ. ➢ Trình duyệt, ví và các tiện ích: • MetaMask: Ứng dụng Plug-in trình duyệt cho phép kết nối thiết bị của bạn với mạng lưới Ethereum. • Status: Trình duyệt di động Ethereum với ví token, chat và cổng thông tin dApp. • Brave: Một trình duyệt web và di động được tích hợp với BAT và ERC-20 tokens. • Opera: Trình duyệt Dapp với ví Ethereum tích hợp.
  48. • Ethereum Name Service: Một tiện ích để tạo địa chỉ ví ETH được cá nhân hóa và đơn giản. • Civic: Bảo mật danh tính và quản lý dữ liệu trên blockchain. • Alethio: Nền tảng phân tích mạng Ethereum. ➢ Các ứng dụng khác: Ngoài danh mục ví, các trang web hay các tiện ích. Ứng dụng của ethereum còn trải dài trên rất nhiều lĩnh vực khác như: Platform, market, Mạng xã hội, game, ➢ Một vài ví dụ cho người dùng nghiên cứu như sau: • IDEX: Một trao đổi phi tập trung với giao dịch thời gian thực và thông lượng giao dịch cao. • ForkDelta: Một trao đổi token Ethereum phi tập trung. ➢ Điều làm cho Ethereum DApps khác biệt Các ứng dụng được xây dựng trên Ethereum (DApps) có thể làm những điều mà các ứng dụng thông thường không thể: • Tạo các loại tiền và tài sản kỹ thuật số mới. • Các ứng dụng web không thể ngăn chặn và không thể kiểm soát. • Xây dựng các tổ chức phi tập trung, tài sản hoặc thế giới ảo được quản lý chung. DApps trên Ethereum là các ứng dụng web được hỗ trợ bởi các hợp đồng thông minh Ethereum . Thay vì sử dụng máy chủ hoặc cơ sở dữ liệu tập trung, các ứng dụng này dựa vào blockchain làm phần phụ trợ cho toán học logic và lưu trữ chương trình. Điều này dẫn đến các ứng dụng tiềm năng không thể ngăn chặn: Bất kỳ ai cũng có thể triển khai một bản sao và tự do kết nối nó với mạng Ethereum công cộng.
  49. CHƯƠNG 3: CÁCH ĐỂ KIẾM ETHEREUM 3.1. Các cách đầu tư ETH Đầu tư Ethereum có nhiều cách và nhiều hình thức khác nhau. Tuy nhiên điển hình phải kể đến đó là Giao dịch ETH truyền thống, đào Ethereum và giao dịch ký quỹ Ethereum. ➢ Giao dịch Ethereum truyền thống Theo như thống kê của trang ycharts thì chi phí trung bình cho mỗi giao dịch Ethereum là 2,042 USD. Đây là số liệu được thống kê ngày hôm qua tức là ngày 14/10/2020. Con số này đã tăng lên từ 1,933 USD của ngày hôm qua (tăng 5,61%). Nếu so với 1 năm về trước thì chi phí giao dịch 1 ETH đã tăng 1570%. Hình 3.5. Biểu đồ phí giao dịch 1 năm của ETH -Nguồn: Ycharts.com Có thể thấy phí giao dịch của ETH tăng một cách chóng mặt. Và con số này có lẽ sẽ càng tăng theo thời gian. ➢ Đào Ethereum
  50. Nếu bạn là thợ đào ETH, thì ngoài phí giao dịch nêu trên ra, bạn cần phải cộng phí máy đào, tiền điện và phí lưu trữ v.v. Theo thống kế của Venturebeat: Số lượng GPU 4 Tỉ lệ băm trên mỗi GPU ( Mh/s) 40 Tổng tỷ lệ băm (Mh/s) 160 Điện năng tiêu thụ khai thác (W) 1000 Giá điện (USD/kWh) 0,1 Chi phí điện hàng ngày (USD) 2,4 (Khoảng 55.000 VNĐ) Phí khai thác mỏ 1,5% Tổng chi phí phần cứng (USD) 3.000 ( Khoảng 69 triệu VNĐ) Tuy nhiên chi phì này chỉ là mức tính tương ứng vì ở mỗi quốc gia khác nhau thì chi phí sẽ khác nhau. Nhưng nhìn vào chi phí này cũng đủ thấy rằng để có 1 “dàn khoan” Ethereum hợp lý không hề rẻ chút nào.
  51. Đây là biểu đồ về hệ số khó khăn trong việc khai thác khối Ethereum. Hệ số này đang tăng theo cấp số nhân điều đó có nghĩa là độ khó của việc khai thác ETH đang gia tăng chóng mặt. ➢ Giao dịch ký quỹ Ethereum Đây là hình thức phổ biến nhất hiện tại vì nó dễ dàng tiếp cận với mọi nhà đầu tư, đặc biệt là với các nhà đầu tư nhỏ lẻ. Vậy hình thức này kiếm tiền như thế nào? Về bản chất thì giao dịch ký quỹ ETH cho phép nhà đầu tư kiếm lợi nhuận dựa trên sự chênh lệch giá của ETH và không cần sử hữu chúng. Và một điều đặc biệt hơn nữa là nhà đầu tư có thể kiếm được lợi nhuận theo cả 2 chiều tăng giảm của giá ETH miễn là nhà đầu tư dự đoán chính xác xu hướng di chuyển. Lợi thế khi giao dịch ký quỹ: ✓ Vốn thấp: Khoản đầu tư của bạn sẽ được khuếch đại sau khi sử dụng đòn bẩy tài chính ✓ Chi phí giao dịch thấp: không có chi phí lưu trữ và không có rủi ro bị hack vì không sở hữu tài sản.Thay vào đó bạn chỉ cần phải trả một khoản phí rất nhỏ cho sàn giao dịch. ✓ Nhanh chóng và tiện lợi: Chỉ cần đăng ký tài khoản online, với các thiết bị thông minh được kết nối internet là bạn có thể giao dịch ở bất cứ đâu bất cứ khi nào bạn muốn ✓ Lợi nhuận 2 chiều và lợi nhuận cao: Dù tăng hay giảm bạn đều có thể thu được lợi nhuận nhờ vào việc dự đoán đúng xu hướng.
  52. Hình 3.6. Cơ chế mua bán eth - Mua vào: Chọn Mua nếu bạn dự đoán rằng giá ETH sẽ tăng - Bán khống: Chọn Bán nếu bạn dự đoán rằng giá ETH sẽ giảm Note: Nếu bạn không có ý định giữ Ethereum thì có thể giao dịch ký quỹ ETH trên Sàn Mitrade. Mitrade cung cấp cho bạn đòn bẩy 1:10 với Ether. Cách phù hợp với các nhà đầu tư bán lẻ nhất để giao dịch đồng Ethereum chính là tham gia trên sàn giao dịch ký quỹ ví dụ như Mitrade. Ngoài ra, giao dịch Ethereum trên Mitrade rất là đơn giản.
  53. Hình 3.7. Thông tin Mitrade 3.2. Hướng dẫn cách mua Ethereum. ① Bước 1: Đăng ký và tạo tài khoản
  54. Mitrade hiện cung cấp cho nhà đầu tư 2 tài khoản giao dịch đó là tài khoản Demo và tài khoản thật. Trader mới sẽ có 50.000$ tiền ảo để luyện tập giao dịch với tài khoản demo. Tài khoản giao dịch thật bằng vốn của bạn. 100 thị trường tài chính | 0 phí hoa hồng | Spread thấp | Đòn bẩy lên đến 1:200(Bitcoin: 1:10) | Các công cụ hỗ trợ giao dịch miễn phí | Bảo mật | Nền tảng dễ sử dụng ② Bước 2: Nạp vốn vào tài khoản giao dịch Số tiền nạp tối thiểu trên Mitrade là $50(khoảng 1,1 triệu đồng) và nền tảng hỗ trợ nhiều phương thức thanh toán bao gồm thẻ nội địa. Việc nạp/rút được thực hiện dễ dàng. Số tiền nạp của bạn sẽ được bảo vệ theo quy định của ASIC. ③ Bước 3: Chọn Ethereum để giao dịch
  55. Chọn thị trường tiền điện tử và sau đó chọn Ethereum. Ngoài Ethereum ra Mitrade còn cung cấp hơn 100 thị trường khác bao gồm: Các loại thị trường tài chính phổ biến trên Sàn Mitrade Ta hoàn toàn có thể đa dạng hóa danh mục đầu tư một cách dễ dàng trên Mitrade
  56. ④ Bước 4: Chọn vị thế Mua/bán Dựa vào những phân tích của mình bạn hãy đưa ra nhận định và mở vị thế: • Chọn Mua nếu bạn dự đoán rằng giá ETH sẽ tăng • Chọn Bán nếu bạn dự đoán rằng giá ETH sẽ giảm Sau đó chọn số lô muốn giao dịch, hệ thống sẽ tự hiện số tiền ký quỹ yêu cầu mà bạn không cần phải tính toán.
  57. ⑤ Bước 5: Sử dụng công cụ quản lý rủi ro Hệ thống quản lý rủi ro trên Mitrade vô cùng phong phú với các công cụ: Lệnh chốt lời, lệnh dừng lỗ, lệnh cắt lỗ dưới v.v Một số công cụ quản lý rủi ro miễn phí trên Sàn Mitrade
  58. ⑥ Bước 6: Đóng vị thế và rút lợi nhuận Sau khi giao dịch có lãi, bạn chỉ cần đóng vị thế và rút tiền về tài khoản của mình. Mitrade đã liên kết với hầu hết các ngân hàng tại Việt Nam nên không cần quá lo lắng về phần nạp/rút. Nếu bạn là nhà đầu tư ngắn hạn, yêu thích các giao dịch nhanh và mong muốn kiếm lợi nhuận trong ngày thì Mitrade là lựa chọn số 1 dành cho bạn.
  59. PHẦN 4: TÌM HIỂU GRT 4.1.The Graph (GRT) The Graph là một giao thức phi tập trung có chức năng tổ chức dữ liệu blockchain. Nhờ vậy, nó giúp cho người sử dụng truy cập dữ liệu Blockchain một cách tiện lợi, dễ dàng và đồng bộ hơn. Chính vì tính năng indexing và truy vấn dữ liệu đó, người ta ví The Graph như một Google của network Blockchain. 4.2.Phương thức hoạt động của The Graph 4.2.1. Vấn đề được giải quyết bằng The Graph Cho đến nay, tính minh bạch của công nghệ blockchain thường nhận được rất nhiều lời khen ngợi. Nhưng, cho dù chúng chứa rất nhiều dữ liệu hữu ích, việc truy vấn chúng để tìm dữ liệu đặc biệt không phải điều dễ dàng, việc đó giống như “Web mà không có Google”. Hiện tại đã có rất nhiều công cụ phân tích có thể lấy các thông tin hữu ích từ dữ liệu blockchain. Tuy nhiên các ứng dụng này thường hoạt động theo cách tập trung và có thể
  60. mất hàng tháng để phát triển. Từ đó The Graph ra đời, tự coi mình không phải là đối thủ cạnh tranh với các công cụ trên, mà là ứng dụng hỗ trợ cho chúng. Có thể coi The Graph như một lớp dữ liệu mở trong hệ sinh thái blockchain. 4.2.2. Giải pháp của The Graph Hình 4.1. Giải pháp GRT
  61. The Graph xây dựng một giao thức cho phép người sử dụng có thể truy cập để xây dựng các API (còn được gọi là các Sub-Graph) The Graph sẽ lấy dữ liệu từ network blockchain( bước đầu với Ethereum) và tổ chức lại theo một cấu trúc riêng. Việc truy xuất dữ liệu được áp dụng theo phương thức GraphQL, một phương thức phổ biến được rất nhiều ông lớn sử dụng như Facebook, Pinterest, Shopify Hình 4.2. Các hệ thống sử dụng GraphQL Ngoài ra, The Graph hướng đến việc xây dựng nền tảng gồm nhiều Node, trong đó người sử dụng có thể đăng ký xây dựng The Graph Node, nó giúp cho rút ngắn thời gian truy xuất dữ liệu, tiện lợi hơn cho cộng đồng. 4.2.3. Hệ sinh thái của The Graph ▪ Indexers là các node operators trong mạng lưới The Graph. Indexers sẽ stake token GRT để cung cấp cho dụng vụ Indexing và Query Processing. Indexers sẽ nhận được Query fees và các Inflation reward. ▪ Curators là các Sub-Graph developers, data consumers hoặc là những thành viên cộng đồng. Họ sắp xếp dữ liệu và báo hiệu cho Indexers những API nào nên được lập chỉ mục bởi mạng lưới The Graph. Từ việc này, họ có thể kiếm được token GRT.
  62. ▪ Delegators là các cá nhân muốn đóng góp vào việc bảo mật mạng The Graph nhưng họ có thể không muốn hoặc không rành code để làm Curators hay Indexers. Họ có thể ủy quyền token GRT của mình cho các Indexers để được share phần thưởng. ▪ Consumers là người dùng cuối của The Graph. Họ dùng dịch vụ query data được cung cấp từ Indexers, phí này được share theo tỷ lệ cho các Indexers, Curators, Delegators. 4.3. Token GRT GRT là Token trong hệ sinh thái The Graph, được dùng với mục đích: ▪ Query fees: Phí do người tiêu dùng trả cho các Indexers, Curators và Delegators. Giống như phí chúng ta trả cho các dịch vụ đám mây. ▪ Inflation reward: Phần thưởng lạm phát sẽ được chia sẻ cho Indexers, Curators và Delegators dựa trên số Token GRT mà họ stake. ▪ Protocol Sink & Burns: Một phần Query fees được đốt cháy, dự kiến sẽ bắt đầu ở mức ~1% tổng phí truy vấn giao thức và có thể thay đổi tỉ lệ trong tương lai. 4.4. Một số thông tin cơ bản về token GRT ▪ Token name: GRT Token ▪ Ticker: GRT ▪ Blockchain: Ethereum ▪ Token Standard: ERC-20 ▪ Total Initial Token Supply: 10 tỷ ▪ Lộ trình phát hành mới: Bắt đầu từ ~ 3% hàng năm, tùy thuộc vào quản trị kỹ thuật. ▪ Maximum Token supply: 10 tỷ in + Số token phát hành mới – Số token được đốt ▪ Market cap: $232,287,329 ▪ Khoảng 1% phí quy vấn mà người dùng phải trả cho hệ thống The Graph sẽ được đốt. 4.4.1. Phân bố token GRT
  63. Hình 4.3. Sơ đồ phân bổ GRT Token GRT được phân bổ như sau: ▪ Graph Foundation: 58% ▪ Educational Programs: 6% ▪ Curator Program Grant:9% ▪ Testnet Indexer Rewards: 9% ▪ Bug Bounties: 1% ▪ Public GRT Sale: 12% ▪ Strategic GRT Sale: 6% 4.4.2. Public sale ▪ Token Ticker: GRT (ERC20 Token) ▪ Ngày: Thứ 5 ngày 22/10/2020 lúc 23h đêm ▪ Nơi bán: thegraph.com, Ethereum Blockchain ▪ Đóng đăng ký từ: 15/10/2020 ▪ Tổng cung lúc đầu: ~1,245,666,867 GRT
  64. ▪ Tổng cung: 10,000,000,000 GRT ▪ Tổng Token bán: 400,000,000 preGRT (Converting to 400,000,000 GRT) ▪ Giá: $0.03/preGRT ▪ Thanh toán bằng: ETH ▪ Cá nhân: $1,000-$5,000 chỉ được mua trong khoảng này. ▪ Khóa: Khóa tới khi khởi chạy ▪ Quốc gia được phép mua: Ngoài những người dùng tại Hoa Kỳ và một số khu vực pháp lý nghiệm ngặt thì còn lại đều có thể tham gia được. 4.4.3. Đội ngũ phát triển dự án Hình 4.4. Đội ngũ phát triển Team The Graph khá chất lượng với sự tham gia của các tên tuổi trong làng Dev Blockchain. 4.4.4. Partners
  65. Hình 4.5. Các tổ chức hỗ trợ và sử dụng sản phẩm Đội ngũ nhà đầu tư của The Graph cũng khá ấn tượng, được rất nhiều tổ chức đứng sau hỗ trợ và sử dụng sản phẩm. Có thể kể đến những cái tên như: Coinbase Venture, DCG, 4.4.5. Cách kiếm và sở hữu GRT Token Hiện tại bạn có thể sở hữu GRT token bằng những cách sau: ▪ Tham gia vào hệ sinh thái The Graph. Bất kỳ ai cũng có thể là Indexer, Curator hoặc Delegator. ▪ Staking. ▪ Chương trình Bug Bounty để giúp tìm ra các lỗ hổng bảo mật. ▪ Tham gia các cuộc thi hackathon. 4.4.6. Sàn giao dịch GRT Token Tính đến thời điểm hiện tại, bạn có thể giao dịch token GRT trên Uniswap, Okex, Huobi, Binance và Coinbase. 4.4.7. Ví lưu trữ token GRT GRT là token ERC-20 nên bạn có thể lưu trữ trên các ví có hỗ trợ tiêu chuẩn nảy như:
  66. ▪ Metamask ▪ Myetherwallet ▪ Trust Wallet 4.5. Tương lai của GRT Token The Graph giúp quá trình xây dựng các Dapp nhanh chóng hơn thông qua việc truy xuất Data trên Blockchain Ethereum nhanh hơn. Cùng với sự phát triển của hệ sinh thái Ethereum thì mình tin The Graph cũng sẽ phát triển theo.
  67. PHẦN 5: MÔ TẢ QUY TRÌNH TRIỂN KHAI ỨNG DỤNG 5.1. Mục tiêu 5.2. Mô hình Use-case 5.3. Sơ đồ lớp 5.4. Sơ đồ Sequence Diagram 5.5. Các bước để xây dựng một project ✓ Bước 1: Xây dựng Smart Contract (dBank) với các chức năng cơ bản Deposit, Withdraw, Borrow, Payoff bằng Solidity. - Giới thiệu về Solidity: Solidity là một ngôn ngữ cấp cao, hướng đối tượng để thực hiện các hợp đồng thông minh. Hợp đồng thông minh là các chương trình điều chỉnh hành vi của các tài khoản trong trạng thái Ethereum.
  68. Solidity được thiết kế để nhắm mục tiêu Máy ảo Ethereum (EVM). Với Solidity, bạn có thể tạo các hợp đồng để sử dụng như bỏ phiếu, huy động vốn từ cộng đồng, đấu giá và ví nhiều chữ ký. Khi triển khai hợp đồng, bạn nên sử dụng phiên bản Solidity được phát hành mới nhất. Điều này là do các thay đổi đột phá cũng như các tính năng mới và bản sửa lỗi được giới thiệu thường xuyên. - Tạo Contract dBank với Solidity
  69. ✓ Bước 2: Cài đặt Ganache (Mạng Ethereum local). - Giới thiệu về Genache: Ganache là một blockchain cá nhân để phát triển ứng dụng phân tán Ethereum và Corda nhanh chóng. Bạn có thể sử dụng Ganache trong toàn bộ chu kỳ phát triển; cho phép bạn phát triển, triển khai và thử nghiệm các dApp của mình trong một môi trường an toàn và xác định. Ganache có hai phiên bản: UI và CLI. Ganache UI là một ứng dụng dành cho máy tính để bàn hỗ trợ cả công nghệ Ethereum và Corda. Công cụ dòng lệnh, ganache-cli (trước đây được gọi là TestRPC), có sẵn để phát triển Ethereum - Giao diện:
  70. ✓ Bước 3: Triển khai Smart Contract lên mạng Ethereum local bằng Truffle. - Giới thiệu về Truffle: Truffle là một môi trường phát triển đẳng cấp thế giới, khung thử nghiệm và đường ống tài sản cho các blockchain sử dụng Máy ảo Ethereum (EVM), nhằm mục đích làm cho cuộc sống của một nhà phát triển trở nên dễ dàng hơn. ▪ Tích hợp hợp đồng thông minh biên dịch, liên kết, triển khai và quản lý nhị phân. ▪ Kiểm tra hợp đồng tự động để phát triển nhanh chóng. ▪ Khung triển khai và di chuyển có thể mở rộng và có thể tập lệnh. ▪ Quản lý mạng để triển khai cho bất kỳ số lượng mạng công cộng và riêng tư. ▪ Quản lý gói với EthPM & NPM, sử dụng tiêu chuẩn ERC190. ▪ Bảng điều khiển tương tác để giao tiếp hợp đồng trực tiếp. - Xây dựng Folder chứa các file cấu hình để triển khai hợp đồng thông minh: - Mỗi file được định nghĩa các hàm để triển khai hợp đồng thông minh lên mạng Ethereum.
  71. - Để thiết lập Truffle ▪ Cài đặt npm install –g truffle ▪ Khởi tạo truffle init - File truffle.js định nghĩa hợp đồng sẽ được triển khai trực tiếp lên mạng nào. Ở đây là ( mạng Ethereum local mà Ganache đã start trước đó)
  72. Triển khai hợp đồng thông minh lên Ethereum bằng lệnh “truffle migrate network development” , nếu không chỉ định network, truffle sẽ tự động lấy network đầu tiên. - Sau khi compile, hợp đồng thông minh sẽ được biên dịch thành các file json. Mỗi file sẽ chứa các thông tin về hợp đồng và các meta-data khác: ▪ Contract name: Tên của hợp đồng ▪ abi: thông tin các chức năng cũng như thuộc tính, được miêu tả rõ ràng input và output ▪ metadata: các metadata khác của hợp đồng
  73. Sau khi đã biên dịch thành công, hợp đồng sẽ được truffle triển khai lên Ethereum và tạo các giao dịch tương ứng.
  74. Ganache sẽ ghi giao dịch cũng như tự động thêm các block vào trong mạng Ethereum hiện tại
  75. Danh sách Block Thông tin chi tiết block
  76. ✓ Bước 4: Sử dụng web3 để tương tác với Smart Contract. - web3.js là một tập hợp các thư viện cho phép bạn tương tác với một nút ethereum cục bộ hoặc từ xa bằng cách sử dụng HTTP, IPC hoặc WebSocket. ✓ Bước 5: Xây dựng Service.
  77. 5.6. Danh sách màn hình 5.7. Nhận xét và kết luận
  78. BẢNG PHÂN CHIA CÔNG VIỆC Mức độ hoàn thành STT MSSV Công việc được giao (%) - Tìm hiểu Smart contract - Tìm hiểu Reactjs thiết kế lại giao diện 1 18521510 100 - Tìm hiểu blockchain - Thử nghiệm smart contract trên Metamask - Tìm hiểu blockchain - Tìm hiểu Solidity - Dựng format báo cáo 2 17521062 100 - Mô tả quy trình triển khai - Hỗ trợ tìm hiểu & xây dựng service để build project - Tìm hiểu GRT - Tìm hiểu Ethereum 3 19522536 - Tìm hiểu blockchain 100 - Thử nghiệm smart contract trên Metamask
  79. TÀI LIỆU THAM KHẢO gi#linkTo-article-para2 xung-quanh-ethereum-eth-ma-ban-nen-biet-137466881 blockchain current-release-is-truffle-4-0?rq=1 contracts