TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
______________________________
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
Hà Nội, 2021
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
______________________________
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
Hà nội, 2021
LỜ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 q trình làm bài tập lớn mơn học. Với sự hướng dẫn củ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
MỤC LỤC
DANH MỤC HÌNH VẼ
DANH MỤC BẢNG BIỂU
DANH MỤC THUẬT NGỮ
CHƯƠNG I. MỞ ĐẦU
1. Tổng quan
Trong nhiều năm gần đây, cơng nghệ Blockchain hay cịn gọi là cơng
nghệ chuỗi khối đang trở thành xu hướng “hot” trên thế giới nói chung và tại
Việt Nam nói riêng. Ngồi ứng dụng nổi bật gắn với Bitcoin và tiền điện tử,
Blockchain cịn có nhiều ứng dụng nổi bật trong nhiều lĩnh vực khác nhau. Cơng
nghệ này có tiềm năng ứng dụng to lớn trong các ngành từ dịch vụ tài chính, sản
xuất và khu vực công cho đến chuỗi cung ứng, giáo dục và năng lượng. Đặc biệt
trong lĩnh vực đời sống, công nghệ Blockchain cho thấy được những ứng dụng
cực kỳ nổi bật có thể kể đến như:
• Ứng dụng trong lĩnh vực sản xuất: quản lý hàng tồn kho, theo dõi
quy trình sản xuất, số lượng mua và bán, truy xuất nguồn gố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ề…
• Ứng dụng trong ngành nơng nghiệp: quản lý chuỗi cung ứng sản
phẩm và hàng tồn kho, lưu trữ thông tin hàng hóa, truy xuất nguồ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á trong các sự cố
nhiễm bẩn. Với Blockchain, các nhà quản lý có thể nhanh chóng xá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.
Một hệ thống theo dõi được xây dựng bằng công nghệ Blockchain giú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.
Ngồ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ản xuất,
vật liệu, thiết bị...), hoạt động từ thiện (các khoản đóng góp), an ninh mạng
(chống việc tấn công, đánh cắp và thay đổi dữ liệu), bầu cử (kiểm sốt quy trình
và số phiếu bầu), quản lý nhân sự (danh tính và lịch sử làm việc củ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ủy sản,
Thủ công mỹ nghệ… Theo Quy định 178/2002 EU cho biết, truy xuất nguồn gốc
là khả năng theo dõi tồn bộ q trình sản xuất, chế biến và phân phối thực
phẩm; thức ăn gia súc; thực phẩm chế biến cho động vật; hoặc nhữ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ẩm
ngày càng cao. Theo đó, họ có nhu cầu truy xuất được nguồn gốc cho thực phẩm
họ muốn tiêu thụ. Vì vậy, việc các nhà sản xuất đưa ra thơng tin chi tiế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êu chuẩ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ự minh bạch hơn về
quy trình, nguồn gốc sản phẩm, tức họ cần có thông tin truy xuấ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ảo chất lượng sản phẩm
hay khơng; sản phẩm có được kiểm sốt chất lượng một cách nghiêm túc trong
toàn bộ chuỗi cung ứng hay không.
Hì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ột vai
trị quan trọng trong việc chống lại gian lận thực phẩm. Khi nhu cầu tiêu dùng
đối với thực phẩm hữu cơ, non-GMO (thực phẩm không biến đổi gen: nonGenetically modified organisms) và thức ăn không chứa kháng sinh tă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ác giao dịch nhỏ nhất –
dù ở nông trại, nhà kho hay nhà xưởng – có thể được giá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ới cô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ất nguồn gốc rau
củ quả sạch.
4. 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:
• Nắm được các khái niệm quan trọng về Blockchain, cấu trúc một
chuỗi, khối
• Mã hóa và các phương pháp mã hóa, chữ ký số
• Nắm được các cơng cụ để xây dựng Blockchain
• Sử dụng một số công cụ để xây dựng ứng dụng minh họa
Blockchain
• Xây dựng và triên khai ứng dụng truy xuất nguồn gốc rau củ quả
sạch
CHƯƠ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 được liê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ấp nhậ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 q nhiều sức mạnh tính
tố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 sốt 51% sức mạnh tính tốn, hệ
thống có thể “bị” điều khiển một cách có chủ đích hoặc vơ tình thực hiệ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”).
Stablecoi – 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ới internet, 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 Storage như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ỗi token 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 chi phí 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ạng phân
cấp.
Decentralized – 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 hồn tồn với mơ hình
Centralized.
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ệc sao
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ệc nâ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à Soft Fork. Một thay
đổi khơng tương thích ngược lại, được gọi là Hard Fork. Đôi lúc, sự chia rẽ
trong cộng đồng liên quan đến một Hard Fork có thể xuất hiệ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à khóa cho
việc xác định khối (block) bằng cách chuyển đổi thành một chuỗi cá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ẽ cung cấp
miễn phí 80%, có nghĩa là tặng 800.000 mã thơng báo và nhóm phát triể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ập trung. ,
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 cậ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ác minh 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 tốn lớn xử lí. Thợ đào giải
phương trình đầu tiên cho phép giao dịch diễn ra và được thưởng một khoả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ùng muốn giao
dịch cần phải quét ví giấy.
Peer-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 tố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ông minh
đượ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 tốn đáng kể, các thợ mỏ trên mạng lưới cạ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ác loại
cryptocurrency khác nhau. Một số ví hỗ trợ nhiều loại cryptocurrency trê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 đang phát
triển ở giai đoạn thứ 3:
• 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 đổi tiền tệ,
kiều hối và hệ thống thanh tốn kỹ thuật số.
• Giai đoạn 2 – Hợp đồng thơng minh (Smart Contract): Ngồ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ựa trên Ethereum
framework. Các giải pháp và ứng dụng liên quan đến cơ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ảng blockchain, hầu
như các nền tảng đều thực hiện giao dịch khá chậm tù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ày chỉ 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ới BItcoin 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 được giớ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ống thanh toán
kỹ thuật số trong lãnh thổ tiền điện tử nói chung và Bitcoin nói riêng bằng các
thuật tốn về tiền tệ (ví blockchain).
Về cách hoạt động của Blockchain 1.0: khi khách hàng muốn sử dụng
Bitcoin để thanh tốn dịch vụ hay hàng hóa, người dùng sẽ ra lệnh ghi chép và
xác nhận giao dịch. Giao dịch sẽ được ghi lại một cách công khai thành những
khối block được xếp vào chuỗi, và được xác nhận bởi những người sử 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ựa và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 gia nhập mạng lưới này
nhận một bản sao chép của Blockchain có chứa dữ liệu ghi 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ừng
bước chiếm lĩnh thị trường, là điểm sáng trong lĩnh vực Tài chính, Ngân hà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 đồng thơ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 ra ngồi lĩnh vực crypto,
tài chính và thị trường thì đều được liệt kê trong nhó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úm nă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ạng
hó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 minh bạch, công
khai nhất. Dùng ngân hàng truyền thống như một phép so sánh, có thể thấy
Blockchain như một lược sử đầy đủ của những giao dịch trong một thể chế tài
chính và mỗi block là một bản sao kê cá nhân.
Thêm nữa, với hệ thống cơ sở dữ liệu phân phối như một cuốn sổ cái điện
tử mở, Blockchain có tiềm năng đặc biệt đơn giản hóa việc vận hành cho tất cả
các bên khiến nó trở thành cơng nghệ lý tưởng của những thể chế Tài chính và
sàn giao dịch chứng khốn. Blockchain 2.0 đã chính thức lấn sân, thay thế
những mạng lưới kế toán và thanh toán đắt đỏ, thiếu hiệu quả của ngành Tài
chính trước đây; giúp các nhà vận hành thị trường chứng khoán tiết kiệm lên tới
con số khổng lồ là 6 tỷ đô/năm (theo báo cáo của Goldman Sachs). Thời gian
đầu các ngân hàng hay các cơng ty trong ngành dịch vụ tài chính vẫn cịn nhiều
hồi nghi bởi sự quan ngại về nguy cơ gian lận tiềm tàng của một công nghệ đầy
mới lạ, nhưng dần dần đã bắt đầu nghiên cứu và có cái nhìn nghiêm túc, đúng
đắn hơn về cơng nghệ Blockchain và những tiềm năng của nó.
2.3. Blockchain 3.0
Cơng nghệ Blockchain 3.0 là thế hệ tiếp theo của 2 phiên bản Blockchain
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ồm trao đổi tài sản số trên
Internet và tự phán xử online, đồng thời được cải tiến một tính năng mới là Dapp
(Decentralized Application), còn gọi là ứng dụng phâ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ừ 2
phiê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 truy cập
chuỗi mở, chip siêu nhỏ.
• Dữ liệu: Được mã hóa trên các khối tích hợp từ phiên bản Blockchain 1.0
• Hợp đồng thơng minh (Smart Contract): Được tích hợp tính năng hợp
đồng thơng minh từ phiên bản Blockchain 2.0
• Nền tảng đám mây (Cloud Node): Các tập lệnh được triển khai trong nền
tảng đám mây. ArcBlock (nền tảng số dựa trên ứng dụng Blockchain phân
quyền thế hệ 3.0) đang hướng đến các đối tác lớn như Amazon, Microsoft,
Google và các nhà cung cấp dịch vụ quy mô lớn khác trên thế giới để phát
triển cơng nghệ này.
• Giao thức truy cập chuỗi mở (Open Chain Access Protocol): Là giao thứ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ĩnh vực khối
chuỗi cho ra mắt công nghệ chip siêu nhỏ ứng dụng trên thiết bị công
nghiệp, phương tiện vận chuyển, sản xuất... và giúp kết nối Blockchain
với Internet of Thing - IoT (IoT (công nghệ kết nối vạ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ác khối
được kết nối với nhau thông qua các giá trị định danh (giá trị băm) đặc trư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 tồn vẹn và khơng thể bị sửa đổi cho blockchain.
Để làm được điều này, blockchain sử dụng hai loại cấu trúc dữ liệu quan
trọng là:
• Con trỏ - lưu giữ thơng tin về vị trí của đối tượng khác. Hay trong lậ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ập trình nào
đều lưu trữ dữ liệu. Ví dụ. int a = 8, có nghĩa là có một biến số a lưu
trữ các giá trị nguyên. Trong trường hợp này, nó đang lư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 được gọ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ên kế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ên với
cách thức thêm con trỏ trỏ đến dữ liệu sau như thế này thì chúng ta gặp hai 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ỉnh giá
trị con trỏ của khối trước nó do đó có thể làm mất tính tồn vẹn củ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 tồ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ợp nà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 tồn vẹn củ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ữ liệu
bên trong khối trước. Chính sự điều chỉnh rất nhỏ này tạo nên tính tin cậy và
tuyệt vời của blockchain.
Do các thuộc tính của hàm băm, một thay đổi nhỏ trong dữ liệu sẽ làm giá
trị băm hoàn toàn thay đổi. Điều này có nghĩa là bất kỳ thay đổi nhỏ nào được
thực hiện trong khối thứ 1, sẽ thay đổi giá trị băm được lưu trữ trong khối 2, và
đến tiếp theo những thay đổi dữ liệu và hàm băm trên khối thứ 2 sẽ dẫn đến thay
đổi trong khối 3, ...Và điều này sẽ dẫn đến sự thay đổi trên tồ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 tốn hiện này gần như là điều khơng thể. Vì vậy,
blockchain đạt được tính chất bất biến.
3.1. Cấu trúc một khối
Khối là một cấu trúc dữ liệu chứa tập hợp các giao dịch để kết hợp trong
sổ cái công khai blockchain. Về cơ bản, một khối trong blockchain sẽ có 2 thành
phần cơ bản: block header (phần tiêu đề) và block data (phần dữ liệu).
Trong đó phần tiêu đề chứa ít nhất một số thơng tin cơ bản sau:
• Phiên bản: Số phiên bả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 được ghi
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ại blockchain.
Blockchain có thể ghi lại các dạng dữ liệu khác nhau như: giao dị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 minh... Nhưng về cơ
bản việc ghi lại thay đổi trên dữ liệu đều có thể được coi là giao dịch.
3.2. Cấu trúc một chuỗi
Như ở trên chúng ta đã biết khối là tập hợp của các giao dịch với cấu trúc
nhất định và được tạo ra bởi một giao thức đồng thuận. Các khối mới được tạo
ra được thêm vào trạng thái tổng thể của blockchain để tạo thành chuỗi khối mới
liên kết với nhau thông qua các giá trị băm của khối trước đó. 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 nhau thô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ện tại.
Chúng được gọi là các "khối nhánh chính". Tuy nhiên, không phải lúc nà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ành mộ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ột khố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ên của tất cả các
khối trong blockchain. Các nút trong mạng bắt đầu một blockchain với ít nhất
một khối vì khối genesis khơng thể được sửa đổi. Mỗi nút trong mạng luôn nhận
ra cấu trúc và giá trị băm của khối genesis.
4. Mã hóa
4.1. Hàm băm
Hàm băm (hash function) là thuật tốn dùng để ánh xạ dữ liệu có kích
thước bất kỳ sang một giá trị “băm” có kích thước cố định, giá trị băm cịn được
gọi là “đại diện thơng điệp” hay “đại diện bản tin”.
Hàm băm là hàm một chiều, theo nghĩa giá trị của hàm băm là duy nhất,
và từ giá trị băm này, “khó” có thể suy ngược lại được nội dung hay độ dài ban
đầu của thơng điệp gốc.
Các hàm băm dịng MD: MD2, MD4, MD5 được Rivest đưa ra có kết quả
đầu ra với độ dài là 128 bit. Hàm băm MD4 đưa ra vào năm 1990. Một năm sau
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ự, được công bố trong Hồ
sơ Liên bang năm 1992 và được chấp nhận làm tiêu chuẩn vào năm 1993 do
Viện Tiêu Chuẩn và Công Nghệ Quốc Gia (NIST), kết quả đầu ra có độ dài 160
bit.
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ị duy nhấ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 tin x’,
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ăm h(x) của nó
cũng vẫn thay đổi. Điều này có nghĩa là: hai thơng điệp khá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ưng lạ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).
4.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ật toán
băm. Khi nhận được tài liệu X, người nhận dùng thuật tốn băm đó
băm lại X và so sánh với giá trị băm người gửi đã gửi, nếu kế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 tốn chữ ký số: Hàm băm giúp tạo ra đại diện tài liệu,
các thuật tốn ký số thay ví ký trên tài liệu ban đầu có dung lượng lớn,
sẽ ký lên đại diện của tài liệu đó. Thời gian thực hiện của thuật tố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 nhanh chó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 theo một
thông điệp dữ liệu khác nhằm xác thực người gửi thơng điệp đó. Q trình ký và
xác nhận chữ ký như sau: Người gửi muốn gửi thông điệp cho bên khác thì sẽ
dùng một hàm băm, băm thơng điệp gốc thành một “thơng điệp tóm tắt”
(Message Digest), thuật tốn này được gọi là thuật toán băm (hash function).
Người gửi mã hố bản tóm tắt thơng điệp bằng khóa bí mật của mình (sử dụng
phần mềm bí mật) để 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ười nhận.
Sau khi nhận được, người nhận sẽ dùng khố cơng khai của người gửi để
giải mã chữ ký số thành bản tóm tắt thơng điệp. Người nhận cũng dùng hàm
băm giống hệt như người gửi đã làm đối với thông điệp nhận được để biến đổi
thông điệp nhận được thành một bản tóm tắt thơng điệp. Người nhận so sánh hai
bản tóm tắt thơng điệp này, nếu chúng giống nhau tức là chữ ký số đó là xác
thực và thông điệp đã không bị thay đổi trên đường truyền đi.
Ngồi ra, chữ ký số có thể được gắn thêm một “nhãn” thời gian: sau một
thời gian nhất định quy định bởi nhãn đó, chữ ký gốc sẽ khơng cịn hiệu lực,
đồng thời nhãn thời gian cũng là công cụ để xác định thời điểm ký
5.2. Ứng dụng của chữ kỹ số
Chữ ký số có ý nghĩa to lớn và trở thành một phần không thể thiếu đối với
ngành mật mã học. Ứng dụng của chữ ký số đã được triển khai trên nhiều quốc
gia trên thế giới, trong đó có Việt Nam. So với chữ ký tay, chữ ký số giúp các cá
nhân, doanh nghiệp thực hiện việc ký các tài liệu được nhanh chóng, hiệu quả
hơn. Một số ứng dụng cụ thể của chữ ký số trong thực tế có thể kể đến như sau:
• Ứng dụng trong chính quyền điện tử: Các cá nhân và doanh nghiệp sẽ
không cần đến các cơ quan nhà nước để xuất trình giấy tờ cũng như ký
kết các giấy tờ. Thay vào đó, việc ký và gửi các tài liệu hồn tồn
thơng qua hệ thống máy tính. Hiện nay ngành thuế ở Việt Nam đã cho
phép gửi tài liệu kê khai thuế qua mạng sử dụng chữ ký số.
• Ứng dụng trong ký kết hợp đồng: Việc ký kết các hợp đồng thường
được thực hiện với sự có mặt của tất cả các bên liên quan và cần người
chứng kiến, điều này gây tốn thời gian đặc biệt là khi các bên ở xa
nhau về khoảng cách địa lý. Chữ ký số có thể cải thiện được việc này,
các bên có thể xác thực được chữ ký của các bên liên quan khác thơng
qua các thuật tốn kiểm tra chữ ký.