Ứng dụng cây Merkle và công nghệ blockchain cho cơ sở dữ liệu phân tán

18:00 | 22/09/2023 | GP MẬT MÃ
Do lưu giữ những thông tin quan trọng nên cơ sở dữ liệu thường nằm trong tầm ngắm của nhiều tin tặc. Ngày nay, các cuộc tấn công liên quan đến cơ sở dữ liệu để đánh cắp hay sửa đổi thông tin càng trở nên khó lường và tinh vi hơn, vì vậy việc quản lý cơ sở dữ liệu đặt ra những yêu cầu mới với các tổ chức, doanh nghiệp. Trong hệ thống phân tán, khi dữ liệu được phân mảnh và phân phối trên các vị trí khác nhau có thể dẫn đến khả năng mất toàn vẹn của dữ liệu. Thông qua sử dụng cây Merkle và công nghệ Blockchain ta có thể xác minh tính toàn vẹn của dữ liệu. Trong bài viết này, nhóm tác giả sẽ trình bày các nghiên cứu về ứng dụng cây Merkle và công nghệ Blockchain để bảo đảm tính toàn vẹn dữ liệu cho cơ sở dữ liệu phân tán, đồng thời đảm bảo hiệu năng của hệ thống.

TỔNG QUAN

Dữ liệu ngày càng tăng lên một cách chóng mặt trong các lĩnh vực khác nhau do sự phát triển nhanh chóng của mạng máy tính. Điều này đã dẫn đến sự phát triển của cơ sở dữ liệu và nhu cầu quản lý lượng lớn dữ liệu. Tuy nhiên, việc sử dụng cơ sở dữ liệu tập trung trong một trung tâm duy nhất gặp nhiều vấn đề như chi phí cao, hiệu suất giảm thiểu và độ tin cậy không được đảm bảo. Để giải quyết vấn đề này, hệ thống cơ sở dữ liệu phân tán đã xuất hiện, cho phép thực hiện nhiều truy vấn tại các vị trí khác nhau và mở rộng dễ dàng.

Tuy nhiên, các hệ thống cơ sở dữ liệu phân tán cũng phải đối mặt với nhiều thách thức, rủi ro và mối đe dọa bảo mật. Các mô hình hiện tại không đủ để đảm bảo tính toàn vẹn và an ninh của dữ liệu trong hệ thống phân tán. Mất tính toàn vẹn dữ liệu [1] là một trong những vấn đề cần được giải quyết trong hệ thống cơ sở dữ liệu phân tán. Dữ liệu trong hệ thống phân tán được phân mảnh và phân phối trên các vị trí khác nhau. Khi một cuộc tấn công xảy ra và gây thay đổi bất hợp pháp tới một hoặc nhiều bản sao của dữ liệu, người dùng không thể xác minh tính toàn vẹn của dữ liệu và có thể tiếp tục sử dụng dữ liệu bị tấn công mà không hề hay biết. Vì vậy, cần có một cơ chế liên tục kiểm tra tính toàn vẹn của dữ liệu và phải đối phó với các mối đe dọa bảo mật.

CƠ SỞ DỮ LIỆU PHÂN TÁN

Cơ sở dữ liệu phân tán có thể được phân loại thành hai môi trường chính: cơ sở dữ liệu phân tán đồng nhất và không đồng nhất được thể hiện trong Hình 1. Trong cơ sở dữ liệu phân tán đồng nhất, các site sử dụng cùng một hệ điều hành và hệ quản trị cơ sở dữ liệu (DBMS), đồng thời họ có khả năng liên lạc và hợp tác với nhau để xử lý yêu cầu của người dùng. Cơ sở dữ liệu phân tán đồng nhất cho phép truy cập dữ liệu thông qua một giao diện duy nhất.

Hình 1. Phân loại cơ sở dữ liệu phân tán

Trong cơ sở dữ liệu phân tán, phân mảnh và phân phối [2] là hai khái niệm quan trọng để quản lý và tổ chức dữ liệu tại các vị trí khác nhau. Phân mảnh dữ liệu (data fragmentation) là quá trình chia một bảng hoặc tập dữ liệu lớn thành các phân đoạn nhỏ hơn. Mỗi phân đoạn chứa một phần của dữ liệu và có thể được lưu trữ trên các vị trí khác nhau trong cơ sở dữ liệu phân tán. Trong khi đó, phân phối liên quan điều phối dữ liệu được phân mảnh đến các vị trí thích hợp.

Phân mảnh và phân phối mang lại cho hệ thống phân tán những ưu điểm chính sau:

- Dữ liệu được truy xuất từ vị trí gần nhất dẫn đến hiệu suất của hệ thống tăng lên.

- Các kỹ thuật tối ưu hóa truy vấn cục bộ là đủ cho hầu hết các các truy vấn vì dữ liệu thường có sẵn cục bộ.

- Bảo mật và quyền riêng tư của hệ thống có thể được duy trì do dữ liệu không liên quan không có tại các vị trí cục bộ.

Tuy nhiên phân mảnh và phân phối cũng tồn tại các nhược điểm sau:

- Khi dữ liệu liên quan đến nhiều vị trí, tốc độ truy cập có thể rất thấp.

- Trong trường hợp phân mảnh đệ quy, công việc tái tạo sẽ cần những kỹ thuật tốn kém chi phí.

- Thiếu các bản sao dự phòng của dữ liệu tại các vị trí khác nhau có thể làm cho cơ sở dữ liệu không hiệu quả trong trường hợp các vị trí bị lỗi.

Trong cơ sở dữ liệu phân tán, vấn đề bảo mật đối với dữ liệu liên quan chặt chẽ đến phân mảnh và phân phối dữ liệu [3, 4]. Trong đó, vấn đề bảo mật dữ liệu cục bộ cần đặc biệt chú ý để tránh việc dữ liệu cục bộ bị truy cập hoặc thay đổi trái phép.

GIẢI PHÁP

Để giải quyết vấn đề đã đề cập ở trên, công nghệ Blockchain [5, 6, 7] là lựa chọn hàng đầu với khả năng chống giả mạo của nó. Tuy nhiên, công nghệ này đối mặt với những giới hạn riêng của nó [13]. Để đảm bảo tiết kiệm tài nguyên tính toán và thời gian, cấu trúc dữ liệu cây Merkle [8, 9] được sử dụng để kiểm tra tính toàn vẹn của dữ liệu [10].

Với một đầu vào là dữ liệu X qua hàm băm ta được Y=h(X) là duy nhất. Khi X bị thay đổi thành X’ thì h(X’) khác h(X). Như vậy, để biết dữ liệu có bị thay đổi hay không ta có thể băm dữ liệu và so sánh với giá trị băm ban đầu. Blockchain được lựa chọn để lưu trữ giá trị băm đó bởi tính chất không thể sửa đổi của dữ liệu lưu trên nó. Tuy nhiên, khi đối mặt với lượng dữ liệu lớn, Blockchain không thể đáp ứng lưu tất cả giá trị băm của dữ liệu do giới hạn lưu trữ của nó. Do đó, cấu trúc cây Merkle được sử dụng để giải quyết vấn đề này.

Cây Merkle là một cấu trúc dữ liệu được sử dụng để kiểm tra tính toàn vẹn của dữ liệu bằng cách sử dụng giá trị băm của dữ liệu để xây dựng lên cây, nút gốc của cây đóng vai trò là một bản băm đối với toàn bộ cây. Như vậy khi một nút dữ liệu bị thay đổi, nút gốc của cây sẽ bị thay đổi. Do đó, kiểm tra giá trị nút gốc ta có thể biết được dữ liệu có bị thay đổi hay không. Ngoài ra, ta cũng có thể biết được nút dữ liệu nào bị thay đổi nhờ tính chất cấu trúc của cây Merkle.

Lưu trữ

Dữ liệu trong cơ sở dữ liệu phân tán sẽ được băm để sinh ra mã hash sau đó đưa vào cây Merkle. Cây Merkle sẽ sinh ra root hash và lưu trên Blockchain. Nhờ vậy, tính toàn vẹn sẽ có thể kiểm tra được bằng cách so khớp root hash của cây Merkle và giá trị root hash của cây được lưu trên Blockchain, đồng thời đảm bảo được tài nguyên dành cho Blockchain là hợp lý. Quá trình này được mô tả trong Hình 2.

Hình 2. Quá trình lưu sinh root hash và lưu trữ trên Blockchain

Mô hình hệ thống đề xuất

Hình 3. Kiến trúc của hệ thống

Mô hình hệ thống được đề xuất được mô tả trong Hình 3. Các thành phần chính của mô hình đề xuất bao gồm: Database Storage: Cung cấp khả năng lưu trữ phân tán; Blockchain: Lưu trữ root hash của cây; Gateway: Cung cấp cơ chế kiểm tra xác minh toàn vẹn; WebApp: Cung cấp giao diện tương tác giữa người dùng và hệ thống

Mô hình hệ thống này cung cấp cơ chế xác minh toàn vẹn của dữ liệu như sau:

- Đầu tiên, người dùng tạo ra một bản ghi để lưu vào Database Storage. Song song với việc tạo ra một bản ghi, hệ thống băm bản ghi và lưu trên cây Merkle thông qua Gateway.

- Gateway đảm nhận quá trình xây dựng cây Merkle, lưu root của cây lên Blockchain một cách tự động.

- Khi người dùng muốn kiểm tra dữ liệu có toàn vẹn hay không thì hệ thống sẽ lấy các bản ghi liên quan, băm ra và sinh root hash của cây Merkle, so sánh nó với giá trị lưu trên Blockchain. Nhờ vậy, nếu dữ liệu thay đổi ta có thể kiểm chứng được một cách tin cậy.

Kết quả thử nghiệm

Thử nghiệm kiểm tra hệ thống thử nghiệm được xây dựng trên một máy vật lý có tài nguyên cụ thể: CPU - Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz 2.50 GHz; RAM - 8GB; Database Storage: MongoDB cluster; Blockchain: sử dụng Ganache xây dựng Private Blockchain. Kết quả thử nghiệm được thể hiện trong Bảng 1.

Bảng 1. Kết quả thử nghiệm hệ thống

Số lượng Document

Số lượng Collection

Kích thước mỗi Document (KB)

Thời gian xác minh (ms)

100

2

100

289

1000

3

100

3284

10000

3

100

17901

Dữ liệu thử nghiệm được sử dụng là các khối văn bản có kích thước 100KB. Trong các thử nghiệm, nhóm nghiên cứu sử dụng các tập dữ liệu với số lượng document và collection khác nhau, từ đó tính toán thời gian cần thiết để xác minh sự toàn vẹn của khối dữ liệu. Kết quả, thời gian xác minh cho khối dữ liệu 10000 document trên 3 collection khác nhau là xấp xỉ 18 giây. Đây được coi là thời gian chấp nhận được do kích thước lớn của khối dữ liệu (1GB). Hiệu năng tính toán có thể cải thiện khi áp dụng thêm các giải pháp tính toán song song.

KẾT LUẬN

Trong nghiên cứu này, nhóm tác giả đã đề xuất mô hình xác minh sự toàn vẹn của dữ liệu phân tán nhờ ứng dụng công nghệ Blockchain. Cụ thể, bằng cách kết hợp kỹ thuật cây Merkle và công nghệ Blockchain, các thay đổi trên dữ liệu được đảm bảo tính toàn vẹn cũng như minh bạch trong quá trình tìm kiếm xác minh.

TÀI LIỆU THAM KHẢO

[1]. Mittal, M., et al. (2015). "Testing data integrity in distributed systems." Procedia Computer Science 45: 446-452.

[2]. Özsu, M. T. (January 2002). "Distributed Database Systems".

[3]. Sawiris, B. S. M. and M. A. Abdel-Fattah (2020). "A Novel Solution for Distributed Database Problems." International Journal of Advanced Computer Science and Applications 11(10).

[4]. Contributors, W. (25 February 2002). "Data integrity."

[5]. Nakamoto, S. (2008). "Bitcoin whitepaper." URL: https://bitcoin. org/bitcoin.pdf - (17.07. 2019).

[6]. Hassani, K. (9 October 2014). "Blockchain."

[7]. Yaga, D., et al. (2019). "Blockchain technology overview." arXiv preprint arXiv:1906.11078.

[8]. Vaughan, W., et al. (2016). Chainpoint: A scalable protocol for anchoring data in the blockchain and generating blockchain receipts, Jun.

[9]. Davidgothberg (20 August 2005). "Merkle tree".

[10]. Firdhous, M. (2012). "Implementation of security in distributed systems-a comparative study." arXiv preprint arXiv:1211.2032.

TS. Đặng Lê Đình Trang, Nguyễn Quốc Khánh (Học viện Kỹ thuật quân sự)

Tin cùng chuyên mục

Tin mới