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

Xây dựng ứng dụng mạng blockchain dựa trên ethereum virtual machine và solidity

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 (2.38 MB, 80 trang )

ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

Xây dựng ứng dụng mạng blockchain
dựa trên Ethereum Virtual Machine
và Solidity
Môn học: Đồ án 1
Giảng viên hướng dẫn: ThS. Nguyễn Thị Thanh Trúc

Sinh viên thực hiện:
19522183 – Trương Gia Thạch
19522339 – Nguyễn Tấn Tiến
Thành phố Hồ Chí Minh, tháng 03 năm 2022


ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

Xây dựng ứng dụng mạng blockchain
dựa trên Ethereum Virtual Machine
và Solidity
Môn học: Đồ án 1
Giảng viên hướng dẫn: ThS. Nguyễn Thị Thanh Trúc

Sinh viên thực hiện:
19522183 – Trương Gia Thạch
19522339 – Nguyễn Tấn Tiến
Thành phố Hồ Chí Minh, tháng 03 năm 2022



1


NHẬN XÉT CỦA GIÁO VIÊN
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………
……………………………………………………………………………………………………………………………………………

………………………………………………………………………………………………………

2


LỜI CẢM ƠN
Chúng em xin gửi lời cảm ơn chân thành đến cô Nguyễn Thị Thanh Trúc, giảng viên
hướng dẫn môn đồ án 1, đã trang bị giúp em những kỹ năng cơ bản và kiến thức cần thiết
để hoàn thành được đồ án này.

Tuy nhiên, dù đã cố gắng rất nhiều để hoàn thành đồ án được kết quả tốt nhất thì
trong quá trình làm đồ án do kiến thức chuyên ngành của em còn hạn chế, cũng như sự
thiếu sót về kinh nghiệm, nên khơng thể tránh khỏi một vài thiếu sót khi trình bày và đánh
giá vấn đề. Rất mong nhận được sự góp ý, đánh giá của cơ để đề tài của chúng em thêm
hồn thiện hơn.

Chúng em xin chân thành cảm ơn!

3


DANH MỤC HÌNH ẢNH
Hình 1 Blockchain .................................................................................................................. 13
Hình 2 Trong "Khối Nguyên Thủy", Satoshi Nakamoto để lại một thông điệp: "Tờ Times,
ngày 03/01/2009, Thủ tướng đứng bên bờ vực phải viện trợ ngân hàng lần thứ hai"[21]. 16
Hình 3 Nội dung trong mỗi khối ............................................................................................ 17
Hình 4 Cryptography ............................................................................................................. 19
Hình 5 Hashing ...................................................................................................................... 20
Hình 6 Digital Signature transaction encryption simplified [22] .......................................... 22
Hình 7 Merkle Tree ví dụ ....................................................................................................... 23

Hình 8 Xác minh giao dịch với Merkle Tree .......................................................................... 25
Hình 9 Phân loại blockchain .................................................................................................. 29
Hình 10 Ứng dụng blockchain trong cơng nghiệp dịch vụ .................................................... 32
Hình 11 Transforming Food Supply chain with Blockchain and IoT - DreamzIoT ................. 34
Hình 12 TradeLens ................................................................................................................. 36
Hình 13 Ethereum chain........................................................................................................ 41
Hình 14 Tài khoản trên Ethereum ......................................................................................... 48
Hình 15 Transaction trên Ethereum...................................................................................... 49
Hình 16 Node Ethereum ....................................................................................................... 52
Hình 17 Phí gas ...................................................................................................................... 54
Hình 18 Ethereum virtual machine ....................................................................................... 56
Hình 19 Geth (Go ethereum ) & Mist.................................................................................... 57
4


Hình 20 Smart contract ......................................................................................................... 59
Hình 21 Phân loại kiến trúc ................................................................................................... 61
Hình 22 Solidity ..................................................................................................................... 65
Hình 23 Kiểu dữ liệu trong solidity........................................................................................ 67
Hình 24 Kiến trúc hệ thống demo ......................................................................................... 75

5


DANH MỤC BẢNG BIỂU
Bảng 1 Ethereum và Bitcoin .................................................................................................. 43
Bảng 2 Web2 và Web3 .......................................................................................................... 45

6



MỤC LỤC
Mục lục .............................................................................................................................. 7
GIỚI THIỆU CHUNG .............................................................................................................. 11
1.

Tổng quan tình hình nghiên cứu ............................................................................ 11

2.

Lý do lựa chọn đề tài .............................................................................................. 12

3.

Mục tiêu nghiên cứu .............................................................................................. 12

BLOCKCHAIN ........................................................................................................................ 13
1.

Giới thiệu ................................................................................................................ 13

2.

Tại sao cần blockchain ........................................................................................... 14

2.1.

Dữ liệu động, cần cập nhật liên tục, cần lưu trữ tất cả lịch sử trước đây .................................................... 14

2.2. Thông tin, dữ liệu cần bảo mật cực cao và bạn lo sợ mô hình mạng có trung gian thứ ba khơng thể đảm

bảo an toàn ............................................................................................................................................................. 14

3.

Lịch sử Blockchain .................................................................................................. 15

4.

Kiến trúc blockchain ............................................................................................... 16

5.

Nguyên lý hoạt động của Blockchain ..................................................................... 17

5.1.

Nguyên lý mã hoá......................................................................................................................................... 17

5.2.

Quy tắc của sổ cái......................................................................................................................................... 25

5.3.

Nguyên lý tạo khối ....................................................................................................................................... 25

5.4.

Thuật toán bảo mật Blockchain ................................................................................................................... 26


6.

Đặc điểm ................................................................................................................ 27

6.1.

Ưu điểm ....................................................................................................................................................... 27

6.2.

Nhược điểm ................................................................................................................................................. 27

7.

Phân loại ................................................................................................................. 28

8.

Các phiên bản ......................................................................................................... 30

9.

Cơ chế đồng thuận ................................................................................................. 30
7


10.

Hệ sinh thái ............................................................................................................ 32


11.

Ứng dụng Blockchain trong đời sống..................................................................... 32

11.1.

Ứng dụng trong ngành công nghiệp và dịch vụ ......................................................................................... 32

11.2.

Ứng dụng trong ngành nông nghiệp, thủy hải sản .................................................................................... 33

11.3.

Ứng dụng Blockchain trong xây dựng ........................................................................................................ 34

11.4.

Ứng dụng blockchain trong vận tải kho bãi ............................................................................................... 35

11.5.

Ứng dụng trong hoạt động tài chính, ngân hàng và bảo hiểm. ................................................................. 36

11.6.

Ứng dụng blockchain trong khai khoáng ................................................................................................... 38

ETHEREUM ........................................................................................................................... 40
1.


Giới thiệu chung ..................................................................................................... 40

1.1.

Ethereum là gì ? ........................................................................................................................................... 40

1.2.

Lịch sử .......................................................................................................................................................... 40

1.3.

Ethereum Blockchain ................................................................................................................................... 41

1.4.

Ethereum và Bitcoin ..................................................................................................................................... 42

2.

Các khái niỆm trong Ethereum .............................................................................. 43

2.1.

Ether (ETH) ................................................................................................................................................... 43

2.2.

Web3 ............................................................................................................................................................ 44


2.3.

Ether.js ......................................................................................................................................................... 46

2.4.

Accounts ....................................................................................................................................................... 47

2.5.

Transactions ................................................................................................................................................. 48

2.6.

Nodes ........................................................................................................................................................... 50

2.7.

GAS ............................................................................................................................................................... 52

2.8.

Máy ảo Ethereum (EVM) .............................................................................................................................. 54

2.9.

Geth (Go ethereum ) & Mist ........................................................................................................................ 56

2.10.


Parity .......................................................................................................................................................... 57

3.

Hợp đồng thông minh (Smart Contract) ................................................................ 57

3.1.

Smart contract là gì? .................................................................................................................................... 57

3.2.

Smart contract hoạt động như thế nào?...................................................................................................... 58

3.3.

Lợi ích của smart contract ............................................................................................................................ 59

3.4.

Ưu nhược điểm ............................................................................................................................................ 60
8


4.

Ứng dụng phi tập trung (Dapps) ............................................................................ 60

4.1.


Dapps là gì? .................................................................................................................................................. 60

4.2.

Phân loại Dapps ............................................................................................................................................ 63

4.3.

Dapps hoạt động như thế nào? ................................................................................................................... 64

LẬP TRÌNH SOLIDITY ............................................................................................................. 65
1.

Solidity là gì? .......................................................................................................... 65

2.

Kiểu dữ liệu ............................................................................................................ 66

3.

Contract .................................................................................................................. 67

4.

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

5.


Thuộc tính .............................................................................................................. 70

6.

Các cơng cụ mà Solidity cung cấp .......................................................................... 71

7.

Các trường hợp sử dụng Solidity ........................................................................... 71

8.

Ưu điểm và nhược điểm của Solidity .................................................................... 72

8.1.

Ưu điểm của Solidity .................................................................................................................................... 72

8.2.

Nhược điểm của Solidity .............................................................................................................................. 72

ỨNG DỤNG MINH HOẠ ....................................................................................................... 74
1.

Giới thiệu bài toán ................................................................................................. 74

2.

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


3.

Công nghệ sử dụng ................................................................................................ 75

KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN .................................................................... 76
1.

Kết quả đạt được ................................................................................................... 76

2.

Hướng phát triển ................................................................................................... 76

TÀI LIỆU THAM KHẢO .......................................................................................................... 77

9


10


GIỚI THIỆU CHUNG
1. TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU
Sự xuất hiện của hệ thống web dùng trên Internet đã hiện thực hóa việc trao đổi thơng
tin trên tồn thế giới. Trong khi đó, hệ thống blockchain lại giúp thực hiện các giao dịch trao
đổi giá trị toàn cầu trên Internet. Bởi vậy, hai hệ thống này tuy song song tồn tại nhưng lại
khác nhau về bản chất. Sau khi Satoshi Nakamoto công bố luận văn về đồng tiền ảo bitcoin
vào năm 2009, nền tảng công nghệ của bitcoin – blockchain – đã trở thành tâm điểm chú ý.
Với khởi đầu như vậy nên hiển nhiên giá trị tiền tệ của blockchain, tức là chức năng

trao đổi và tích lũy giá trị, sẽ được chú ý nhiều nhất. Nhưng từ khoảng năm 2012-2013,
không chỉ tiền kỹ thuật số, công nghệ blockchain bắt đầu được kỳ vọng có thể mạng lại thay
đổi lớn trong cách vận hành kinh doanh (không chỉ trong ngành tài chính) cũng như ứng
dụng trong lĩnh vực hành chính cơng.
Trong xu thế đó, các ứng dụng sử dụng công nghệ blockchain được phát triển ngày
càng nhiều. Các ứng dụng này không được sử dụng trên hệ thống blockchain mà cịn có khả
năng tích hợp vào các ứng dụng hiện có trên web. Điều này có nghĩa là blockchain khơng chỉ
đơn thuần là một cơng nghệ mới mà nó cịn có thể bổ trợ hoặc thay thế các cơng nghệ hiện
hữu.
Vì khả năng cho phép hồn thành thanh tốn mà không cần bất kỳ ngân hàng hay trung
gian nào, Blockchain được dùng trong các dịch vụ tài chính khác nhau như tài sản kỹ thuật
số, chuyển tiền hay thanh tốn. Thêm vào đó, nó cịn có thể áp dụng cho các lĩnh vực khác
như hợp đồng thông minh, dịch vụ công cộng, Internet vạn vật, hệ thống danh tiếng và dịch
vụ bảo mật [8].
Sự phát triển của Internet cũng đồng hành với những tổn thất sau các cuộc tấn công
mạng, gây ảnh hưởng lớn đến nền kinh tế cũng như xã hội. Theo cuộc khảo sát của hãng
phân tích Grant Thornton, khoản tiền mà doanh nghiệp mất vào tay tin tặc ở Châu Á-Thái
Bình Dương lên tới 81,3 tỉ đơ la trong vịng 12 tháng (tính đến cuối tháng 9/2015). Mức tổn
thất từ các đợt tấn công mạng ở châu Á nhiều hơn Bắc Mỹ tới 20 tỉ USD và EU với con số
tương tự, và chiếm đến hơn 25% tổng mức tổn thất của thế giới (315 tỉ USD).... Tại Việt Nam
cũng xảy ra tình trạng mất an tồn với các tài khoản gửi ngân hàng, điển hình như vụ tấn
11


công vào Vietcombank. Tháng 2/2016, thông tin về việc Ngân hàng Trung ương Bangladesh
bị tin tặc đánh cắp 101 triệu USD gây chấn động thế giới là một bài học cho bất cứ tổ chức
nào. Sự cố xảy ra được cho là do Ngân hàng nước này sử dụng bộ định tuyến cũ giá 10 USD
mà khơng có bất cứ một hệ thống tường lửa nào. Số tiền tổn thất trong vụ này có thể lên
đến hơn 1 tỷ USD nếu như tin tặc khơng viết sai lỗi chính tả.
Từ những rủi ro từ an ninh mạng nên các tổ chức tài chính cần những cơng nghệ mới,

ví dụ như nền tảng của đồng tiền số Bitcoin, chính là Blockchain, được kì vọng khơng chỉ
nhằm cắt giảm chi phí ngân hàng mà cịn đảm bảo tính an tồn và xa hơn nữa là cách mạng
hóa các giải pháp bảo mật.

2. LÝ DO LỰA CHỌN ĐỀ TÀI
Khách quan:
Trong những năm gần đây, công nghệ chuỗi khối (Blockchain) đang trở thành xu hướng
“hot” trên tồn cầu và tại Việt Nam. Cơng nghệ này có tiềm năng ứng dụng to lớn trong các
ngành từ dịch vụ tài chính, sản xuất và khu vực công cho đến chuỗi cung ứng, giáo dục và
năng lượng[9]. Trong đó, Ethereum là nền tảng điện tốn phân tán, mã nguồn mở dựa trên
công nghệ chuỗi khối (Blockchain) là chuỗi khối có thể lập trình hàng đầu thế giới. Các nhà
phát triển có thể sử dụng nó để xây dựng các loại ứng dụng mới.
Chủ quan:
Trong suốt quá trình học tập, nhóm chúng em muốn được trải nghiệm các đề tài khác
nhau và hoạt động trên nhiều nền tảng. Cảm thấy hứng thú và muốn tìm hiểu cơng nghệ
Blockchain nên nhóm em đã lựa chọn tìm hiểu về blockchain và cụ thể là Ethereum và
Solidity, nghiên cứu, ứng dụng công nghệ Blockchain trong việc thực hiện các giao dịch.

3. MỤC TIÊU NGHIÊN CỨU
Mục tiêu của đồ án này là có một cái nhìn tổng quan về cơng nghệ BlockChain, biết
được các nền tảng lý thuyết và các kỹ thuật chính sử dụng trong BlockChain, đặc biệt là ứng
dụng của hợp đồng thông minh trong công nghệ này. Bên cạnh đó hiểu được Ethereum là
nền tảng BlockChain đã và đang rất phổ biến và có được ứng dụng minh họa.
12


BLOCKCHAIN
1. GIỚI THIỆU
Theo ấn bản “Mastering Bitcoin” của tác giả Antonopoulos, Blockchain được định
nghĩa là công nghệ lưu trữ và truyền tải thông tin bằng các khối (block) được liên kết với

nhau và mở rộng theo thời gian, do đó được gọi là chuỗi khối (blockchain). Mỗi block chứa
đựng các thông tin về thời gian khởi tạo, các thông tin giao dịch và được liên kết với các
khối trước đó thông qua thông tin hàm băm (hash) [19]. Block cũng được định nghĩa như
một cấu trúc dữ liệu, là một danh sách liên kết sử dụng hàm băm con trỏ thay vì các con trỏ
thơng thường. Hàm băm con trỏ này được sử dụng để trỏ tới khối trước đó.

Hình 1 Blockchain

Cụ thể hơn, một blockchain là một chuỗi tuyến tính gồm nhiều khối được kết nối và
được bảo đảm bằng các bằng chứng mật mã. Một blockchain thường được xây dựng như
một hệ thống phân tán có chức năng như một sổ cái phi tập trung. Điều này có nghĩa là có
nhiều bản sổ cái (phân tán) và khơng có tổ chức nào nắm quyền kiểm sốt duy nhất (phi tập
trung). Nói một cách đơn giản, mỗi người dùng tham gia vào mạng blockchain sẽ giữ một
bản sao điện tử của dữ liệu blockchain. Dữ liệu khi đã được mạng lưới chấp nhận thì sẽ
khơng có cách nào thay đổi được. Dữ liệu blockchain được cập nhật thường xuyên tất cả
các giao dịch mới nhất và đồng bộ với bản sao của người dùng.
Nói cách khác, một hệ thống phân tán được duy trì bởi cơng việc tập thể của nhiều
người dùng trên khắp thế giới. Những người dùng này còn được gọi là các node mạng, và
tất cả các node này đều tham gia vào quá trình xác minh và xác thực giao dịch theo các quy
tắc của hệ thống. Do đó, quyền lực là phi tập trung. Cơng nghệ Blockchain cũng có thể được
áp dụng trong các lĩnh vực khác khơng nhất thiết phải có các hoạt động tài chính. Trong bối
cảnh tiền điện tử, blockchain có vai trò lưu giữ hồ sơ vĩnh viễn của tất cả các giao dịch đã
được xác nhận.
13


2. TẠI SAO CẦN BLOCKCHAIN
2.1.
DỮ LIỆU ĐỘNG, CẦN CẬP NHẬT LIÊN TỤC, CẦN LƯU TRỮ TẤT CẢ
LỊCH SỬ TRƯỚC ĐÂY

Tài liệu giấy khó có thể bị giả mạo bởi vì tính phức tạp của con dấu hoặc dấu ấn xuất bản khơng
thể nhầm lẫn. Như khắc thứ gì đó lên đá, các tài liệu giấy có thời gian tồn tại nhất định.
Nhưng nếu dữ liệu phải lưu thông liên tục, nếu giao dịch xảy ra thường xuyên và liên tục, thì
việc dùng tài liệu bằng giấy khó có thể giúp hệ thống lưu trữ dữ liệu dễ dàng. Vì cơng việc nhập liệu
thủ công vẫn bị hạn chế về nguồn nhân lực.
Do đó, nếu dữ liệu và thơng tin lưu trữ trước đây của nó cần thiết trong các mối quan hệ số mà
dữ liệu tạo nên, thì blockchain sẽ giúp lưu trữ linh hoạt hơn nhiều bằng cách cho phép nhiều bên
khác nhau cùng nhập liệu vào hệ thống lưu trữ và hệ thống này được nhiều phía cùng bảo quản.

2.2.
THÔNG TIN, DỮ LIỆU CẦN BẢO MẬT CỰC CAO VÀ BẠN LO SỢ MƠ
HÌNH MẠNG CĨ TRUNG GIAN THỨ BA KHƠNG THỂ ĐẢM BẢO AN TỒN
Chúng ta vẫn cần một bên thứ ba chịu trách nhiệm cho việc xác thực và ủy quyền giao dịch theo
nhiều lý do. Trong rất nhiều hoàn cảnh, việc để cho bên thứ ba kiểm sốt là quyết định đúng đắn
và hồn tồn phù hợp. Nếu dữ liệu phải được bảo mật cực kỳ cao, thì vẫn có cách là khơng cần kết
nối vào mạng lưới.
Nhưng nếu cơ sở hạ tầng IT có quá nhiều tài khoản và đăng nhập không đủ để đảm bảo cho việc
nhận dạng số, thì khi đó cơng nghệ blockchain có thể giải quyết được vấn đền này.
Khi Satoshi Nakamoto viết bản white paper thần thánh “Bitcoin: Một hệ thống tiền điện tử Peer –
to – Peer”[16], có nói rằng:
“Doanh nghiệp phải lưu ý khách hàng của mình cần cẩn thận, họ đã gửi đi nhiều thông tin hơn cần
thiết. Chúng ta sẽ phải chấp nhận một tỷ lệ phần trăm gian lận.”
Private key được mã hóa giúp các giao dịch chuyển đi không cần đến hệ thống tập trung và tài
khoản phức tạp để tạo mối quan hệ số. Nếu cơ sở dữ liệu này yêu cầu hàng triệu đơ la để bảo mật
các giao dịch tài chính, thì đó là cơ hội cho blockchain.

14


3. LỊCH SỬ BLOCKCHAIN

Ý tưởng đằng sau công nghệ blockchain được mô tả ngay từ năm 1991 khi các nhà
nghiên cứu Stuart Haber và W. Scott Stornetta giới thiệu một giải pháp thực tế về mặt tính
tốn để đánh dấu thời gian các văn bản số để chúng không bị đề lùi ngày về trước hoặc can
thiệp vào[20]. Hệ thống đã sử dụng một chuỗi gồm các khối được bảo mật bằng mật mã để
lưu trữ các văn bản được đánh dấu thời gian, và năm 1992, các cây Merkle đã được tích
hợp vào thiết kế, khiến nó trở nên hiệu quả hơn bằng cách cho phép một khối có thể tập
hợp một vài văn bản. Tuy nhiên, công nghệ này đã không được sử dụng và bằng sáng chế
đã hết hạn vào năm 2004, bốn năm trước khi Bitcoin ra đời.
Năm 2004, nhà khoa học máy tính và người theo chủ nghĩa mật mã Hal Finney (Harold
Thomas Finney II) đưa ra một hệ thống gọi là RPoW, Proof Of Work Tái sử dụng. Hệ thống
hoạt động bằng cách nhận một Hashcash không thể thay đổi hoặc không thể thay thế dựa
trên token proof of work, và đổi lại đã tạo ra một token đã được ký RSA mà sau đó có thể
được trao đổi trực tiếp từ người này sang người khác. RPoW đã giải quyết vấn đề vì tiêu
dùng hai lần bằng cách lưu giữ quyền sở hữu các token đã đăng ký trên một máy chủ đáng
tin cậy; máy chủ này được thiết kế để cho phép người dùng trên tồn thế giới xác minh tính
chính xác và liêm chính trong thời gian thực. RPoW có thể được xem là một thử nghiệm ban
đầu và là những bước đầu tiên quan trọng trong lịch sử tiền điện tử.
Vào cuối năm 2008, cuốn sách trắng giới thiệu về hệ thống tiền mặt điện tử mạng
ngang hàng, phi tập trung – tên là Bitcoin – đã được đăng trên danh sách nhận thư về mật
mã học bởi một người hoặc tổ chức lấy biệt danh là Satoshi Nakamoto [16]. Dựa trên thuật
tốn proof of work Hashcash, nhưng thay vì sử dụng một hàm tính tốn dựa trên phần cứng
như RPoW, tính năng chống chi tiêu hai lần trong Bitcoin được cung cấp bởi một giao thức
mạng ngang hàng để theo dõi và xác thực các giao dịch. Nói ngắn gọn, các thợ đào “đào”
Bitcoin để nhận phần thưởng bằng cách sử dụng cơ chế proof-of-work và sau đó xác minh
bằng các node phi tập trung trong mạng. Vào ngày 3 tháng 1 năm 2009, Bitcoin ra đời khi
Satoshi Nakamoto đào được khối bitcoin đầu tiên, đem lại phần thưởng 50 bitcoin. Người
nhận Bitcoin đầu tiên là Hal Finney, ông ta nhận được 10 bitcoin từ Satoshi Nakamoto trong
giao dịch bitcoin đầu tiên của thế giới vào ngày 12 tháng 1 năm 2009.

15



Hình 2 Trong "Khối Nguyên Thủy", Satoshi Nakamoto để lại một thông điệp: "Tờ Times, ngày 03/01/2009, Thủ tướng đứng bên bờ vực phải
viện trợ ngân hàng lần thứ hai"[21].

4. KIẾN TRÚC BLOCKCHAIN
Một khối block sẽ được lưu trữ gồm 3 phần:
• Thành phần dữ liệu (Data): dữ liệu sẽ tùy thuộc vào từng loại blockchain. Chẳng
hạn như Blockchain của Bitcoin sẽ chứa giao dịch.
• Thành phần mã hóa (Hash): Hash của khối hiện tại như một đặc điểm để nhận
dạng. Nó là duy nhất và khơng trùng nhau giống như vân tay của chúng ta vậy.
• Thành phần mã hóa của node trước (Hash of previous block): các block này kết nối
với nhau thông qua mã hash của khối block trước tạo thành một chuỗi hệ thống
được gọi là Blockchain

16


Hình 3 Nội dung trong mỗi khối

5. NGUYÊN LÝ HOẠT ĐỘNG CỦA BLOCKCHAIN
5.1.

NGUYÊN LÝ MÃ HOÁ

Hệ thống Blockchain được thiết kế theo cách không yêu cầu sự tin cậy và bảo đảm bởi
độ tin cậy có được thơng qua các hàm mã hóa tốn học đặc biệt..
5.1.1. CRYPTOGRAPHY
- Cryptography
Cryptography là một phương pháp phát triển các kỹ thuật và giao thức để ngăn chặn

bên thứ ba truy cập và thu thập kiến thức về dữ liệu từ các thông điệp riêng tư trong quá
trình giao tiếp. Mật mã cũng được tạo thành từ hai thuật ngữ Hy Lạp cổ đại, Kryptos và
Graphein, thuật ngữ trước đây có nghĩa là "ẩn" và sau là "viết". Có một số thuật ngữ liên
quan đến mật mã, được nêu như sau:
Encryption: Nó là một quá trình chuyển từ bản rõ (văn bản bình thường) sang bản mã
(chuỗi bit ngẫu nhiên).
Decryption: Quá trình ngược mã hóa, chuyển đổi bản mã sang bản rõ.

17


Cipher: Hàm toán học, tức là một thuật toán mật mã được sử dụng để chuyển bản rõ
sang bản mã.
Key: Một lượng nhỏ thông tin được yêu cầu để tạo ra kết quả của thuật toán mật mã.
- Các loại Cryptography
Để hiểu cryptography trong blockchain , người ta phải hiểu các loại mật mã. Có ba cách
khác nhau mà chúng ta có thể thực hiện các thuật tốn mật mã, đó là mật mã khóa đối
xứng, mật mã khóa bất đối xứng và hàm băm.
- Symmetric-Key Cryptography: Trong phương pháp mã hóa này, ta đưa một khóa duy
nhất, tuy nhiên một khóa đơn chung sẽ tạo ra vấn đề chuyển khóa an tồn giữa người gửi
và người nhận. Nó cịn được gọi là Mật mã khóa bí mật.
- Asymmetric-Key Cryptography: Phương pháp mã hóa này sử dụng một cặp khóa,
khóa mã hóa và khóa giải mã, được đặt tên lần lượt là khóa cơng khai và khóa riêng. Cặp
khóa được tạo bởi thuật tốn này bao gồm một khóa riêng tư và một khóa cơng khai duy
nhất được tạo bằng cùng một thuật tốn. Nó cịn được gọi là Mật mã khóa cơng khai.
- Hash Functions: Loại mã hóa này khơng sử dụng khóa. Nó sử dụng một mật mã để
tạo ra một giá trị băm có độ dài cố định từ bản rõ. Gần như không thể khôi phục nội dung
của văn bản thuần túy từ bản mã.

18



Hình 4 Cryptography

5.1.2. HÀM BĂM VÀ TẦM QUAN TRỌNG
- Hàm băm
Băm là quá trình chuyển đổi đầu vào gồm các chữ cái và ký tự có kích thước khơng cố
định để tạo đầu ra có kích thước cố định; bằng cách sử dụng các cơng thức tốn học như
các hàm băm (được thực hiện dưới dạng các thuật toán băm) và rất cần thiết để quản lý
blockchain trong tiền điện tử.
Không phải hàm băm nào cũng sử dụng mật mã hóa, tuy nhiên cái gọi là hàm băm mật
mã hóa chính là cốt lõi của tiền mã hóa. Nhờ chúng mà blockchain và các hệ thống phân tán
khác có thể đạt được tính tồn vẹn và bảo mật của dữ liệu ở mức độ cao. Vì tính thơng
dụng của bảng băm, ngày nay, đa số ngơn ngữ lập trình đều cung cấp thư viện ứng dụng
bảng băm, thường gọi là thư viện collection trong đó có các vấn đề như: tập hợp (collection),
danh sách (list), bảng(table), ánh xạ (mapping), từ điển (dictionary). Thông thường, các lập
19


trình viên chỉ cần viết hàm băm cho các đối tượng nhằm tích hợp với thư viện bảng băm đã
được xây dựng sẵn.
SHA 256 : kết quả đầu vào bất kỳ cho ra kết quả đầu ra là 256 bit gồm 64 ký tự. Nó
được sử dụng ở mạng Bitcoin.
SHA 3 (Keccak-256): được sử dụng mạng Ethereum
Điều kiện của 1 hàm băm tốt:


Tính tốn nhanh.




Các khố được phân bố đều trong bảng.



Ít xảy ra đụng độ.



Xử lý được các loại khóa có kiểu dữ liệu khác nhau.

Hình 5 Hashing

- Tầm quan trọng của hàm băm
Các hàm băm truyền thống có nhiều trường hợp sử dụng, bao gồm tra cứu cơ sở dữ
liệu, phân tích tệp lớn và quản lý dữ liệu. Mặt khác, các hàm băm mật mã còn được sử dụng
rộng rãi trong các ứng dụng bảo mật thông tin, chẳng hạn như xác thực thông điệp và dấu

20


vân tay kỹ thuật số. Khi được sử dụng trong Bitcoin, các hàm băm mật mã là một phần thiết
yếu của q trình đào và cũng góp phần tạo ra các địa chỉ và khóa mới.
Băm thật sự là một công cụ mạnh mẽ khi cần xử lý một lượng thơng tin lớn. Ví dụ,
chúng ta có thể chạy một tệp hoặc tập dữ liệu lớn thông qua hàm băm và sau đó sử dụng
kết quả đầu ra từ của nó để nhanh chóng xác minh tính chính xác và tính tồn vẹn của dữ
liệu. Điều này là có thể bởi vì tính chất tất định của các hàm băm: đầu vào sẽ luôn dẫn đến
một đầu ra ngắn gọn, đơn giản hóa (băm). Nhờ vào kỹ thuật này, sẽ khơng cịn phải lưu trữ
và “ghi nhớ” một lượng thơng tin lớn nữa.
Băm là quy trình đặc biệt hữu ích trong cơng nghệ blockchain. Blockchain Bitcoin có

một số hoạt động sử dụng quy trình băm, hầu hết các hoạt động đó là trong q trình đào.
Trên thực tế, gần như tất cả các giao thức tiền mã hóa đều dựa vào băm để liên kết và rút
gọn các nhóm giao dịch thành các khối và cũng để tạo ra các liên kết mật mã giữa mỗi khối,
tạo ra một blockchain một cách hiệu quả.
5.1.3. CHỮ KÍ SỐ
Chữ kí số là sự kết hợp của kĩ thuật hashing với asymmetric encryption. Message đầu
vào, trước tiên sẽ được hash, và sau đó thì được mã hóa tiếp với private key của người
gửi. Đầu ra sẽ là chứ kí, được gửi kèm với message.
Bên nhận sẽ sử dụng public key được bên gửi cung cấp đề decrypt ra mã hash của
chữ kí, và sau đó message cũng lại được hash để so sánh với chuỗi vừa decrypt kia. Trong
trường hợp ta biết chắc public key là chính xác (là key chuẩn do bên gửi tạo ra), và việc
decrypt thành cơng, vậy thì ta có thể đảm bảo message vừa nhận được chính xác là
message do bên gửi đưa tới. Và nếu mã hash lấy được khớp với mã hash khi ta hashing
message, vậy ta có thể đảm bảo tiếp sự tồn vẹn của message.
Để có thể thực hiện các giao dịch trên blockchain, bạn cần một ví tiền điện tử, đây là
một chương trình phần mềm sẽ cho phép bạn lưu trữ và trao đổi các đồng Bitcoin của bạn.
Vì chỉ có bạn mới có thể chi tiêu các đồng Bitcoin của mình do vậy mỗi chiếc ví tiền điện tử
này được bảo vệ bằng một phương pháp mã hóa đặc biệt sử dụng một cặp khóa bảo mật
duy nhất: khóa riêng tư (private key) và khóa cơng khai (public key).

21


Nếu một thơng điệp được mã hóa bằng một khóa cơng khai cụ thể thì chỉ chủ sở hữu
của khóa riêng tư là một cặp với khóa cơng khai này mới có thể giải mã và đọc nội dung
thơng điệp. Khi David muốn gửi Bitcoin, anh ta cần phát một thơng điệp được mã hóa bằng
khóa riêng của ví điện tử của mình, vì thế anh ta chỉ có thể dùng Bitcoin mà anh ta sở hữu
vì David là người duy nhất biết khóa riêng tư của anh cần thiết để mở ví điện tử của mình.
Mỗi nút trong mạng có thể kiểm tra chéo các yêu cầu giao dịch được gửi từ David là chính
xác hay khơng bằng cách giải mã thơng điệp u cầu giao dịch bằng khóa cơng khai của

David.

Hình 6 Digital Signature transaction encryption simplified [22]

5.1.4. MERKLE TREE AND MERKLE ROOT
- Câu chuyện về Merkle Tree bắt đầu từ năm 1979 với một thanh niên tên Ralph
Merkle. Khi còn học tại trường đại học Stanford, Merkle đã viết một bài báo học thuật có
tên là “Chữ ký số được chứng nhận” “A Certified Digital Signature”. Nói cách khác, anh ta
đã thiết kế một quy trình xác minh dữ liệu cho phép máy tính thực hiện cơng việc của mình
nhanh hơn nhiều so với trước đây.

22


- Ý tưởng của Merkle, hiện được biết đến với tên Merkle Tree, đã cách mạng hóa thế
giới mã hóa bằng cách mở rộng cách thức mà giao thức máy tính mã hóa hoạt động. Trên
thực tế, Merkle Tree được nhắc đến nhiều lần trong bài luận năm 2008 của Satoshi
Nakamoto để giới thiệu Bitcoin với thế giới. Chúng cũng được sử dụng rộng rãi trong mã
Bitcoin.

Hình 7 Merkle Tree ví dụ

- Vậy, Merkle Tree là gì? Hiểu một cách đơn giản, Merkle Tree là một phương pháp
cấu trúc dữ liệu cho phép một khối lượng lớn thông tin được xác minh tính chính xác cực kỳ
nhanh chóng và hiệu quả.
- Bây giờ ta xem xét nó trên blockchain. Đầu tiên, điều quan trọng cần lưu ý là mỗi giao
dịch trên một blockchain có ID giao dịch là duy nhất. Với hầu hết các blockchain, mỗi ID giao
dịch là một mã 64 ký tự chiếm 256 bit (32 byte) bộ nhớ.
- Các blockchain thường được tạo thành từ hàng trăm nghìn khối, mỗi khối chứa tới
vài nghìn giao dịch, bạn có thể tưởng tượng khơng gian bộ nhớ trở thành vấn đề như thế

nào. Do đó, nó tối ưu hóa để sử dụng càng ít dữ liệu càng tốt khi xử lý và xác minh giao dịch.
Điều này giảm thiểu thời gian xử lý CPU đồng thời đảm bảo mức độ bảo mật cao nhất.
- Đó chính xác là những gì Merkle Tree làm. Một cách đơn giản, Merkle Tree lấy một
số lượng lớn ID giao dịch và đưa chúng qua một quy trình tốn học dẫn đến một mã 64 ký
tự.
23


×