Tải bản đầy đủ (.pdf) (71 trang)

(Đồ án hcmute) xây dựng sàn giao dịch mua bán trực tuyến trên nền tảng blockchain

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.94 MB, 71 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH

ĐỒ ÁN TỐT NGHIỆP
NGÀNH CƠNG NGHỆ THÔNG TIN

XÂY DỰNG SÀN GIAO DỊCH MUA BÁN TRỰC
TUYẾN TRÊN NỀN TẢNG BLOCKCHAIN

GVHD: NGUYỄN THIÊN BẢO
SVTH: NGUYỄN TUẤN ĐẠT
MSSV: 16110306

SKL 0 0 5 7 5 9

Tp. Hồ Chí Minh, 2019

do an


TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TPHCM
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
—&œ–

NGUYỄN TUẤN ĐẠT: 16110306

XÂY DỰNG SÀN GIAO DỊCH MUA BÁN TRỰC
TUYẾN TRÊN NỀN TẢNG BLOCKCHAIN
KHỐ LUẬN TỐT NGHIỆP KỸ SƯ CƠNG NGHỆ THƠNG TIN



GIẢNG VIÊN HƯỚNG DẪN
TS. NGUYỄN THIÊN BẢO

KHÓA 2016 - 2020

do an


ĐH SƯ PHẠM KỸ THUẬT TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
*******

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
*******

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên Sinh viên:

Nguyễn Tuấn Đạt

MSSV: 16110306

Ngành: Công nghệ thông tin
Tên đề tài: Xây dựng sàn giao dịch mua bán trực tuyến trên nền tảng Blockchain
Họ và tên Giáo viên hướng dẫn: TS. Nguyễn Thiên Bảo
NHẬN XÉT
1. Về nội dung đề tài và khối lượng thực hiện:
....................................................................................................................................................................

....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
2. Ưu điểm:
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
3. Khuyết điểm:
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
4. Đề nghị cho bảo vệ hay không?
5. Đánh giá loại:
6. Điểm:
Tp. Hồ Chí Minh, ngày … tháng … năm ……..
Giáo viên hướng dẫn
(Ký & ghi rõ họ tên)

do an


ĐH SƯ PHẠM KỸ THUẬT TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
*******


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
*******

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên Sinh viên:

Nguyễn Tuấn Đạt

MSSV: 16110306

Ngành: Công nghệ thông tin
Tên đề tài: Xây dựng sàn giao dịch mua bán trực tuyến trên nền tảng Blockchain
Họ và tên Giáo viên phản biện: TS. Nguyễn Thành Sơn
NHẬN XÉT
1. Về nội dung đề tài và khối lượng thực hiện:
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
2. Ưu điểm:
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
3. Khuyết điểm:
....................................................................................................................................................................
....................................................................................................................................................................

....................................................................................................................................................................
....................................................................................................................................................................
....................................................................................................................................................................
4. Đề nghị cho bảo vệ hay không?
5. Đánh giá loại:
6. Điểm:
Tp. Hồ Chí Minh, ngày … tháng … năm ……..
Giáo viên phản biện
(Ký & ghi rõ họ tên)

do an


Trường Đại học Sư phạm Kỹ thuật TP.HCM
Khoa công nghệ thông tin
ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP
Họ và tên sinh viên thực hiện: Nguyễn Tuấn Đạt

Mã số SV: 16110306

Thời gian làm luận văn: từ 11/03/2019 đến 30/06/2019
Chuyên ngành: Công nghệ phần mềm
Tên luận văn: Xây dựng sàn giao dịch mua bán trực tuyến trên nền tảng Blockchain
Giảng viên hướng dẫn: TS. Nguyễn Thiên Bảo
Nhiệm vụ của luận văn:
1. Tìm hiểu cơng nghệ Blockchain
2. Tìm hiểu cách xây dựng ứng dụng phi tập trung và cách kết hợp với các ứng dụng
truyền thống
3. Xây dựng ứng dụng phi tập trung và triển khai lên mạng testnet
Đề cương viết luận:

MỤC LỤC
CHƯƠNG 1: MỞ ĐẦU
1.1.

ĐẶT VẤN ĐỀ

1.2.

TÍNH CẦN THIẾT CỦA ĐỀ TÀI

1.3.

CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU

1.4.

NHỮNG CƠNG TRÌNH LIÊN QUAN

1.5.

KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC

CHƯƠNG 2: TỔNG QUAN VỀ BLOCKCHAIN
2.1.

KHÁI NIỆM BLOCKCHAIN

do an



2.2.

MỘT SỐ TRÍCH DẪN ĐÁNG CHÚ Ý

2.3.

LỊCH SỬ RA ĐỜI CỦA BLOCKCHAIN

2.4.

CÁC KHÁI NIỆM CƠ BẢN

2.4.1.

Hàm băm

2.4.2.

Chữ ký số

2.4.3.

Phi tập trung

2.4.4.

Sổ cái phân tán

2.4.5.


Chuỗi chính

2.4.6.

Giao dịch lặp chi

2.4.7.

Đồng thuận phân tán

2.4.8.

Khai thác

2.4.9.

Token

2.4.10. Bitcoin
2.4.11. Phân biệt giữa Blockchain và Bitcoin
2.4.12. Ethereum
2.4.13. Điểm khác biệt cơ bản giữa Bitcoin và Ethereum
2.5.

CÁC KỸ THUẬT TRONG BLOCKCHAIN

2.5.1.

Các nhân tố cốt lõi của Blockchain


2.5.2.

Mật mã hóa khóa cơng khai

2.5.3.

Mạng ngang hàng

2.5.4.

Cơ chế đồng thuận phi tập trung

2.5.5.

Bằng chứng xử lý

2.5.6.

Bằng chứng cổ phần

2.7.

CÁCH HOẠT ĐỘNG CỦA BLOCKCHAIN

2.7.1.

Giao dịch được sinh ra

2.7.2.


Giao dịch được phát đến một mạng ngang hàng

do an


2.7.3.

Cuộc đua tạo các khối mới

2.7.4.

Hoàn thành một khối mới

2.7.5.

Thêm một khối mới vào chuỗi

2.8.

PHÂN LOẠI BLOCKCHAIN

2.8.1.

Public Blockchain

2.8.2.

Private Blockchain

2.8.3.


Consortium Blockchain

CHƯƠNG 3: TỔNG QUAN VỀ ETHEREUM
3.1.

LỊCH SỬ RA ĐỜI

3.2.

SỰ SỤP ĐỔ CỦA DỰ ÁN DAO

3.3.

CÁC KHÁI NIỆM CƠ BẢN

3.3.1.

Hợp dồng thông minh

3.3.2.

Ether

3.3.3.

Gas

3.3.4.


ERC20 Token

3.3.5.

Ví đa chữ ký

3.3.6.

Ứng dụng phi tập trung

3.3.7.

Máy ảo Ethereum

3.4.

NGƠN NGỮ LẬP TRÌNH HỢP ĐỒNG THƠNG MINH – SOLIDITY

3.4.1.

Sơ lược các ngơn ngữ lập trình hợp đồng thơng minh

3.4.2.

Sự ra đời Solidity

3.4.3.

Nhập môn Solidity


3.4.4.

Các kiểu dữ liệu cơ bản

3.4.5.

Các đối tượng

3.4.6.

Phương thức

3.4.7.

Sự kiện

do an


3.4.8.

Tính thừa kế trong Solidity

3.4.9.

Lưu trữ dữ liệu trên Blockchain

CHƯƠNG 4: LỢI ÍCH VÀ THÁCH THỨC TRONG ỨNG DỤNG CƠNG NGHỆ
BLOCKCHAIN
4.1.


LỢI ÍCH CỦA CƠNG NGHỆ BLOCKCHAIN

4.1.1.

Tính minh bạch

4.1.2.

Tính riêng tư

4.1.3.

Tính phân tán

4.1.4.

Khơng phụ thuộc vào sự tin tưởng

4.1.5.

Tính bất biến

4.1.6.

Tính phi tập trung

4.2.

NHỮNG THÁCH THỨC VÀ RỦI RO KHI ÁP DỤNG BLOCKCHAIN


4.2.1.

Lãng phí năng lượng

4.2.2.

Tốc độ giao dịch phụ thuộc vào chi phí

4.2.3.

Sự gia tăng kích thước sổ cái

4.2.4.

Tình trạng đầu cơ, lạm phát

4.2.5.

Hợp đồng thiếu tính linh hoạt

4.2.6.

Bảo mật

4.2.7.

Tấn cơng q bán

CHƯƠNG 5: CÁC ỨNG DỤNG ĐIỂN HÌNH CỦA BLOCKCHAIN

CHƯƠNG 6: XÂY DỰNG SÀN GIAO DỊCH MUA BÁN TRỰC TUYẾN TRÊN
NỀN TẢNG BLOCKCHAIN
6.1.

GIỚI THIỆU ỨNG DỤNG

6.2.

ĐẶC TẢ ỨNG DỤNG

6.2.1.

Kiến trúc hệ thống

6.2.2.

Các đối tượng trong ứng dụng

do an


6.2.3.

Các chức năng chính

6.2.4.

Lược đồ chức năng

6.2.5.


Các cơng nghệ được sử dụng

6.2.6.

Ưu điểm và hạn chế
KẾT LUẬN

KẾ HOẠCH THỰC HIỆN
STT

1

Thời gian

11/03/2019 – 24/03/2019

Cơng việc

Ghi chú

-

Tìm hiểu IPFS và Ethereum

-

Tìm hiểu sơ lược các API và các thư
viện hộ trợ việc xây dựng ứng dụng
phi tập trung


-

Xây

dựng

Proxy

IPFS

Server,

blockchain dùng để lưu trữ file và dữ
2

25/03/2019 – 07/04/2019

liệu cho ứng dụng
-

Thiết kế cơ sở dữ liệu để xây dựng
Discovery server

3

08/04/2019 – 21/04/2019

-


Xây dựng hợp đồng thông minh trên
nền tảng Smartcontract của Ethereum

-

Xây dựng Discovery server để lắng
nghe sự kiện trên blockchain và lưu
vào database

4

22/04/2019 – 05/05/2019 -

Tích hợp Elasticsearch hỗ trợ tìm
kiếm trong ứng dụng

-

Xây dựng webservice để ứng dụng có
thể lấy dữ liệu từ Discovery server

do an


5

06/05/2019 – 19/05/2019

Khởi tạo Dapp và tích hợp các thư
viện giúp giao tiếp với mạng

Blockchain

6

Xây dựng chức năng đăng bán sản
phẩm, quản lý các sản phẩm

20/05/2019 – 02/06/2019
-

Xây dựng chức năng hiển thị, tìm
kiếm sản phẩm

7

03/06/2019 – 16/06/2019 -

Xây dựng chức năng mua sản phẩm
Xây dựng quy trình giao dịch giữa
người bán và người mua

8

17/06/2019 – 30/06/2019

Hoàn thiện báo cáo, chuẩn bị bài
thuyết trình

-


Deploy smartcontract lên testnet

Hồ Chí Minh, ngày 18 tháng 02 năm 2019
Ý kiến của giáo viên hướng dẫn

Người viết đề cương

Nguyễn Tuấn Đạt

do an


LỜI CẢM ƠN
Để hoàn thành tốt luận văn tốt nghiệp nói chung và tìm hiểu, nghiên cứu cơng
nghệ Blockchain nói riêng, tôi xin gửi lời cảm ơn chân thành đến:
Giảng viên TS. Nguyễn Thiên Bảo, người đã giúp tôi chọn đề tài, định hình
hướng nghiên cứu, tận tình hướng dẫn và chỉ bảo tơi trong suốt q trình thực hiện tiểu
luận chuyên ngành và luận văn tốt nghiệp.
Quý thầy, cô giáo khoa Công Nghệ Thông Tin - Trường Đại Học Sư phạm Kỹ
thuật thành phố Hồ Chí Minh đã tạo điều kiện thuận lợi, và tư vấn kiến thức cho tôi thực
hiện đề tài này. Các thầy, cô giáo đã dạy bảo và truyền đạt cho tôi rất nhiều kiến thức,
giúp tơi có được một nền tảng kiến thức vững chắc sau những năm học tập tại trường.
Ban giám hiệu trường Đại học Sư phạm Kỹ thuật thành phố Hồ Chí Minh đã tạo
điều kiện về cơ sở vật chất tốt, đáp ứng tốt nhu cầu của sinh viên, giảng viên với phòng
học sạch đẹp, máy chiếu, wifi, máy lạnh, đặc biệt là Thư viện chất lượng cao đã phục
vụ khơng gian học tập và tìm kiếm thơng tin của tôi.
Xin chân thành cảm ơn các bạn sinh viên cùng khoa, cùng lớp đã ủng hộ, giúp
đỡ và hỗ trợ tôi trong thời gian học tập và nghiên cứu. Đặc biệt gửi lời cảm ơn đến bạn
Nguyễn Văn Rum, người đã trực tiếp đồng hành cùng tôi nghiên cứu đề tài này.
Do kinh nghiệm cịn hạn chế nên khơng thể tránh khỏi những thiếu sót trong q

trình nghiên cứu, rất mong nhận được ý kiến đóng góp từ phía thầy, cơ để đề tài được
hồn thiện hơn nữa.
Tp. Hồ Chí Minh, ngày … tháng … năm ……..
Sinh viên thực hiện

Nguyễn Tuấn Đạt

do an


MỤC LỤC
CHƯƠNG 1: MỞ ĐẦU .................................................................................................................... 1
1.1.

ĐẶT VẤN ĐỀ .................................................................................................................... 1

1.2.

TÍNH CẦN THIẾT CỦA ĐỀ TÀI ................................................................................... 2

1.3.

CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU ............................................. 3

1.4.

NHỮNG CƠNG TRÌNH LIÊN QUAN ........................................................................... 3

1.5.


KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC .................................................................................. 3

CHƯƠNG 2: TỔNG QUAN VỀ BLOCKCHAIN ......................................................................... 4
2.1.

KHÁI NIỆM BLOCKCHAIN .......................................................................................... 4

2.2.

MỘT SỐ TRÍCH DẪN ĐÁNG CHÚ Ý ........................................................................... 4

2.3.

LỊCH SỬ RA ĐỜI CỦA BLOCKCHAIN ....................................................................... 5

2.4.

CÁC KHÁI NIỆM CƠ BẢN ............................................................................................ 5

2.4.1.

Hàm băm .................................................................................................................... 5

2.4.2.

Chữ ký số.................................................................................................................... 6

2.4.3.

Phi tập trung .............................................................................................................. 7


2.4.4.

Sổ cái phân tán........................................................................................................... 7

2.4.5.

Chuỗi chính ................................................................................................................ 7

2.4.6.

Giao dịch lặp chi ........................................................................................................ 8

2.4.7.

Đồng thuận phân tán ................................................................................................. 8

2.4.8.

Khai thác .................................................................................................................... 9

2.4.9.

Token .......................................................................................................................... 9

2.4.10.

Bitcoin....................................................................................................................... 10

2.4.11.


Phân biệt giữa Blockchain và Bitcoin .................................................................... 10

2.4.12.

Ethereum .................................................................................................................. 10

2.4.13.

Điểm khác biệt cơ bản giữa Bitcoin và Ethereum ................................................ 11

2.5.

CÁC KỸ THUẬT TRONG BLOCKCHAIN ................................................................ 12

2.5.1.

Các nhân tố cốt lõi của Blockchain ........................................................................ 12

2.5.2.

Mật mã hóa khóa cơng khai ................................................................................... 12

2.5.3.

Mạng ngang hàng .................................................................................................... 13

2.5.4.

Cơ chế đồng thuận phi tập trung ........................................................................... 13


2.5.5.

Bằng chứng xử lý ..................................................................................................... 15

2.5.6.

Bằng chứng cổ phần ................................................................................................ 16

2.6.

CÁCH HOẠT ĐỘNG CỦA BLOCKCHAIN ............................................................... 17

do an


2.6.1.

Giao dịch được sinh ra ............................................................................................ 17

2.6.2.

Giao dịch được phát đến một mạng ngang hàng .................................................. 18

2.6.3.

Cuộc đua tạo các khối mới ...................................................................................... 18

2.6.4.


Hoàn thành một khối mới ....................................................................................... 19

2.6.5.

Thêm một khối mới vào chuỗi ................................................................................ 19

2.7.

PHÂN LOẠI BLOCKCHAIN ........................................................................................ 20

2.7.1.

Public Blockchain .................................................................................................... 20

2.7.2.

Private Blockchain .................................................................................................. 20

2.7.3.

Consortium Blockchain .......................................................................................... 21

CHƯƠNG 3: TỔNG QUAN VỀ ETHEREUM ............................................................................ 22
3.1.

LỊCH SỬ RA ĐỜI ........................................................................................................... 22

3.2.

SỰ SỤP ĐỔ CỦA DỰ ÁN DAO ..................................................................................... 23


3.3.

CÁC KHÁI NIỆM CƠ BẢN .......................................................................................... 24

3.3.1.

Hợp dồng thông minh ............................................................................................. 24

3.3.2.

Ether ......................................................................................................................... 25

3.3.3.

Gas ............................................................................................................................ 25

3.3.4.

ERC20 Token........................................................................................................... 26

3.3.5.

Ví đa chữ ký ............................................................................................................. 26

3.3.6.

Ứng dụng phi tập trung .......................................................................................... 27

3.3.7.


Máy ảo Ethereum .................................................................................................... 27

3.4.

NGƠN NGỮ LẬP TRÌNH HỢP ĐỒNG THƠNG MINH – SOLIDITY .................... 28

3.4.1.

Sơ lược các ngơn ngữ lập trình hợp đồng thông minh ......................................... 28

3.4.2.

Sự ra đời Solidity ..................................................................................................... 29

3.4.3.

Nhập môn Solidity ................................................................................................... 29

3.4.4.

Các kiểu dữ liệu cơ bản ........................................................................................... 30

3.4.5.

Các đối tượng ........................................................................................................... 32

3.4.6.

Phương thức ............................................................................................................. 32


3.4.7.

Sự kiện ...................................................................................................................... 33

3.4.8.

Tính thừa kế trong Solidity .................................................................................... 34

3.4.9.

Lưu trữ dữ liệu trên Blockchain ............................................................................ 34

CHƯƠNG 4: LỢI ÍCH VÀ THÁCH THỨC TRONG ỨNG DỤNG CƠNG NGHỆ
BLOCKCHAIN ............................................................................................................................... 35
4.1.

LỢI ÍCH CỦA CƠNG NGHỆ BLOCKCHAIN ........................................................... 35

4.1.1.

Tính minh bạch........................................................................................................ 35

4.1.2.

Tính riêng tư ............................................................................................................ 35

4.1.3.

Tính phân tán .......................................................................................................... 35


4.1.4.

Khơng phụ thuộc vào sự tin tưởng ......................................................................... 35

do an


4.1.5.

Tính bất biến ............................................................................................................ 36

4.1.6.

Tính phi tập trung ................................................................................................... 36

4.2.

NHỮNG THÁCH THỨC VÀ RỦI RO KHI ÁP DỤNG BLOCKCHAIN ................. 36

4.2.1.

Lãng phí năng lượng ............................................................................................... 36

4.2.2.

Tốc độ giao dịch phụ thuộc vào chi phí ................................................................. 37

4.2.3.


Sự gia tăng kích thước sổ cái .................................................................................. 37

4.2.4.

Tình trạng đầu cơ, lạm phát ................................................................................... 38

4.2.5.

Hợp đồng thiếu tính linh hoạt ................................................................................ 38

4.2.6.

Bảo mật .................................................................................................................... 39

4.2.7.

Tấn công quá bán .................................................................................................... 40

CHƯƠNG 5: CÁC ỨNG DỤNG ĐIỂN HÌNH CỦA BLOCKCHAIN ....................................... 41
CHƯƠNG 6: XÂY DỰNG SÀN GIAO DỊCH MUA BÁN TRỰC TUYẾN TRÊN NỀN TẢNG
BLOCKCHAIN ............................................................................................................................... 44
6.1.

GIỚI THIỆU ỨNG DỤNG ............................................................................................. 44

6.2.

ĐẶC TẢ ỨNG DỤNG ..................................................................................................... 44

6.2.1.


Kiến trúc hệ thống ................................................................................................... 44

6.2.2.

Các đối tượng trong ứng dụng ............................................................................... 45

6.2.3.

Các chức năng chính ............................................................................................... 45

6.2.4.

Lược đồ chức năng .................................................................................................. 46

6.2.5.

Các công nghệ được sử dụng .................................................................................. 46

6.2.6.

Ưu điểm và hạn chế ................................................................................................. 48

CHƯƠNG 7: KẾT LUẬN .............................................................................................................. 50
TÀI LIỆU THAM KHẢO .................................................................................................................. 52
PHỤ LỤC ........................................................................................................................................... 53

do an



DANH MỤC HÌNH ẢNH
Hình 2.1 Mỗi khối trong Blockchain đều chứa địa chỉ của khối trước đó ...............................................4
Hình 2.2 Cấu trúc dữ liệu Blockchain ......................................................................................................8
Hình 2.3 Một số thuật tốn đồng thuận đang được áp dụng.....................................................................8
Hình 2.4 Các máy đào sẽ nhận được phần thưởng của block do mình khai thác .....................................9
Hình 2.5 Cấu trúc của block gốc trong Bitcoin ......................................................................................14
Hình 2.6 Sự hình thành chuỗi hash của khối mới...................................................................................14
Hình 2.7 Bằng chứng xử lý ....................................................................................................................16
Hình 2.8 Bằng chứng cổ phần ................................................................................................................17
Hình 2.9 Giao dịch được sinh ra .............................................................................................................18
Hình 2.10 Giao dịch được chuyển đến mạng ngang hàng ......................................................................18
Hình 2.11 Quá trình sinh khối mới trong mạng Blockchain ..................................................................19
Hình 2.12 Một máy trong mạng đã khai thác được khối mới ................................................................19
Hình 2.13 Mội khối mới được thêm vào Blockchain .............................................................................20
Hình 2.14 Ba loại Blockchain phổ biến..................................................................................................21
Hình 3.15 Logo của Ethereum................................................................................................................22
Hình 3.16 Hợp đồng thơng minh có thể tự động thực thi lệnh chuyển tiền ...........................................24
Hình 3.17 Mơ hình ứng dụng truyền thống và ứng dụng phi tập trung..................................................27
Hình 3.18 Hợp đồng thơng minh được viết bằng ngơn ngữ Solidity .....................................................29
Hình 4.19 Tam giác DCS (Decentralised, Consistent, Scalable) ...........................................................37
Hình 5.20 Một số tiền ảo mã hóa hiện trên thị trường ...........................................................................41
Hình 5.21 Fruitchain là dự án đã áp dụng thành công Blockchain vào chuỗi cung ứng ........................42
Hình 5.22 Một số nhà cung cấp dịch vụ lưu trữ dựa trên nền tảng Blockchain .....................................42
Hình 5.23 Ứng dụng Blockchain vào xe tự hành ...................................................................................43
Hình 6.24 Kiến trúc tổng quan của ứng dụng.........................................................................................44
Hình 6.25 Lược đồ chức năng của ứng dụng .........................................................................................46

do an



DANH MỤC BẢNG
Bảng 3.1 Danh sách các hoạt động và chi phí của nó trong Ethereum Virtual Machine .......................26
Bảng 6.2 Các đối tượng trong ứng dụng ................................................................................................45
Bảng 6.3 Các chức năng chính của ứng dụng ........................................................................................46

do an


CHƯƠNG 1:

MỞ ĐẦU

1.1. ĐẶT VẤN ĐỀ
Trong quá khứ, mọi tài sản giá trị hoặc các giao dịch đều được lập biên bản đưa vào
kho dữ liệu, người ta dựa vào bên thứ ba như ngân hàng, chính phủ hoặc các công ty để
lưu trữ thông tin này. Mọi người tin rằng ngân hàng sẽ khơng trộm tiền của mình vì ngân
hàng được quản lý bởi chính phủ. Nếu ngân hàng phá sản, họ hy vọng rằng chính phủ sẽ
đảm bảo khoản ký gửi của họ được an toàn. Mọi người cho phép các tổ chức này sở hữu
tiền bạc và thông tin của họ. Họ tin rằng ngân hàng sẽ đảm bảo các thơng tin chi tiết thẻ
tín dụng của họ được an toàn, họ tin rằng ngân hàng sẽ lưu trữ dữ liệu về hồ sơ số dư tài
khoản và giao dịch một cách chuẩn xác. Các ngân hàng lại tin rằng chính phủ lưu trữ dữ
liệu và hồ sơ tiền giấy đã phát hành.
Vấn đề phổ biến xuất phát từ mọi giao dịch thường ngày là chúng ta đặt lòng tin vào
các tổ chức và dữ liệu trung tâm mà họ lưu trữ để đảm bảo quản lý chính xác hồ sơ của
chúng ta. Lại có một vấn đề ngầm hiểu rất phổ biến là chúng ta không tin tưởng lẫn nhau.
Vậy chuyện gì sẽ xảy ra khi thiếu tổ chức đáng tin cậy trong giao dịch?
Hãy tưởng tượng chúng ta đang sở hữu một cửa hàng, có một người khách lạ đến
mua và họ giao cho chúng ta một mẩu giấy có viết "Tơi nợ anh 100.000đ" kèm theo chữ
ký của họ. Họ nói rằng nếu chúng ta đem mẩu giấy đó đến bất kỳ cửa hàng khác, chúng ta
có thể mua bất kỳ món hàng nào có giá trị một trăm nghìn đồng tại đó.

Liệu chúng ta có thể tin tưởng anh ta khơng?
Câu trả lời chắc chắn là khơng, nhưng đó chính là điều mà chúng ta đang làm mỗi
ngày với tiền giấy - một tờ giấy có dịng chữ "100.000đ" kèm xác nhận từ chính phủ. Chúng
ta chấp nhận sử dụng tiền giấy gần như hằng ngày và tin tưởng rằng các cửa hàng sẽ chấp
nhận, rồi họ lại tin tưởng rằng những người khác cũng sẽ chấp nhận và cứ thể tiếp diễn.
Vậy vấn đề ở đây là gì?
Trong hầu hết các lĩnh vực, chúng ta cần một đơn vị có đủ uy tín để đứng ra làm
trung gian cho các giao dịch. Vậy làm sao những người sống ở các quốc gia kém phát triển,

1

do an


kém ổn định, nơi thiếu vắng lòng tin vào các cơng ty và chính phủ có thể tin tưởng vào
ngân hàng và chính phủ của họ?
Đó là lúc họ cần một cơ sở dữ liệu phân tán xây dựng trên Blockchain, loại bỏ sự
cần thiết của các cơ sở dữ liệu tập trung và các tổ chức trung gian. Mọi cá nhân trên
Blockchain có thể quan sát và kiểm nhận giao dịch, giúp đảm bảo tính minh bạch và độ tin
cậy.
Niềm tin là cốt lõi của Blockchain, tạo nên hệ thống tín nhiệm giữa các cá nhân mà
khơng cần tổ chức trung gian liên quan đến giao dịch.
1.2. TÍNH CẦN THIẾT CỦA ĐỀ TÀI
Blockchain là một từ khố được tìm kiếm nhiều nhất trong các năm qua. Đây không
đơn thuần chỉ là một cơng nghệ mới, mà nó cịn được kỳ vọng sẽ tạo nên một cuộc cách
mạng tác động rất lớn đến nhiều lĩnh vực khác trong cuộc sống, ở đó dữ liệu được truyền
tải một cách an tồn bằng một hệ thống mã hoá phức tạp và được mở rộng theo thời gian.
Toàn bộ những thay đổi trên dữ liệu lớn này đều minh bạch và rõ ràng với tất cả mọi người.
Một vấn đề rất lớn đang tồn đọng trong thế giới thực tại là vấn đề liên quan đến
niềm tin, khi toàn bộ các giao dịch hay việc sửa đổi dữ liệu đều thông qua một bên thứ ba

(Ví dụ: ngân hàng, chính phủ quốc gia…). Điều đó dẫn đến việc dữ liệu giao dịch có thể
bị thay đổi sai lệch so với thực tế. Vấn đề lớn này đã được xử lý một cách triệt để nhất bằng
bản chất nội tại của Blockchain.
Do vậy ta cần phải nắm rõ cách Blockchain vận hành, những thành phần cấu tạo
nên. Từ đó có thể xem xét tính ứng dụng vào thực tế sao cho phù hợp với nhu cầu sử dụng,
điều kiện triển khai.
Để hiện thực những cơ sở lý thuyết Blockchain thì phải thơng qua những mạng
Blockchain đã xây dựng và đang vận hành, cụ thể là mạng Ethereum để có thể xây dựng
các ứng dụng phi tập trung giúp hiện thực hoá việc giải quyết các vấn đề đã đặt ra ở trên,
đây là một dạng ứng dụng sẽ được nhắc đến trong đề tài.

2

do an


1.3. CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGHIÊN CỨU
- Đối tượng nghiên cứu: Khái niệm, tính chất căn bản của Blockchain, cách thức
vận hành của mạng. Tìm hiểu mạng Ethereum, các điểm đặc trưng, cách triển khai ứng
dụng phi tập trung trên mạng này.
- Phạm vi nghiên cứu: Nắm được cách vận hành mạng Blockchain, triển khai ứng
dụng phi tập trung thông qua ứng dụng “Sàn giao dịch mua bán trực tuyến trên nền tảng
Blockchain” và triển khai ứng dụng lên mạng testnet.
- Phương pháp nghiên cứu: Nghiên cứu tài liệu bao gồm các nguồn sách, những bài
viết khách quan, cũng như các trang tài liệu chính thống do nhà cung cấp phát hành. Tham
khảo các ứng hiện hiện có qua đó học hỏi và phát triển ứng dụng phi tập trung sử dụng
Smartcontract trên mạng Ethereum.
1.4. NHỮNG CƠNG TRÌNH LIÊN QUAN
Blockchain là một công nghệ tương đối mới trong cộng đồng cơng nghệ tại Việt
Nam, do đó các nghiên cứu về đề tài này còn khá hạn chế về mặt chuyên môn và cả những

khái niệm chuyên sâu. Các cơng trình nghiên cứu trong lĩnh vực này thường chỉ khái quát
tổng quan về những khái niệm căn bản và tập trung quá nhiều vào sự phát triển nhanh
chóng của tiền mã hố nhưng ít đào sâu phân tích vào nền tảng công nghệ bên dưới và sự
vận hành của Blockchain. Đồng thời tài liệu kỹ thuật hỗ trợ xây dựng ứng dụng phi tập
trung còn rất hạn chế và không theo kịp tốc độ phát triển hiện nay.
1.5. KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC
Hiểu rõ được những khái niệm và tính chất căn bản của Blockchain, cách vận hành
mạng. Chỉ rõ ra được những mặt lợi và hại khi ứng dụng Blockchain vào các mơ hình hiện
tại, từ đó có thể tuỳ chỉnh ứng dụng sao cho phù hợp hơn với thực tế.
Nắm được những điểm cốt lõi của mạng Ethereum. Triển khai thành công ứng dụng
phi tập trung trên mơi trường giả lập mạng Blockchain, từ đó có thể ứng dụng cho các yêu
cầu thực tế.

3

do an


CHƯƠNG 2:

TỔNG QUAN VỀ BLOCKCHAIN

2.1. KHÁI NIỆM BLOCKCHAIN
Blockchain là một cơ sở dữ liệu phi tập trung lưu trữ thông tin trong các block được
liên kết với nhau và mở rộng theo thời gian. Mỗi block đều chứa thông tin về thời gian
khởi tạo và được liên kết với block trước đó, vì vậy cơ sở dữ liệu này được gọi là
Blockchain. Blockchain được thiết kế để chống lại việc thay đổi của dữ liệu: Một khi dữ
liệu đã được ghi thì sẽ rất khó nếu khơng muốn nói là khơng thể thay đổi nó. Nếu một phần
của hệ thống Blockchain bị sụp đổ, những máy tính và nút khác sẽ tiếp tục hoạt động để
bảo vệ thơng tin.


Hình 2.1 Mỗi khối trong Blockchain đều chứa địa chỉ của khối trước đó

Cơng nghệ Blockchain loại bỏ sự cần thiết của một đơn vị trung gian, cho phép mọi
người giao dịch trực tiếp với nhau
2.2. MỘT SỐ TRÍCH DẪN ĐÁNG CHÚ Ý
“Thế hệ đầu tiên của cuộc cách mạng kỹ thuật số mang lại cho chúng ta thông tin
của Internet. Thế hệ thứ hai - được hỗ trợ bởi công nghệ Blockchain - mang lại cho chúng
ta giá trị của Internet: Một nền tảng mới để định hình lại thế giới kinh doanh và biến đổi
thứ tự công việc của con người trở nên tốt hơn.”
“Blockchain là một kho lưu trữ, cơ sở dữ liệu phân tán toàn cầu, chạy trên hàng triệu
thiết bị và mở cho mọi người, không chỉ đơn thuần là thơng tin mà cịn cả những thứ có
giá trị, cả danh hiệu, hành vi, danh tính, thậm chí cả phiếu bầu - có thể được di chuyển, lưu
trữ và quản lý một cách an toàn và tư nhân. Sự tin tưởng được thiết lập thông qua hợp tác
giữa số đông và mã thông minh chứ không phải bởi các nhà trung gian mạnh mẽ như các
chính phủ và ngân hàng.”
4

do an


“Tơi tin rằng thực tế một thuật tốn trong hệ thống Bitcoin thay thế được các chức
năng của chính phủ… thực sự tuyệt vời. Tôi rất hâm mộ Bitcoin”. Al Gore, phó chủ tịch
thứ 45 của Hoa Kỳ.
2.3. LỊCH SỬ RA ĐỜI CỦA BLOCKCHAIN
Nền tảng của Blockchain là mật mã học, cách đây hàng nghìn năm con người đã có
những biện pháp để mã hóa thơng tin, càng về sau phương pháp mã hóa ngày càng phức
tạp, khó có thể giải mã ra được.
Những năm cuối của thế kỷ XX, đã có những chuyên đề bàn luận về việc ứng dụng
mật mã học kết hợp với chuỗi dữ liệu an toàn và sự ra đời của tiền ảo. Nổi bật là tiền ảo

DigiCash, đã có những đặc điểm nổi bật như không thể truy dấu ra dữ liệu ứng dụng mật
mã học, khóa cơng khai, khóa cá nhân kèm chữ ký (hai mã dùng cho việc giao dịch tiền
ảo). Những đặc điểm được tìm thấy trong tiền ảo sau này.
Năm 1998, Adam Back tạo ra thuật toán Bằng chứng xử lý (Proof of Work) là một
phương pháp chứng thực việc giải đáp một mảnh ghép tính tốn, ơng ứng dụng nó để giảm
việc gửi thư điện tử quảng cáo tràn lan, yêu cầu người dùng trước khi gửi thư phải tìm ra
mảnh ghép của một bài tốn. Việc giải bài toán ấy theo Bằng chứng xử lý mất rất nhiều
nguồn lực và cơng suất tính tốn. Trong cùng năm này, Nick Szabo đề xuất một loại tiền
ảo phi tập trung có tên Bit Gold, loại tiền ảo này kết với thuật toán Bằng chứng xử lý cùng
với mạng lưới máy tính, nhưng Bit Gold cũng chỉ là trên lý thuyết.
Cho đến năm 2008, Satoshi Nakamoto (bút danh tác giả) có một bài viết với nhan
đề Bitcoin: A Peer-to-peer Electronic Cash System. Bài viết này tổng quan về sự hình thành
Bitcoin và các khối giao dịch kết nối trong chuỗi. Năm 2009, Bitcoin chính thức được tác
giả đưa vào vận hành, cũng chính là thời điểm Blockchain đầu tiên được tạo ra. Trong mã
nguồn nguyên thủy của Bitcoin đã nhắc đến cụm từ rời rạc "Blockchain".
2.4. CÁC KHÁI NIỆM CƠ BẢN
2.4.1. Hàm băm
Hàm băm là thuật toán dùng để ánh xạ dữ liệu có kích thước bất kỳ sang một giá trị
“băm” có kích thước cố định, giá trị băm cịn được gọi là “đại diện thông điệp” hay “đại
diện bản tin”.
5

do an


Hàm băm là hàm một chiều, đồng nghĩa với giá trị của hàm băm là duy nhất, và từ
giá trị băm này, khó có thể suy ngược lại được nội dung hay độ dài ban đầu của thông điệp
gốc.
Các hàm băm dòng MD: MD2, MD4, MD5 được Rivest đưa ra thu được kết quả
đầu ra với độ dài là 128 bit. Hàm băm MD4 đưa ra vào năm 1990. Một năm sau, một phiên

bản mạnh hơn là MD5 cũng được ra đời. Chuẩn hàm băm an toàn: SHA, phức tạp hơn
nhiều cũng dựa trên các phương pháp tương tự, được công bố trong Hồ sơ Liên bang năm
1992 và được chấp nhận làm tiêu chuẩn vào năm 1993 do Viện Tiêu Chuẩn và Công Nghệ
Quốc Gia (NIST), kết quả đầu ra có độ dài 160 bit.
2.4.2. Chữ ký số
Về mặt công nghệ, chữ ký số là một thông điệp dữ liệu đã được mã hóa gắn kèm
theo một thơng điệp dữ liệu khác nhằm xác thực người gửi thông điệp đó. Q trình ký và
xác nhận chữ ký như sau:
• Người gửi muốn gửi thơng điệp cho bên khác thì sẽ dùng một hàm băm, băm
thông điệp gốc thành một “thơng điệp tóm tắt” (Message Digest).
• Người gửi mã hố bản tóm tắt thơng điệp bằng khóa bí mật của mình (sử dụng
phần mềm bí mật được cơ quan chứng thực cấp) để tạo thành một chữ ký số.
• Sau đó, người gửi tiếp tục gắn kèm chữ ký số này với thơng điệp dữ liệu ban
đầu. Sau đó gửi thông điệp đã kèm với chữ ký một cách an tồn qua mạng cho
người nhận.
• Sau khi nhận được, người nhận sẽ dùng khố cơng khai của người gửi để giải
mã chữ ký số thành bản tóm tắt thơng điệp. Người nhận cũng dùng hàm băm
giống hệt như người gửi đã làm đối với thông điệp nhận được để biến đổi thơng
điệp nhận được thành một bản tóm tắt thơng điệp. Người nhận so sánh hai bản
tóm tắt thơng điệp này, nếu chúng giống nhau tức là chữ ký đó hợp lệ và thông
điệp đã không bị thay đổi trên đường truyền đi.
Ngồi ra, chữ ký số có thể được gắn thêm một “nhãn” thời gian: Sau một thời gian
nhất định quy định bởi nhãn đó, chữ ký số gốc sẽ khơng cịn hiệu lực, đồng thời nhãn thời
gian cũng là công cụ để xác định thời điểm ký.

6

do an



2.4.3. Phi tập trung
Phi tập trung nghĩa là khơng có tổ chức nào quản lý hay có quyền quyết định về nội
dung của Blockchain. Do đó, cần phải có một “bộ luật” để mọi người có thể thống nhất
trong việc ra quyết định, duy trì tính tồn vẹn của dữ liệu trong Blockchain.
Trong hệ thống Bitcoin, mỗi người dùng sẽ tự lưu trữ và duy trì một bản copy nội
dung của Blockchain trên máy tính của mình. Vấn đề cần giải quyết là làm sao tất cả có
thể cập nhật và thống nhất nội dung mới nhất của dữ liệu trong Blockchain. Câu trả lời
chính là cơ chế đồng thuận, chúng ta sẽ được tìm hiểu ở phần sau.
2.4.4. Sổ cái phân tán
Các sổ cái kỹ thuật số thuở ban đầu này sao chép lại cách thức thống kê và tính tốn
của các sổ cái trên giấy. Các thiết chế dựa trên giấy tờ vẫn là xương sống của xã hội: tiền,
con dấu, chữ ký, hóa đơn, chứng nhận và phương pháp sổ ghi chép.
Khả năng tính tốn của máy tính và các đột phá trong lĩnh vực mật mã học, cùng
với việc khám phá và sử dụng một số thuật toán mới mẻ và thú vị, đã cho phép sự ra đời
của các sổ cái phân tán.
Ở dạng đơn giản nhất, một sổ cái phân tán là một cơ sở dữ liệu được lưu trữ và cập
nhật một cách độc lập bởi các cá nhân của một mạng lưới rộng lớn. Cách dữ liệu được phân
tán là rất độc đáo: các bản ghi không được phân phối đến các cá nhân bởi một cơ quan
quản lý trung ương, mà thay vào đó được xây dựng và lưu trữ độc lập bởi các cá nhân. Mỗi
node trong mạng đều xử lý tất cả các giao dịch, tự đưa ra kết luận của mình, và cùng với
các node khác bỏ phiếu để đảm bảo đa số đồng ý với kết luận đó.
Một khi có được sự đồng thuận, sổ cái phân tán sẽ được cập nhật, và tất cả các cá
nhân đều duy trì bản sao sổ cái riêng của mình. Cấu trúc này cho phép hình thành một hệ
thống ghi chép có ý nghĩa vượt trên một cơ sở dữ liệu thơng thường.
2.4.5. Chuỗi chính
Chuỗi chính là một Blockchain chính, là dãy khối dài nhất tính từ khối nguyên thủy
tới khối mới nhất

7


do an


Hình 2.2 Cấu trúc dữ liệu Blockchain

2.4.6. Giao dịch lặp chi
Giao dịch lặp chi xảy ra khi cùng một số tiền được gửi hai lần. Trong các loại mạng
lưới Blockchain, trường hợp này đã xảy ra, nhưng đối với mạng lưới Bitcoin thì tình trạng
này rất khó diễn ra vì mạng lưới sẽ phát hiện cả hai giao dịch và sẽ đồng thuận chấp nhận
giao dịch nào hoặc từ chối giao dịch nào.
Chỉ một giao dịch sẽ được đưa vào Blockchain là hợp lệ. Giao dịch càng có nhiều
người xác nhận, việc lặp chi càng khó xảy ra hơn.
2.4.7. Đồng thuận phân tán
Trong Blockchain, một giao dịch được diễn ra khi đại đa số các thành viên trong
mạng lưới đồng thuận rằng giao dịch này là hợp lệ, khái niệm này gọi là Đồng thuận phân
tán.

Hình 2.3 Một số thuật toán đồng thuận đang được áp dụng

Đây là cách thức thông thường mà Blockchain phi tập trung hoạt động để cơng nhận
giao dịch và quản lý mạng lưới. Thay vì một bộ phận chịu trách nhiệm cơng nhận tồn bộ
các giao dịch và duy trì độ chính xác của cơ sở dữ liệu, nhiệm vụ này được chia sẻ với cả
8

do an


mạng lưới. Tất cả các thành viên kết nối vối mạng lưới đều có quyền lên tiếng nhận định
một giao dịch có nên được chấp nhận vào chuỗi hay khơng.
Rủi ro và nguy hiểm tiềm tàng khi hơn một nửa số lượng thành viên trong mạng

lưới chấp nhận một giao dịch không hợp lệ sẽ được thảo luận trong các phần sau.
2.4.8. Khai thác
Khai thác (mining), hay được gọi là “đào”, là cách tạo ra những block mới trong
mạng lưới Blockchain, đây là phần thưởng cho sự đóng góp của các máy đào (miner) để
giúp cho mạng lưới Blockchain vận hành chính xác và an tồn.

Hình 2.4 Các máy đào sẽ nhận được phần thưởng của block do mình khai thác

Để kiểm nhận một giao dịch và đưa vào trong mạng dưới Blockchain, các máy tính
trong mạng lưới phải giải được mảnh ghép liên quan đến khối kế tiếp để được đưa vào
Blockchain. Máy tính đầu tiên tìm ra đúng mảnh ghép có thể thêm một giao dịch vào một
khối, sau đó thêm khối giao dịch đó vào Blockchain. Vì xử lý thành công mảnh ghép trước
tiên, họ nhận được một phần thưởng, thường được trả bằng tiền ảo được sử dụng trong
mạng lưới đó.
2.4.9. Token
Mọi nền tảng Blockchain đều được cung cấp nguồn bởi các đồng Token, hay còn
được gọi là "coin". Các Token khơng chỉ đóng vai trị như là tiền ảo mà nó cịn mang những
giá trị và vai trò khác khau đối với các ứng dụng sử dụng nó.
9

do an


×