BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC QUY NHƠN NGUYỄN TRƢỜNG HẢI NGHIÊN CỨU MỘT SỐ KỸ THUẬT BLOCKCHAIN VÀ ỨNG DỤNG TRONG QUẢN LÝ HỒ SƠ SINH VIÊN Chuyên ngành Khoa học máy tính Mã số 8480101 Ngƣời hƣớn[.]
Trang 1NGUYỄN TRƯỜNG HẢI
NGHIÊN CỨU MỘT SỐ KỸ THUẬT BLOCKCHAIN
VÀ ỨNG DỤNG TRONG QUẢN LÝ HỒ SƠ SINH VIÊN
Chuyên ngành: Khoa học máy tính
Mã số: 8480101
Người hướng dẫn: TS LÊ THỊ KIM NGA
Trang 2thực sự của riêng tôi, dưới sự hướng dẫn của TS Lê Thị Kim Nga Mọi tham khảo từ các tài liệu, công trình nghiên cứu liên quan trong nước và quốc tế đều được trích dẫn rõ ràng trong luận văn Mọi sao chép không hợp lệ, vi phạm quy chế hay gian trá tôi xin hoàn toàn chịu trách nhiệm
Bình Định, ngày 23 tháng 08 năm 2022
Học viên
Nguyễn Trường Hải
Trang 3Đầu tiên, tôi xin gửi lời cảm ơn và lòng biết ơn sâu sắc tới cô giáo TS.Lê Thị Kim Nga đã giúp tôi chọn đề tài, định hướng nghiên cứu, tận tình hướng dẫn và tạo điều kiện cho tôi hoàn thành luận văn này
Tôi xin được gửi lời tri ân sâu sắc đến cô giáo TS.Lê Thị Kim Nga, người đã tận tình chỉ bảo, giúp đỡ tôi trong quá trình học tập cũng như giai đoạn đầu của quá trình thực hiện luận văn
Em xin cảm ơn các thầy cô trong khoa Công nghệ thông tin trường Đại học Quy Nhơn, đã truyền đạt cho tôi những kiến thức quý báu trong suốt thời gian học tập tại trường
Bản thân tôi đã cố gắng hết sức để hoàn thành luận văn, nhưng vẫn không tránh khỏi những sai sót, hạn chế Vì vậy, em rất mong nhận được những nhận xét, góp ý của các thầy cô giáo và các bạn để đề tài này có thể được hoàn thiện hơn
Bình Định, ngày 23 tháng 08 năm 2022
Học viên
Nguyễn Trường Hải
Trang 4
LỜI CẢM ƠN
MỤC LỤC
DANH MỤC CÁC CHỮ VIẾT TẮT
DANH MỤC HÌNH ẢNH
DANH MỤC BẢNG BIỂU
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Tổng quan tình hình nghiên cứu đề tài và ứng dụng 3
3 Mục đích nghiên cứu 8
4 Đối tượng và phạm vi nghiên cứu 8
5 Phương pháp nghiên cứu 9
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT BLOCKCHAIN 10
1.1 Giới thiệu chung 10
1.2 Lịch sử ra đời 11
1.3 Phân loại Blockchain 11
1.3.1 Blockchain mở 12
1.3.2 Blockchain đóng 12
1.4 Mật mã học 13
1.4.1 Các thuật ngữ cơ bản 15
1.4.2 Hàm băm 16
1.5 Kiến trúc Blockchain 20
1.5.1 Giao dịch 20
1.5.2 Địa chỉ 22
1.5.3 Sổ cái 23
1.5.4 Khối 23
Trang 51.7 Một số nền tảng Blockchain hiện nay 27
1.7.1 Ethereum 27
1.7.2 Hyperledger Fabric 28
1.7.3 IBM Blockchain 29
1.7.4 Multichain 29
1.7.5 Hydrachain 30
1.7.6 OpenChain 31
1.7.7 BigchainDB 31
1.8 Kết luận chương 1 32
CHƯƠNG 2: TỔNG QUAN VỀ BIGCHAINDB 33
2.1 Giới thiệu về BigchainDB 33
2.2 Đặc điểm của BigchainDB 34
2.2.1 Tính tập trung và Byzantine fault Tolerance 34
2.2.2 Tính bất biến 35
2.2.3 Tài sản do chủ sở hữu kiểm soát 36
2.2.4 Tốc độ giao dịch cao 37
2.2.5 Độ trễ thấp & hoàn thành nhanh 37
2.2.6 Lập chỉ mục & và truy vấn dữ liệu có cấu trúc 37
2.2.7 Sybil Tolerance 37
2.3 Ứng dụng của BigchainDB 37
2.4 Kết luận chương 2 40
CHƯƠNG 3: CÀI ĐẶT VÀ THỬ NGHIỆM 41
3.1 Phát biểu bài toán 41
3.2 Giải pháp 43
3.2.1 Phân tích kiến trúc hệ thống 43
3.2.2 Phân tích nghiệp vụ hệ thống 44
Trang 63.3.2 Cài đặt và cấu hình hệ thống BigchainDB 46
3.3.3 Cài đặt ứng dụng web 49
3.4 Kết quả thử nghiệm 55
3.5 Nhận xét, đánh giá 58
3.6 Kết luận chương 3 59
KẾT LUẬN 60
1 Các kết quả thu được và không đạt được 60
2 Ý nghĩa khoa học 61
3 Ý nghĩa thực tiễn 61
TÀI LIỆU THAM KHẢO 62
Trang 7CNTT Công nghệ thông tin
Blockchain Chuỗi – Khối
BlockCert Công nghệ quản lý chứng chỉ dựa trên công nghệ
chuỗi khối Bitcoin Mạng chuỗi khối tiền ảo đầu tiên
MIT Viện công nghệ Massachusetts
Hacker Tin tặc
FIPS Federal Information Processing Standard - Tiêu
chuẩn Xử lý Thông tin Liên bang
BFT Byzantine Fault Tolerant - Khả năng chịu lỗi của
Byzantine
API Application Programming Interface
CBPoS chain-based proof of stake – Bằng chứng công
việc dựa trên chuỗi
Trang 8trữ dữ liệu băm của khối), Prev_Hask (Lưu trữ dữ liệu băm của khối trước), Timestamp (Thời gian khối được khai thác), Noce (Hằng số được thêm vào
khối băm, hạn chế và tăng mức độ khó khi khối bị băm lại) 4
Hình 1.2: Chứng chỉ Đại học Nicosia cấp dạng pdf có tích hợp công nghệ Blockchain tránh bị giả mạo và có thể xác thực tại block.co/out-product/ 5
Hình 1.3: Bằng tốt nghiệp theo công nghệ Blockchain quốc tế có mã QR 7
Hình 1.4: Quy trình số hóa và lưu trữ văn bản quốc gia trên hệ thống Tomochain 8
Hình 1.5: Phân loại các công cụ mã hóa 15
Hình 1.6: Ví dụ về giao dịch tiền điện tử 20
Hình 1.7: Ví dụ về một chuỗi khối chung 24
Hình 1.8: Logo Ethereum 28
Hình 1.9: Logo Hyperledger Fabric 29
Hình 1.10: Logo IBM Blockchain 29
Hình 1.11: Logo MultiChain 30
Hình 1.12: Logo HydraChain 31
Hình 1 13: Logo OpenChain 31
Hình 1.14: Logo BigchainDB 32
Hình 2.1: Bốn nhóm ứng dụng chính của BigchainDB 38
Hình 2.2: Sở hữu truyền phát nhạc với Resonate 38
Hình 2.3: Các chứng chỉ giáo dục được xác thực với công nghệ Recruit 39
Hình 2.4: Với Innogy, mỗi sản phẩm có một câu chuyện 39
Hình 2.5: Công ty đăng ký đất đai Blockchain tại Ghana tên BenBen 40
Hình 3.1: Kiến trúc hệ thống 43
Hình 3.2: Mô hình hệ thống quản lý hồ sơ sinh viên 45
Trang 9Hình 3 5: Màn hình danh sách văn bằng với role Phòng đào tạo 56
Hình 3 6: Màn hình với tác vụ tạo mới văn bằng 57
Hình 3 7: Màn hình chi tiết văn bằng 57
Hình 3 8: Màn hình cấp văn bằng cho sinh viên 57
Hình 3 9: Màn hình danh sách văn bằng thuộc quyền sở hữu của sinh viên 58 Hình 3 10: Màn hình xác minh văn bằng dành cho Nhà tuyển dụng 58
Trang 10Bảng 1.2: Ví dụ về đầu vào và đầu ra tương ứng của một số hàm băm 17
Bảng 1.3: Minh họa một số kết quả mã QR 22
Bảng 1.4: Một số mô hình đồng thuận trong Blockchain 27
Bảng 2.1: Mục tiêu thiết kế của BigchainDB 2.0 33
Bảng 3.1: Yêu cầu phần cứng cho hệ thống 45
Bảng 3.2: Phần mềm và Công cụ hỗ trợ 46
Bảng 3.3: Các API của hệ thống BigchainDB cung cấp 49
Trang 11MỞ ĐẦU
1 Lý do chọn đề tài
Cùng với xu thế phát triển của cuộc cách mạng công nghệ lần thứ tư, công nghệ Blockchain đang được nghiên cứu và ứng dụng hết sức mạnh mẽ tại nhiều quốc gia trên thế giới ở hầu hết các lĩnh vực Tuy nhiên, việc triển khai công nghệ Blockchain trong lĩnh vực giáo dục đào tạo dường như vẫn còn hạn chế, đặc biệt là ở Việt Nam
Việc khai thác tiềm năng, ứng dụng công nghệ Blockchain trong lĩnh vực giáo dục, đặc biệt là giáo dục đại học cần phải được chú trọng thực hiện trong bối cảnh chuyển đối số hiện nay
Trước tiên, công nghệ Blockchain cần được ứng dụng để hỗ trợ công tác
chấm thi tuyển sinh đầu vào cho các trường đại học Có thể nói đây là một trong các yếu tố tiền đề ảnh hưởng trực tiếp tới chất lượng đào tạo cũng như thương hiệu của mỗi trường
Hiện nay, việc tuyển sinh đầu vào của các trường đa phần dựa trên kết quả của kỳ thi trung học phổ thông quốc gia Tuy nhiên, ngoài những ưu điểm
đã được xã hội thừa nhận thì độ tin cậy, tính công bằng do kỳ thi này mang lại vẫn còn là một dấu hỏi
Để khắc phục tình trạng này, công nghệ Blockchain nên được triển khai
để hỗ trợ công tác chấm thi cho kỳ thi trung học phổ thông quốc gia, dựa trên nền tảng cũng như cơ chế hoạt động của công nghệ Blockchain, tất cả các công đoạn của công tác chấm thi đều được công khai và chịu sự giám sát chặt chẽ của tất cả các bên liên quan
Vì vậy, việc tự điều chỉnh dữ liệu sửa đổi là gần như không thể xảy ra Điều này sẽ góp phần mang lại công bằng cho tất cả các thí nghiệm cũng như
sự tin tưởng về chất lượng tuyển sinh đầu vào cho các trường đại học
Trang 12Thứ hai, đối với công tác quản lý dữ liệu sinh viên, ứng dụng công nghệ
Blockchain trong quản lý toàn bộ dữ liệu sinh viên bao gồm văn bằng, chứng chỉ, bảng điểm, sẽ bảo đảm công khai minh bạch cho tất cả các bên liên quan, gồm sinh viên, giảng viên cũng như cho các phòng, ban chức năng của
cơ sở đào tạo
Nhờ cơ chế bảo vệ dữ liệu của công nghệ Blockchain nên việc tự ý chỉnh sửa điểm của sinh viên là gần như không thể xảy ra
Cuối cùng, cách thức quản lý này sẽ mang đến nhiều sự thuận lợi cho sinh viên cũng như các nhà tuyển dụng Cụ thể, sinh viên nhất thiết phải nộp bản công chứng của các văn bằng, chứng chỉ, bảng điểm cá nhân cho các nhà tuyển dụng mà đơn giản họ chỉ cần cung cấp đường link, chữ ký số và quyền truy cập đến cơ sở dữ liệu nơi lưu trữ và cho phép công khai các thông tin này tại các trường đại học Điều này cũng sẽ góp phần hạn chế rất nhiều vấn nạn
sử dụng văn bằng, chứng chỉ giả được cho là khá phổ biến hiện nay
Thứ ba, về công tác khen thưởng, kỷ luật sinh viên, chúng ta cần đảm
bảo được tính chính xác, công bằng, công khai, dân chủ, không thành kiến cảm tính, kịp thời, đúng lúc Tuy nhiên, trên thực tế hoạt động khen thưởng,
kỷ luật sinh viên ở phần lớn các trường hiện nay không đáp ứng được đầy đủ các tiêu chí trên Lý do là hầu như toàn bộ quy trình xét khen thưởng, kỷ luật của các trường đều được thực hiện hết sức thủ công
Để khắc phục hiện trạng này, công nghệ Blockchain cần đưa vào áp dụng cụ thể ngay từ những ngày đầu nhập học giữa nhà trường và sinh viên Cần triển khai một hợp đồng thông minh dựa trên nền tảng của công nghệ Blockchain (Smart Contract) áp dụng cho toàn bộ quá trình học tập
Hợp đồng này bao gồm tất cả các điều khoản, phần việc đã được lập trình tự động hóa hoàn toàn Bất cứ lúc nào nhà trường cũng như sinh viên
Trang 13đều có thể theo dõi được những công việc đã thực hiện cũng như tiến độ của hợp đồng, bảo đảm tất cả đều công khai, minh bạch
Để phục vụ cho việc triển khai công tác khen thưởng, kỷ luật, sinh viên
sẽ được cấp một ví điện tử có chức năng hoạt động giống như một tài khoản ngân hàng Mỗi khi sinh viên đạt được thành tích cao trong học tập, nghiên cứu khoa học cũng như các hoạt động khác do nhà trường phát động thì một
số điểm thưởng tương ứng sẽ được tự động chuyển vào ví điện tử Ngược lại, nếu sinh viên vi phạm pháp luật thì ngay lập tức một số điểm nhất định, tùy theo mức độ, cũng sẽ bị trừ khỏi quỹ điểm hiện có trong ví điện tử của sinh viên Cuối năm học, căn cứ vào tổng số điểm có trong ví điện tử, sinh viên có thể biết được mình sẽ được cấp học bổng miễn giảm học phí hoặc nhận quyết định tạm đình chỉ học hay không
Nếu áp dụng công nghệ Blockchain hỗ trợ cho công tác khen thưởng, kỷ luật sinh viên dưới hình thức triển khai hoạt động thông minh thì tính chính xác, công bằng, công khai, kịp thời, đúng lúc sẽ gần như bảo đảm một cách tuyệt đối, góp phần nâng cao hiệu quả công tác quản lý sinh viên nói riêng cũng như chất lượng hoạt động của trường đại học nói chung
Qua đó, chúng ta thấy được tầm quan trọng cũng như sự như nhu cầu cấp bách cho nghiên cứu về công nghệ Blockchain trong quản lý hồ sơ sinh viên
Từ những lý do ở trên, tôi chọn đề tài “NGHIÊN CỨU MỘT SỐ KỸ THUẬT BLOCKCHAIN VÀ ỨNG DỤNG TRONG QUẢN LÝ HỒ SƠ SINH VIÊN”
2 Tổng quan tình hình nghiên cứu đề tài và ứng dụng
2.1 Tình hình nghiên cứu và ứng dụng trên thế giới
Trên thế giới công nghệ Blockchain đã có những bước tiến rất xa do đã được phát triển trong vài chục năm gần đây Năm 2008 Satoshi Nakamoto
Trang 14xuất bản bài báo của mình “Bitcoin”: Hệ thống tiền điện tử ngang hàng, mô tả công nghệ của hệ thống tiền mặt mới, mà ông đặt tên là Bitcoin, với tất cả các lược đồ và công thức cần thiết Ông mô tả một hệ thống thanh toán tiền điện
tử dựa trên mật mã, không dựa trên sự tin cậy Hệ thống hoạt động mà không cần trung gian (ngân hàng) và giải quyết vấn đề “chi tiêu gấp đôi” Tác giả đề xuất một công nghệ mới về tiền mặt kỹ thuật số phi tập trung doanh thu, bao gồm hai yếu tố: Đầu tiên, S.Nakamoto phát triển sổ đăng ký phân tán (Blockchain); nó là một chuỗi các giao dịch kỹ thuật số trong đó mỗi khối sau liên kết với khối trước bằng mật mã Mọi chỉnh sửa thông tin liên quan đến giao dịch là không thể Nó đảm bảo rằng tất cả giao dịch sẽ được bảo vệ khỏi các hacker và chi tiêu gấp đôi
Hình 1.1: Mạng Blockchain, mỗi block có các thành phần sau:
Tx_Root (Lưu trữ dữ liệu băm của khối), Prev_Hask (Lưu trữ dữ liệu băm của khối trước), Timestamp (Thời gian khối được khai thác), Noce (Hằng số được thêm vào
khối băm, hạn chế và tăng mức độ khó khi khối bị băm lại)
Năm 2014, V Buterin xuất bản tác phẩm của mình “Hợp đồng thông minh thế hệ tiếp theo và Nền tảng ứng dụng phi tập trung” Trình bày những
ưu điểm và hạn chế của Blockchain, ông đã đề xuất Blockchain Ethereum mới với một chương trình nhúng ngôn ngữ giúp mọi người có thể viết hợp đồng thông minh, và các ứng dụng phi tập trung, nhờ những gì công nghệ
Trang 15Blockchain có thể được áp dụng vượt xa cả bitcoin Ông đã phát triển ba loại ứng dụng (1) ứng dụng tài chính giúp người dùng quản lý tài sản của mình và giao kết hợp đồng; (2) các ứng dụng bán tài chính liên quan đến cả hai tiền và tài sản phi vật chất; (3) các ứng dụng phi tài chính như bỏ phiếu trực tuyến
Đó cũng là lý do các công ty khởi nghiệp hay các tập đoàn công nghệ quan tâm sâu sắc đến nó
Một số ứng dụng Blockchain trong giáo dục những năm gần đây:
Ứng dụng công nghệ Blockchain trong giáo dục bắt đầu từ 2014, khi Đại học Nicosia, Sip (UNIC) bắt đầu áp dụng công nghệ này trên một cơ sở chính thức để lưu trữ và xác nhận văn bằng của mình; nó cũng là trường Đại học đầu tiên bắt đầu chấp nhận phí cho các nghiên cứu dưới dạng bitcoin Kể từ năm 2017, UNIC đã xuất bản tất cả các dự án văn bằng tốt nghiệp của sinh viên tốt nghiệp (cử nhân, thạc sĩ và tiến sĩ) trong Blockchain bằng cách áp dụng phát triển – nền tảng Blockchain.co Nền tảng này được sử dụng bởi cả hai tổ chức giáo dục và cơ sở chăm sóc sức khỏe, khu vực công cộng, giao
thông, v.v
a Chứng chỉ gốc Đại học Nicosia cấp b Chứng chỉ Đại học Nicosia bị giả mạo
Hình 1.2: Chứng chỉ Đại học Nicosia cấp dạng pdf có tích hợp công nghệ
Blockchain tránh bị giả mạo và có thể xác thực tại block.co/out-product/
Trang 16Năm 2016 Sony Global Education do IBM hỗ trợ đã phát triển một nền tảng Blockchain để lưu trữ, bảo vệ và trao đổi thông tin liên quan đến kết quả học tập và sự tiến bộ của học sinh, sinh viên Công ty xem Blockchain là công nghệ chính có thể ảnh hưởng đến bối cảnh giáo dục trong tương lai
Viện công nghệ Massachusetts (MIT) đã phát triển Blockcerts dựa trên Blockchain vào năm 2017; ứng dụng này giúp việc cấp văn bằng kỹ thuật số trở nên dễ dàng hơn và được xác thực tại credentials.mit.edu
Các lĩnh vực ứng dụng Blockchain của các trường đại học những năm gần đây:
Bảng 1.1: Các lĩnh vực ứng dụng Blockchain của các trường đại học
Quốc gia Trường đại học Các lĩnh vực ứng dụng Blockchain
Síp Đại học Nicosia
Cấp và lưu trữ các chứng chỉ, văn bằng Thanh toán cho các nghiên cứu bằng tiền điện tử
Hoa Kỳ
Viện Massachuset (MIT) Cấp và lưu trữ các chứng chỉ, văn bằng Các giải pháp nhận dạng
Trường kỹ thuật Holberton Cấp và lưu trữ các chứng chỉ, văn bằng Các giải pháp nhận dạng
Đại học Texas ở Austin Cấp và lưu trữ các chứng chỉ, văn bằng Mạng lưới hợp tác sinh viên và giáo sư
Đại học California Cấp và lưu trữ các chứng chỉ, văn bằng
UAE Các trường đại học ở Dubai Cấp và lưu trữ các chứng chỉ, văn bằng
Trang 17Slovenia Đại học Maribor Cấp và lưu trữ các chứng chỉ, văn bằng
Quản trị quá trình giáo dục
Trung
Quốc
Đại học Chiết Giang, Đại học Thâm Quyến, Học viện Khoa học Trung Quốc Bảo hộ sở hữu trí tuệ
2.2 Tình hình nghiên cứu và ứng dụng trong nước
Tại Việt Nam, Nghiên cứu trong lĩnh vực Blockchain còn khá mới mẻ đặc biệt là trong lĩnh vực giáo dục Theo CTO Kardia Chain Huy Nguyễn khẳng định, Việt Nam đang có đủ “Thiên thời, địa lợi, nhân hòa” để nắm bắt
cơ hội từ công nghệ Blockchain Nổi bật có một số các dự án và ứng dụng sau:
Năm 2020 tại nhà hát Hòa Bình (TP.HCM), trường Đại học Hoa Sen (HSU) là trường đại học Việt Nam đầu tiên cấp bằng theo công nghệ Blockchain quốc tế do Bac Diplona của Pháp cung cấp công nghệ
Hình 1.3: Bằng tốt nghiệp theo công nghệ Blockchain quốc tế có mã QR
Cùng năm 2020, Bộ Giáo dục và Đào tạo quyết định ứng dụng công nghệ lưu trữ văn bằng quốc gia Theo đó, tất cả văn bằng được cấp bởi các đơn vị
Trang 18đào tạo thuộc Bộ Giáo dục và Đào tạo sẽ lần lượt đưa vào hệ thống lưu trữ văn bằng quốc gia Để đảm bảo tính an toàn dữ liệu, hệ thống này ứng dụng công nghệ Blockchain được phát triển bới Tomochain, một nhà phát triển trong nước
Hình 1.4: Quy trình số hóa và lưu trữ văn bản quốc gia trên hệ thống Tomochain
4 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu: Một số kỹ thuật Blockchain và kỹ thuật giải
quyết vấn đề lưu trữ dữ liệu phi tập trung
Phạm vi nghiên cứu: Dữ liệu hồ sơ sinh viên được lưu trữ trong các
khối chuỗi, cụ thể làm quản lý văn bằng, chứng chỉ của sinh viên
Trang 195 Phương pháp nghiên cứu
Phương pháp nghiên cứu của đề tài được lựa chọn là lý thuyết kết hợp với thực nghiệm Các vấn đề cần giải quyết liên quan đến các thuật toán và lý thuyết về lưu trữ, xử lý dữ liệu, lập trình máy tính được thực hiện trên phần mềm máy tính với đầu vào là các thông tin thu nhận được thực tế Quá trình được tiến hành dựa trên việc tìm hiểu tài liệu, cài đặt thử nghiệm sau đó đánh giá kết quả thực nghiệm và cải tiến nhằm nâng cao chất lượng hệ thống
Như vậy, cần tiến hành tìm hiểu lý thuyết về một số kỹ thuật Blockchain được ứng dụng trong quy trình lưu trữ dữ liệu Tìm hiểu kỹ thuật về mặt lý thuyết sẽ được kết hợp với việc cài đặt thực nghiệm dữ liệu Hồ sơ sinh viên thực tế để kiểm chứng và đánh giá những nội dung tìm hiểu lý thuyết và từ đó cải tiến hoàn thiện chương trình
Trang 20CHƯƠNG 1: CƠ SỞ LÝ THUYẾT BLOCKCHAIN
1.1 Giới thiệu chung
Blockchain là cuốn sổ cái kỹ thuật số chống giả mạo được triển khai theo
mô hình phân tán (tức là không có kho lưu trữ trung tâm) và thường không cần một đơn vị đáng tin cậy chứng thực (như ngân hàng, công ty, chính phủ)
Ở mức độ cơ bản, nó cho phép một cộng đồng người dùng ghi các giao dịch vào cuốn sổ cái chia sẻ, mà trong đó, với sự điều hành bình thường của mạng Blockchain thì không giao dịch nào có thể bị thay đổi sau khi xuất bản Vào năm 2008, ý tưởng Blockchain được kết hợp với một vài công nghệ và khái niệm điện toán khác để tạo ra đồng tiền mã hóa hiện đại: tiền điện tử được bảo vệ bởi các cơ chế mật mã học thay vì nhờ vào bên chứng thực hoặc kho lưu trữ trung tâm
Công nghệ này được biết đến rộng rãi vào năm 2009 với sự ra đời của mạng Bitcoin – một trong những đồng tiền mã hóa hiện đại đầu tiên Ở hệ thống Bitcoin và các hệ thống tương tự, việc chuyển thông tin kỹ thuật số với đại diện là tiền điện tử diễn ra trong một hệ thống phân tán Người dùng Bitcoin có thể ký chữ ký số và chuyển tài sản của mình sang người khác và Bitcoin ghi lại các giao dịch này công khai, cho phép những người tham gia mạng xác minh độc lập tính hợp lệ của giao dịch Công nghệ Blockchain do
đó được xem là giải pháp chung cho các đồng tiền mã hóa sau này
Blockchain có thể được định nghĩa thông thường như sau: “Blockchain
là cuốn sổ cái kỹ thuật số của các giao dịch được ký bằng mật mã Mỗi khối được liên kết mã hóa với khối trước nó sau khi được xác thực thì trải qua một quyết định đồng thuận Khi một khối mới thêm vào, khối cũ hơn trở nên khó
bị chỉnh sửa Cuốn sổ cái sau đó được sao chép đến toàn bộ mạng và bất kỳ xung đột nào được giải quyết tự động thông qua các quy tắc được thiết lập.”
Trang 211.2 Lịch sử ra đời
Ý tưởng chính đứng sau công nghệ Blockchain này nổi lên vào cuối những năm 1980, đầu năm 1990 Vào năm 1989, Leslie Lamport đã phát triển giao thức Paxos Năm 1990, ông có bài báo The Part-Time Parliament được gửi đến ACM Transaction on Computer Systems; bài báo được phát hành cuối cùng vào một số của năm 1998 Bài báo miêu tả một mô hình đồng thuận giúp đạt được thỏa thuận trên một kết quả của mạng lưới máy tính – nơi mà các máy tính hoặc bản thân mạng có thể không ổn định Năm 1991, một chuỗi thông tin được ký đã được dùng như một cuốn sổ cái điện tử cho các tài liệu
có chữ ký kỹ thuật số theo cách mà không dễ dàng để tài liệu được ký nào bị thay đổi Các khái niệm này được kết hợp và áp dụng vào tiền điện tử năm
2008 và được miêu tả trong bài báo – Bitcoin: A Peer to Peer Electronic Cash System – được xuất bản giả bởi Satoshi Nakamoto, và sau đó năm 2009 với
sự ra đời của tiền điện tử Bitcoin
Việc sử dụng Blockchain cho phép Bitcoin được triển khai theo kiểu phân tán, như vậy không có người dùng đơn lẻ điều khiển được tiền điện tử
và không có khuyết điểm tồn tại đơn lẻ Lợi ích chính là cho phép các giao dịch trực tiếp giữa những người dùng mà không cần bên thứ ba đáng tin cậy
Nó cũng cho phép phát hành tiền mới theo cách được định nghĩa đến những người quản lý việc xuất bản các khối mới và duy trì bản sao của sổ cái, thì những đó được gọi là các miner ở Bitcoin Bằng cách sử dụng cơ chế đồng thuận để duy trì và một cơ chế tự kiểm soát được tạo ra để đảm bảo rằng chỉ
có các giao dịch và các khối hợp lệ mới được thêm vào Blockchain
1.3 Phân loại Blockchain
Mạng Blockchain có thể phân loại dựa trên mô hình quyền hạn của nó
mà xác định ai có thể duy trì chúng (chẳng hạn xuất bản các khối) Nếu bất kỳ
ai có thể xuất bản một khối mới, gọi là Blockchain mở Nếu chỉ có những
Trang 22người dùng cụ thể xuất bản các khối, gọi là Blockchain đóng Hiểu đơn giản, một mạng Blockchain đóng giống như một mạng Intranet của tổ chức, trong khi đó Blockchain mở lại giống như mạng Internet công cộng vậy
1.3.1 Blockchain mở
Mạng Blockchain mở là nền tảng sổ cái phi tập trung mở rộng đến bất kì
ai muốn xuất bản các khối mà không cần quyền chứng thực nào cả Nền tảng Blockchain mở thường là phần mềm mã nguồn mở, có sẵn miễn phí cho mọi người muốn tải xuống Bởi vì bất kỳ ai đều có quyền xuất bản các khối, nên kết quả là bất kỳ ai cũng có thể đọc Blockchain cũng như là phát hành các giao dịch trên Blockchain (các giao dịch nằm trong các khối được xuất bản) Người dùng có ý đồ xấu có thể xuất bản các khối nhằm đánh sập hệ thống Để ngăn chặn điều này, mạng Blockchain mở thường triển khai các thỏa thuận đa bên hay còn gọi là hệ thống “đồng thuận”, yêu cầu người dùng chi tiêu hoặc duy trì tài nguyên khi muốn xuất bản các khối Đồng thời, hệ thống “đồng thuận” thường thúc đẩy các hành vi đúng đắn thông qua việc trao thưởng cho các nhà xuất bản các khối tuân thủ giao thức với loại tiền điện tử tương ứng
1.3.2 Blockchain đóng
Mạng Blockchain đóng là nền tảng sổ cái, nơi mà người dùng xuất bản các khối phải được chứng thực bởi cơ quan nào đó (làm cho nó tập trung hoặc phi tập trung) Bởi vì chỉ có người dùng được chứng thực là có thể duy trì Blockchain nên có có thể hạn chế quyền tiếp cận và hạn chế những ai có thể phát hành các giao dịch Do đó, Blockchain đóng có thể quy định bất kỳ ai có thể đọc hoặc phải chứng thực để đọc được Ngược lại, bất kỳ ai cũng có thể phát hành giao dịch hoặc hạn chế chỉ những cá nhân được chứng thực từ trước Blockchain đóng có thể khởi tạo và duy trì bằng phần mềm mã nguồn mở hoặc đóng
Trang 23Mạng Blockchain đóng và Blockchain mở có thể giống nhau ở các đặc điểm: khả năng truy xuất tài sản kỹ thuật số trên Blockchain; hệ thống phân tán; phục hồi và lưu trữ dữ liệu dự phòng; các mô hình đồng thuận; có hoặc không có chi tiêu và duy trì tài nguyên Trong mạng Blockchain đóng, có sự phân loại mức độ tin tưởng và thu hồi chứng thực nếu làm sai
Mạng Blockchain đóng có lẽ được sử dụng bởi tổ chức muốn kiểm soát chặt chẽ hơn và bảo vệ Blockchain của họ Tuy nhiên, nếu một thực thể kiểm soát những ai có thể xuất bản các khối, thì những người dùng sẽ cần phải tin tưởng vào thực thể đó Một mạng Blockchain đóng của tổ chức này muốn làm việc với tổ chức khác nhưng có thể không hoàn toàn tin tưởng lẫn nhau Họ
có thể thành lập mạng và mời các đối tác kinh doanh ghi lại các giao dịch trên một cuốn sổ cái phân tán chia sẻ Các tổ chức này có thể xác định mô hình đồng thuận sẽ được dùng dựa trên mức độ tin tưởng lẫn nhau Bên cạnh đó, mạng cung cấp sự minh bạch và hiểu biết mà có thể giúp thông báo các quyết định kinh doanh tốt hơn và buộc những bên làm sai chịu trách nhiệm
Một vài mạng Blockchain đóng hỗ trợ khả năng tiết lộ giao dịch có chọn lọc dựa trên danh tính của người dùng Với tính năng này, một vài mức độ riêng tư của giao dịch có thể được áp dụng Ví dụ, mọi người có thể biết được
có một giao dịch giữa hai người dùng được diễn ra, nhưng nội dung thật sự của giao dịch thì chỉ có những người liên quan mới có thể tiếp cận
1.4 Mật mã học
Mật mã học là nghiên cứu về các kỹ thuật toán học liên quan đến các khía cạnh của bảo mật thông tin như bảo mật, toàn vẹn dữ liệu, xác thực thực thể và xác thực nguồn gốc dữ liệu
Mật mã có 4 mục tiêu chính đó là đảm bảo: tính riêng tư hay tính bảo mật, tính toàn vẹn dữ liệu, tính xác thực và tính chống chối bỏ
Trang 24 Tính bảo mật: dữ liệu chỉ được tiết lộ cho những ai được phép Có nhiều cách tiếp cận để đảm bảo tính bảo mật, có thể là bảo vệ vật lý đến các thuật toán toán học khiến dữ liệu không thể hiểu được
Tính toàn vẹn dữ liệu: đảm bảo khi dữ liệu bị thay đổi sẽ bị phát hiện ngay lập tức Thay đổi dữ liệu gồm có những thao tác như thêm, xóa, thay đổi
Tính xác thực: là một dịch vụ liên quan tới nhận dạng Chức năng này
áp dụng cho cả thực thể và thông tin 2 bên tham gia vào quá trình truyền thông tin nên được xác định Thông tin truyền đi trên kênh truyền cũng nên được xác thực như nguồn gốc, ngày gửi, nội dung dữ liệu, thời gian gửi, …Vì những lý do này, tính xác thực trong mật mã học thường được chia làm 2 phần: xác thực thực thể và xác thực nguồn gốc dữ liệu Xác thực nguồn gốc dữ liệu ngầm cung cấp cho việc xác định tính toàn vẹn của dữ liệu trong một số trường hợp khi bản tin bị thay đổi, thì nguồn dữ liệu cũng bị thay đổi
Tính chống chối bỏ: là một dịch vụ chống lại việc một thực thể từ chối các cam kết hoặc hành động mà mình đã thực hiện Khi tranh chấp xảy ra, một thực thể từ chối hành động mà mình đã thực hiện dẫn tới hậu quả Vì vậy, cần có phương pháp để xử lý những tình huống như vậy
Các công cụ mã hóa thường được chia ra làm 3 loại: mã hóa không có khóa, mã hóa khóa đối xứng và mã hóa khóa bất đối xứng
Mã hóa không có khóa là không sử dụng khóa để mã hóa bản tin Ví dụ: băm độ dài tùy ý hoặc hoán vị bản rõ để thu được bản mã
Mã hóa khóa đối xứng là sử dụng cùng một khóa cho việc mã hóa và giải mã
Trang 25 Mã hóa bất đối xứng là sử dụng một cặp khóa gọi là khóa công khai (public key) và khóa bí mật (private key) để thực hiện mã hóa và giải
Khóa là thông tin tham số dùng để thực hiện các phép biến đổi từ bản rõ
sang bản mã và ngược lại
Mã hóa là quá trình biến đổi thông tin từ bản rõ sang bản mã bằng khóa Giải mã là quá trình biến đổi thông tin từ bản mã sang bản rõ bằng khóa
Ký hiệu tập M là không gian bản rõ bao gồm các chuỗi của các ký tự trong bảng chữ cái được định nghĩa như sau: bao gồm các ký tự trong hệ nhị phân {0,1}, chữ cái tiếng Anh, hoặc các ký tự trong hệ thập lục phân {0,1,…,9,A,B, ,F} Một phần tử m ϵ M được gọi là một bản rõ
Ký hiệu tập C là không gian bản mã bao gồm các phần tử được cấu thành
từ các ký tự được định nghĩa trong bảng chữ cái bên trên
Ký hiệu Ee là một hàm mã hóa biến đổi từ M thành C, và sử dụng một phần tử khóa e duy nhất trong không gian khóa {e ϵ K}
Ký hiệu Dd là một hàm giải mã biến đổi từ C thành M, và sử dụng một phần tử khóa d duy nhất trong không gian khóa {d ϵ K}
Định nghĩa đầy đủ các phép mã hóa/ giải mã, chúng ta cần một tập mã hóa {Ee: e ϵ K } và một tập giải mã {Dd: d ϵ K } thỏa mãn điều kiện:
∀ e ∊ K ∃ d ∊ K, d là duy nhất và Dd = Ee-1 (1.1)
Trang 26Công thức giải mã một bản tin được viết như sau:
Cặp khóa { e , d } có thể trùng nhau hoặc không
Giả sử M,C,K, { Ee: e ϵ K } là những thông tin công khai, còn cặp khóa {e,d} là thông tin bí mật giữa 2 bên truyền nhận
1.4.2 Hàm băm
Một thành phần quan trọng của công nghệ Blockchain là sử dụng các hàm băm mật mã cho các hoạt động Băm là một phương pháp áp dụng hàm băm mật mã vào dữ liệu nhằm tạo ra một đầu ra tương ứng duy nhất (được gọi là tóm tắt thông điệp – message digest, hoặc tóm tắt – digest) từ một đầu vào của bất kỳ kích thước (chẳng hạn một tập tin, văn bản hoặc hình ảnh) Nó cho phép các cá nhân chứng minh không có sự thay đổi dữ liệu, kể cả khi chỉ
là một sự thay đổi nhỏ của đầu vào (chẳng hạn thay đổi một bit) sẽ dẫn đến kết quả hoàn toàn khác
Hàm băm mật mã có các thuộc tính bảo mật quan trọng sau:
Preimage resistant (Chống nghịch ảnh): Có nghĩa là các giá trị từ hàm băm là một chiều; không thể tính toán chính xác giá trị đầu vào dựa vào giá trị đầu ra Ví dụ: Cho giá trị hàm băm h, tìm thông điệp m sao cho h = hash(m) là rất khó
Second preimage resistant (Chống nghịch ảnh thứ hai): Có nghĩa là không thể tìm một đầu vào mà giống với đầu ra cụ thể được Cụ thể hơn, hàm băm mật mã được thiết kế để từ một đầu vào cụ thể, không thể tính toán để tìm một đầu vào thứ hai mà cả hai đều có cùng một
đầu ra
Ví dụ: Cho thông điệp m1, việc tìm một thông điệp m2 ≠ m1 sao cho hash(m1) = hash(m2) là rất khó
Trang 27Cách tiếp cận duy nhất là vét cạn toàn bộ các giá trị từ không gian đầu vào nhưng cơ hội thành công là không có
Collision resistant (Chống xung đột): Có nghĩa là không thể tìm hai đầu vào mà băm thành một đầu ra giống nhau Cụ thể hơn, không thể
tính toán để tìm hai đầu vào mà tạo ra tóm tắt giống nhau
Ví dụ: Việc tìm hai thông điệp m1 ≠ m2 sao cho hash(m1) = hash(m2) là rất khó
Một hàm băm mật mã cụ thể được dùng trong triển khai Blockchain là Secure Hash Algorithm (SHA) với một đầu ra có kích thước 256 bits (SHA-256) Một vài 10 máy vi tính hỗ trợ thuật toán này trong phần cứng, làm nó thực hiện tính toán nhanh hơn SHA-256 có một đầu ra 32 bytes (32 bytes =
256 bits), được thể hiện bởi một chuỗi 64 ký tự cơ số 16
Bảng 1.2: Ví dụ về đầu vào và đầu ra tương ứng của một số hàm băm
1
MD5 c4ca4238a0b923820dcc509a6f75849b
SHA-1 356a192b7913b04c54574d18c28d46e6395428ab SHA-256 6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d4
9c01e52d db7875b4b
Trang 28Chi tiết như sau:
Alice sẽ mã hóa bản rõ m thành bản mã c = Ee(m) và gửi bản mã c cho Bob
Bob sẽ giải mã bản mã De(c) = m
Trang 29Với phương pháp mã hóa này, vấn đề gặp phải là làm thế nào trao đổi được khóa khi mà việc thay đổi khóa phải thực hiện để kẻ xấu không thể giải
mã thông tin khi sử dụng các phương pháp tấn công brute force để dò ra khóa Việc phân phối khóa cần phải thực hiện qua một môi trường bảo mật (ví dụ gặp mặt trực tiếp) điều này thường không khả thi Đây được gọi là vấn đề trong việc phân phối khóa và giải pháp giải quyết nó bằng mã hóa bất đối xứng trong năm 1976 được xem là đã thay đổi hướng đi của mật mã học hiện đại
1.4.2.2 Mã hóa bất đối xứng
Mã hóa bất đối xứng giải quyết bài toán phân phối khóa của mã hóa đối xứng Thuật toán chia sẻ khóa được đặt theo tên của 2 nhà khoa học Whitfield Diffie và Martin E.Hellman sau bài giới thiệu của họ Ý tưởng đó được gọi là trao đổi khóa Diffie – Hellman hay trao đổi khóa D-H, khi 2 thực thể muốn chia sẻ một bí mật thì thực hiện các bước như sau:
Alice và Bob thống nhất thuật toán sẽ sử dụng để mã hóa dữ liệu
Alice và Bob mỗi người sẽ sinh ra 2 khóa: pkA, skA và pkB, skB thỏa mãn:
Cả pkA và pkB là công khai trong khi skA, skB là bí mật
Alice mã hóa m sử dụng khóa công khai của Bobs và thuật toán mã hóa đã được thống nhất:
Alice gửi c cho Bob qua kênh truyền bất kỳ
Bob giải mã DskB(c) = m sử dụng khóa bí mật của mình
Trang 30Thuật toán được triển khai thành công một năm sau đó vào năm 1978 bởi Rivest, Shamir và Adleman
1.5 Kiến trúc Blockchain
1.5.1 Giao dịch
Một giao dịch đại diện một sự tương tác giữa các bên tham gia Với các đồng tiền mã hóa, một giao dịch đại diện cho việc chuyển tiền giữa những người dùng Blockchain Đối với môi trường kinh doanh, một giao dịch có thể
là một cách ghi lại các hoạt động xảy ra trên tài sản kỹ thuật số hoặc vật lý Hình 1.6 cho thấy một ví dụ đáng chú ý của một giao dịch tiền điện tử Mỗi một khối trong Blockchain có thể không chứa hoặc chứa nhiều giao dịch Trong một vài triển khai Blockchain, việc cung cấp liên tục các khối mới (kể
cả với giao dịch không) là quan trọng cho việc duy trì bảo mật mạng Blockchain: nó ngăn chặn những người dùng xấu xa khỏi “bắt được” và tạo một chuỗi khác thay thế
Một người dùng gửi thông tin đến mạng Blockchain Thông tin được gửi
có thể bao gồm địa chỉ người gửi (hoặc số nhận dạng có liên quan khác), khóa công khai của người gửi, chữ ký số, đầu vào và đầu ra giao dịch
Hình 1.6: Ví dụ về giao dịch tiền điện tử
Trang 31Mỗi giao dịch đơn lẻ của tiền điện tử điển hình yêu cầu ít nhất các thông tin sau, có thể nhiều hơn:
Các đầu vào: Các đầu vào thường là một danh sách các tài sản kỹ thuật số cần được chuyển Một giao dịch sẽ tham chiếu đến nguồn của tài sản kỹ thuật số (bằng việc cung cấp nguồn gốc), có thể là giao dịch trước đó của người gửi hay sự kiện gốc nếu là trường hợp đầu tiên Các giao dịch tham chiếu đến sự kiện trước đó mà không làm ảnh hưởng tới dữ liệu, vì vậy mà các giá trị của giao dịch không thể được thêm vào hoặc loại bỏ khỏi tài sản đã tồn tại trong Blockchain Một tài sản đơn có thể chia thành nhiều tài sản mới với giá trị nhỏ hơn hoặc nhiều tài sản có thể kết hợp thành các tài sản với giá trị cao hơn Việc chia hoặc kết hợp các tài sản sẽ được chỉ định ở đầu ra của giao dịch Người gửi phải chứng minh được họ có quyền tiếp cận các đầu vào được tham chiếu, thường bằng cách ký chữ ký số vào giao dịch, chứng minh thông qua khóa riêng
Các đầu ra: Các đầu ra thường là các tài khoản người nhận tài sản kỹ thuật số cùng với số tài sản mà họ sẽ nhận Mỗi đầu ra chỉ định số tài sản có thể chuyển cho người chủ mới và một tập các điều kiện mà người chủ mới phải đáp ứng để chi tiêu giá trị đó Nếu tài sản ở đầu ra nhiều hơn yêu cầu thì phần dư phải được gửi lại rõ ràng đến người gửi ban đầu (cơ chế “tạo thay đổi”)
Trong khi mục đích chính là chuyển tài sản thì các giao dịch vẫn thường được sử dụng để chuyển dữ liệu Trường hợp đơn giản, một ai đó muốn gửi
dữ liệu vĩnh viễn và công khai trên Blockchain Trong hợp đồng thông minh, các giao dịch có thể được dùng để gửi dữ liệu, xử lý dữ liệu và lưu trữ kết quả trên Blockchain Các giao dịch thường được ký bằng khóa riêng của người gửi và có thể được xác minh bất kỳ lúc nào bằng khóa chung được liên kết
Trang 321.5.2 Địa chỉ
Một vài mạng Blockchain sử dụng một địa chỉ, nó là một chuỗi ký tự trong bảng chữ cái và các số, ngắn, được lấy từ khóa công khai của người dùng bằng cách sử dụng một hàm băm mật mã, thêm vào là một vài dữ liệu (chẳng hạn số phiên bản, checksums) Các địa chỉ này là địa chỉ “đích đến” và địa chỉ “xuất phát” trong giao dịch Địa chỉ ngắn hơn khóa công khai và không bí mật Một phương pháp để tạo địa chỉ là sử dụng một khóa công khai, áp dụng hàm băm mật mã cho nó, và chuyển nó thành chuỗi băm:
Khóa công khai => Hàm băm mật mã học => Địa chỉ
Mỗi triển khai Blockchain có thể thực hiện một phương thức tạo địa chỉ khác nhau Các địa chỉ có thể đóng vai trò là người định danh công khai cho người dùng và thỉnh thoảng một địa chỉ được chuyển đổi thành một mã QR chứa dữ liệu tùy ý cho việc sử dụng dễ dàng hơn trên thiết bị di động
Bảng 1.3: Minh họa một số kết quả mã QR
1
Hello World
Trang 33Trong công nghệ Blockchain, cách tiếp cận là sử dụng cả quyền sở hữu phân tán và kiến trúc vật lý phân tán Kiến trúc vật lý phân tán của mạng Blockchain liên quan đến một số lượng lớn các máy tính, nhiều hơn so với mạng có kiến trúc vật lý tập trung Nhu cầu cần các sổ cái mà quyền sở hữu phân tán nhiều lên là bởi vì các sổ cái phải đảm bảo có thể tin tưởng, bảo mật
và tin cậy
1.5.4 Khối
Người dùng gửi các giao dịch ứng viên lên mạng Blockchain thông qua phần mềm (ứng dụng desktop, ứng dụng di động, ví điện tử, dịch vụ web,…) Phần mềm gửi các giao dịch này tới một nút hoặc các nút trong mạng Các giao dịch sau đó được gửi đến các nút khác trong mạng, nhưng lúc này vẫn chưa nằm trong Blockchain Một khi giao dịch được gửi đến các nút, nó nằm trong hàng đợi cho đến khi được thêm vào Blockchain bởi một nút xuất bản Các giao dịch được thêm vào Blockchain khi có một nút xuất bản nó thành một khối Một khối bao gồm phần đầu (block header) và phần dữ liệu (block data) Phần đầu chứa siêu dữ liệu (metadata) của khối, còn phần dữ liệu chứa một danh sách các giao dịch được xác minh tính hợp lệ và tính xác thực được gửi đến mạng Blockchain Tính hợp lệ và tính xác thực được đảm
Trang 34bảo bằng cách kiểm tra đúng định dạng và người gửi phải ký vào giao dịch chữ ký mật mã (đã đề cập ở phần trước)
1.5.5 Chuổi khối
Các khối được nối với nhau thành chuỗi, trong đó mỗi khối chứa mã băm của phần đầu khối trước đó, do đó được gọi là chuỗi khối nếu một khối được xuất bản trước đó bị thay đổi, nó sẽ có mã băm khác, gây ra vấn đề là khối còn lại có mã băm khác với khối trước Điều này giúp cho việc phát hiện trở nên dễ dàng hơn và từ chối các khối thay thế Hình 1.7 cho thấy một chuỗi khối chung (a generic chain of blocks)
Hình 1.7: Ví dụ về một chuỗi khối chung
Có thể tóm tắt quá trình diễn ra bên trong Blockchain như sau:
Mỗi một hoạt động sẽ tương ứng với một giao dịch được tạo thành, có đầu vào và đầu ra Ngoài ra còn phải có chữ ký kỹ thuật số (khóa riêng của người gửi) ký vào bên trong giao dịch để khẳng định chủ quyền sở hữu
Giao dịch được gửi đến mạng Blockchain và nằm trong hàng đợi để chờ được xuất bản Có thể xác minh tính hợp lệ bằng cách sử dụng khóa chung của người gửi để kiểm tra Nút xuất bản sẽ đảm nhiệm xuất bản giao dịch đó thành khối
Trang 35 Khối phải nắm được giá trị băm của header khối liền trước nó và của header mà nó đang nắm giữ Giờ đây, khối có thể được thêm vào Blockchain
Sau khi khối thêm vào trong Blockchain (nói cách khác, nó được ghi vào
sổ cái mà nút đó đang giữ), thì nút đó gửi bản sao của sổ cái đến toàn bộ mạng
1.6 Thuật toán đồng thuận
Bitcoin hay các ứng dụng khác của công nghệ Blockchain được sử dụng
để chuyển giá trị trong môi trường không tin tưởng, vì vậy cần một cách xác minh các giao dịch được thực hiện là đúng và đó là các thuật toán đồng thuận Mục tiêu của thuật toán đồng thuận là đảm bảo tồn tại duy nhất 1 lịch sử giao dịch và lịch sử giao dịch đó không chứa các giao dịch không hợp lệ hoặc các giao dịch có mâu thuẫn Ví dụ: không cho phép một tài khoản có thể tiêu dùng quá số lượng đang có trong tài khoản của mình hoặc tiêu dùng 2 lần Bảng bên dưới sẽ mô tả một số sự khác nhau cơ bản của một số thuật toán đồng thuận
Bitcoin xử lý vấn đề đồng thuận bằng cách với mỗi block mới sẽ có 1 target đảm bảo giá trị băm của block trước nó, block hiện tại và một giá trị nonce phải nhỏ hơn hoặc bằng giá trị target này Do giá trị của hàm băm được phân bố đều nên không dễ để có thể tạo ra một block thỏa mãn điều kiện trên
Vì vậy, có một cuộc chạy đua giữa các máy đào trong mạng để tìm được giá trị nonce chính xác Khi tìm được giá trị nonce, máy đào sẽ truyền thông tin
về block mới được tìm ra tới toàn bộ mạng lưới và các máy đào khác sẽ thực hiện xác minh giao dịch Nếu đủ số node xác minh tìm thấy các giao dịch, chúng sẽ đồng ý để block được thêm vào chuỗi Quá trình này được gọi là proof-of-work (PoW) Mục tiêu là không tập trung quá nhiều quyền lực cho một cá nhân hay tổ chức nào vì thế cần phải lựa chọn một loại tài nguyên hạn
Trang 36chế nào đó để bầu chọn cho tính xác thực của một block Với PoW, tài nguyên đó chính là sức mạnh tính toán của máy tính Nhưng sức mạnh tính toán thì ngày càng sẵn có và rẻ hơn theo định luật Moore và công nghệ điện toán đám mây, độ khó của hàm băm đã được quy định dựa vào tần suất mà block trước đó được tìm ra Tuy nhiên, PoW là một sự lãng phí năng lực tính toán và năng lượng vô cùng lớn Có những thợ đào chỉ đào Bitcoin vào mùa đông và sử dụng nhiệt lượng tỏa ra để sưởi ấm (“Hotmine Inc.” 2016) Các thợ đào tập trung tài nguyên lại với nhau thành những nông trại đào bitcoin khổng lồ để tăng hiệu quả, điều này dẫn tới việc tập trung hóa trong mạng phân tán Tốc độ trong mạng Bitcoin là cứ sau 10 phút thì sinh ra 1 block mới
và block size chỉ khoảng 1 MB Sự tiêu tốn năng lượng và thông lượng là 2 nguyên nhân chính dẫn tới sự ra đời của các thuật toán đồng thuận khác để thay thế proof-of-work Đó là Proof – of – Stake (PoS), đây là thuật toán không sử dụng sức mạnh tính toán mà sử dụng chính quyền sử hữu các token của Blockchain để chiếm ưu thế tạo ra block mới Blockchain theo dõi một nhóm các validators (bất kỳ ai giữ token đều có thể trở thành 1 validator bằng cách gửi 1 loại giao dịch đặc biệt để khóa token của họ như 1 khoản đặt cọc) Tất cả các validator có thể tham gia vào quá trình tạo và chấp nhận block mới được thực hiện thông qua thuật toán động thuận Có 2 loại thuật toán đồng thuận: chain-based proof of stake (CBPoS) và BFT – style proof of stake (BFTPoS) Với CBPoS, sau một khoảng thời gian nhất định thuật toán sẽ chọn ngẫu nhiên ra một validator và gán cho validator này quyền tạo ra block mới, và block này phải trỏ tới block cuối cùng của chuỗi Với BFTPoS, các validators sẽ được gán ngẫu nhiên quyền đề xuất các block nhưng việc chấp nhận phải thông qua một quá trình nhiều vòng nơi mà mỗi validator “bỏ phiếu” cho một số block nào đó trong mỗi vòng cho tới khi kết thúc của quá trình tất cả những validators trung thực nhất và đang online sẽ quyết định xem
có hay không bất kỳ block nào được thêm vào chuỗi