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

Nghiên cứu công nghệ blockchain và ứng dụng trong vấn đề sở hữu bản quyền điện tử

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.51 MB, 82 trang )

BỘ GI BỘ GIÁO DỤC VÀ ĐÀO TẠO

UBND TỈNH THANH HĨA

TRƯỜNG ĐẠI HỌC HỒNG ĐỨC

VŨ VĂN DŨNG

NGHIÊN CỨU CƠNG NGHỆ BLOCKCHAIN
VÀ ỨNG DỤNG TRONG VẤN ĐỀ SỞ HỮU
BẢN QUYỀN ĐIỆN TỬ

LUẬN VĂN THẠC SĨ MÁY TÍNH

THANH HĨA, NĂM 2022



BỘ GIÁO DỤC VÀ ĐÀO TẠO

UBND TỈNH THANH HÓA

TRƯỜNG ĐẠI HỌC HỒNG ĐỨC

VŨ VĂN DŨNG

NGHIÊN CỨU CÔNG NGHỆ BLOCKCHAIN
VÀ ỨNG DỤNG TRONG VẤN ĐỀ SỞ HỮU
BẢN QUYỀN ĐIỆN TỬ

LUẬN VĂN THẠC SĨ MÁY TÍNH



Chun ngành: Khoa học máy tính
Mã số: 8480101

Người hướng dẫn khoa học: PGS.TS. Trịnh Viết Cường

THANH HÓA, NĂM 2022
Danh sách Hội đồng đánh giá luận văn Thạc sỹ khoa học


(Theo Quyết định số:

/QĐ- ĐHHĐ ngày tháng

năm 2022

của Hiệu trưởng Trường Đại học Hồng Đức)
Học hàm, học vị

Cơ quan

Chức danh

Họ và tên

Công tác

trong Hội đồng
Chủ tịch HĐ
UV, Phản biện 1

UV, Phản biện 2
Uỷ viên
Uỷ viên, Thư ký

Xác nhận của Người hướng dẫn
Học viên đã chỉnh sửa theo ý kiến của Hội đồng
Ngày tháng

năm 2022



LỜI CAM ĐOAN
Tôi xin cam đoan Luận văn “Nghiên cứu công nghệ Blockchain và
ứng dụng trong vấn đề sở hữu bản quyền điện tử” là cơng trình nghiên cứu
của riêng tôi dưới sự hướng dẫn của PGS.TS Trịnh Viết Cường. Luận văn
này khơng trùng lặp với các khóa luận, luận văn, luận án và các cơng trình
nghiên cứu đã cơng bố.
Thanh Hoá, ngày 12 tháng 9 năm 2022
Người cam đoan

Vũ Văn Dũng

i


LỜI CẢM ƠN
Đề tài “Nghiên cứu công nghệ Blockchain và ứng dụng trong vấn đề
sở hữu bản quyền điện tử” là nội dung tôi chọn để nghiên cứu và làm luận
văn tốt nghiệp sau hai năm theo học chương trình cao học chuyên ngành Khoa

học máy tính tại trường Đại học Hồng Đức.
Để hồn thành q trình nghiên cứu và hồn thiện luận văn này, lời đầu
tiên tơi xin chân thành cảm ơn sâu sắc đến thầy giáo PGS.TS Trịnh Viết Cường
thuộc Khoa Công Nghệ thông tin và Truyền thông – Trường Đại học Hồng
Đức, thầy đã trực tiếp chỉ bảo và hướng dẫn tơi trong suốt q trình nghiên cứu
để tơi hồn thiện luận văn này.
Nhân dịp này, tơi cũng xin cảm ơn Khoa Công Nghệ thông tin và Truyền
thông, Trường Đại học Hồng Đức, lãnh đạo và các anh chị đang công tác tại
khoa đã tạo điều kiện và thời gian cho tơi trong suốt q trình nghiên cứu.
Cuối cùng, tôi xin cảm ơn những người thân, bạn bè đã ln bên tơi, động
viên tơi hồn thành khóa học và bài luận văn này.
Trân trọng cảm ơn!
Thanh Hoá, ngày 12 tháng 9 năm 2022
Tác giả luận văn

Vũ Văn Dũng

ii


MỤC LỤC
LỜI CAM ĐOAN ....................................................................................... - 1 LỜI CẢM ƠN .................................................................................................. ii
MỤC LỤC ....................................................................................................... iii
DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT ................................... v
DANH MỤC BẢNG BIỂU ............................................................................ vi
MỞ ĐẦU .......................................................................................................... 1
1. Lý do chọn đề tài ........................................................................................... 1
2. Mục tiêu nghiên cứu ...................................................................................... 2
3. Nội dung nghiên cứu ..................................................................................... 2
4. Tổng quan luận văn ....................................................................................... 2

Chương 1. GIỚI THIỆU TỔNG QUAN VỀ CƠNG NGHỆ
BLOCKCHAIN VÀ BÀI TỐN SỞ HỮU BẢN QUYỀN ĐIỆN TỬ ........ 4
1.1. Giới thiệu công nghệ Blockchain ............................................................... 4
1.1.1. Khối - Block ............................................................................................ 4
1.1.2. Node mạng – Người dùng ....................................................................... 4
1.1.3. Hàm băm và chữ ký điện tử .................................................................... 5
1.1.4. Tạo mới Block ......................................................................................... 6
1.2. Sở hữu bản quyền điện tử......................................................................... 10
1.2.1. Lịch sử phát triển của NFT ................................................................... 13
1.2.2. Nguyên lý hoạt động của NFT .............................................................. 15
1.2.3. Hoạt động của NFT ............................................................................... 16
1.2.4. Xu hướng phát triển của NFT ............................................................... 21
Kết luận chương 1 ........................................................................................... 22
Chương 2. GIẢI PHÁP KỸ THUẬT XÂY DỰNG ỨNG DỤNG SỞ HỮU
BẢN QUYỀN ĐIỆN TỬ ............................................................................... 23
2.1. Các kỹ thuật cần thiết để xây dựng ứng dụng sở hữu bản quyền điện tử .... 23
iii


2.2. Giao thức đồng thuận ............................................................................... 24
2.3. Chữ ký điện tử và ứng dụng chứng thực số ............................................. 27
2.3.1. Xây dựng ứng dụng chứng thực số bằng phương pháp truyền thống... 27
2.3.2. Dùng hệ chữ ký điện tử dựa trên định danh .......................................... 35
Kết luận chương 2 ........................................................................................... 39
Chương 3. XÂY DỰNG THỬ NGHIỆM ỨNG DỤNG SỞ HỮU BẢN
QUYỀN ĐIỆN TỬ......................................................................................... 39
3.1. Các chức năng và giải pháp kỹ thuật lựa chọn ........................................ 39
3.2. Mô tả hệ thống ......................................................................................... 42
3.2.1. Các chức năng chính của hệ thống........................................................ 43
3.2.2. Thiết kế cơ sở dữ liệu ............................................................................ 43

3.3. Mô tả các chức năng của hệ thống ........................................................... 49
3.3.1. Đăng ký, đăng nhập tài khoản............................................................... 49
3.3.2. Chức năng đăng ký bản quyền .............................................................. 51
3.3.3. Chức năng cấp bản quyền ..................................................................... 53
3.3.4 Chức năng giao dịch bản quyền ............................................................. 55
3.4. Xây dựng chức năng Block của hệ thống ................................................ 59
3.4.1 Tạo Leader.............................................................................................. 59
3.4.2. Tạo block ............................................................................................... 61
3.4.3. Chứng thực block .................................................................................. 63
3.4.4 Chức năng giao dịch tiền trong hệ thống ............................................... 64
Kết luận chương 3 ........................................................................................... 65
KẾT LUẬN VÀ KIẾN NGHỊ ..................................................................... 66
1. Kết luận........................................................................................................65
2. Kiến nghị.....................................................................................................65
TÀI LIỆU THAM KHẢO ............................................................................ 67

iv


DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT
Các từ
viết tắt

Nghĩa tiếng Anh

BLOCK
DSS
ECDSA

Nghĩa tiếng Việt

Khối

Digital Standard Signature
Elliptic

Curve

Digital

Signature Algorithm

Chuẩn chữ ký điện tử
Hệ chữ ký điện tử ECDSA

POS

Proof of Work

Bằng chứng cơng việc

POW

Proof of Stake

Bằng chứng cổ phần
Node có đầy đủ chức năng

FULL NODE

Node chỉ có chức năng đào


MINER NODE

tiền ảo
Node sử dụng dịch vụ của hệ

CLIENT NODE
SHA

thống
Secure Hash Algorithm

BLOCKCHAIN

Họ hàm băm SHA
Chuỗi khối

NFT

Non-Fungible Token

CA

Center Authority

Chứng nhận không thể thay
thế lẫn nhau
Trung tâm chứng thực số

v



DANH MỤC BẢNG BIỂU

Hình 1.1 Chuỗi khối. (Nguồn: Internet)........................................................... 7
Hình 1.2 Bảng phân bố các Pool. (Nguồn: Internet)......................................... 7
Hình 1.3 Lưu giá trị băm dùng cây Merkle. (Nguồn: Internet). ....................... 9
Hình 1.4: Fungible và Non-Fungible (nguồn Internet) ................................... 12
Hình 1.5: NFT CryptoPunks (nguồn Internet) ................................................ 14
Hình 1.6: 'Quantum' được Sotheby's đưa ra đấu giá (nguồn Internet) ............ 15
Hình 1.7: Chợ NFT OpenSea cho phép bạn kết nối ví và đăng tải hình ảnh hoặc
file bạn muốn biến thành NFT (nguồn Internet) ............................................. 17
Hình 2.1 : Mơ hình hoạt động giữa người dùng, CA, RA và VA (nguồn Internet)
......................................................................................................................... 30
Hình 2.2 : Mơ hình phân cấp CA (nguồn Intertnet) ........................................ 31
Hình 2.3 : Mơ hình hoạt động của hệ thống phân cấp CA (nguồn Internet) .. 32
Hình 3.1: Mơ hình Client/Server và mơ hình Peer to Peer (nguồn Internet) .. 41
Hình 3.2: Quan hệ giữa các bảng .................................................................... 49
Hình 3.3: Đăng ký tài khoản ........................................................................... 50
Hình 3.4: Đăng nhập tài khoản ....................................................................... 50
Hình 3.5: Tạo khóa cho tài khoản ................................................................... 51
Hình 3.6: Upload file thành cơng .................................................................... 52
Hình 3.7: Upload file thất bại.......................................................................... 53
Hình 3.8: Hàm up load file .............................................................................. 53
Hình 3.9: Hàm kiểm tra ảnh mới upload đã có chưa ...................................... 53
Hình 3.10: Hàng chờ xác thực ........................................................................ 54
Hình 3.11: Danh sách File cần xác thực ......................................................... 54
vi



Hình 3.12: Danh sách File đã xác thực ........................................................... 55
Hình 3.13: Cài đặt bán bản quyền ................................................................... 56
Hình 3.14: Thơng tin giao dịch ....................................................................... 56
Hình 3.15: Thơng tin giao dịch ....................................................................... 57
Hình 3.16: Thơng tin giao dịch ....................................................................... 57
Hình 3.17: Hàm ghi giao dịch ......................................................................... 58
Hình 3.18: Đoạn chương trình cập nhật giao dịch .......................................... 58
Hình 3.19: Chuyển tiền qua lại giữa các người dùng ..................................... 59
Hình 3.20: Thơng tin của Block ...................................................................... 60
Hình 3.21: Tạo Block ...................................................................................... 60
Hình 3.22: Tạo Leader .................................................................................... 61
Hình 3.23: Chương trình tạo Block................................................................. 62
Hình 3.24: Tạo block....................................................................................... 62
Hình 3.25: Thơng báo tạo block...................................................................... 63
Hình 3.26: Thơng báo tạo block...................................................................... 63
Hình 3.27: Thơng tin block ............................................................................. 63
Hình 3.28. Hệ thống sẽ chuyển tiền thưởng cho người dùng ......................... 64
Hình 3.29. Thơng tin ví và giao dịch .............................................................. 64

vii


ii


MỞ ĐẦU
1. Lý do chọn đề tài
Chuyển đổi số (Digital transformation) là việc áp dụng công nghệ kỹ thuật
số để chuyển đổi các dịch vụ hoặc tổ chức, doanh nghiệp thơng qua việc thay
thế các quy trình phi kỹ thuật số hoặc quy trình thủ cơng bằng các quy trình kỹ

thuật số hoặc thay thế công nghệ kỹ thuật số cũ bằng công nghệ kỹ thuật số
mới hơn. Các giải pháp kỹ thuật số được áp dụng làm gia tăng tính hiệu quả
của tổ chức, doanh nghiệp thơng qua tự động hóa, các loại hình đổi mới và
sáng tạo mới, thay vì chỉ đơn giản là nâng cao và hỗ trợ các phương pháp truyền
thống.
Trong bối cảnh của cuộc cách mạng Công nghiệp lần thứ 4, chuyển đổi
số là xu thế tất yếu, diễn ra rất nhanh. Chuyển đổi số sẽ thay đổi toàn diện cách
thức hoạt động của tổ chức, doanh nghiệp, tăng hiệu quả hợp tác, tối ưu hóa
quy trình, tối ưu hóa hiệu suất làm việc, tăng tính tương tác và mang lại nhiều
giá trị cho khách hàng, đồng thời cũng đặt ra nhiều thách thức đối với các cấp,
các ngành và địa phương. Trong đó để thực hiện mục tiêu chuyển đổi số của
chính phủ, ta cần phải chuyển đổi các nghiệp vụ xử lý trên giấy tờ thành thực
hiện trên phần mềm, trong đó dữ liệu cần được số hóa. Trong các loại nghiệp
vụ của chính phủ vấn đề bản quyền là một trong các loại nghiệp vụ quan trọng.
Bản quyền ở đây có thể kể tới như bản quyền về tác phẩm nghệ thuật, bản
quyền về sở hữu nhà đất, tài sản, … Tuy nhiên với tính chất đặc biệt nhạy cảm
của bản quyền điện tử, công nghệ cơ sở dữ liệu tập trung hiện nay chưa thực
sự đáp ứng được yêu cầu. Công nghệ Blockchain ra đời gần đây với các tính
chất đặc biệt sau đã giải quyết tốt được bài toán sở hữu bản quyền điện tử:
Tính khơng thay đổi được của dữ liệu: Dữ liệu trên Blockchain được lưu
vào các khối riêng biệt nối tiếp nhau theo dịng thời gian (ví dụ ta có thể quy
định dữ liệu trong một ngày là một khối). Ngoài ra dữ liệu một khi đã được xác
minh và lưu vào trong các khối (Block) thì không thể thay đổi được. Khi áp
1


dụng vào bài toán sở hữu bản quyền điện tử thì khơng cá nhân nào có thể tự ý
thay đổi được giấy tờ, bản quyền sở hữu. Điều này đã giải quyết được vấn đề
lớn nhất trong sở hữu bản quyền điện tử khi dùng cơ sở dữ liệu tập trung trước
đây, do người quản trị của cơ sở dữ liệu có tồn quyền đối với cơ sở dữ liệu

nên dễ dàng trong việc chỉnh sửa, thay đổi thông tin. Bên cạnh đó kẻ tấn cơng
bên ngồi cũng khơng có khả năng thêm bớt thông tin vào cơ sở dữ liệu khi
dùng Blockchain.
An toàn cơ sở dữ liệu: Dữ liệu trong ứng dụng dựa trên công nghệ
Blockchain được lưu vào các khối và các khối này lại được lưu ở các node
mạng. Như vậy kẻ tấn cơng khơng có khả năng để tấn công ở tất cả các node
mạng cùng lúc. Điều này đảm bảo rằng dữ liệu của toàn hệ thống sẽ ln được
đảm bảo an tồn khơng có sự mất mát thông tin.
Với những lý do trên việc xây dựng hệ thống sở hữu bản quyền điện tử
dựa trên nền tảng cơng nghệ Blockchain là có tính thời sự và cấp thiết, do đó
học viên đã lựa chọn đề tài “Nghiên cứu công nghệ Blockchain và ứng dụng
trong vấn đề sở hữu bản quyền điện tử” làm đề tài luận văn của mình
2. Mục tiêu nghiên cứu
Mục tiêu nghiên cứu của đề tài là nghiên cứu công nghệ blockchain và
bài toán sở hữu bản quyền điện tử, nghiên cứu chữ ký điện tử, chứng thực số,
hàm băm, việc áp dụng kỹ thuật chữ ký điện tử vào bài toán sở hữu bản quyền
điện tử.
3. Nội dung nghiên cứu
Nội dung nghiên cứu của đề tài bao gồm:
- Nghiên cứu cơng nghệ Blockchain
- Nghiên cứu bài tốn sở hữu bản quyền điện tử.
- Nghiên cứu ứng dụng công nghệ Blockchain, kỹ thuật chữ ký điện tử và
chứng thực số trong xây dựng ứng dụng sở hữu bản quyền điện tử.
4. Tổng quan luận văn
2


Luận văn bao gồm ba chương
Chương 1: Giới thiệu tổng quan về cơng nghệ Blockchain và bài tốn sở
hữu bản quyền điện tử

Nội dung của chương trình bày về cơng nghệ Blockchain và bài toán sở hữu
bản quyền điện tử hiện nay.
Chương 2: Giải pháp kỹ thuật xây dựng ứng dụng sở hữu bản quyền điện tử
Nội dung của chương trình bày về các giải pháp kỹ thuật cần có như kỹ thuật
chữ ký điện tử, ứng dụng chứng thực số, công nghệ Blockchain để xây dựng
thành công ứng dụng sở hữu bản quyền điện tử.
Chương 3: Xây dựng thử nghiệm ứng dụng sở hữu bản quyền điện tử
Nội dung của chương trình bày việc áp dụng một giải pháp kỹ thuật cụ thể
để xây dựng thử nghiệm ứng dụng sở hữu bản quyền điện tử.

3


Chương 1. GIỚI THIỆU TỔNG QUAN VỀ CÔNG NGHỆ
BLOCKCHAIN VÀ BÀI TOÁN SỞ HỮU BẢN QUYỀN ĐIỆN TỬ
1.1. Giới thiệu công nghệ Blockchain
1.1.1. Khối - Block
Trong công nghệ Blockchain [1] dữ liệu được lưu vào các khối (Block)
theo dòng thời gian, tùy hệ thống ta quy định bao nhiêu lâu sẽ tạo ra một Block
mới, ví dụ như hệ thống tiền ảo Bitcoin khoảng 10 phút sẽ tạo ra một Block
mới. Dữ liệu hệ thống phát sinh trong khoảng thời gian này sẽ được ghi vào
Block đó. Dữ liệu của toàn bộ hệ thống sẽ bao gồm tất cả các Block móc nối
với nhau theo thứ tự thời gian (do đó được gọi là Blockchain – chuỗi khối).
Block đầu tiên Block số 0 được gọi là Block khởi tạo.
1.1.2. Node mạng – Người dùng
Về cơ bản trong công nghệ Blockchain nói chung có hai dạng Node mạng
(hay có thể hiểu là người dùng). Dạng thứ nhất là Full Node (người dùng chủ
chốt – active user) có chức năng chứa tồn bộ dữ liệu của hệ thống (tất cả các
khối), ngoài ra nó cịn đóng vai trị trong việc tạo ra Block mới thông qua cơ
chế đồng thuận của hệ thống. Dạng thứ hai là Node thông thường (người dùng

thông thường) đăng ký tài khoản trên hệ thống và dùng các chức năng được
cung cấp bởi hệ thống.
Ví dụ như trong hệ thống tiền ảo Bitcoin, Full Node cịn có thể phân ra
làm hai chức năng: chứa dữ liệu và tạo Block mới. Node mà chỉ tạo Block mới
mà không chứa dữ liệu còn được gọi là Miner node (node đào Bitcoin). Node
thông thường là người dùng thông thường đăng ký một tài khoản (ví điện tử)
sau đó thực hiện các giao dịch thông thường, người dùng này không tham gia
vào việc chứa dữ liệu của hệ thống hay tạo Block mới.

4


1.1.3. Hàm băm và chữ ký điện tử
Giả sử  là tập hợp tất cả các văn bản có thể có (tất nhiên, trong một
lĩnh vực nào đó), và  là tập hợp tất cả các bản “ tóm lược ” có thể được sử
dụng. Việc tìm cho mỗi văn bản một bản tóm lược tương ứng xác định một
hàm h :    . Một hàm h như vậy người ta gọi là một hàm băm (hash
function). Thông thường,  là tập hợp các dãy bit có độ dài tuỳ ý, và  là tập
hợp các dãy bit có một độ dài n cố định, nên người ta cũng định nghĩa hàm
băm là các hàm h : {0,1}*  {0,1}n . Trong nhiều trường hợp  hay  có thể là
các tập tùy ý.
Dùng hàm băm h, ta xem z = h ( x ) là “ tóm lược ” của x, đại diện
cho x.
Một vấn đề được đặt ra là: vậy hàm h phải thoả mãn những điều kiện gì
để h(x) xứng đáng được xem là đại diện của x? Hai điều kiện sau đây thường
được người ta xem là hai điều kiện chủ yếu cho một hàm băm:
1. Hàm băm phải là hàm một phía, nghĩa là cho x tính z = h (x) là việc
dễ, nhưng ngược lại, biết z tính x là việc cực khó (có thể quy ước dễ hay khó
theo nghĩa tính được trong thời gian hiệu quả hay không).
2. Hàm băm phải là hàm không va chạm mạnh theo nghĩa sau đây: khơng

có thuật tốn tính được trong thời gian hiệu quả giải bài tốn “ tìm x1 và x2
thuộc  sao cho x1  x2 và h (x1) = h (x2) ”; nói cách khác, tìm hai văn bản
khác nhau có cùng một đại diện là cực kỳ khó.
(Cịn có một khái niệm không va chạm yếu được định nghĩa như sau:
Cho x thuộc  . Hàm h là không va chạm yếu đối với x nếu rất khó tìm được
x' mà h(x)= h( x' )).
Khác với chữ ký truyền thống vốn được ký lên giấy cũng như dạng chữ
ký được tạo ra bằng một hình ảnh rồi copy lên một văn bản điện tử, chữ ký điện
tử là một công nghệ mới cho phép người dùng thực hiện các thao tác ký lên
5


một văn bản điện tử hoặc xác thực chữ ký của một người dùng khác trên một
văn bản điện tử. Một khi dữ liệu (văn bản, hình ảnh, tài liệu video,…) đã được
ký bởi chủ thể của nó, bất kỳ sự thay đổi có chủ đích của một người dùng khác
lên dữ liệu đều bị phát hiện và do vậy dữ liệu đã bị thay đổi nội dung sẽ được
xem là khơng hợp lệ. Mỗi người dùng có một cặp khóa cơng khai và bí mật,
để ký người dùng dùng khóa bí mật do đó chỉ có duy nhất người dùng có khả
năng ký chữ ký của mình. Để kiểm tra chữ ký dùng khóa cơng khai, do đó ai
cũng có thể kiểm tra được chữ ký của người dùng.
1.1.4. Tạo mới Block
Trong cơng nghệ Blockchain nói chung các Full Node (người dùng chủ
chốt) sẽ phối hợp với nhau theo một cơ chế nào đó để tạo ra Block mới, cơ chế
như vậy gọi là cơ chế đồng thuận (Algorithm concensus). Hiện nay có hai cơ
chế đồng thuận được dùng phổ biến trong các hệ thống là cơ chế đồng thuận
dựa trên bằng chứng công việc (proof of work - PoW) và cơ chế đồng thuận
dựa trên bằng chứng cổ phần (proof of Stake - PoS). Với cơ chế đồng thuận
PoS hiện nay có rất nhiều phiên bản khác nhau, trong đó hai phiên bản được
dùng phổ biến nhất hiện nay là Algorand [2] và Ouroboros [3,4,5].
Proof of Work

Với cơ chế này, việc tạo ra một Block mới mà có thể kết nối vào được
hệ thống tương đương với việc giải một bài tốn khó. Tất cả các Full Node (cụ
thể là các Miner node) đều tham gia vào việc giải bài tốn khó này, và ai giải
được bài tốn khó này trước thì có quyền tạo ra Block mới. Như vậy đồng
thuận ở đây có nghĩa là ai giải được bài tốn trước thì người đó chiến thắng
trong việc giành quyền tạo Block mới (được nhận giải thưởng).

6


Hình 1.1 Chuỗi khối. (Nguồn: Internet).
Bài tốn khó ở đây được mơ tả như sau. Mỗi khối sẽ có một số thông tin cơ
bản gọi là Block Header như trên Hình 1, bao gồm: giá trị băm của Block
Header của khối trước đó, thời gian khi tạo ra khối (Timestamp), giá trị None,
giá trị băm tóm lược của dữ liệu chứa trên khối (Merkle Root Hash). Giả sử ta
đã có Block 01, bài tốn đặt ra là hãy đi tìm Block 02 sao cho giá trị băm của
Block Header của Block 02 có số số 0 lớn hơn hoặc bằng một giá trị cho trước
(gọi là difficulty_value). Cụ thể tìm Block 02 sao cho:
Hash(Block Header 02) = 000000xysff876efhgjuti8933621….
Ở ví dụ trên ta đặt difficulty_value = 6. Lưu ý rằng giá trị của hàm băm là ngẫu
nhiên và duy nhất đối với từng đầu vào. Trong các giá trị của Block Header thì
các giá trị khác là khơng thay đổi, chỉ riêng giá trị None là có thể thay đổi. Do
đó bài tốn khó về bản chất là hãy đi tìm số None sao cho giá trị băm của Block
Header của Block 02 có số số 0 lớn hơn hoặc bằng một giá trị cho trước. Full
Node nào tìm ra số None trước thỏa mãn điều kiện trên thì sẽ là người chiến
thắng và có quyền tạo ra Block mới.

Hình 1.2 Bảng phân bố các Pool. (Nguồn: Internet).
7



Để giải nhanh được bài tốn khó này ta phải dựa vào hai yếu tố chính là thuật
tốn và sức mạnh của máy tính. Với thuật tốn thì thơng thường là phổ biến và
tương tự nhau, nên yếu tố chính ở đây là sức mạnh của máy tính. Do đó các Miner
node thường có xu hướng là liên kết lại với nhau (gọi là Mining Pool) để cùng
phối hợp giải bài tốn. Hình 2 mơ tả thị phần của các Mining Pool hiện nay.
Tính khơng thay đổi được của dữ liệu. Dễ thấy rằng nếu ta thay đổi
dữ liệu trên Block các Block phía trước nó cũng phải thay đổi theo. Cụ thể nếu
ta thay đổi dữ liệu trên Block 01, sẽ dẫn đến giá trị băm tóm lược (Merkle Root
Hash) của dữ liệu chứa trên Block 01 thay đổi theo, sẽ dẫn tiếp đến giá trị Block
Header 01 thay đổi hay giá trị băm Hash(Block Header 01) thay đổi. Do vậy
giá trị băm Hash(Block Header 02) cũng phải thay đổi theo vì giá trị băm
Hash(Block Header 01) là một thành phần của Block Header 02. Do đó giá trị
băm Hash(Block Header 02) khơng cịn thỏa mãn điều kiện là có số số 0 lớn
hơn hoặc bằng một giá trị cho trước, hay nói cách khác để thay đổi dữ liệu trên
Block 01 ta lại phải đi giải các bài tốn tìm Block 02, Block 03, … Ngồi ra
lưu ý rằng theo quy định các node mạng sẽ chấp nhận Blockchain nào có số
Block dài nhất. Như vậy để thay đổi dữ liệu của Block 01, kẻ tấn công phải
giải một loạt các bài tốn tìm Block 02, Block 03, … sao cho chuỗi Blockchain
mà nó tạo ra phải dài hơn chuỗi hiện có. Tức là nó phải trong một cuộc đua
giải bài toán với tất cả các Miner node cịn lại trong hệ thống trong khi bản
thân nó đã bị chậm chân hơn vì phải đi giải thêm các bài tốn tốn tìm Block
02, Block 03, …
Điều này dẫn đến sự bất khả thi cho bất kỳ ai muốn thay đổi dữ liệu trên
Blockchain.
Lưu trữ dữ liệu trong Blockchain. Để tăng tính hiệu quả ta thường
khơng lưu tồn bộ dữ liệu gốc trên từng Block, mà thay vì đó ta chỉ lưu giá trị
băm tóm lược của dữ liệu trên từng Block. Dữ liệu thực sự của các Block có

8



thể được lưu ở các Server với các cơ chế sao lưu cần thiết. Lưu ý rằng bất kỳ ai
thay đổi dữ liệu đều bị phát hiện vì điều đó sẽ dẫn đến khơng khớp với giá trị

băm tóm lược của dữ liệu trên từng Block. Cụ thể để lưu giá trị băm tóm
lược của dữ liệu ta dùng kỹ thuật cây Merkle như hình 3.

Hình 1.3 Lưu giá trị băm dùng cây Merkle. (Nguồn: Internet).
Giả sử dữ liệu là các giao dịch Tx0, Tx1, Tx2, Tx3. Ta thiết kế các hàm băm
như hình 3, và chỉ lưu giá trị băm ở gốc (Root) vào Block. Với bất kỳ thay đổi
nào ở dữ liệu Tx0, Tx1, Tx2 hay Tx3 thì đều dẫn tới thay đổi ở giá trị băm ở
gốc, do đó đều bị phát hiện. Ví dụ nếu thay đổi dữ liệu Tx0 thành Tx0’, sẽ dẫn
tới giá trị H0 thay đổi, dẫn tiếp tới H4 thay đổi và do đó giá trị Root thay đổi.
Tính ẩn danh và Đưa dữ liệu vào Block. Mỗi người dùng tham gia hệ
thống (tùy ứng dụng cụ thể trong thực tế) thường có một cặp khóa cơng khai
9


và bí mật. Khóa cơng khai chính là đại diện cho người dùng đó, ví dụ trong hệ
thống Bitcoin, khóa cơng khai chính là địa chỉ của ví điện tử (hay số tài khoản
của người dùng). Do khóa cơng khai chỉ là các con số nên người dùng hoàn
toàn ẩn danh. Để đưa dữ liệu lên Block, người dùng sẽ dùng khóa bí mật để ký
xác nhận lên dữ liệu rồi gửi cho tất cả các Full Node. Full Node nào có quyền
tạo ra Block mới sẽ kiểm tra dữ liệu bằng cách kiểm tra chữ ký điện tử của
người dùng, nếu đúng sẽ đưa dữ liệu này vào Block. Ví dụ trong hệ thống
Bitcoin, khi Alice muốn chuyển tiền cho Bob, Alice sẽ tạo một giao dịch
chuyển tiền, ký điện tử lên giao dịch đó. Full Node sẽ kiểm tra chữ ký của
Alice, nếu hợp lệ sẽ đưa giao dịch đó vào Block.
Proof of Stake

Trong cơ chế đồng thuận Proof of Work ở trên, điểm yếu lớn nhất là để
tìm ra Block mới ta phải tiêu tốn một lượng tài ngun máy tính rất lớn để giải
bài tốn. Một Mining Pool lớn có thể ngốn điện năng bằng cả một thành phố.
Do đó cơ chế đồng thuận đang được quan tâm gần đây là dựa trên bằng chứng
cổ phần (Proof of stake). Ý tưởng đơn giản là mỗi Full Node tham gia hệ thống
sẽ có một lượng cổ phần tương ứng, lượng cổ phần có thể khác nhau tùy từng
Full Node, do từng ứng dụng quy định. Khi tạo mới một Block, các Full Node
này sẽ ‘bầu’ lên người có quyền tạo Block đó gọi là Leader, với mỗi Block
khác nhau có thể sẽ có Leader khác nhau. Hai giao thức Proof of Stake tốt nhất
hiện nay là Algorand và Ouroburos.
1.2. Sở hữu bản quyền điện tử
Giấy tờ sở hữu tài sản trong thực tế bao gồm các mục chính như:
 Thơng tin về tài sản. Ví dụ như trong sổ đỏ ghi mảnh đất bao nhiêu mét
vuông, vị trí, ngày cấp sổ đỏ, …
 Thơng tin về người sở hữu tài sản đó. Ví dụ trong sổ đỏ ghi rõ thông tin
ông Nguyễn Văn A người sở hữu mảnh đất đó.
 Chữ ký của người sở hữu, chữ ký và đóng dấu xác thực của nhà chức
trách.

10


Bài tốn hiện nay là chuyển tồn bộ giấy tờ sở hữu dạng như trên thành file
điện tử đảm bảo các yêu cầu sau:
 Có giá trị pháp lý tương tự như giấy tờ thông thường
 Đảm bảo được các u cầu an tồn như khơng thể chỉnh sửa được thơng
tin, khơng thể xóa được
 Dễ dàng chuyển nhượng và dễ dàng tra cứu lịch sử. Ví dụ một mảnh đất
được chuyển nhượng nhiều lần, người mua sau có thể dễ dàng tra cứu
lịch sử chuyển nhượng của mảnh đất.

Lưu ý rằng ta không thể dùng giải pháp đơn giản là lưu bản scan của các giấy
tờ sở hữu tài sản trong thực tế, lý do vì file ảnh scan này hồn tồn có thể chỉnh
sửa thơng tin bằng các công cụ xử lý ảnh chuyên nghiệp. File điện tử sở hữu
tài sản thỏa mãn các yêu cầu như trên hiện nay được gọi là NFT (viết tắt của
Non-fungible token). Và để đảm bảo được các yêu cầu an toàn như khơng thể
chỉnh sửa được thơng tin, khơng thể xóa được, dễ dàng tra cứu lịch sử, file NFT
này được lưu trong Blockchain.
Hiện nay do vấn đề pháp lý các ứng dụng NFT mới chỉ đang được xây
dựng cho các món hàng như hình ảnh tác phẩm nghệ thuật, vật phẩm, game,
… Tuy nhiên về mặt nguyên tắc khi vấn đề hành lang pháp lý được giải quyết,
NFT có thể được xây dựng cho tất cả các loại sở hữu khác.
Non – Fungible: có nghĩa là khơng thể thay thế lẫn nhau, tính độc nhất. Ví dụ
2 tờ tiền mệnh giá 50,000 VND thì có thể hốn đổi cho 1 tờ 100,000 VND, thì
khơng gọi là Non-fungible.
Token: được hiểu như là chứng chỉ hay chứng thực. Khi một doanh nghiệp phát
hành một loại Token của doanh nghiệp và có khả năng mua bán, Token đó cịn
có chức năng tương đương như một loại tiền điện tử.
Như vậy Non-fungible token là một tài sản kinh tế mã hóa (crypto economy)
kỹ thuật số đại diện cho các sản phẩm và dịch vụ vật lý hay kỹ thuật số. Khái
niệm "có thể thay thế" (fungible) có nghĩa tài sản này có thể được tráo đổi để
11


có được một tài sản y hệt hay có giá trị tương đương. Một tờ tiền 10 dollar có
thể được thay thế bởi một tờ y hệt hoặc 2 tờ 5 dollar. Không thể thay thế về
mặt pháp lý (non-fungible) có nghĩa là một thứ khơng thể thay thế hay chia nhỏ
thành nhiều phần - bởi vì đó là một tài sản được chứng thực là duy nhất.
Nói theo cách khác, NFT là một loại tài sản kỹ thuật số có chứa thơng tin
về quyền sở hữu được lưu giữ trên blockchain. NFT có thể được dùng để xác
thực kỹ thuật số các món hàng như tác phẩm nghệ thuật, vật phẩm game, sổ

đỏ, ô tô, … Các ứng dụng hỗ trợ NFT hiện nay có thể kể đến như mạng
blockchain Etherum hay các mạng blockchain khác như Flow, Solana, Polygon
cũng hỗ trợ loại chứng thực số này. Tuy nhiên các mạng này hiện nay chỉ đang
hỗ trợ quyền sở hữu một cách ẩn danh. Ví dụ quyền sở hữu bức tranh này thuộc
về một tài khoản ABC nào đó (số tài khoản chỉ là một chuỗi ký tự không có
nghĩa), nhưng khơng ai biết tài khoản ABC là thuộc về cá nhân nào trong đời
thực, do vậy các ứng dụng trong các mạng này chưa áp dụng được vào bài toán
sở hữu bản quyền điện tử như nhà cửa đất đai, xe cộ, … hiện nay.

Hình 1.4: Fungible và Non-Fungible (nguồn Internet)
NFT có các tính chất sau:
12


×