Đăng ký Đăng nhập
Trang chủ Ứng dụng công nghệ blockchain vào quản lý bằng của Trường Đại học Lạc Hồng...

Tài liệu Ứng dụng công nghệ blockchain vào quản lý bằng của Trường Đại học Lạc Hồng

.PDF
57
98
142

Mô tả:

TRƯỜNG ĐẠI HỌC LẠC HỒNG KHOA CÔNG NGHỆ THÔNG TIN  ----- ----            BÁO CÁO NGHIÊN CỨU KHOA HỌC ĐỀ TÀI: ỨNG DỤNG CÔNG NGHỆ BLOCKCHAIN VÀO QUẢN LÝ BẰNG CỦA TRƯỜNG ĐẠI HỌC LẠC HỒNG TRẦN DIỆP KHÁNH TRÌNH BIÊN HÒA, THÁNG 11/2018 TRƯỜNG ĐẠI HỌC LẠC HỒNG KHOA CÔNG NGHỆ THÔNG TIN ----- ----- BÁO CÁO NGHIÊN CỨU KHOA HỌC     ĐỀ TÀI:   NGHỆ BLOCKCHAIN ỨNG DỤNG CÔNG  VÀO QUẢN LÝ BẰNG CỦA TRƯỜNG ĐẠI  HỌC LẠC HỒNG      Sinh viên thực hiện: Trần Diệp Khánh Trình Giáo viên hướng dẫn: ThS. Phan Thị Hường BIÊN HÒA, THÁNG 11/2017 I LỜI CẢM ƠN Không có sự thành công nào mà không gắn liền với những sự giúp đỡ và hỗ trợ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác. Trong suốt thời gian từ khi bắt đầu học tập ở trường cho đến nay, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý thầy cô, gia đình và bạn bè. Lời đầu tiên em xin chân thành cảm ơn đến cô ThS. Phan Thị Hường là giáo viên trực tiếp hướng dẫn đã nhiệt tình giúp đỡ, hướng dẫn và đóng góp ý kiến để bài báo cáo của em được hoàn thành một cách tốt nhất. Em cũng xin gửi lời cảm ơn đến quý thầy cô ở Khoa Công Nghệ Thông Tin – Trường Đại Học Lạc Hồng đã cùng với tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu cho em trong suốt thời gian học tập tại trường. Và đặc biệt, xin gửi lời cảm ơn sâu sắc nhất đến ba mẹ, người đã sinh thành và nuôi dưỡng con nên người, luôn tạo điều kiện, ủng hộ, động viên con mỗi khi thất bại, chán nản. Vì đây là lần đầu tiên tìm hiểu một lĩnh vực còn khá mới mẻ, nên mặc dù em đã bỏ rất nhiều thời gian, công sức, tâm huyết vào đó nhưng chắc chắn không tránh khỏi những hạn chế và sai sót. Hy vọng những vấn đề còn hạn chế trong đề tài sẽ nhận được những ý kiến đóng góp và hướng dẫn của quý thầy cô để đề tài của em được hoàn thiện hơn. Sau cùng, em xin kính chúc quý thầy cô trong Khoa Công nghệ thông tin thật dồi dào sức khỏe để tiếp tục sứ mệnh cao đẹp là truyền đạt những tri thức quý báu cho thế hệ mai sau. Em xin chân thành cảm ơn. Biên Hòa, tháng 11 năm 2018 Sinh viên thực hiện Trần Diệp Khánh Trình II MỤC LỤC LỜI CẢM ƠN .............................................................................................................. I MỤC LỤC ................................................................................................................... II DANH MỤC BẢNG .................................................................................................. V DANH MỤC HÌNH .................................................................................................. VI DANH MỤC CÁC TỪ VIẾT TẮT ......................................................................... VII PHẦN MỞ ĐẦU ......................................................................................................... 1 1.1. Lý do chọn đề tài ................................................................................................ 1 1.2. Tình hình nghiên cứu .......................................................................................... 1  Ngoài nước ............................................................................................... 1  Trong nước ............................................................................................... 2 1.3. Mục tiêu nghiên cứu ........................................................................................... 2 1.4. Đối tượng và phạm vi nghiên cứu ...................................................................... 2  Đối tượng nghiên cứu ............................................................................... 2  Phạm vi nghiên cứu .................................................................................. 2 1.5. Phương pháp nghiên cứu .................................................................................... 2 1.6. Những đóng góp mới và những vấn đề chưa thực hiện được của đề tài ............ 3 1.6.1. Những đóng góp mới ................................................................................ 3 1.6.2. Những vấn đề chưa thực hiện được .......................................................... 3 1.7. Kết cấu của luận văn ........................................................................................... 3 Chương 1: Tổng quan lý thuyết .................................................................................. 4 1.1. Tổng quan về công nghệ blockchain .................................................................. 4 1.1.1. Giới thiệu về blockchain ........................................................................... 4 1.1.2. Đặc điểm ................................................................................................... 4 1.1.3. Nguyên lý hoạt động ................................................................................. 4 1.1.4. Phân loại ................................................................................................... 5 1.2. Tổng quan về Ethereum...................................................................................... 5 1.2.1. Giới thiệu về Ethereum ............................................................................. 5 1.2.2. Kiến trúc ................................................................................................... 5 1.2.3. Ứng dụng .................................................................................................. 6 1.3. Tổng quan về smart contract .............................................................................. 6 1.3.1. Giới thiệu về smart contract...................................................................... 6 1.3.2. Nguyên lý hoạt động ................................................................................. 6 1.3.3. Các thành phần của smart contract ........................................................... 7 1.3.4. Lợi ích của smart contract ........................................................................ 7 1.4. Các ứng dụng phi tập trung ................................................................................ 7 III 1.4.1. Giới thiệu ứng dụng phi tập trung ............................................................ 7 1.4.2. Làm sao để xây dựng một DApp? ............................................................ 8 1.5. Một số phần mềm, thư viện và framework được sử dụng trong đề tài .............. 8 1.5.1. Geth ........................................................................................................... 8 1.5.2. Remix ........................................................................................................ 8 1.5.3. Nodejs ....................................................................................................... 8 1.5.4. Truffle ....................................................................................................... 9 1.5.5. Lite-server ................................................................................................. 9 1.5.6. Web3.js ..................................................................................................... 9 1.5.7. Bootstrap ................................................................................................... 9 1.5.8. Metamask .................................................................................................. 9 1.6. Tiểu kết ............................................................................................................... 9 Chương 2: Hệ thống blockchain ............................................................................... 10 2.1. Cài đặt phần mềm geth ..................................................................................... 10 2.1.1. Cài đặt phiên bản dành cho tất cả bản phân phối của linux.................... 10 2.1.2. Cài đặt bằng package management (apt) của Ubuntu ............................ 11 2.1.3. Chạy thử geth .......................................................................................... 11 2.2. Thiết lập genesis block ..................................................................................... 12 2.3. Cài đặt và thiết lập cho miner ........................................................................... 13 2.3.1. Khởi tạo miner từ genesis block ............................................................. 13 2.3.2. Tạo tài khoản người dùng ....................................................................... 14 2.3.3. Tạo file thực thi miner ............................................................................ 15 2.3.4. Thử thực hiện giao dịch .......................................................................... 17 2.4. Kết nối và đồng bộ các miner với nhau ............................................................ 18 2.5. Tiểu kết ............................................................................................................. 20 Chương 3: Xây dựng và triển khai smart contract lên hệ thống blockchain............. 21 3.1. Cài đặt framework truffle ................................................................................. 21 3.2. Tạo smart contract ............................................................................................ 21 3.2.1. Sơ đồ hoạt động của smart contract ........................................................ 21 3.2.2. Khai báo và lập trình các chức năng cho đối tượng người dùng ............ 24 3.2.3. Khai báo và lập trình các chức năng cho đối tượng sinh viên ................ 26 3.2.4. Khai báo và lập trình các chức năng cho đối tượng bằng cấp ................ 29 3.3. Triển khai smart contract .................................................................................. 32 3.3.1. Thiết lập truffle ....................................................................................... 32 3.3.2. Triển khai smart contract ........................................................................ 33 3.3.3. Chạy thử smart contract .......................................................................... 34 3.4. Tiểu kết ............................................................................................................. 35 IV Chương 4: Xây dựng DApp quản lý bằng đại học .................................................... 36 4.1. Khảo sát quy trình cấp phát bằng ..................................................................... 36 4.2. Tạo giao diện website ....................................................................................... 36 4.3. Kết nối website với hệ thống blockchain ......................................................... 38 4.4. Sử dụng metamask trình duyệt hỗ trợ chạy DApp ........................................... 42 4.5. Tiểu kết ............................................................................................................. 45 Chương 5: KẾT LUẬN ............................................................................................. 46 TÀI LIỆU THAM KHẢO ......................................................................................... 48 V DANH MỤC BẢNG Bảng 5.1 – So sánh phương pháp lưu trữ trên blockchain và server. .............. 46 VI DANH MỤC HÌNH Hình 1.1 – Nguyên lý hoạt động của smart contract.......................................... 7 Hình 2.1 – Sơ đồ hệ thống private blockchain. ................................................ 10 Hình 2.2 – Trang web download các phiên bản geth. ...................................... 11 Hình 2.3 – Kiểm tra phiên bản của phần mềm geth. ....................................... 12 Hình 2.4 – Terminal hiển thị khi chạy geth. .................................................... 12 Hình 2.5 – Kết quả khi khởi tạo miner. ........................................................... 14 Hình 2.6 – Kết quả khi tạo tài khoản cho miner. ............................................. 15 Hình 2.7 – Danh sách tài khoản của miner. ..................................................... 15 Hình 2.8 – Terminal hiển thị khi chạy một miner............................................ 16 Hình 2.9 – Console để điều khiển miner.......................................................... 17 Hình 2.10 – Thông tin trả về của một giao dịch trên miner. ............................ 18 Hình 2.11 – Danh sách các giao dịch đang chờ được thực hiện. ..................... 18 Hình 2.12 – Thông tin enode của một miner. .................................................. 19 Hình 2.13 – Danh sách các miner đã kết nối được với nhau. .......................... 20 Hình 3.1 – Mô hình hệ thống xác thực văn bằng trên nền tảng blockchain. ... 21 Hình 3.2 – Sơ đồ hoạt động của smart contract quản lý bằng. ........................ 22 Hình 3.3 – Sơ đồ hoạt động của smart contract quản lý bằng. ........................ 23 Hình 3.4 – Thông báo triển khai smart contract thành công............................ 34 Hình 3.5 – Thực hiện một giao dịch của smart contract. ................................. 35 Hình 3.6 – Lấy kết quả đã được lưu trên blockchain. ...................................... 35 Hình 4.1 – Website tra cứu bằng dựa vào mã sinh viên. ................................. 36 Hình 4.2 – Website tra cứu bằng dựa vào số hiệu của bằng. ........................... 37 Hình 4.3 – Website quản lý người dùng. ......................................................... 37 Hình 4.4 – Website lưu trữ thông tin. ............................................................. 38 Hình 4.5 – Website được chạy trên máy chủ. .................................................. 42 Hình 4.6 – Giao diện metamask. ...................................................................... 42 Hình 4.7 – Lựa chọn port cho metamask. ........................................................ 43 Hình 4.8 – Thêm tài khoản cho metamask. ..................................................... 43 Hình 4.9 – Lấy tài khoản từ file json trong keystore của miner. ..................... 44 Hình 4.10 – Ứng dụng web hoàn chỉnh sau khi cài đặt metamask. ................. 44 VII DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt Tiếng Anh Tiếng Việt DApp Decentralized App. Ứng dụng phân tán phi tập trung. EVM Ethereum Virtual Machine. Máy ảo Ethereum. 1 PHẦN MỞ ĐẦU 1.1. Lý do chọn đề tài Cuộc cách mạng công nghiệp 4.0 đang là xu hướng trên toàn thế giới trong việc tự động hóa và trao đổi dữ liệu trong công nghệ sản xuất, là sự hội tụ kỹ thuật số với các yếu tố cốt lõi là: trí tuệ nhân tạo, IoT và big data. Và sẽ là một thiếu sót không nhỏ đối với cuộc cách mạng này nếu bỏ qua công nghệ Blockchain. Như đã đề cập ở trên, cuộc cách mạng công nghiệp 4.0 tập trung vào khai thác nguồn tài nguyên dữ liệu, điều này chính là sự khác biệt lớn nhất so với các cuộc cách mạng dựa trên nguồn tài nguyên thiên nhiên trước đó, nghĩa là dữ liệu có vai trò cực kỳ quan trọng đối với cuộc cách mạng này. Tuy nhiên, dữ liệu luôn tiềm ẩn những nguy cơ về an ninh bảo mật và lòng tin của con người, do đó việc xây dựng nên một nguồn dữ liệu có ích, đáng tin cậy mà lại không sợ bị đánh cắp chính là một bài toán khó hiện nay. Blockchain (chuỗi khối) là một cơ sở dữ liệu phân tán, lưu trữ thông tin trong các khối thông tin được liên kết với nhau dựa vào sự mã hóa và có thể mở rộng theo thời gian. Mỗi khối thông tin đều chứa thông tin về thời gian khởi tạo và được liên kết tới khối trước đó, kèm một mã thời gian và dữ liệu giao dịch. Vì vậy Blockchain phù hợp để ghi lại những sự kiện, hồ sơ y tế, xử lý giao dịch, công chứng, danh tính và chứng minh nguồn gốc. Việc này có tiềm năng giúp xóa bỏ các hậu quả lớn khi dữ liệu bị thay đổi trong bối cảnh thương mại toàn cầu. Blockchain hiện đã và đang được các tổ chức, cơ quan đầu tư nghiên cứu, phát triển và ứng dụng vào nhiều lĩnh vực trong cuộc sống. Thấy được những tiềm năng to lớn của blockchain trong việc an toàn và minh bạch thông tin, tác giả mong muốn tìm hiểu công nghệ blockchain và ứng dụng công nghệ này vào quản lý bằng tốt nghiệp của Trường Đại học Lạc Hồng. 1.2. Tình hình nghiên cứu  Ngoài nước Như đã nói trên, công nghệ blockchain đang dần được áp dụng vào nhiều lĩnh vực trong cuộc sống. Ngày càng nhiều cá nhân, cơ quan và tổ chức quan tâm, nghiên cứu và cho ra nhiều ứng dụng của blockchain được áp dụng vào cuộc sống. Một số ví dụ như:  Zug ở Thụy Sĩ, nơi được gọi là “Thung lũng Crypto” đã hợp tác với Uport triển khai một dự án Blockchain để cư dân có thể đăng ký ID, cho phép họ tham gia bỏ phiếu trực tuyến và chứng minh nơi cư trú.  Các dự án chăm sóc sức khỏe như MedRec đang sử dụng Blockchain như một phương tiện tạo điều kiện chia sẻ dữ liệu trong khi cung cấp xác thực và duy trì tính bảo mật.  IBM và Walmart đã hợp tác để khởi động Liên minh An toàn Thực phẩm Blockchain tại Trung Quốc. Dự án, hợp tác cùng công ty thuộc Fortune 500 là JD.com, được thiết kế để cải thiện việc theo dõi độ an toàn thực phẩm, giúp dễ dàng xác minh rằng thực phẩm có thực sự an toàn để tiêu thụ hay không.[1] 2  Trong nước Đối với Việt Nam, công nghệ này vẫn còn khá mới, chưa phổ biến và được áp dụng rộng rãi. Nhưng đã có một có cá nhân và tổ chức tìm hiểu, nghiên cứu và áp dụng vào thực tế như: truy xuất nguồn gốc xoài Cát Chu của hợp tác xã Mỹ Xương dựa trên nền tảng blockchain của Infinity Blockchain Labs (IBL) - công ty chuyên phát triển các giải pháp công nghệ trên nền tảng blockchain[2]. 1.3. Mục tiêu nghiên cứu Đề tài thực hiện với các mục tiêu:  Tìm hiểu về blockchain.  Xây dựng một hệ thống blockchain.  Tìm hiểu smart contract.  Lập trình một smart contract để thực hiện quản lý bằng cấp.  Xây dựng một website hỗ trợ tra cứu và xác thực bằng cấp của Trường Đại học Lạc Hồng dựa trên nền tảng blockchain đã xây dựng. 1.4. Đối tượng và phạm vi nghiên cứu  Đối tượng nghiên cứu  Nền tảng Ethereum.  Ngôn ngữ lập trình Solidity để lập trình smart contract.  Framework Truffle của nodejs để hỗ trợ triển khai smart contract lên hệ thống blockchain.  Thư viện web3js.  Phạm vi nghiên cứu  Xây dựng một hệ thống blockchain nội bộ.  Lập trình một hợp đồng thông minh trong việc quản lý bằng.  Xây dựng một website dựa trên nền tảng blockchain. 1.5. Phương pháp nghiên cứu  Nghiên cứu báo cáo, bài báo và tài liệu hướng dẫn về blockchain: [3], [4], [5].  Phân tích và thiết kế cấu trúc cho hệ thống blockchain.  Tìm hiểu các thành phần dữ liệu của một tấm bằng đại học.  Nghiên cứu báo cáo, bài báo và tài liệu hướng dẫn về DApp: [6], [7], [8].  Phân tích dữ liệu để lập trình ra một smart contract trong quản lý bằng.  Nghiên cứu cách để kết nối website với blockchain. 3 1.6. Những đóng góp mới và những vấn đề chưa thực hiện được của đề tài 1.6.1. Những đóng góp mới  Ứng dụng công nghệ blockchain vào thực tiễn, giúp hạn chế việc làm và sử dụng bằng cấp giả.  Đóng góp thêm một giải pháp để chống việc làm và sử dụng bằng cấp giả. 1.6.2. Những vấn đề chưa thực hiện được Hiện tại, việc lấy thông tin từ một danh sách tổng hợp chẳng hạn như file excel và lưu vào hệ thống yêu cầu người dùng xác nhận nhiều lần. 1.7. Kết cấu của luận văn Luận văn được chia làm ba phần: phần mở đầu, phần nội dung và phần kết luận. Phần mở đầu Nêu lý do chọn đề tài, tổng quan tình hình phát triển, mục tiêu nghiên cứu đề tài, đối tượng, phạm vi, phương pháp nghiên cứu cũng như những đóng góp mới của đề tài. Bên cạnh đó cũng chỉ ra mặt hạn chế mà đề tài chưa thực hiện được để giúp mọi người có cái nhìn rõ hơn. Phần nội dung chính: gồm 4 chương  Chương 1: Tổng quan lý thuyết Trong chương này, tác giả sẽ giới thiệu và trình bày những kiến thức cơ bản về công nghệ blockchain, nền tảng ethereum, smart contract và các ứng dụng phi tập trung. Đồng thời, tác giả cũng sẽ giới thiệu một số công cụ, thư viện và framework mà tác giả đã dùng trong đề tài.  Chương 2: Hệ thống blockchain Trong chương này, người đọc sẽ hiểu cách để tự xây dựng một hệ thống private blockchain dựa trên nền tảng Ethereum.  Chương 3: Xây dựng và triển khai smart contract lên hệ thống blockchain Trong chương này, tác giả sẽ trình bày một số kiến thức cơ bản để tạo nên một smart contract và triển khai smart contract lên hệ thống blockchain.  Chương 4: Xây dựng và triển khai smart contract lên hệ thống blockchain Trong chương này, tác giả sẽ nêu ra cách để kết nối website với hệ thống blockchain để tạo ra một ứng dụng phi tập trung. Phần kết luận Đưa ra những kết luận và kiến nghị về chương trình đã xây dựng. 4 Chương 1: Tổng quan lý thuyết 1.1. Tổng quan về công nghệ blockchain 1.1.1. Giới thiệu về blockchain Blockchain là một hệ thống cơ sở dữ liệu phân tán phi tập trung, bao gồm nhiều máy tính kết nối trong mạng ngang hàng (peer-to-peer) với nhau tạo thành. Hệ thống này lưu trữ thông tin thành các khối dữ liệu liên kết với nhau, và được quản lý bởi mọi người tham gia vào trong hệ thống. Thông tin trong blockchain không thể bị thay đổi và chỉ được bổ sung thêm khi có sự đồng thuận của tất cả các nút trong hệ thống. Đây là một hệ thống bảo mật an toàn cao trước khả năng bị sửa đổi dữ liệu. Ngay cả khi một phần của hệ thống blockchain sụp đổ, những máy tính và các nút khác sẽ tiếp tục bảo vệ thông tin và giữ cho mạng lưới tiếp tục hoạt động. 1.1.2. Đặc điểm Các đặc điểm chính và nổi bật của công nghệ blockchain có thể kể đến như:  Hệ thống được thiết kế phân tán nên mỗi người tham gia vào hệ thống sẽ lưu giữ một bản sao dữ liệu, điều đó giúp cho dữ liệu không thể bị làm giả và tấn công.  Dữ liệu chỉ có thể sửa đổi khi đạt được sự đồng thuận của mọi người tham gia trong hệ thống, và sẽ được lưu vết trên hệ thống.  Mọi sự thay đổi dữ liệu sẽ được lưu vết trên hệ thống do đó có thể nói blockchain là một hệ thống cơ sở dữ liệu có tính minh bạch. 1.1.3. Nguyên lý hoạt động Ứng dụng được biết đến và thảo luận nhiều nhất về công nghệ blockchain chính là đồng tiền điện tử Bitcoin. Hiện nay đồng tiền điện tử này có thể được sử dụng để trao đổi các sản phẩm và dịch vụ, giống như đồng đô la Mỹ (USD), Euro (EUR), đồng nhân dân tệ Trung Quốc (CNY) và các loại tiền tệ của các quốc gia khác. Do vậy chúng ta sẽ tạm lấy đồng tiền này làm đại diện để nói về nguyên lý hoạt động của công nghệ blockchain. Bitcoin là một đơn vị tiền tệ kỹ thuật số với mã là BTC, cũng giống như đô la Mỹ bản thân nó không mang giá trị, nó chỉ có giá trị bởi vì có một cộng đồng đồng ý sử dụng nó làm đơn vị giao dịch hàng hóa và dịch vụ. Để theo dõi số lượng Bitcoin mà mỗi người sở hữu trong các tài khoản nhất định và theo dõi các giao dịch phát sinh từ đó thì chúng ta cần đến một cuốn sổ kế toán, trong trường hợp này nó chính là blockchain và đây thực tế là một tệp kỹ thuật số theo dõi tất cả các giao dịch Bitcoin. Tệp sổ cái này không được lưu trữ trong một máy chủ trung tâm, như trong một ngân hàng hoặc trong một trung tâm dữ liệu mà ngược lại nó được phân phối trên toàn thế giới thông qua một mạng lưới các máy tính ngang hàng với vai trò lưu trữ dữ liệu và thực thi các tính toán. Mỗi máy tính này đại diện cho một “nút” của mạng lưới blockchain và mỗi nút đều có một bản sao của tệp sổ cái này. 5 Giả sử nếu Trình muốn gửi Bitcoin cho Thiệu, Trình sẽ phát một thông báo tới mạng lưới và cho biết số lượng Bitcoin trong tài khoản của mình sẽ giảm 5 BTC và số lượng Bitcoin trong tài khoản của Thiệu sẽ tăng lên tương ứng. Mỗi nút trong mạng sau đó sẽ nhận được thông báo này và ánh xạ giao dịch được yêu cầu vào bản sao sổ cái kế toán của họ, và theo đó số dư tài khoản của cả hai bên đều được cập nhật. 1.1.4. Phân loại  Public blockchain, đây là hệ thống blockchain mà bất kỳ ai cũng có thể đọc và ghi dữ liệu trên blockchain. Quá trình xác thực giao dịch trên blockchain này đòi hỏi phải có hàng nghìn hay thậm chí là hàng vạn nút tham gia. Do đó để tấn công vào hệ thống blockchain này là điều bất khả thi. Ví dụ về public blockchain: Bitcoin, Ethereum…  Private blockchain, đây là hệ thống blockchain mà người dùng chỉ có quyền đọc dữ liệu, không có quyền ghi bởi vì điều này thuộc về một bên thứ ba tuyệt đối tin cậy. Bên thứ ba này có thể hoặc không cho phép người dùng đọc dữ liệu trong một số trường hợp. Bên thứ ba cũng toàn quyền quyết định mọi thay đổi trên blockchain. Vì đây là một Private Blockchain, cho nên thời gian xác nhận giao dịch khá nhanh vì chỉ cần một lượng nhỏ thiết bị tham gia xác thực giao dịch. Ví dụ: Ripple là một dạng Private Blockchain, hệ thống này cho phép 20% các nút là gian dối và chỉ cần 80% còn lại hoạt động ổn định là được.  Permissioned blockchain hay còn được gọi là consortium blockchain, là một dạng của private blockchain nhưng bổ sung thêm một số tính năng nhất định, kết hợp giữa “niềm tin” khi tham gia vào public blockchain và “niềm tin tuyệt đối” khi tham gia vào private blockchain. Ví dụ: các ngân hàng hay tổ chức tài chính liên doanh sẽ sử dụng Blockchain cho riêng mình. 1.2. Tổng quan về Ethereum 1.2.1. Giới thiệu về Ethereum Ethereum là một nền tảng mã nguồn mở dựa trên công nghệ blockchain cho phép các nhà phát triển xây dựng và triển khai các ứng dụng và hợp đồng thông minh hoạt động trên nền tảng blockchain. Mạng lưới Ethereum sử dụng đồng coin “Ether” hoạt động với tư cách tiền tệ của mạng lưới. Ether được trao đổi như một cách thức chi trả cho việc vận hành các ứng dụng phi tập trung trên mạng lưới. Đồng Ether cũng là tiền áo lớn thứ hai thế giới vì giá trị vốn hóa thị trường đứng sau Bitcoin. 1.2.2. Kiến trúc 1.2.2.1. Ether Ether, là một loại tiền mã hóa được giao dịch trong mạng lưới Ethereum được gọi là Ether. Nó được liệt kê dưới mã ETH và giao dịch trên các sàn giao dịch tiền mã hóa. Nó cũng được sử dụng để trả phí giao dịch và dịch vụ tính toán trên mạng Ethereum. 6 1.2.2.2. Máy ảo Ethereum (Ethereum Virtual Machine) Máy ảo Ethereum là một môi trường chạy các hợp đồng thông minh Ethereum. Nó được hoàn toàn cô lập từ mạng, hệ thống tập tin và các quá trình khác của hệ thống máy chủ. Mỗi nút Ethereum trong mạng chạy một EVM và thực hiện các hướng dẫn giống nhau. Ethereum Virtual Machines đã được lập trình trong C++, Go, Haskell, Java, Python, Ruby, Rust và WebAssembly. 1.2.2.3. Hợp đồng thông minh Hợp đồng thông minh là một cơ chế trao đổi xác định, được kiểm soát bởi các phương tiện kỹ thuật số mà có thể giúp cho việc thực hiện giao dịch trực tiếp giữa các thực thể mà không cần tin cậy nhau. Các hợp đồng này được định nghĩa bằng cách lập trình và được chạy chính xác như mong muốn mà không bị kiểm duyệt, lừa đảo hay sự can thiệp từ bên thứ ba trung gian. Chúng có thể được sử dụng để tạo điều kiện, xác minh và thực thi việc đàm phán hoặc thực hiện các hướng dẫn thủ tục kinh tế và có khả năng tránh được sự kiểm duyệt, thông đồng và rủi ro từ phía đối tác. Trong Ethereum, các hợp đồng thông minh được coi là các kịch bản tự trị hoặc các ứng dụng phân cấp được lưu trữ trong chuỗi khối Ethereum để thực hiện sau đó bởi EVM. Các hướng dẫn được nhúng trong các hợp đồng Ethereum được thanh toán bằng ether và có thể được thực hiện bằng nhiều ngôn ngữ Turingcomplete khác nhau. 1.2.3. Ứng dụng Rất nhiều người nghĩ Ethereum tạo ra để cạnh tranh với đồng tiền ảo Bitcoin nhưng thực chất tiền tệ không phải là mục đích mà Ethereum nhắm đến. Công nghệ blockchain của Ethereum tập trung tạo ra các ứng dụng hoạt động dựa trên smart contract nhằm giải quyết mọi giao dịch một cách dễ dàng, nhanh chóng, tiết kiệm, an toàn và công khai. 1.3. Tổng quan về smart contract 1.3.1. Giới thiệu về smart contract Smart contract là một bộ giao thức đặc biệt với mục tiêu là đóng góp xác nhận hay tiến hành quá trình đàm phán và thực hiện hợp đồng. Smart contract cho phép ta triển khai giao dịch mà không cần thông qua một bên thứ ba trung gian. Những giao dịch này hoàn toàn dễ dàng truy dấu và không thể bị can thiệp hoặc đảo chiều. Smart contract chứa trong mình toàn bộ những thông tin chi tiết về các điều khoản và thực hiện chúng một cách tự động. 1.3.2. Nguyên lý hoạt động Nguyên lý vận hành của smart contract có thể đem so sánh với một chiếc máy bán hàng tự động. Smart contract chỉ tự động thực hiện những lệnh mà đã được lập trình sẵn từ trước. Đầu tiên, tài sản và điều khoản hợp đồng đều được mã hóa và chuyển vào một block thuộc blockchain. Smart contract này tiếp đó sẽ được phân phối và sao chép lại bởi các nút hoạt động trên nền tảng đó. 7 Sau khi có nhận lệnh triển khai thì hợp đồng sẽ được triển khai theo đúng như điều khoản định sẵn. Đồng thời, smart contract cũng sẽ tự động kiểm tra quá trình thực hiện những cam kết nêu trong hợp đồng. Hình 1.1 – Nguyên lý hoạt động của smart contract 1.3.3. Các thành phần của smart contract  Chủ thể hợp đồng, chương trình phải được cấp khả năng truy cập đến sản phẩm/dịch vụ liệt kê trong hợp đồng để có thể tự động khóa hay mở khóa chúng.  Chữ ký điện tử, tất cả các bên tham gia đồng ý triển khai thỏa thuận bằng các khóa cá nhân của họ.  Điều khoản hợp đồng, điều khoản của smart contract có dạng một chuỗi các hoạt động. Các bên tham gia hợp đồng đều phải ký chấp nhận nó.  Nền tảng phân quyền, smart contract sau khi hoàn tất sẽ được tải lên Blockchain của nền tảng phân quyền tương ứng và được phân phối về cho các node của nền tảng ấy. 1.3.4. Lợi ích của smart contract  Smart contract được mã hóa và phân phối về cho các node. Cách thức này bảo đảm nó sẽ không bị thất lạc hay sửa đổi mà không được bạn cho phép.  Hầu hết các công đoạn đều được tự động hoá, và gần như loại bỏ hoàn toàn bên trung gian. 1.4. Các ứng dụng phi tập trung 1.4.1. Giới thiệu ứng dụng phi tập trung Như tác giả đã trình bày trong phần giới thiệu về Ethereum ở trên, Ethereum cung cấp một nền tảng để các nhà phát triển tạo ra các ứng dụng chạy trên 8 blockchain, các ứng dụng này được gọi là ứng dụng phi tập trung, thường được gọi là DApp (Decentralized App). Các ứng dụng phi tập trung là ứng dụng có mã nguồn mở, không chịu sự kiểm soát của một cá nhân hoặc đối tượng nào, và chạy trên blockchain hoặc mạng lưới máy tính phi tập trung. Các ứng dụng phi tập trung không có máy chủ trung tâm, người dùng liên hệ với nhau thông qua các kết nối đồng cấp. Các ứng dụng thông thường đều chịu sự kiểm soát của một đối tượng, chạy trên một máy chủ trung tâm và dễ bị tấn công hoặc gặp thời gian chết do máy chủ rơi vào trạng thái ngoại tuyến. Một ứng dụng phi tập trung không có máy tính chủ hoặc đối tượng đơn lẻ nào kiểm soát, nó hoạt động trên một mạng máy tính và các thay đổi đều do người dùng quyết định. Không có vấn đề nghiêm trọng rằng máy chủ có thể bị sập hoặc bị tấn công. Nếu một máy tính trên mạng lưới thoát tuyến, ứng dụng không bị ảnh hưởng vì còn hàng ngàn máy khác đang vận hành ứng dụng vào thời điểm đó. Ngay cả khi một máy tính trong mạng lưới bị tấn công, cũng không thể thực hiện các thay đổi trên ứng dụng vì cần phần lớn mạng lưới phải đồng thuận với thay đổi đó. 1.4.2. Làm sao để xây dựng một DApp? Để xây dựng ra một DApp ta cần phải:  Có một hệ thống blockchain đóng vai trò như một server để lưu trữ cơ sở dữ liệu, trong luận văn này, tác giả sẽ tự tạo một hệ thống private blockchain và sử dụng hệ thống này để xây dựng DApp.  Có tài khoản ví điện tử trên mạng blockchain đó.  Tạo ra smart contract quy định các điều khoản, chủ thể, giao dịch và triển khai smart contract lên hệ thống blockchain.  Xây dựng ứng dụng hay website và kết nối chúng đến hệ thống blockchain. 1.5. Một số phần mềm, thư viện và framework được sử dụng trong đề tài 1.5.1. Geth Geth hay còn gọi là Go Ethereum, là một chương trình giúp người dùng tương tác với hệ thống blockchain của Ethereum như mining, thực hiện giao dịch… Đồng thời, Geth cũng là chương trình hỗ trợ người dùng tự tạo ra hệ thống blockchain của riêng mình. 1.5.2. Remix Remix là một trình soạn thảo và biên dịch ngôn ngữ lập trình Solidity, remix cũng hỗ trợ các công cụ để nhà phát triển gỡ lỗi và chạy thử smart contract. Điểm đặc biệt của remix là không cần phải cài đặt mới sử dụng được, mà chỉ cần truy cập vào đường link: https://remix.ethereum.org/ là có thể sử dụng ngay. 1.5.3. Nodejs NodeJS là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine. Nodejs sử dụng rộng bởi hàng ngàn lập trình viên trên toàn thế giới. 9 NodeJS cung cấp các thư viện phong phú ở dạng Javascript Module khác nhau giúp đơn giản hóa việc lập trình và giảm thời gian ở mức thấp nhất. 1.5.4. Truffle Truffle là một môi trường phát triển và là framework để kiểm thử dành cho blockchain Ethereum, mục tiêu mà Truffle hướng đến chính là giúp cho nhà phát triển dễ làm việc với Ethereum hơn trong việc tạo ra các ứng dụng phi tập trung (DApp). 1.5.5. Lite-server Lite-server là một package của nodejs, giúp tạo ra một localhost để chạy và kiểm thử ứng dụng web của mình. Ngoài ra lite-server còn tích hợp BrowserSync, cho phép tự tải lại trang web đang chạy nếu như code của website được chỉnh sửa và lưu lại. 1.5.6. Web3.js Web3.js là một thư viện javascript, giúp các ứng dụng javascript chạy trên trình duyệt web kết nối và tương tác với hệ thống blockchain. Web3.js có thể tải tại: https://github.com/ethereum/web3.js 1.5.7. Bootstrap Bootstrap là một framework giúp người dung dễ dàng tạo ra giao diện website, nó chứa các mẫu thiết kế có sẵn dựa trên HTML và CSS cho các kiểu chữ, biểu mẫu, nút bấm, điều hướng và các thành phần giao diện khác. 1.5.8. Metamask Metamask cho phép người dùng chạy các ứng dụng Ethereum DApps ngay trong trình duyệt mà không cần khởi động toàn bộ node Ethereum dẫn đến trình duyệt trở nên nặng nề và chậm chạp. 1.6. Tiểu kết Qua chương này, tác giả đã nêu lên một số cơ sở lý thuyết và một số thư viện, phần mềm được sử dụng trong đề tài. Trong chương tiếp theo, tác giả sẽ tiến hành xây dựng một hệ thống private blockchain. 10 Chương 2: Hệ thống blockchain Để tạo nên một hệ thống blockchain, tác giả chia ra ba bước sau:  Cài đặt block đầu tiên cho hệ thống  Cài đặt và thiết lập các miner  Kết nối và đồng bộ các miner với nhau Hệ thống mà tác giả tạo ra có sơ đồ như sau: Account 1 Miner 1 Account 2 Hệ thống blockchain Account 1 Miner 2 Account 2 Account 1 Miner 3 Account 2 Hình 2.1 – Sơ đồ hệ thống private blockchain. Tuy nhiên, trước khi tiến hành thực hiện các bước này, tác giả cần cài đặt các phần mềm cần thiết để có thể tạo hệ thống. 2.1. Cài đặt phần mềm geth Geth có thể cài đặt trên nhiều hệ điều hành khác nhau như: Windows, macOS, linux với nhiều cách khác nhau. Trong bài viết này đây tác giả chỉ nêu ra hai cách cài đặt cơ bản nhất trên hệ điều hành Ubuntu, đó là cài đặt từ các gói phân phối độc lập và cài đặt từ quản lý gói tin của Ubuntu. 2.1.1. Cài đặt phiên bản dành cho tất cả bản phân phối của linux Đầu tiên, truy cập vào đường dẫn sau để vào trang download của Go Ethereum: https://geth.ethereum.org/downloads/ Trong danh sách Stable releases, chọn đến thẻ Linux, các phiên bản dành cho hệ điều hành linux sẽ được liệt kê ra như hình bên dưới, trong đề tài này, tác giả đã sử dụng phiên bản 1.8.17. 11 Hình 2.2 – Trang web download các phiên bản geth. Sau khi tải về, giải nén và di chuyển thư mục vào đường dẫn mà ta muốn cài đặt, trong luận văn này, tác giả sẽ cài đặt vào đường dẫn /opt/geth. Sau đó, khai báo đường dẫn vừa được cài đặt vào biến môi trường PATH để shell có thể tìm đến đúng file thực thi chương trình khi ta gọi lệnh. Thêm dòng khai báo sau vào file .bashrc nếu dùng bash shell, .zshrc nếu dùng z shell ở thư mục home của người dùng: export PATH=$PATH:[đường dẫn nơi cài đặt] Do tác giả cài đặt theo đường dẫn /opt/geth nên tác giả sẽ khai báo như sau: export PATH=$PATH:/opt/geth 2.1.2. Cài đặt bằng package management (apt) của Ubuntu Cách cài đặt này khá đơn giản, từ terminal của Ubuntu nhập lần lượt vào các lệnh sau: sudo add-apt-repository -y ppa:ethereum/ethereum sudo apt-get update sudo apt-get install ethereum 2.1.3. Chạy thử geth Sau khi cài đặt, tác giả tiến hành kiểm tra xem geth đã được cài đặt và không bị lỗi gì. Từ terminal, nhập lệnh sau để kiểm tra phiên bản của geth: geth version
- Xem thêm -

Tài liệu liên quan

Tài liệu vừa đăng