Bối cảnh và vấn đề nghiên cứu
Thuốc kê đơn là nhóm dược phẩm được Bộ Y tế Việt Nam quản lý theo các tiêu chí về độc tính, phạm vi liều dùng, đường dùng và khả năng gây lệ thuộc. Mặc dù được kiểm soát về mặt pháp lý, lạm dụng thuốc kê đơn — đặc biệt nhóm opioid, thuốc an thần và thuốc kích thích — đã trở thành vấn đề sức khỏe công cộng nghiêm trọng. Theo số liệu được tác giả dẫn chiếu trong khóa luận, opioid chiếm gần 70% trong tổng số 128.000 ca tử vong do rối loạn sử dụng chất gây nghiện năm 2019, đồng thời chiếm đa số trong 71% của 18 triệu năm sống khỏe mạnh bị mất sớm do tử vong và tàn tật cùng năm.
Hai thách thức cốt lõi được xác định: (1) tình trạng bệnh nhân đi khám nhiều bác sĩ để thu thập nhiều toa thuốc (doctor shopping), và (2) lạm dụng toa thuốc tại nhiều điểm phân phối khác nhau. Nguyên nhân chung của cả hai là sự thiếu khả năng tương tác và giao tiếp hiệu quả giữa các bên liên quan — bệnh viện, phòng khám, nhà thuốc — vốn vận hành trên các hệ thống không đồng nhất, có thể là hệ thống truyền thống hoặc blockchain riêng biệt.
Mục tiêu nghiên cứu được đặt ra gồm hai nhiệm vụ:
- Xây dựng và triển khai hệ thống quản lý Medichain dựa trên Blockchain nhằm quản lý việc tạo và cấp phát thuốc kê đơn.
- Tích hợp giải pháp liên chuỗi và thuật toán Zero Knowledge Proof nhằm tối ưu và tăng tính khả thi trong triển khai thực tiễn.
Đối tượng nghiên cứu gồm: công nghệ Blockchain, các giải pháp liên chuỗi (cross-chain), quy trình kê và quản lý thuốc kê đơn, và thuật toán Zero Knowledge Proof.
Phạm vi nghiên cứu bao gồm triển khai hai mạng Blockchain là Ethereum và Quorum đại diện cho hai bệnh viện; xây dựng mạng blockchain thứ ba làm trung gian tạo giao tiếp liên chuỗi, trao đổi dữ liệu và tích hợp hệ thống danh tính phi tập trung. Khóa luận cũng thảo luận về độ an toàn, chi phí, hiệu năng và tính thực tế của hệ thống đề xuất.
Cơ sở lý thuyết và phương pháp
Khung lý thuyết và công nghệ nền tảng
Khóa luận xây dựng nền tảng lý thuyết dựa trên các nhóm công nghệ và mô hình sau:
Công nghệ Blockchain (được trình bày theo kiến trúc nhiều lớp gồm Application Layer, Security/Contract Layer, Incentive Layer, Consensus Layer, Network Layer): Tác giả phân tích bốn loại blockchain — công khai (Public), riêng tư (Private), lai (Hybrid) và liên minh (Consortium) — và các cơ chế đồng thuận Proof of Work (PoW) và Proof of Stake (PoS).
Ethereum và Hợp đồng thông minh (Smart Contracts): Ethereum được chọn làm một trong hai nền tảng triển khai. Hợp đồng thông minh viết bằng ngôn ngữ Solidity, thực thi trên Ethereum Virtual Machine (EVM). Tiêu chuẩn ERC-721 được áp dụng để đại diện đơn thuốc dưới dạng Non-Fungible Token (NFT), đảm bảo tính duy nhất và không thể thay thế của mỗi đơn.
Giao tiếp liên chuỗi (Cross-chain Communication): Tác giả khảo sát ba phương pháp:
- Notary Scheme: Sử dụng notary nodes làm bên trung gian chứng nhận, giao dịch chỉ được chấp nhận khi ít nhất 2/3 notary nodes xác nhận.
- Hashed Time-Locked Contracts (HTLC): Hợp đồng thông minh khóa giao dịch theo thời gian, hỗ trợ giao dịch nguyên tử xuyên chuỗi.
- Relay chain/Sidechain: Chuỗi trung gian kết nối các blockchain độc lập, được minh họa bởi Cosmos IBC (2019) và Polkadot XCM.
Zero Knowledge Proof (ZKP): Dựa trên lý thuyết được S. Goldwasser và đồng nghiệp đề xuất năm 1985 [30]. ZKP đảm bảo ba tính chất: Correctness (tính đúng đắn), Soundness (tính toàn vẹn), và Zero-knowledge (người xác minh không thu được thông tin về bí mật của người chứng minh). Tác giả áp dụng biến thể zk-SNARKs với thuật toán G16 — sử dụng hệ đường cong eliptic alt_bn128, quy trình gồm KeyGen, Prove và Verify — thông qua nền tảng ZoKrates để tích hợp với Ethereum. Ngoài ra, tác giả tham chiếu ZCash và Ethereum như các ứng dụng thực tế của zk-SNARKs.
Phương pháp nghiên cứu
Khóa luận sử dụng phương pháp thiết kế và xây dựng hệ thống kết hợp với thực nghiệm đánh giá:
- Thiết kế kiến trúc đa chuỗi, định nghĩa mô hình người dùng và luồng hoạt động.
- Triển khai hợp đồng thông minh trên Ethereum và Quorum.
- Thiết kế và triển khai các kịch bản thử nghiệm, đánh giá bảo mật.
Nguồn dữ liệu
Tác giả sử dụng tài liệu học thuật công bố từ năm 2017 đến 2023, số liệu thống kê về tử vong do opioid từ năm 1999 đến 2021, và số liệu chi tiêu đầu tư vào lĩnh vực Blockchain toàn cầu từ năm 2017 đến 2024. Dữ liệu thực nghiệm được tạo ra trong quá trình triển khai hệ thống.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương này xác lập bối cảnh của đề tài thông qua thống kê về tử vong do opioid và thuốc kê đơn từ 1999 đến 2021, từ đó chỉ ra hai vấn đề cốt lõi cần giải quyết. Tác giả khảo sát các công trình liên quan, bao gồm đánh giá toàn diện của Khezr và đồng nghiệp [8] phân tích 112 công trình học thuật từ 2017 đến 2018 về bốn nhóm ứng dụng blockchain trong y tế; khảo sát của Chenthara và đồng nghiệp [9] về bảo mật và quyền riêng tư trong hệ thống y tế điện tử; nghiên cứu của Zarour và đồng nghiệp [10] về EHR; phân tích của Rigg và đồng nghiệp [11] về mô hình lạm dụng thuốc kê đơn; và đề xuất hệ thống HealthChain [12] sử dụng blockchain kết hợp IPFS. Tác giả chỉ ra hạn chế của HealthChain là không đề cập vai trò bệnh viện và không xem xét tính tương thích với hệ thống hiện tại — điểm khác biệt mà Medichain được xây dựng để khắc phục. Giải pháp Medichain được giới thiệu là hệ thống đa chuỗi tích hợp smart contract, ZKP và cross-chain interoperability.
Chương 2: Cơ sở lý thuyết
Chương trình bày chi tiết toàn bộ khung lý thuyết. Đáng chú ý là phần phân tích so sánh ba phương pháp giao tiếp liên chuỗi: Notary Scheme có vấn đề về khả năng mở rộng và tập trung hóa quyền lực quyết định; HTLC yêu cầu cả hai bên trực tuyến đồng thời và cần khoảng thời gian chờ dài tạo cơ hội cho các hành vi gian lận; Relay/Sidechain có khả năng mở rộng cao và độ trễ thấp nhưng phụ thuộc vào chuỗi trung gian, làm giảm một phần tính an toàn. Thuật toán G16 (zk-SNARKs) được trình bày chi tiết với cấu trúc bằng chứng gồm các giá trị A, B, C, pub và khóa xác thực vk.
Chương 3: Mô hình đề xuất
Đây là chương cốt lõi, mô tả kiến trúc và cơ chế vận hành của Medichain với năm mục tiêu thiết kế: (1) thống nhất giữa các bên liên quan bác sĩ, bệnh viện, nhà thuốc; (2) lưu trữ và theo dõi thông tin đơn thuốc minh bạch, bất biến và an toàn; (3) bảo mật thông tin riêng tư bệnh nhân; (4) tương thích với đa dạng hệ thống y tế; (5) quy trình tiện dụng và có độ kiểm soát cao.
Bốn nhóm người dùng được định nghĩa rõ ràng:
| Vai trò |
Chức năng chính |
| Bác sĩ (D) |
Tạo, chỉnh sửa, hủy đơn thuốc; truy vấn lịch sử đơn thuốc bệnh nhân |
| Bệnh nhân (U) |
Sở hữu NFT đơn thuốc; kiểm soát quyền truy cập; có giao thức khẩn cấp |
| Cơ sở y tế (Me) |
Chạy node trên mạng; lưu trữ thông tin đơn thuốc gốc |
| Nhà thuốc (Pa) |
Kiểm tra và cập nhật trạng thái đơn; cấp phát thuốc |
Thiết kế NFT đơn thuốc gồm bảy thuộc tính: Token ID, Owner ID (PorpID), địa chỉ lưu trữ gốc (ProAddr), ngày kê (PMintDate), ngày hết hạn (PExpDate), thời gian chờ (PockT), và giá trị băm chi tiết thuốc (Ph). NFT không chứa thông tin chi tiết về thuốc — chỉ lưu hash — nhằm bảo vệ quyền riêng tư bệnh nhân.
Ba luồng hoạt động chính được mô tả:
- Biểu diễn đơn thuốc thành NFT: Bác sĩ truy vấn toàn bộ đơn thuốc đang dùng của bệnh nhân để tránh kê quá liều, sau đó mint NFT với các thuộc tính đã định nghĩa.
- Truy vấn đơn thuốc: Bác sĩ hoặc nhà thuốc yêu cầu chi tiết đơn thuốc; bệnh nhân chấp thuận; cơ sở y tế mã hóa chi tiết thuốc bằng khóa công khai của bác sĩ (Dpk); bác sĩ giải mã bằng khóa bí mật (Dsk) và kiểm tra tính toàn vẹn bằng cách so sánh
hash(Pde) == Ph.
- Mua thuốc theo đơn: Nhà thuốc kiểm tra trạng thái NFT và cập nhật giao dịch sau khi cấp phát.
Chương 4: Thực nghiệm và đánh giá
Chương trình bày phương pháp thực nghiệm, kết quả triển khai và đánh giá bảo mật. Cấu hình blockchain được thiết lập với Ethereum và Quorum, metadata ERC-721 theo chuẩn JSON, và file JSON đơn thuốc. Tác giả trình bày cấu trúc code thực thi hai quy trình quan trọng: (1) yêu cầu thông tin chi tiết đơn thuốc, và (2) yêu cầu cấp phát đơn thuốc. Phần đánh giá bảo mật phân tích các vector tấn công và khả năng phòng thủ của hệ thống.
Chương 5: Kết luận
Tổng kết quá trình nghiên cứu, đánh giá mức độ đạt được các mục tiêu đặt ra và đề xuất hướng phát triển trong tương lai.
Thiết kế và triển khai
Kiến trúc hệ thống
Medichain áp dụng kiến trúc đa chuỗi (multi-chain) gồm:
- Ethereum: Đại diện cho một bệnh viện/tổ chức y tế.
- Quorum: Đại diện cho một bệnh viện/tổ chức y tế thứ hai (blockchain riêng tư phù hợp với môi trường doanh nghiệp).
- Chuỗi trung gian Medichain: Đóng vai trò relay/sidechain, tạo giao tiếp liên chuỗi, trao đổi dữ liệu và tích hợp hệ thống danh tính phi tập trung.
Kiến trúc này cho phép Medichain hoạt động tương thích với cả hệ thống truyền thống lẫn các mạng blockchain hiện có của các tổ chức y tế.
Công nghệ sử dụng
| Công nghệ |
Vai trò trong hệ thống |
| Ethereum |
Blockchain nền tảng cho một bệnh viện |
| Quorum |
Blockchain doanh nghiệp cho bệnh viện thứ hai |
| Solidity |
Ngôn ngữ viết Smart Contract |
| ERC-721 |
Tiêu chuẩn NFT đại diện đơn thuốc |
| zk-SNARKs / Thuật toán G16 |
Chứng minh không kiến thức cho quyền riêng tư |
| ZoKrates |
Nền tảng triển khai ZKP tích hợp Ethereum |
| EVM |
Môi trường thực thi Smart Contract |
Cơ chế bảo mật quyền riêng tư
Thông tin chi tiết đơn thuốc (Pde) không được lưu trực tiếp trên NFT. NFT chỉ lưu giá trị băm (Ph). Khi có yêu cầu truy vấn hợp lệ, cơ sở y tế mã hóa Pde bằng khóa công khai Dpk của bác sĩ, truyền bản mã Ep. Bác sĩ giải mã bằng khóa bí mật Dsk và xác minh tính toàn vẹn qua hash(Pde) == Ph. ZKP được tích hợp để xác thực tuyên bố về đơn thuốc mà không tiết lộ nội dung chi tiết.
Kiểm thử
Tác giả thực hiện các kịch bản thực nghiệm bao gồm: mint NFT đơn thuốc, truy vấn thông tin đơn thuốc qua luồng mã hóa, cập nhật trạng thái đơn khi cấp phát thuốc. Cấu hình blockchain, metadata ERC-721 dạng JSON và cấu trúc code cho từng quy trình được trình bày cụ thể trong chương 4. Đánh giá bảo mật phân tích khả năng chống lại các hành vi giả mạo đơn thuốc, sử dụng đơn thuốc nhiều lần và truy cập trái phép.
Kết quả và đóng góp
Kết quả chính
Hệ thống Medichain được xây dựng và thực nghiệm thành công với khả năng:
- Biểu diễn đơn thuốc dưới dạng NFT ERC-721 trên nền tảng đa chuỗi (Ethereum và Quorum).
- Thực hiện truy vấn thông tin đơn thuốc có kiểm soát quyền truy cập qua cơ chế mã hóa khóa công khai và xác minh băm.
- Tích hợp ZKP (zk-SNARKs, thuật toán G16) để bảo vệ quyền riêng tư bệnh nhân trong khi vẫn cho phép xác minh tính hợp lệ của đơn thuốc.
- Thiết lập giao tiếp liên chuỗi giữa các mạng blockchain không đồng nhất thông qua chuỗi relay trung gian.
Tác giả khẳng định các thử nghiệm đã chứng minh Medichain duy trì được tính minh bạch đồng thời bảo vệ quyền riêng tư của bệnh nhân.
Giải pháp và kiến nghị đề xuất
- Sử dụng thuộc tính Waiting Time (thời gian chờ) trong NFT đơn thuốc để kiểm soát tần suất mua thuốc, ngăn chặn lạm dụng một đơn thuốc ở nhiều điểm phân phối.
- Áp dụng cơ chế NFT danh tính cho bệnh nhân với giao thức khẩn cấp để xử lý trường hợp ví không còn do bệnh nhân kiểm soát độc quyền.
- Phân quyền rõ ràng giữa bốn nhóm người dùng, trong đó chỉ bác sĩ (với sự chấp thuận của cơ sở y tế) mới có thể mint NFT đơn thuốc.
Đóng góp so với nghiên cứu trước
Tác giả tự nêu các điểm khác biệt so với HealthChain [12] và các nghiên cứu trước:
- Bổ sung vai trò bệnh viện (cơ sở y tế) như một bên liên quan trong hệ thống, khắc phục hạn chế của HealthChain chỉ tập trung vào bệnh nhân, bác sĩ và dược sĩ.
- Tương thích với hệ thống hiện có: Medichain thiết kế để hoạt động như một sidechain, không yêu cầu các tổ chức y tế thay thế toàn bộ hệ thống đang vận hành.
- Tích hợp ZKP vào môi trường đa chuỗi: Cung cấp khả năng xác minh riêng tư hồ sơ y tế trên các cơ sở dữ liệu phân tán không đồng nhất — một kết hợp mà các nghiên cứu trước chưa thực hiện trong bối cảnh quản lý thuốc kê đơn.
Hạn chế và hướng nghiên cứu tiếp
Tác giả thừa nhận phạm vi thực nghiệm hiện tại giới hạn ở hai mạng blockchain (Ethereum và Quorum) đại diện cho hai bệnh viện, chưa mở rộng ra quy mô triển khai thực tế với nhiều tổ chức y tế. Trong phần kết luận, tác giả đề xuất các hướng triển khai tương lai nhưng không cụ thể hóa chi tiết trong phần được trích xuất.
Dựa trên phạm vi nghiên cứu, một số giới hạn có thể thấy rõ từ văn bản: cơ chế giao tiếp liên chuỗi vẫn phụ thuộc vào chuỗi relay trung gian với nhược điểm về an toàn so với giao tiếp trực tiếp; chi phí giao dịch trên Ethereum (gas fee) chưa được phân tích định lượng chi tiết; và việc tích hợp với hệ thống truyền thống (non-blockchain) của các bệnh viện thực tế cần thêm lớp adapter chưa được mô tả cụ thể.
Giá trị tham khảo
Khóa luận phù hợp để tham khảo cho:
- Sinh viên ngành An toàn thông tin và Khoa học máy tính nghiên cứu về ứng dụng blockchain, đặc biệt phần Chương 2 với khảo sát toàn diện về cross-chain communication (Notary, HTLC, Relay/Sidechain) và ZKP/zk-SNARKs.
- Sinh viên và nhà nghiên cứu ngành Y tế điện tử và Hệ thống thông tin y tế tìm hiểu cách tích hợp blockchain vào quản lý đơn thuốc và hồ sơ bệnh nhân.
- Người thực hiện đề tài tương tự về NFT trong quản lý tài liệu pháp lý hoặc chuỗi cung ứng có thể tham khảo phần thiết kế NFT đơn thuốc (Chương 3) với bảng định nghĩa ký hiệu rõ ràng và luồng hoạt động ba giai đoạn.
- Người nghiên cứu về ZKP thực tiễn nên đọc phần trình bày thuật toán G16 và cách tích hợp ZoKrates với Ethereum (Chương 2 và 4).
- Người làm đề tài về y tế số và bảo mật dữ liệu bệnh nhân có thể tham khảo phần phân tích HealthChain và lý do tác giả đề xuất kiến trúc mới (Chương 1).
Câu hỏi thường gặp
1. Vì sao đơn thuốc trong Medichain không lưu toàn bộ thông tin thuốc trên NFT mà chỉ lưu giá trị băm?
Tác giả giải thích rằng trong lĩnh vực chăm sóc sức khỏe, quyền riêng tư và bảo mật của bệnh nhân là tối quan trọng. NFT đơn thuốc chỉ đóng vai trò "đại diện" phục vụ mục đích theo dõi và quản lý. Thông tin chi tiết thuốc (Pde) được lưu tại cơ sở y tế, chỉ được truyền khi có yêu cầu hợp lệ thông qua cơ chế mã hóa bằng khóa công khai của bác sĩ. ZKP được sử dụng để xác thực mà không cần tiết lộ nội dung cụ thể.
2. Medichain xử lý vấn đề một bệnh nhân dùng cùng một toa thuốc tại nhiều nhà thuốc như thế nào?
NFT đơn thuốc có thuộc tính Waiting Time (PockT) — khoảng thời gian tối thiểu giữa các lần mua thuốc theo đơn. Nhà thuốc trước khi cấp phát phải kiểm tra trạng thái NFT và cập nhật giao dịch (TXn với bằng chứng TXe) lên Medichain. Vì Medichain là số cái phân tán và bất biến, trạng thái đơn thuốc được chia sẻ minh bạch giữa tất cả các nhà thuốc tham gia mạng.
3. Tại sao tác giả chọn kiến trúc Relay/Sidechain thay vì Notary Scheme hoặc HTLC cho giao tiếp liên chuỗi?
Tác giả phân tích trong Chương 2 rằng: Notary Scheme gặp vấn đề về khả năng mở rộng và tập trung hóa quyết định (rủi ro bảo mật nếu notary nodes bị kiểm soát); HTLC yêu cầu cả hai bên trực tuyến đồng thời và khoảng thời gian chờ dài tạo cơ hội gian lận. Relay/Sidechain — được minh chứng bởi Cosmos IBC và Polkadot XCM — cung cấp khả năng mở rộng cao, tốc độ nhanh và độ trễ thấp, phù hợp với yêu cầu tương thích đa hệ thống của Medichain.
4. Hệ thống Medichain đề xuất các vai trò người dùng nào và vai trò nào có quyền tạo đơn thuốc?
Medichain định nghĩa bốn vai trò: Bác sĩ (D), Bệnh nhân (U), Cơ sở y tế (Me) và Nhà thuốc (Pa). Quyền tạo đơn thuốc (mint NFT) chỉ thuộc về Bác sĩ, và phải có sự chấp thuận của Cơ sở y tế. Bệnh nhân có quyền kiểm soát NFT đơn thuốc của mình và chấp thuận hoặc từ chối yêu cầu truy vấn thông tin từ bác sĩ hoặc nhà thuốc.
5. Thuật toán ZKP nào được Medichain sử dụng và quy trình xác minh diễn ra như thế nào?
Medichain áp dụng biến thể zk-SNARKs với thuật toán G16, sử dụng hệ đường cong eliptic alt_bn128. Quy trình gồm ba bước: (1) KeyGen — tạo cặp khóa chứng minh (pk) và xác thực (vk); (2) Prove — người chứng minh tạo bằng chứng π từ input công khai pub và tham số riêng tư w (không tiết lộ w trong bằng chứng); (3) Verify — người xác thực dùng π và vk để kiểm tra tính hợp lệ thông qua biểu thức trên đường cong eliptic. Nền tảng ZoKrates được dùng để tích hợp luồng này với Ethereum.
Kết luận
Khóa luận trình bày thiết kế và triển khai hệ thống Medichain — một giải pháp quản lý và phân phối thuốc kê đơn dựa trên kiến trúc blockchain đa chuỗi, tích hợp NFT ERC-721 và Zero Knowledge Proof. Hệ thống giải quyết trực tiếp hai vấn đề thực tiễn là doctor shopping và lạm dụng toa thuốc tại nhiều điểm phân phối, đồng thời bảo đảm quyền riêng tư bệnh nhân thông qua cơ chế mã hóa và zk-SNARKs. Điểm khác biệt so với các nghiên cứu trước là tính tương thích với hệ thống hiện có của các tổ chức y tế và việc bổ sung đầy đủ bốn nhóm bên liên quan trong mô hình. Phạm vi thực nghiệm hiện tại giới hạn ở hai mạng blockchain (Ethereum và Quorum), mở ra hướng mở rộng cho các nghiên cứu tiếp theo về triển khai quy mô thực tế.