BÁO CÁO BÀI TẬP LỚN THUỘC HỌC PHẦN MỘT SỐ CÔNG NGHỆ PHÁT TRIỂN PHẦN MỀM ĐỀ TÀI TÌM HIỂU VỀ BLOCKCHAIN VÀ ỨNG DỤNG VÀO TRUY XUẤT NGUỒN GỐC RAU CỦA QUẢ SẠCH Mục đích chính của nhóm khi thực hiện đề tài “Tìm hiểu về blockchain và ứng dụng vào truy xuất nguồn gốc rau củ quả sạch” hiểu rõ được các khái niệm, các thành phần của Blockchain và tính ứng dụng trong truy xuất nguồn gốc rau củ quả sạch.
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
VÀ ỨNG DỤNG VÀO TRUY XUẤT NGUỒN GỐC
RAU CỦA QUẢ SẠCH
GVHD :
Mã lớp :
Hà Nội, 2021
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
VÀ ỨNG DỤNG VÀO TRUY XUẤT NGUỒN GỐC
RAU CỦA QUẢ SẠCH
Trang 3LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn thầy đã chỉ bảo tận tình và giúp đỡchúng em trong suốt quá trình làm bài tập lớn môn học Với sự hướng dẫncủa thầy, nhóm chúng em đã có những định hướng tốt trong việc triển khai
và thực hiện các yêu cầu làm bài tập lớn trong môn học
Chúng em xin chân thành cảm ơn!!!
Thành viên nhóm
Trang 4MỤC LỤC
LỜI CẢM ƠN 1
DANH MỤC HÌNH VẼ 4
DANH MỤC BẢNG BIỂU 4
DANH MỤC THUẬT NGỮ 4
CHƯƠNG I MỞ ĐẦU 5
1 Tổng quan 5
2 Lý do chọn đề tài 6
3 Mục đích đề tài 7
4 Mục tiêu đề tài 8
CHƯƠNG II NGHIÊN CỨU BLOCKCHAIN 9
1 Khái niệm Blockchain 9
1.1 Khái niệm 9
1.2 Các thuật ngữ phổ biến 9
2 Các thế hệ của Blockchain 14
2.1 Blockchain 1.0 (BTC) 15
2.2 Blockchain 2.0 (ETH) 16
2.3 Blockchain 3.0 17
3 Cấu trúc của Blockchain 18
3.1 Cấu trúc một khối 20
3.2 Cấu trúc một chuỗi 21
4 Mã hóa 22
4.1 Hàm băm 22
4.2 Ứng dụng của hàm băm 23
5 Chữ ký số 23
Trang 55.1 Khái niệm chữ kỹ số 23
5.2 Ứng dụng của chữ kỹ số 24
6 Các bước phát triển một ứng dụng Blockchain 25
6.1 Phát triển ý tưởng 25
6.2 Chọn nền tảng phát triển 25
6.3 Thiết kế cấu trúc 26
6.4 Quá trình phát triển 27
6.5 Triển khai và duy trì ứng dụng 28
7 Công cụ xây dựng 29
7.1 Ngôn ngữ lập trình 29
7.2 Các Framework về Blockchain 33
CHƯƠNG III ỨNG DỤNG TRUY XUẤT NGUỒN GỐC RAU CỦ QUẢ SẠCH 37 1 Mô tả bài toán 37
2 Các thông tin cần lưu trữ 38
3 Xây dựng ứng dụng truy xuất 39
3.1 Dữ liệu (Data) 39
3.2 Tạo một khối – Block 40
3.3 Tạo chuỗi khối 43
CHƯƠNG IV Kết quả đạt được 45
1 Kết quả đạt được 45
2 Hướng phát triển đề tài 45
PHỤ LỤC 46 TÀI LIỆU THAM KHẢO 47
Trang 6DANH MỤC HÌNH VẼ
Hình 1: Mô hình hệ thống truy xuất nguồn gốc TraceVerified 8
Hình 2: Minh họa data lưu trữ thông tin thực phẩm 41
Hình 3: Thư viện crypto-js 42
Hình 4: Class Block 42
Hình 5: Tạo khối demo lưu trữ thông tin cơ bản 43
Hình 6: Block demo 43
Hình 7: Class Blockchain 44
Hình 8: Tạo chuỗi khối lưu trữ thông tin 44
Hình 9: Kết quả thông tin lưu trữ 45
DANH MỤC BẢNG BIỂU DANH MỤC THUẬT NGỮ
Trang 7 Ứng dụng trong lĩnh vực sản xuất: quản lý hàng tồn kho, theodõi quy trình sản xuất, số lượng mua và bán, truy xuất nguồngốc…
Ứng dụng trong lĩnh vực y tế, chăm sóc sức khỏe: phát triểnứng dụng quản lý bệnh lý, quản lý chuỗi cung ứng thuốc vàthiết bị y tế…
Ứng dụng trong lĩnh vực giáo dục: theo dõi và lưu trữ bảngđiểm, thông tin của các đơn vị đào tạo như trường đại học,trung tâm kỹ năng, trường dạy nghề…
sản phẩm và hàng tồn kho, lưu trữ thông tin hàng hóa, truy xuấtnguồn gốc và vòng đời sản xuất của nông sản…
Đặc biệt, trong ngành thực phẩm sạch thì khả năng nhanh chóng dòtìm nguồn gốc của các sản phẩm thực phẩm sẽ là một công cụ vô giá trongcác sự cố nhiễm bẩn Với Blockchain, các nhà quản lý có thể nhanh chóngxác định nguồn gốc chất gây ô nhiễm và xác định phạm vi của các sản phẩm
bị ảnh hưởng Một phản ứng kịp thời hơn của các công ty thực phẩm có thểngăn ngừa bệnh tật, hạn chế lãng phí thực phẩm, và cả thiệt hại về tài chính
Trang 8Một hệ thống theo dõi được xây dựng bằng công nghệ Blockchaingiúp cho việc truy cập, truy vấn sản phẩm dễ dàng, giảm thời gian để các tổchức và cơ quan có thẩm quyền xác định nguồn gốc gây ô nhiễm thực phẩm
Ngoài ra, Blockchain còn được ứng dụng nhiều trong các lĩnh vực vàngành nghề khác như sản xuất các phương tiện giao thông (quy trình sảnxuất, vật liệu, thiết bị ), hoạt động từ thiện (các khoản đóng góp), an ninhmạng (chống việc tấn công, đánh cắp và thay đổi dữ liệu), bầu cử (kiểm soátquy trình và số phiếu bầu), quản lý nhân sự (danh tính và lịch sử làm việccủa ứng viên), bất động sản (các hợp đồng mua bán, giao dịch )
2 Lý do chọn đề tài
Hiện nay, nhiều doanh nghiệp Việt Nam đang băn khoăn về khái niệm
“Truy xuất nguồn gốc”, đặc biệt đối với những ngành như Nông sản, Thủysản, Thủ công mỹ nghệ… Theo Quy định 178/2002 EU cho biết, truy xuấtnguồn gốc là khả năng theo dõi toàn bộ quá trình sản xuất, chế biến và phânphối thực phẩm; thức ăn gia súc; thực phẩm chế biến cho động vật; hoặcnhững sản phẩm khác như thủ công mỹ nghệ
Cùng với đó, ý thức của người tiêu dùng về vấn đề an toàn thực phẩmngày càng cao Theo đó, họ có nhu cầu truy xuất được nguồn gốc cho thựcphẩm họ muốn tiêu thụ Vì vậy, việc các nhà sản xuất đưa ra thông tin chitiết về các mắt xích trong chu trình cung ứng và xác thực cho các thông tin
ấy là điều tất yếu
Nhiều doanh nghiệp đã hướng đến sản xuất thực phẩm đạt các tiêuchuẩn VietGAP, GlobalGAP, ASC, HACCP…, nhưng như vậy vẫn chưa đủnghiêm ngặt cho chuẩn mực chất lượng Người tiêu dùng cần có sự minhbạch hơn về quy trình, nguồn gốc sản phẩm, tức họ cần có thông tin truyxuất nguồn gốc tại tất cả các khâu trong chuỗi sản xuất và tiêu thụ sản phẩm,
để biết liệu đơn vị cung cấp sản phẩm có nỗ lực tối đa trong vấn đề đảm bảochất lượng sản phẩm hay không; sản phẩm có được kiểm soát chất lượngmột cách nghiêm túc trong toàn bộ chuỗi cung ứng hay không
Trang 9Hình 1: Mô hình hệ thống truy xuất nguồn gốc TraceVerified.
Tính minh bạch bổ sung rằng các mô hình blockchain có thể đóng mộtvai trò quan trọng trong việc chống lại gian lận thực phẩm Khi nhu cầu tiêudùng đối với thực phẩm hữu cơ, non-GMO (thực phẩm không biến đổi gen:non-Genetically modified organisms) và thức ăn không chứa kháng sinhtăng cao, tin tức đang lan tràn với các trường hợp dán nhãn gian lận Cácgiao dịch nhỏ nhất – dù ở nông trại, nhà kho hay nhà xưởng – có thể đượcgiám sát hiệu quả và truyền đạt trên toàn bộ chuỗi cung ứng khi kết hợp vớicông nghệ IoT (Internet of things) như cảm biến và thẻ RFID
Các công nghệ Blockchain có thể ngăn chặn việc tước đoạt giá vàthanh toán chậm, đồng thời loại bỏ các trung gian và giảm phí giao dịch.Điều này có thể dẫn đến giá cả hợp lý hơn và thậm chí giúp nông dân nhỏnắm giữ một phần lớn hơn giá trị cây trồng của họ
Từ đó, nhóm chúng em nhận thấy được tầm quan trọng, tính ứng dụng
cao của “Blockchain và ứng dụng vào truy xuất nguồn gốc rau củ quả
sạch”
3 Mục đích đề tài
Mục đích chính của nhóm khi thực hiện đề tài “Tìm hiểu về blockchain
và ứng dụng vào truy xuất nguồn gốc rau củ quả sạch” hiểu rõ được các
khái niệm, các thành phần của Blockchain và tính ứng dụng trong truy xuấtnguồn gốc rau củ quả sạch
Trang 104 Mục tiêu đề tài
Mục tiêu cần đạt được khi thực hiện bài tập lớn:
một chuỗi, khối
Mã hóa và các phương pháp mã hóa, chữ ký số
Sử dụng một số công cụ để xây dựng ứng dụng minh họaBlockchain
Xây dựng và triên khai ứng dụng truy xuất nguồn gốc rau củquả sạch
Trang 11CHƯƠNG II NGHIÊN CỨU BLOCKCHAIN
1 Khái niệm Blockchain
1.1 Khái niệm
Theo Wikipedia: Blockchain (chuỗi khối), tên ban đầu block chain làmột cơ sở dữ liệu phân cấp lưu trữ thông tin trong các khối thông tin đượcliên kết với nhau bằng mã hóa và mở rộng theo thời gian Mỗi khối thông tinđều chứa thông tin về thời gian khởi tạo và được liên kết tới khối trước đó,kèm một mã thời gian và dữ liệu giao dịch Blockchain được thiết kế đểchống lại việc thay đổi của dữ liệu: Một khi dữ liệu đã được mạng lưới chấpnhận thì sẽ không có cách nào thay đổi được nó
1.2 Các thuật ngữ phổ biến
51% Attack – Thuật ngữ này mô tả tình huống quá nhiều sức mạnh
tính toán (hash power) của mạng lưới blockchain được tập trung tại một chỗ
Có thể một người hoặc một nhóm người dùng kiểm soát 51% sức mạnh tínhtoán, hệ thống có thể “bị” điều khiển một cách có chủ đích hoặc vô tình thựchiện các giao dịch xung đột xâm phạm đến hệ thống
Altcoin – Tất cả cryptocurrency ngoại trừ Bitcoin được gọi là Altcoin
(viết tắt từ “alternative coin”)
Trang 12Stablecoi – Các coin tham chiếu đến một loại tài sản hay tiền tệ cố
định để giữ cho giá của coin ổn định Tether là một dạng stablecoin dùngđồng USD để tham chiếu giá
Cold Storage – Cold Wallet (ví lạnh): Biện pháp bảo mật lưu trữ
cryptocurrency trong một môi trường ngoại tuyến (offline environment).Đây có thể là thiết bị lưu trữ (USB) hoặc ví giấy Do không kết nối vớiinternet, cách lưu trữ này bảo mật hơn, tuy nhiên khả năng sẵn sàng thấp
Hot Storage – Hot Wallet (ví nóng): Biện pháp bảo mật lưu trữ
cryptocurrency môi trường internet Đây có thể là coinbase.com,blockchain.com Biện pháp lưu trữ này kém bảo mật hơn Cold Storagenhưng tín sẵn sang cao hơn
Consensus – Sự đồng thuận: Vì mạng lưới Blockchain mang tính phi
tập trung (decentralized) nên sự đồng thuận là yếu tố vô cùng quan trọng
Cryptocurrency (Tiền mã hóa): Ứng dụng đầu tiên của Blockchain.
Tiền mã hóa được thiết kế và lưu trữ trên mạng lưới phi tập chung với mỗitoken và các giao dịch được mã hóa
DAO – Viết tắt của “Decentralized Autonomous Organization” Một
tổ chức được xây dựng dựa trên bộ quy tắc và quyền tự quyết có cấu trúc môhình phân cấp của Blokchain, loại bỏ những thủ tục rườm rà và tốn kém chiphí về nhân lực
Dapps – Viết tắt của “Decentralized apps” Về cơ bản, đây là những
chương trình sử dụng Blockchain để tạo ra các ứng dụng chạy trên mạngphân cấp
Trang 13Decentralized – Mô hình phân tán phi tập chung, là mô hình mang ý
tưởng chia phần việc ra và phân về cho những bộ phận nhỏ xử lý, ra quyếtđịnh ở cấp bộ phận Quyền lực được chia đều đối lập hoàn toàn với mô hìnhCentralized
Digital signature – Mã định danh duy nhất được cung cấp cho một
người dùng, một token hoặc một giao dịch trong mạng lưới Blockchain
Distributed Ledger – Công nghệ sổ cái phân tán là một mạng ngang
hàng P2P (peer-to-peer) sử dụng các thuật toán đồng thuận, để đảm bảo việcsao lưu qua các node được thực hiện
Fork – Sự thay đổi của một mạng lưới Blockchain, mỗi thay đổi phải
được sự đồng thuận của người dùng Nếu đủ số người dùng chấp nhận việcnâng cấp hoặc thay đổi mã code, Fork sẽ được triển khai trên toàn hệ thống.Một thay đổi mà vẫn hỗ trợ các phiên bản cũ của mạng, được gọi là SoftFork Một thay đổi không tương thích ngược lại, được gọi là Hard Fork Đôilúc, sự chia rẽ trong cộng đồng liên quan đến một Hard Fork có thể xuấthiện một mạng lưới Blockchain hoàn toàn mới, song song được tạo ra Ví dụtrường hợp của Bitcoin Cash và Ethereum Classic
Full Node – Là một node thực thi đầy đủ các quy tắc của một mạng
lưới Blockchain (chạy phần mềm đầy đủ của một mạng lưới Blockchain)
Genesis block – Khối (block) đầu tiên trên mạng Blockchain.
Hash – Một thuật toán sinh ra các giá trị băm tương ứng với mỗi khối
dữ liệu Khi lưu trữ thông tin trên Blockchain, giá trị băm đóng vai trò là
Trang 14khóa cho việc xác định khối (block) bằng cách chuyển đổi thành một chuỗicác số và chữ cái
ICO (Initial Coin Offering): là một cách huy động vốn để sử dụng
Token Năm 2014 Ethereum đã kêu gọi 3.700 BTC
Airdrop: tăng vốn bằng cách tặng Token miễn phí Tặng miễn phí là
làm sao để có vốn? Ví dụ: một dự án có 1.000.000 mã thông báo và sẽ cungcấp miễn phí 80%, có nghĩa là tặng 800.000 mã thông báo và nhóm pháttriển giữ lại 200.000 mã thông báo Nhóm phát triển sau đó đã chi tiền đểđến sàn giao dịch chứng khoán, nhưng trước tiên để đảm bảo số lượng mãthông báo được tung ra thị trường đủ lớn để mọi người cần giao dịch Giả sửsau khi liệt kê mỗi mã thông báo là 5 đô la, nhóm phát triển sẽ có 200.000 X
5 $ = 1.000.000 $
STO (Sercurity Token Offer): Một dạng mã thông báo bảo mật, mã
thông báo giao dịch với chứng nhận cổ phiếu và quản lý quyền sở hữu Một
dự án phổ biến của STO đã thực hiện Polymath
IEO (Initial Exchange Offering): Tokens được bán trực tiếp trên sàn
giao dịch Điển hình nhất là trao đổi binance
DeFi (Decentralized Finance): tài chính phi tập trung, nghĩa là chuyển
tiền, cho vay, bảo hiểm, v.v.) được thực hiện trên một mạng lưới phi tậptrung , Ethereum Defi, EOS Defi
Ledger – Nhật ký kỹ thuật số của tất cả các giao dịch diễn ra trên
mạng lưới Blockchain Bản sao sổ kế toán được lưu trữ trên mạng và được
Trang 15cập nhật liên tục để phù hợp với nhau, vì vậy các giao dịch có thể được xácminh bởi bất kỳ ai kết nối với mạng
Lightning Network – Một giải pháp được thiết kế để tăng tốc độ xử
lý giao dịch trên mạng Blockchain Mạng Lightning tạo ra một mạng P2P để
xử lý các giao dịch, trước khi được ghi lại trên sổ cái công cộng Blockchain
Liquidity – Thanh khoản Có thể nhận ra, cryptocurrency dễ dàng
chuyển đổi thành tiền mặt Tính thanh khoản phụ thuộc vào nhiều yếu tố,bao gồm cả cung và cầu, thời gian xử lí giao dịch
Mining – Hành động sử dụng sức mạnh máy tính để xác nhận khối
(block) trên mạng lưới và được thưởng bằng token Mỗi giao dịch được mãhóa bằng một phương trình đòi hỏi sức mạnh tính toán lớn xử lí Thợ đàogiải phương trình đầu tiên cho phép giao dịch diễn ra và được thưởng mộtkhoản phí nhỏ
Mining pool – Một hệ thống phần mềm tập chung nhóm các thợ đào
để có thể xác nhận khối (block) và xử lí giao dịch nhiều hơn Lợi nhuận sẽđược phân chia cho các thành viên trong nhóm
Node – Một máy tính kết nối với hệ thống và giữ một bản sao lưu của
sổ cái Blokchain
Paper wallet – Một trong những biện pháp bảo mật lưu trữ
cryptocurrency trong môi trường ngoại tuyến (Cold storage) Ví giấy có thểđược in ra trên bất kỳ máy in nào, bao gồm khóa công cộng và khóa riêng tưduy nhất của người dùng, được mã hóa dưới dạng mã QR Người dùngmuốn giao dịch cần phải quét ví giấy
Trang 16Peer-to-Peer (P2P) – Hành động chia sẻ thông tin trực tiếp giữa hai
bên trên một mạng nhất định mà không cần một máy chủ trung gian đểtruyền dữ liệu
Smart Contract – Một thuật toán sử dụng công nghệ Blockchain để
tự động thực hiện một hợp đồng Các điều khoản của một hợp đồng thôngminh được thực hiện khi các bên tham gia đáp ứng tất cả các yêu cầu Hợpđồng thông minh được phổ biến bởi mạng lưới Ethereum
Transaction Fee – Phí giao dịch Vì các giao dịch trên một mạng
Blockchain đòi hỏi sức mạnh tính toán đáng kể, các thợ mỏ trên mạng lướicạnh tranh cho quyền xử lý giao dịch Thợ mỏ đầu tiên xử lý sẽ nhận phígiao dịch
Wallet – Ví là một chương trình trực tuyến cho phép người dùng lưu
trữ, chuyển và xem số dư trong tài khoản Các ví khác nhau sẽ hỗ trợ cácloại cryptocurrency khác nhau Một số ví hỗ trợ nhiều loại cryptocurrencytrên một nền tảng duy nhất
Whitepaper – Một bản báo cáo mô tả chi tiết về dự án ICO (Initial
Coin Offering) của một công ty hay một nhóm nhà phát triển sẽ thực hiện,giúp nhà đầu tư có một cái nhìn tổng quan về dự án, từ đó đưa ra quyết địnhđầu tư
2 Các thế hệ của Blockchain
Công nghệ Blockchain đã phát triển qua 3 giai đoạn và hiện tại đangphát triển ở giai đoạn thứ 3:
Trang 17 Giai đoạn 1 – Tiền kỹ thuật sô (Cryptocurrencies): Đây là thế hệ ứng
dụng blockchain vào lĩnh vực tiền kỹ thuật số bao gồm chuyển đổitiền tệ, kiều hối và hệ thống thanh toán kỹ thuật số
Giai đoạn 2 – Hợp đồng thông minh (Smart Contract): Ngoài việc
ứng dụng blockchain vào cryptocurrencies, con người đã suy nghĩ vàứng dụng vào các lĩnh vực khác với sự tiện lợi của smart contract Cácứng dụng phổ biến trong giai đoạn này liên quan đến các ứng dụng vềtài chính, bảo hiểm, truy xuất nguồn gốc, y tế, game (cryptokitties) và
kể quản lý chính phủ (Estonia) Ethereum được xem như làframework đại diện cho giai đoan với sự phát triển các ứng dụng dựatrên Ethereum framework Các giải pháp và ứng dụng liên quan đếncông nghệ Blockchain sẽ được trình bày chi tiết trong bài viết sau
Giai đoạn 3 – Khả năng mở rộng (SCALABLE BLOCKCHAIN):
Mở rộng quy mô hiện đang là vấn đề chính của các nển tảngblockchain, hầu như các nền tảng đều thực hiện giao dịch khá chậmtùy thuộc vào giải thuật đồng thuận của từng nền tảng
2.1 Blockchain 1.0 (BTC)
Thế hệ này được giới thiệu cùng sự ra đời của Bitcoin, và ban đầu nóđược dùng cho lĩnh vực tiền ảo Cùng với đó, Bitcoin là ví dụ đầu tiên vềtiền ảo, có nghĩa là nó phân loại thế hệ đầu tiên của blockchain và thế hệ nàychỉ nằm trong lĩnh vực tiền ảo Tất cả các đồng tiền thuật toán khác cùng vớiBItcoin sẽ được liệt kê vào nhóm này Nó bao gồm các ứng dụng cốt lõi nhưthanh tán và ứng dụng Thế hệ này bắt đầu từ năm 2009 khi Bitcoin đượcgiới thiệu và kết thúc vào đầu năm 2010
Công nghệ Blockchain 1.0 đứng đằng sau sự thành công của đồng tiền
ảo Bitcoin, hỗ trợ mọi giao dịch chuyển đổi tiền tệ, kiều hối và hệ thốngthanh toán kỹ thuật số trong lãnh thổ tiền điện tử nói chung và Bitcoin nóiriêng bằng các thuật toán về tiền tệ (ví blockchain)
Trang 18sử dụng Bitcoin khác Trung bình cứ 10 phút, một khối block mới được tạo
ra và đính vào chuỗi Blockchain thông qua việc "đào" Bitcoin Hiểu là, dựavào giao thức của Bitcoin, cơ sở dữ liệu Blockchain được chia sẻ cho tất cảcác máy tính tham gia vào hệ thống này Mỗi máy tính được kết nối khi gianhập mạng lưới này nhận một bản sao chép của Blockchain có chứa dữ liệughi chép lại và là bằng chứng cho việc một giao dịch được hoàn tất
2.2 Blockchain 2.0 (ETH)
Tiếp nối Blockchain 1.0, ứng dụng công nghệ Blockchain 2.0 đã từngbước chiếm lĩnh thị trường, là điểm sáng trong lĩnh vực Tài chính, Ngânhàng, giúp thay đổi cuộc sống con người và cách vận hành vốn có của Thịtrường Thế hệ này được sử dụng trong các dịch vụ tài chính và hợp đồngthông minh Thế hệ này chứa nhiều tài sản tài chính Các ứng dụng vượt rangoài lĩnh vực crypto, tài chính và thị trường thì đều được liệt kê trongnhóm này
Ethereum, Hyperledger và các nền tảng blockchain mới hơn khác đềuđược liệt kê vào 1 phần của blockchain 2.0 Thế hệ này bắt đầu từ khi ýtưởng về việc sử dụng blockchain vào mục đích khác bắt đầu nhen nhúmnăm 2010
Việc thực hiện các hợp đồng này đã cho chúng ta cơ hội để cách mạnghóa thế giới, cắt giảm trung gian và cho phép tin tưởng vào thế giới kỹ thuật
số hiện tại Thật thích hợp đưa vào thị trường Tài chính, ngân hàng với việcứng dụng, xử lý các tài sản bào gồm cổ phiếu, chi phiếu, nợ, quyền sở hữu
và bất kỳ điều gì có liên quan đến thỏa thuận hay hợp đồng một cách minhbạch, công khai nhất Dùng ngân hàng truyền thống như một phép so sánh,
Trang 192.3 Blockchain 3.0
Công nghệ Blockchain 3.0 là thế hệ tiếp theo của 2 phiên bảnBlockchain 1.0 (BTC) và Blockchain 2.0 (ETH) với mục đích tối đa hóa ưuđiểm và khắc phục các hạn chế 2 của phiên bản trước đó liên quan đến khảnăng mở rộng, khả năng tương tác, truy cập số lượng lớn và quyền riêng tư.Blockchain thế hệ thứ 3 kế thừa 2 tính năng của những thế hệ trước bao gồmtrao đổi tài sản số trên Internet và tự phán xử online, đồng thời được cải tiếnmột tính năng mới là Dapp (Decentralized Application), còn gọi là ứng dụngphân tán hay ứng dụng phi tập trung
Cấu trúc nền tảng của Blockchain 3.0 là nền tảng được nâng cấp từ 2phiên bản trước đó (Blockchain 1.0 và Blockchain 2.0) với các tính năng bổsung như dữ liệu, hợp đồng thông minh, nền tảng đám mây, giao thức truycập chuỗi mở, chip siêu nhỏ
Trang 20 Giao thức truy cập chuỗi mở (Open Chain Access Protocol): Là giaothức mở chuỗi khối được phát triển bởi nhóm ArcBlock.
Chip siêu nhỏ (Blocklet): Kiến trúc mới của mạng máy tính khi hoạtđộng mà không cần truy cập máy chủ Công ty Filament - startup lĩnhvực khối chuỗi cho ra mắt công nghệ chip siêu nhỏ ứng dụng trênthiết bị công nghiệp, phương tiện vận chuyển, sản xuất và giúp kếtnối Blockchain với Internet of Thing - IoT (IoT (công nghệ kết nốivạn vật qua Internet)
3 Cấu trúc của Blockchain
Trong blockchain đơn vị cơ bản để lưu trữ dữ liệu là các khối, cáckhối được kết nối với nhau thông qua các giá trị định danh (giá trị băm) đặctrưng cho khối Đây là đặc điểm lưu trữ dữ liệu riêng biệt trong blockchain.Kiến trúc lưu trữ này tạo nên tính toàn vẹn và không thể bị sửa đổi choblockchain
Để làm được điều này, blockchain sử dụng hai loại cấu trúc dữ liệuquan trọng là:
Con trỏ - lưu giữ thông tin về vị trí của đối tượng khác Hay tronglập trình chúng ta thường gọi là lưu trữ địa chỉ của biến khác.Thông thường các biến bình thường trong bất kỳ một ngôn ngữ lậptrình nào đều lưu trữ dữ liệu Ví dụ int a = 8, có nghĩa là có một
Trang 21biến số a lưu trữ các giá trị nguyên Trong trường hợp này, nó đanglưu trữ một giá trị nguyên là 8 Con trỏ, thay vì lưu trữ giá trị sẽlưu trữ địa chỉ của các biến khác Đó là lý do tại sao chúng đượcgọi là con trỏ, bởi vì chúng trỏ về vị trí của các biến khác
Danh sách liên kết là một chuỗi các đối tượng dữ liệu trong đó mỗiđối tượng chứa hai thành phần: dữ liệu cụ thể trong khối và liênkết đến khối sau với sự trợ giúp của một con trỏ
Đây là nguyên lý hoạt động chung của danh sách liên kết Tuy nhiênvới cách thức thêm con trỏ trỏ đến dữ liệu sau như thế này thì chúng ta gặphai vấn đề:
Khi thêm một khối dữ liệu vào danh sách, chúng ta cần điều chỉnhgiá trị con trỏ của khối trước nó do đó có thể làm mất tính toàn vẹncủa khối phía trước
Khi điều chỉnh khối phía trước chúng ta có thể cho nó trỏ đến bất
cứ khối nào, và điều này rất khó để xác mình khối nào là đúng
Do đó, để đảm bảo tính toàn vẹn và dễ xác minh cho blockchain,chúng ta sử dụng cơ chế con trỏ băm Nghĩa là, con trỏ, trong trường hợpnày, trỏ đến khối phía trước thông qua giá trị băm của khối đó Khi đó, đểthêm vào một khối mới, điều duy nhất chúng ta cần làm là xác định giá trịbăm của khối trước nó muốn thêm vào và đưa nó thành giá trị của con trỏtrong khối mới Điều này tương tự như việc tìm và chỉ định địa chỉ liên hệ.Chúng ta không thay đổi dữ liệu của khối trước và để xác minh tính toàn vẹncủa nó cũng cực kỳ đơn giản bằng cách so sánh các giá trị băm tương ứng
Con trỏ băm (hash pointer) có cơ chế hoạt động tương tự như con trỏ,nhưng thay vì chỉ chứa địa chỉ của khối trước đó, nó chứa giá trị băm của dữ
Trang 22sẽ dẫn đến thay đổi trong khối 3, Và điều này sẽ dẫn đến sự thay đổi trêntoàn chuỗi Do đó, một hacker tấn công vào một khối của blockchain và cốgắng thay đổi dữ liệu, muốn chỉnh sửa giao dịch trên một khối bất kỳ, anh ta
sẽ phải chỉnh sửa lại toàn bộ lịch sử giao dịch trên các khối trước nó với giátrị băm tương ứng Để làm được điều này với năng lực tính toán hiện nàygần như là điều không thể Vì vậy, blockchain đạt được tính chất bất biến
Tem thời gian: dấu thời gian hiện tại
Giá trị băm của block trước (trong trường hợp này chính là con trỏtrỏ đến block trước nó)
Giá trị băm của dữ liệu trong block hoặc Merkle root
Phần dữ liệu là danh sách các giao dịch hoặc trạng thái dữ liệu đượcghi vào sổ cái blockchain trong một khoảng thời gian nhất định Kích thước,thời gian và sự kiện kích hoạt cho các khối là khác nhau đối với mỗi loạiblockchain Blockchain có thể ghi lại các dạng dữ liệu khác nhau như: giaodịch tiền điện tử, thông tin cá nhân, dữ liệu cần bảo vệ hoặc hợp đồng thông
Trang 23đó Hay nói cách khác, chuỗi khối là tập hợp của các khối liên kết với nhauthông qua các giá trị băm và được chấp thuận trong mạng.
Hầu hết các khối được thêm vào để mở rộng blockchain chính hiệntại Chúng được gọi là các "khối nhánh chính" Tuy nhiên, không phải lúcnào mạng cũng đạt được sự đồng thuận về trạng thái của blockchain, do đósinh ra một số loại block đặc biệt:
"Khối nhánh bên" là khối tham chiếu đến khối cha không phải làkhối cuối cùng của blockchain hiện tại Nó có khả năng trở thànhmột nhánh chính, khi sự đồng thuận trên mạng lưới thay đổi
Khối "mồ côi" hay orphan block là các khối tham chiếu đến mộtkhối cha không được biết đến với các nút xử lý khối đó
Về mặt logic, khối đầu tiên không chứa con trỏ đến khối trước nó vìkhối này là khối đầu tiên trong chuỗi do đó nó sẽ không có khối liền trước.Khối này được gọi là khối khởi nguồn hay genesis block Nó là block tổ tiêncủa tất cả các khối trong blockchain Các nút trong mạng bắt đầu mộtblockchain với ít nhất một khối vì khối genesis không thể được sửa đổi Mỗinút trong mạng luôn nhận ra cấu trúc và giá trị băm của khối genesis
Trang 24Hàm băm là hàm một chiều, theo nghĩa giá trị của hàm băm là duynhất, và từ giá trị băm này, “khó” có thể suy ngược lại được nội dung hay độdài ban đầu của thông điệp gốc
Các hàm băm dòng MD: MD2, MD4, MD5 được Rivest đưa ra có kếtquả đầu ra với độ dài là 128 bit Hàm băm MD4 đưa ra vào năm 1990 Mộtnăm sau phiên bản mạnh MD5 cũng được đưa ra Chuẩn hàm băm an toàn:SHA, phức tạp hơn nhiều cũng dựa trên các phương pháp tương tự, đượccông bố trong Hồ sơ Liên bang năm 1992 và được chấp nhận làm tiêu chuẩnvào năm 1993 do Viện Tiêu Chuẩn và Công Nghệ Quốc Gia (NIST), kết quảđầu ra có độ dài 160 bit
Hàm băm h là hàm một chiều (One-way Hash) với các đặc tính sau:
Với thông điệp đầu vào (bản tin gốc) x, chỉ thu được giá trị duynhất z = h(x)
Nếu dữ liệu trong bản tin x bị thay đổi hay bị xóa để thành bản tinx’, thì giá trị băm h(x’) ≠ h(x) Cho dù chỉ là một sự thay đổi nhỏ,
ví dụ chỉ thay đổi 1 bit dữ liệu của bản tin gốc x, thì giá trị bămh(x) của nó cũng vẫn thay đổi Điều này có nghĩa là: hai thông điệpkhác nhau, thì giá trị băm của chúng cũng khác nhau
Nội dung của bản tin gốc “khó” thể suy ra từ giá trị hàm băm của
nó Nghĩa là: với thông điệp x thì “dễ” tính được z = h(x), nhưnglại “khó” tính ngược lại được x nếu chỉ biết giá trị băm h(x) (Kể cảkhi biết hàm băm h)
Trang 254.2 Ứng dụng của hàm băm
Hàm băm được sử dụng trong nhiều ứng dụng thực tế, dưới đây làmột số ứng dụng nổi bật của hàm băm được sử dụng phổ biến:
Đảm bảo dữ liệu không bị sửa đổi: Khi người gửi muốn gửi tài liệu
X cho người nhận, người gửi sẽ gửi cả giá trị băm của X và thuậttoán băm Khi nhận được tài liệu X, người nhận dùng thuật toánbăm đó băm lại X và so sánh với giá trị băm người gửi đã gửi, nếukết quả không trùng khớp chứng tỏ tài liệu X đã bị chỉnh sửa
Hỗ trợ các thuật toán chữ ký số: Hàm băm giúp tạo ra đại diện tàiliệu, các thuật toán ký số thay ví ký trên tài liệu ban đầu có dunglượng lớn, sẽ ký lên đại diện của tài liệu đó Thời gian thực hiệncủa thuật toán ký sẽ nhanh hơn nhiều lần
Xây dựng cấu trúc dữ liệu bảng băm: Bảng băm là một cấu trúc dữliệu cho phép tổ chức lưu trữ và tìm kiếm dữ liệu một cách nhanhchóng và thuận tiện
5 Chữ ký số
5.1 Khái niệm chữ kỹ số
Chữ ký số là một thông điệp dữ liệu đã được mã hóa gắn kèm theomột thông điệp dữ liệu khác nhằm xác thực người gửi thông điệp đó Quátrình ký và xác nhận chữ ký như sau: Người gửi muốn gửi thông điệp chobên khác thì sẽ dùng một hàm băm, băm thông điệp gốc thành một “thôngđiệp tóm tắt” (Message Digest), thuật toán này được gọi là thuật toán băm(hash function) Người gửi mã hoá bản tóm tắt thông điệp bằng khóa bí mậtcủa mình (sử dụng phần mềm bí mật) để tạo thành một chữ ký số Sau đó,người gửi tiếp tục gắn kèm chữ ký số này với thông điệp dữ liệu ban đầu vàgửi thông điệp đã gắn kèm với chữ ký một cách an toàn qua mạng cho ngườinhận