Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh các hoạt động cứu trợ, thiện nguyện xã hội nhằm hỗ trợ những hoàn cảnh khó khăn do thiên tai và dịch bệnh diễn ra ngày càng nhiều, yêu cầu về tính minh bạch trong quá trình phân phối nguồn lực trở nên cấp thiết. Thực tế triển khai các chương trình trao tặng cứu trợ thường gặp trở ngại do thiếu cơ chế kiểm chứng giao dịch rõ ràng, dẫn đến nguy cơ chậm trễ hoặc phân bổ sai đối tượng. Để giải quyết bài toán này, việc ứng dụng công nghệ sổ cái phân tán nhằm số hóa quy trình quản lý voucher hỗ trợ là một hướng tiếp cận kỹ thuật thực tế.

Tuy nhiên, các nền tảng blockchain công cộng hiện hành (như Bitcoin, Ethereum) tồn tại nhiều bất cập khi áp dụng vào quy mô tổ chức và doanh nghiệp:

  • Độ phức tạp của hệ thống: Đòi hỏi quy trình thiết lập đặc thù, khó tiếp cận và khó xây dựng quy trình chuẩn hóa.
  • Quy mô và tài nguyên mạng lưới: Cần số lượng nút mạng (node) lớn để duy trì; các tổ chức không thể công khai dữ liệu nội bộ bảo mật ra mạng lưới công cộng nhưng lại thiếu tài nguyên để vận hành mạng riêng quy mô lớn.
  • Rào cản bảo mật và pháp lý: Cơ chế đồng thuận Proof-of-Work (PoW) gây lãng phí năng lực tính toán và tiềm ẩn rủi ro tấn công khi quy mô nút nhỏ; thiếu vắng khung pháp lý định danh người tham gia.

Đề tài "Tìm hiểu về Hyperledger Fabric và xây dựng ứng dụng minh họa" do sinh viên Dương Công Vũ thực hiện dưới sự hướng dẫn của ThS. Nguyễn Công Hoan (Khoa Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin – ĐHQG-HCM, tháng 11/2021) được triển khai nhằm nghiên cứu giải pháp blockchain doanh nghiệp có phân quyền.

Mục tiêu nghiên cứu của đề tài gồm 4 nhiệm vụ cụ thể:

  1. Tiếp thu và tổng hợp kiến thức nền tảng về công nghệ blockchain.
  2. Làm rõ kiến trúc, các thành phần kỹ thuật cốt lõi của nền tảng Hyperledger Fabric.
  3. Nắm vững và làm chủ các câu lệnh điều khiển, vận hành của công cụ Minifabric.
  4. Xây dựng và triển khai thành công một mạng blockchain hoàn chỉnh cùng ứng dụng quản lý voucher minh họa bằng Minifabric.

Phạm vi nghiên cứu tập trung vào việc khảo sát kiến trúc phân quyền của Hyperledger Fabric (phiên bản v2.3), các cơ chế kiểm soát danh tính (Membership Service Provider - MSP), chính sách vận hành (Policies), vòng đời chuỗi mã (Chaincode Lifecycle) và công cụ triển khai nhanh Minifabric trên nền tảng container hóa Docker.


Cơ sở lý thuyết và phương pháp

Khung lý thuyết và công nghệ

  • Công nghệ Blockchain và Sổ cái phân tán (Distributed Ledger Technology): Hệ thống lưu trữ dữ liệu phân tán trên các nút mạng ngang hàng. Cấu trúc sổ cái trong Hyperledger Fabric bao gồm hai thành phần tách biệt:
    • World State: Cơ sở dữ liệu trạng thái hiện tại dưới dạng khóa - giá trị (Key-Value), hỗ trợ các hệ quản trị NoSQL (như CouchDB, GoLevelDB) giúp truy vấn nhanh chóng.
    • Blockchain: Chuỗi khối dạng tệp log bất biến ghi lại toàn bộ lịch sử các giao dịch, liên kết chặt chẽ thông qua mã băm (cryptographic hash) của khối liền trước trong phần tiêu đề (Header).
  • Hệ sinh thái Hyperledger Foundation: Dự án mã nguồn mở do Linux Foundation sáng lập từ cuối năm 2015 với sự tham gia của các tập đoàn công nghệ (IBM, Intel, SAP Ariba...). Hệ sinh thái bao gồm 4 framework chính (Hyperledger Fabric, Hyperledger Iroha, Hyperledger Sawtooth, Hyperledger Besu) và 6 công cụ hỗ trợ (Hyperledger Caliper, Hyperledger Cello, Hyperledger Composer, Hyperledger Explorer, Hyperledger Quilt, Hyperledger Ursa).
  • Hyperledger Fabric: Framework blockchain phân quyền (permissioned blockchain) cấp độ doanh nghiệp, cung cấp cơ chế quản trị danh tính theo tiêu chuẩn chứng chỉ kỹ thuật số X.509, cơ chế đồng thuận linh hoạt không phụ thuộc PoW (hỗ trợ Crash Fault-Tolerant - CFT và Byzantine Fault Tolerant - BFT), cùng kiến trúc module hóa phân tách giữa dịch vụ sắp xếp (Ordering Service), xác thực (Endorsement) và thực thi hợp đồng thông minh (Smart Contract / Chaincode).
  • Công cụ Minifabric: Dự án thuộc Hyperledger Labs, hỗ trợ tự động hóa việc khởi tạo, thiết lập cấu hình mạng Fabric đa tổ chức thông qua giao diện dòng lệnh trên nền tảng Docker/Kubernetes.

Phương pháp nghiên cứu

  • Phương pháp phân tích - tổng hợp tài liệu: Nghiên cứu tài liệu kỹ thuật chuẩn của Hyperledger Foundation, mã nguồn và vòng đời thực thi của Hyperledger Fabric v2.3.
  • Phương pháp thực nghiệm kỹ thuật (Prototyping & Implementation): Thiết kế cấu hình mạng liên tổ chức (spec.yaml, envsettings), lập trình logic nghiệp vụ chaincode bằng ngôn ngữ Node.js/JavaScript sử dụng thư viện fabric-contract-api, đóng gói và khởi chạy thực tế trên hệ thống container Docker.

Nguồn dữ liệu và công cụ triển khai

  • Môi trường phần cứng và hệ thống: Docker Engine phiên bản 18.03 trở lên, dung lượng ổ đĩa khả dụng tối thiểu 5GB, môi trường dòng lệnh Linux/Ubuntu.
  • Công cụ phát triển phần mềm: IDE Visual Studio Code, Docker, Minifabric, Hyperledger Explorer.
  • Cơ sở dữ liệu: CouchDB (lưu trữ ledger state), MySQL (lưu trữ thông tin người dùng và token mã hóa phía máy chủ tập trung).

Thiết kế và triển khai hệ thống

Kiến trúc tổng thể hệ thống quản lý voucher

Hệ thống được thiết kế theo mô hình kết hợp giữa kiến trúc máy chủ truyền thống và mạng blockchain phân quyền để xử lý nghiệp vụ quản lý và trao đổi voucher hỗ trợ cho người dân:

[Người dùng cuối]       [Nhà cung cấp / Đại lý]

Mạng blockchain bao gồm:

  • Tổ chức tham gia (Organizations): 2 tổ chức đại diện gồm Nhà cung cấp (supplier.com) và Đối tác đại lý (dealer1.com).
  • Thành phần nút: Mỗi tổ chức sở hữu Certificate Authority (CA) riêng, 2 nút Peer và kết nối tới 1 dịch vụ Orderer. Phía supplier.com cấu hình tách biệt:
    • Manage Peer: Dành riêng cho Management Server kết nối và tương tác.
    • User Peer: Dành riêng cho User Server xử lý các yêu cầu từ ứng dụng di động của người dân.
  • Kênh giao tiếp (Channel): voucherchannel thiết lập ranh giới giao dịch riêng tư giữa các bên liên kết.
  • Cơ sở dữ liệu trạng thái: Sử dụng CouchDB làm State Database cho các nút Peer nhằm hỗ trợ truy vấn cấu trúc dữ liệu JSON phức tạp.

Cấu trúc mô hình dữ liệu

Dữ liệu hệ thống được phân tách thành hai lớp lưu trữ:

  1. Dữ liệu tại hệ quản trị MySQL (Lưu trữ phía Server):
    • Bản ghi Voucher(id, status, token): Trong đó trường token chứa thông tin người tạo, người nhận và khóa định danh của voucher trên sổ cái, được mã hóa để chỉ có thể giải mã bằng khóa bí mật của người dùng khi thực hiện giao dịch thanh toán.
  2. Dữ liệu trên Sổ cái Phân tán (Lưu trữ trạng thái World State và Blockchain):
Trường dữ liệu Kiểu dữ liệu / Quy ước Mô tả chi tiết
Voucher_id Chuỗi ký tự (String) Khóa định danh duy nhất của voucher trên sổ cái
Citizen_id Chuỗi ký tự (String) Khóa định danh người dân sở hữu voucher
Supplier_id Chuỗi ký tự (String) Khóa định danh của nhà cung cấp khởi tạo
Dealer_id Chuỗi ký tự (String / Null) Khóa định danh của đại lý thanh toán (giá trị null nếu chưa sử dụng)
Status Enum Trạng thái voucher (UNSE, USED, DELETED, OUTDATE)
Type Enum Phân loại gói hỗ trợ (SUPPORT, HELP, URGENT)
Package_id Chuỗi ký tự (String / Null) Mã định danh gói hàng hóa/dịch vụ được quy đổi
Created_at Dấu thời gian (Timestamp) Thời điểm voucher được khởi tạo trên sổ cái
Updated_at Dấu thời gian (Timestamp) Thời điểm ghi nhận thay đổi trạng thái gần nhất
Valid_date Dấu thời gian (Timestamp) Hạn sử dụng của voucher

Thiết kế và cài đặt Chaincode

Hợp đồng thông minh voucher được lập trình bằng JavaScript, sử dụng framework fabric-contract-api. Logic nghiệp vụ triển khai các hàm xử lý trạng thái sổ cái:

  • InitLedger: Hàm khởi tạo trạng thái ban đầu của chuỗi mã trên sổ cái, tạo một voucher mẫu để kiểm tra tính sẵn sàng của mạng.
  • VoucherExists(key): Kiểm tra sự tồn tại của khóa định danh voucher trong World State thông qua hàm getState(key).
  • CreateVoucher(...): Tiếp nhận tham số, kiểm tra tính duy nhất qua VoucherExists, lưu dữ liệu trạng thái mới vào sổ cái bằng hàm putState, đồng thời tạo indexKey kết hợp từ (voucher_id, citizen_id) để tối ưu hóa tốc độ truy vấn.
  • ReadVoucher(key): Đọc và trả về dữ liệu chi tiết của voucher từ World State theo khóa truyền vào.
  • DeleteVoucher(key): Xóa bản ghi voucher và chỉ mục liên kết indexKey tương ứng khỏi cơ sở dữ liệu trạng thái.
  • CommitVoucher(...): Phương thức dành cho đối tác đại lý (dealer1.com) gọi để xác nhận người dân đã đổi voucher thành công, cập nhật trường Dealer_id, Package_id, Updated_at và chuyển Status sang USED.
  • GetVoucherHistory(key): Khởi tạo iterator lịch sử bằng phương thức getHistoryForKey(key) và gọi hàm tiện ích nội bộ _GetAllResults để trích xuất toàn bộ chuỗi biến đổi trạng thái của voucher theo thời gian.

Nội dung chính theo từng chương

I. GIỚI THIỆU CHUNG

Chương này công bố thông tin đề tài, thành viên thực hiện (sinh viên Dương Công Vũ, MSSV 19521110, lớp PMCL2019) và lý do lựa chọn nghiên cứu Hyperledger Fabric. Tác giả chỉ ra tính cấp thiết của việc tiếp cận nền tảng blockchain có phân quyền trong bối cảnh các tổ chức, doanh nghiệp trên thế giới đang chuyển dịch mạnh mẽ sang công nghệ sổ cái phân tán nhưng gặp khó khăn khi tiếp cận các framework phức tạp. Đồng thời, chương làm rõ mục tiêu, phạm vi nghiên cứu xoay quanh kiến trúc Fabric, công cụ Minifabric và công nghệ phần mềm liên quan (Docker, Node.js, Visual Studio Code).

II. CÔNG NGHỆ BLOCKCHAIN

Chương II hệ thống hóa toàn diện cơ sở lý thuyết về mạng ngang hàng, cấu tạo chuỗi khối, cơ chế đồng thuận và các hạn chế của blockchain công cộng. Nội dung đi sâu phân tích hệ sinh thái Hyperledger Foundation với 4 framework và 6 công cụ đặc thù. Trọng tâm của chương phân tích kiến trúc kỹ thuật của Hyperledger Fabric (phiên bản v2.3 ghi nhận hơn 13.900 commit từ hơn 200 nhà phát triển):

  • Cơ chế phân quyền và định danh: Ứng dụng chứng chỉ số X.509 cấp phát từ Certificate Authority (CA) và quản trị qua Membership Service Provider (phân định rõ Local MSP trên từng nút và Channel MSP trên toàn kênh).
  • Chính sách (Policies): Quy định các điều khoản vận hành, kiểm soát quyền truy cập và chính sách phê duyệt giao dịch (Endorsement Policy) được cấu hình trong tệp configtx.yaml.
  • Cấu trúc sổ cái: Tách biệt giữa cơ sở dữ liệu trạng thái hiện tại (World State dạng NoSQL) và tệp log lịch sử giao dịch liên kết chuỗi (Blockchain) bắt đầu từ khối nguyên thủy (Genesis Block).
  • Cấu trúc khối và giao dịch: Phân tích các trường Header, Data, Metadata của Block và Header, Signature, Proposal, Response, Endorsements của một Transaction.
  • Ordering Service: Nút đảm nhiệm tổng hợp giao dịch được chứng thực, đóng khối và gửi đến các nút Peer, giúp ngăn chặn triệt để hiện tượng phân nhánh chuỗi (fork).
  • Quy trình 4 bước của Chaincode Lifecycle: Đóng gói mã nguồn (.tar.gz chứa metadata.json và code.gz), cài đặt lên Peer, phê duyệt định nghĩa chuỗi mã giữa các tổ chức (Name, Version, Sequence, Endorsement Policy...) và xác nhận đưa vào Channel.

IV. GIỚI THIỆU VỀ MINIFABRIC

(Theo cấu trúc đánh số mục lục của tài liệu gốc) Chương này trình bày chi tiết công cụ Minifabric thuộc Hyperledger Labs – giải pháp tối ưu hóa việc triển khai mạng Fabric cho các bài toán quy mô vừa và nhỏ hoặc môi trường thử nghiệm. Tác giả phân tích:

  • Cấu trúc thư mục: Các tệp cấu hình cốt lõi (spec.yaml, envsettings, Dockerfile), thư mục scripts, chaincode, app và thư mục vars (nơi lưu trữ toàn bộ chứng chỉ số, khóa bí mật, profile mạng, ví điện tử).
  • Tập lệnh điều khiển: Phân tích cú pháp và cờ tham số của các lệnh:
    • minifab up: Khởi tạo mạng với các tùy chọn ngôn ngữ chaincode (-l), phiên bản Fabric (-i), cơ sở dữ liệu (-s), mở cổng kết nối (-e).
    • netup, down, cleanup: Quản trị trạng thái dừng, chạy lại hoặc xóa sạch dữ liệu hệ thống.
    • ccup: Đóng gói, phê duyệt và nâng cấp chaincode với các tham số -n, -l, -v, -r, -d.
    • invoke, query, blockquery, stats: Tương tác thực thi logic, truy vấn trạng thái sổ cái và kiểm tra tình trạng dịch vụ.
    • minifab expolorerup: Triển khai giao diện web giám sát Hyperledger Explorer (sử dụng tài khoản quản trị mặc định exploreradmin / exploreradminpw).

V. XÂY DỰNG ỨNG DỤNG MINH HOẠ

Chương cuối trình bày chi tiết quá trình hiện thực hóa bài toán quản lý voucher điện tử cứu trợ của tập đoàn X. Nội dung mô tả toàn bộ các bước kỹ thuật:

  1. Thiết lập cấu hình mạng vouchernet trên spec.yaml với 2 tổ chức (supplier.com, dealer1.com), thiết lập 2 CA, 4 nút Peer, 2 Orderer, kênh voucherchannel và cơ sở dữ liệu CouchDB.
  2. Xây dựng mã nguồn chaincode voucher bằng JavaScript với đầy đủ các hàm xử lý vòng đời voucher.
  3. Tiến hành đóng gói Docker image cục bộ với định danh hyperledgerlabs/minifab:latest.
  4. Khởi chạy toàn bộ hệ thống bằng lệnh ./minifab up và kiểm tra cấu trúc mạng trên Hyperledger Explorer.
  5. Thực thi kiểm thử chức năng với lệnh ./minifab invoke -n voucher -p '"InitLedger"', xác nhận kết quả trả về mã phản hồi thành công status: 200.

Kết quả và đóng góp

Kết quả kỹ thuật đạt được

  • Khởi tạo và cấu hình thành công mạng Fabric: Thiết lập hoàn chỉnh mạng blockchain vouchernet gồm 2 tổ chức độc lập (supplier.com và dealer1.com), vận hành kênh liên lạc riêng voucherchannel, tích hợp thành công hệ thống định danh CA cho từng tổ chức và cấu hình hệ quản trị CouchDB lưu trữ World State.
  • Hiện thực hóa logic nghiệp vụ Chaincode: Lập trình hoàn chỉnh 7 hàm cốt lõi (InitLedger, VoucherExists, CreateVoucher, ReadVoucher, DeleteVoucher, CommitVoucher, GetVoucherHistory) đáp ứng chính xác quy trình quản lý vòng đời voucher từ thiện.
  • Thực thi và kiểm thử: Biên dịch thành công Docker image hyperledgerlabs/minifab:latest, triển khai tự động hóa qua Minifabric. Lệnh gọi thực thi phương thức InitLedger thông qua ./minifab invoke trả về mã trạng thái HTTP status: 200.
  • Tích hợp công cụ giám sát trực quan: Triển khai và kết nối thành công công cụ Hyperledger Explorer, cho phép theo dõi trực quan số lượng khối, danh sách giao dịch, trạng thái các nút Peer, Orderer và thông tin chaincode voucher trên giao diện web quản trị.

Đóng góp của đề tài

  • Hệ thống hóa quy trình xây dựng, cấu hình và vận hành mạng Hyperledger Fabric thông qua công cụ Minifabric, giúp giảm thiểu đáng kể độ phức tạp khi tiếp cận công nghệ blockchain doanh nghiệp.
  • Cung cấp một mô hình kiến trúc tham chiếu kết hợp giữa cơ sở dữ liệu quan hệ (MySQL) và sổ cái phân tán (Hyperledger Fabric) để giải quyết bài toán quản lý dữ liệu minh bạch, chống gian lận trong các chương trình an sinh xã hội.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế

  • Hệ thống mới dừng lại ở mức độ triển khai thử nghiệm (prototype) trên môi trường cục bộ thông qua Docker, mô phỏng 2 tổ chức trên cùng một hạ tầng máy chủ vật lý.
  • Mã nguồn ứng dụng di động phía người dùng cuối và ứng dụng quản lý của nhà cung cấp/đại lý chưa được kết nối hoàn chỉnh với hạ tầng backend trong phạm vi báo cáo Đồ án 1.

Hướng nghiên cứu tiếp

  • Mở rộng phạm vi triển khai mạng Fabric sang hạ tầng đa máy chủ hoặc môi trường điều phối container Kubernetes trong môi trường sản xuất thực tế.
  • Hoàn thiện toàn bộ hệ thống API trung gian của User Server và Management Server, tích hợp giao diện người dùng trên thiết bị di động để thực hiện kiểm thử tải (stress test) và đánh giá hiệu năng giao dịch.

Giá trị tham khảo

Tài liệu đồ án mang lại giá trị tham khảo hữu ích cho:

  • Sinh viên ngành Công nghệ Phần mềm, Hệ thống Thông tin, Kỹ thuật Mạng: Nguồn tài liệu học tập thực hành về cách thức cấu hình, viết hợp đồng thông minh (Smart Contract / Chaincode) bằng ngôn ngữ JavaScript/Node.js trên nền tảng Hyperledger Fabric.
  • Kỹ sư và nhà phát triển ứng dụng phân tán: Tham khảo quy trình sử dụng công cụ Minifabric để rút ngắn thời gian khởi tạo môi trường thử nghiệm (development/testing environment) cho các dự án blockchain doanh nghiệp.
  • Các đề tài nghiên cứu về ứng dụng Blockchain: Cung cấp mô hình phân định dữ liệu giữa cơ sở dữ liệu tập trung (MySQL) và sổ cái bất biến (Fabric Ledger) trong các hệ thống đòi hỏi tính minh bạch cao (quản lý voucher, chuỗi cung ứng, từ thiện xã hội).

Câu hỏi thường gặp

1. Thành phần sổ cái (Ledger) trong Hyperledger Fabric được tổ chức như thế nào?

Theo báo cáo, sổ cái của Hyperledger Fabric được chia làm hai phần tách biệt:

  • World State: Cơ sở dữ liệu lưu trữ trạng thái hiện tại của dữ liệu dưới dạng khóa - giá trị (Key-Value), cho phép ứng dụng truy xuất nhanh mà không cần duyệt qua toàn bộ lịch sử giao dịch. World State sử dụng hệ quản trị NoSQL (như CouchDB hoặc GoLevelDB).
  • Blockchain: Tệp lưu trữ bất biến toàn bộ lịch sử các giao dịch dẫn đến trạng thái hiện tại. Các giao dịch được đóng gói thành các khối liên kết với nhau bằng mã băm (hash) của khối trước, bắt đầu từ khối gốc (Genesis Block).

2. Sự khác biệt giữa Local MSP và Channel MSP là gì?

  • Local MSP: Được cài đặt cục bộ bên trong từng nút (Peer, Orderer) hoặc ứng dụng của một tổ chức, có nhiệm vụ phân quyền nội bộ (ví dụ: xác định Peer nào có quyền quản trị nút, ứng dụng nào được gửi giao dịch).
  • Channel MSP: Được cấu hình ở cấp độ kênh (Channel) dưới dạng tệp cấu hình chứa thông tin các tổ chức tham gia. Channel MSP dùng để xác thực quyền hạn và tính hợp lệ của các thành phần đại diện cho các tổ chức khác nhau khi tham gia tương tác ngang hàng trong cùng một kênh.

3. Công cụ Minifabric đóng vai trò gì và yêu cầu môi trường cài đặt ra sao?

Minifabric là một công cụ thuộc Hyperledger Labs giúp tự động hóa việc khởi tạo, cấu hình, mở rộng mạng Fabric và triển khai chaincode một cách nhanh chóng thông qua giao diện dòng lệnh. Yêu cầu môi trường tối thiểu gồm có Docker phiên bản 18.03 trở lên và ít nhất 5GB dung lượng ổ đĩa trống.

4. Dữ liệu voucher trong ứng dụng minh họa được phân chia lưu trữ như thế nào giữa MySQL và Blockchain?

  • Trên MySQL: Lưu trữ bản ghi Voucher(id, status, token), trong đó trường token mã hóa thông tin người tạo, người dùng và khóa định danh của voucher, chỉ giải mã bằng khóa bí mật của người dùng khi thanh toán.
  • Trên Sổ cái Blockchain: Lưu trữ đối tượng VoucherDetail gồm các trường: Voucher_id, Citizen_id, Supplier_id, Dealer_id, Status (UNSE | USED | DELETED | OUTDATE), Type (SUPPORT | HELP | URGENT), Package_id, Created_at, Updated_at và Valid_date.

5. Chuỗi mã (Chaincode) của ứng dụng voucher được viết bằng ngôn ngữ gì và gồm những phương thức nào?

Chaincode voucher được lập trình bằng JavaScript (Node.js) thông qua thư viện fabric-contract-api, gồm 7 phương thức chính: InitLedger (khởi tạo sổ cái), VoucherExists (kiểm tra tồn tại), CreateVoucher (tạo mới voucher), ReadVoucher (đọc thông tin), DeleteVoucher (xóa voucher và index key), CommitVoucher (đại lý xác nhận quy đổi voucher) và GetVoucherHistory (truy vấn toàn bộ lịch sử biến động trạng thái của voucher).


Kết luận

Báo cáo Đồ án 1 của sinh viên Dương Công Vũ đã hoàn thành các mục tiêu nghiên cứu đặt ra về công nghệ blockchain doanh nghiệp Hyperledger Fabric. Tác giả đã phân tích hệ thống lý thuyết về mạng phân quyền, làm rõ cấu trúc module hóa, cơ chế quản lý danh tính MSP và vòng đời chuỗi mã. Đồng thời, đề tài đã ứng dụng thành công công cụ Minifabric để xây dựng và kiểm thử hoàn chỉnh một mạng blockchain minh họa phục vụ bài toán quản lý voucher an sinh xã hội minh bạch, mở ra nền tảng kỹ thuật vững chắc cho các giai đoạn phát triển phần mềm tiếp theo.