2 Tổng quan các nghiên cứu và các kiến thức cơ sở
3.1 Các tiêu chí đánh giá nút mạng trong MPoC
Aspect Name Notation
Mức độ đóng góp
Số giao dịch được tạo ra từ địa chỉ ví đào trong vòng gần nhất tx_1
Số giao dịch được tạo ra từ địa chỉ ví đào trong 10 vòng gần nhất tx_10
Tổng số giao dịch được tạo ra từ địa chỉ ví đào tx_all
Mức độ tin cậy
Tổng số phiếu bầu nhận được voted_values
Tổng số nút mạng bầu cho nút mạng đó voted_nodes
Tổng số phiếu bầu mà một nút bỏ phiếu cho những nút khác vote_value
Tổng số nút mạng được bầu bởi nút mạng đó vote_f or_nodes
Tính đúng đắn
Tổng số giao dịch nằm trong các khối mà nút mạng đó tạo ra tx_produced
Số lần mà nút đó được trở thành nhà sản xuất khối n_leader_time
Số lần mà nút đó bầu cử cho một nút mạng trở thành nhà sản xuất khối n_true_vote
hiệu năng của hệ thống chuỗi khối, đã từng được đề cập trong [3]. Mặc dù chúng tôi đã xem xét các tiêu chí cho MPoC trong bảng 3.1, các nhà phát triển cũng có thể
sử dụng nhiều tiêu chí đánh giá khác để đánh giá mức độ đóng góp của các nút cho
mạng lưới chuỗi khối mà họ triển khai. Giao thức đồng thuận của chúng tôi tìm ra
bộ trọng số tốt nhất để sử dụng trong quá trình đánh giá và lựa chọn các nhà sản xuất khối mới với các tiêu chí đã được xem xét. Cơ chế hoạt động của MPoC được trình bày trong thuật toán 1. Quá trình hoạt động của mạng chuỗi khối sử dụng MPoC diễn ra tương tự như mạng chuỗi khối sử dụng giao thức DPoS. Trong quá trình hoạt động của mạng lưới, các thành phần trong mạng khởi tạo các giao dịch và gửi lên hệ thống. Các giao dịch này có thể là các giao dịch chuyển tiền, các giao dịch tương tác với hợp đồng thông minh hay các giao dịch bầu cử cho các thành phần trong hệ thống. Các giao dịch sau khi đã được mạng lưới xác thực, sẽ được đưa vào các khối, và lưu trữ trong sổ cái trên các nút mạng. Các giao dịch mới sau khi được xác nhận tính hợp lệ sẽ được lưu vào các bể lưu trữ (mem pool) để chờ đợi tới lượt được xác thực và đưa vào chuỗi. Nút đại diện sẽ tiến hành đánh giá và tạo khối mới nếu hiệu của thời điểm hiện tại so với thời điểm tạo ra khối trước đó bằng khoảng thời gian 4t. Giá trị của 4t sẽ được các nhà phát triển lựa chọn và khởi tạo phù hợp với các yêu cầu khác nhau của hệ thống. Với EOS, giá trị4tđược khởi tạo là 1 giây. Cũng dựa trên khoảng thời gian này và thứ tự của k nút mạng
Algorithm 1: Giao thức đồng thuận Meta-heuristic Proof-of-Criteria
Input: 4t: Khoảng thời gian giữa hai lần tạo khối mới.
k: Số lượng nhà sản xuất khối trong mỗi vòng.
n: Số lượng các nút tích cực nhất được lựa chọn trong mỗi vòng.
W: Bộ trọng số tối ưu của các tiêu chí thu được nhờ quá trình tối ưu hoá mức độ phi tập trung của mạng lưới.
Output: k nút mạng sản xuất các khối mới trong mỗi vòng.
while True do
Các nút mạng bầu cử cho các nút khác.
if current_time−prev_time==4t then
Tính toán idx (chỉ mục của nhà sản xuất khối hiện tại) theo
current_time
if idx == k-1 then
block_producers[idx]sản xuất khối mới;
Chuẩn hoá giá trị tiêu chí của các nút mạng dựa trên công thức 3.1;
Lựa chọn top n nút mạng tích cực nhất dựa trên công thức 3.2;
for i= 1 to n do
Tính toán criteria_total_value của nút i−th dựa trên công thức 3.3;
end
block_producers = Nhóm k nodes có giá trị
criteria_total_value cao nhất; Trộn lẫn block_producers ;
else
block_producers[idx]sản xuất khối mới;
end
prev_time=current_time end
end
đại diện được lựa chọn, các nút mạng trên hệ thống sẽ xác định được nút mạng nào sẽ đánh giá và tạo ra khối tiếp theo. Khi kết thúc mỗi vòng, dựa trên các giao dịch được lưu trữ trong sổ cái, các thành phần trên hệ thống sẽ tiến hành đánh giá các nút mạng và tìm ra k nút mạng trở thành nhà sản xuất khối mới. Quá trình đó được thực hiện với ba bước chính như sau:
1. Chuẩn hoá các giá trị tiêu chí của tất cả các nút mạng về khoảng [0,1] bằng công thức 3.1;
2. Tính toán giá trị xếp hạng giao dịch (transaction ranking) của tất cả các nút trên toàn bộ mạng lưới dựa trên công thức3.2. Mục tiêu của công thức này là
để đánh giá mức độ đóng góp và mức độ active của mỗi nút mạng. Cuối cùng,
n nút mạng tích cực nhất sẽ được lựa chọn.
3. Tính toán giá trịcriteria_total_value bằng công thức3.3 và lựa chọn k nhà sản xuất khối mới từn nút mạng tích cực nhất được lựa chọn từ bước trước đó với giá trịcriteria_total_valuecao nhất. Giá trị tổng hợp các tiêu chí này thể hiện mức độ xứng đánh của một nút để trở thành nhà sản xuất khối mới cho vòng tiếp theo.
Sau khi thực hiện quá trình trên, toàn bộ các nút mạng trong toàn bộ hệ thống sẽ xác định được nhóm k nút mạng cho quá trình sản xuất khối mới trong vòng tiếp theo. Lúc này, k nút mạng sẽ lần lượt thay nhau để tạo ra khối mới. Các khối được xác thực trong mạng thường có một giá trị ngưỡng về số lượng giao dịch hoặc tổng kích thước các giao dịch trong khối đó nhằm đảm bảo quá trình tạo khối giữa các nút mạng được cân bằng. Trong quá trình tạo khối, các nút mạng lựa chọn các giao dịch từ trong bể lưu trữ cho tới khi đạt tới giá trị ngưỡng trên. Với các giao dịch này, nút mạng được lựa chọn lập tức thực thi chúng, nhằm thay đổi trạng thái của các thành phần trong mạng lưới, và quảng bá (broadcast) khối đó ra toàn mạng lưới. Ngay khi nhận được một khối từ nút mạng khác, các nút mạng sẽ tiến hành kiểm tra tính đúng đắn của khối và các giao dịch trong khối đó. Trong trường hợp khối được đánh giá là hợp lệ, các trạng thái của các thành phần trong mạng lưới trên nút mạng đó sẽ được cập nhật. Điều này giúp đảm bảo tính toàn vẹn và tính nhất quán về mặt dữ liệu giữa các nút mạng trong toàn bộ hệ thống. Lúc này, hệ thống đạt được sự đồng thuận (Agreement) để thêm khối đó vào chuỗi. Trong trường hợp khối và các giao dịch là không hợp lệ, nút mạng này lập tức dừng xác thực và thay đổi trạng thái trên nút mạng của mình. Sau đó, thông báo tới toàn mạng về nút mạng không tin cậy. Khi phát hiện nút mạng không tin cậy, nút mạng tiếp theo trong nhóm k nhà sản xuất khối của vòng đó sẽ lập tức tham gia vào quá trình tạo khối và xác thực khối mới cho toàn mạng. Điều này đảm bảo hệ thống được vận hành liên tục trong trường hợp xác định nút mạng không tin cậy. Khói mới được coi là hoàn toàn hợp lệ khi tối thiểu 2/3 số nút trên toàn mạng lưới đã
xác nhận tính đúng đắn của khối đó.
criteriaij = criteriaij−min(criteriai)
max(criteriai)−min(criteriai) (3.1)
Trong đó, criteriaij là giá trị của tiêu chí thứ i−th của nút mạng thứ j −th,
min(criteriai), max(criteriai) lần lượt là giá trị tối thiểu và tối đa của tiêu chí thứ i−th của tất cả các nút trên mạng chuỗi khối. Các giá trị min(criteriai) và
max(criteriai) lần lượt được khởi tạo bằng 0 và bằng 1. Ngay khi mạng lưới khởi chạy, giá trị của các tham số này sẽ thay đổi dựa trên các giao dịch được tạo ra trong hệ thống. Mục tiêu của công thức này nhằm chuẩn hoá giá trị của các tiêu chí về miền giá trị [0−1], đảm bảo tính công bằng giữa các tiêu chí khi đánh giá các nút mạng trong hệ thống.
transaction_ranking= tx_1 +tx_10 +tx_all
3 (3.2)
Giá trị transaction_ranking thể hiện mức độ đóng góp của một nút mạng đối với hệ thống. Quá trình đồng thuận và tạo khối mới của hệ thống sẽ bớt rủi ro hơn khi trách nhiệm này được giao cho một nút tích cực trong hệ thống. Đối với MPoC, tính tích cực của một nút mạng được đánh giá thông qua mức độ thường xuyên tạo ra các giao dịch mới của nút mạng đó. Trên thực tế, khi triển khai MPoC đối với các hệ thống thực tế, các nhà phát triển hoàn toàn có thể đánh giá và lựa chọn nhóm các tiêu chí đánh giá khác để lựa chọn ra nhóm các nút tích cực nhất của hệ thống.
criteria_total_value= h X
i=1
wi∗criteriai (3.3)
Trong đó,criteriailà giá trị của tiêu chí thứi−thvàwi là trọng số của tiêu chí đó.h
là số lượng các tiêu chí. Dựa trên giá trị tổng hợp các tiêu chícriteria_total_value, các thành phần trong mạng lưới có thể phân loại, xếp hạng và đánh giá, từ đó chọn lựa nhómk nút mạng có giá trịcriteria_total_valuecao nhất trở thành k nhà sản xuất khối mới cho vòng tiếp theo.
3.2 Quá trình lựa chọn các nhà sản xuất khối dựa trên mức độ phi tập trung
Mục tiêu của chúng tôi là tối đa hóa mức độ dân chủ trong quá trình lựa chọn các nhà sản xuất khối trong mạng dựa trên việc tìm kiếm bộ trọng số tối ưu cho các tiêu chí hoạt động của các nút mạng. Sau đó, tất cả các nút sẽ sử dụng bộ trọng số tối ưu và giá trị các tiêu chí của các đại biểu để đánh giá và chọn các nhà sản xuất khối mới trong vòng tiếp theo. Quá trình tìm kiếm bộ trọng số phù hợp là một vấn đề tối ưu hóa, chúng tôi sử dụng MHA trong mô-đun này để tìm ra bộ trọng số tốt nhất. Các luồng dữ liệu trong quá trình tối ưu hóa được minh họa bằng Hình 3.1. Hai mô-đun chính tham gia quá trình xử lý bao gồm các mô-đun Tối ưu hóa Metaheuristic (Metaheuristic Optimization Models - MOM) và Trình mô phỏng khối chuỗi (Blockchain Simulator - BS). Trong MOM, giai đoạn đầu tiên có mục đích tạo ra tập dân số từ các cá thể thông qua việc mã hoá các trọng số (weights) của các tiêu chí vào một giải pháp (solution). Mỗi giải pháp W là một vector h chiều [w1, w2, ..., wh] trong đó, h là số lượng các tiêu chí và wi là trọng số của tiêu chí thứith. Sau đó, mỗi MHA được áp dụng để tìm kiếm lời giải tốt nhất. Các giải thuật tối ưu hoá lấy cảm hứng từ các hiện tượng trong tự nhiên đang dần trở lên phổ biến trong các nghiên cứu và ứng dụng thực tiễn. Nhóm các giải thuật này được chia thành bốn loại chính như đã trình bày ở Chương 2. Nhóm giải thuật lấy cảm hứng từ quá trình tiến hoá dựa trên quy luật tiến hoá tự nhiên. Quá trình tối ưu của nhóm này bắt đầu với một tập dân số được khởi tạo ngẫu nhiên và liên tục được phát triển qua các thế hệ tiếp theo. Điểm mạnh của nhóm này là sau mỗi thế hệ, các cá thể tốt nhất luôn được lựa chọn và lai ghép với nhau, để có thể tạo ra một thế hệ dân số mới tốt hơn thế hệ dân số trước đó. Điều này giúp quá trình tối ưu diễn ra theo các thế hệ. Nhóm giải thuật dựa trên bầy đàn dựa trên hành vi của một nhóm các động vật trong tự nhiên. Quá trình tối ưu của nhóm này được chia thành hai bước chính: Thăm dò (exploration) và khám phá (exploitation). Ở bước thăm dò, các trình tối ưu cần tìm kiếm trên không gian rộng nhất có thể, để tìm ra
các khu vực hứa hẹn có thể chứa điểm tối ưu toàn cục. Sau đó, ở giai đoạn khám phá, các trình tối ưu sẽ thực hiện tìm kiếm cục bộ trong các khu vực hứa hẹn đó, để xác định điểm tối ưu toàn cục trên toàn bộ không gian tìm kiếm. Nhóm giải thuật dựa trên các hiện tượng vật lý cũng đã đem lại nhiều kết quả khi dựa trên các quy luật vật lý trong vũ trụ như hiện tượng vụ nổ Big Bang hay các giai đoạn của phản ứng hạt nhân. Nhóm cuối cùng là các giải thuật dựa trên hành vi của con người như các quy luật tìm kiếm hàng đợi, ... Mỗi nhóm giải thuật đều đã chứng minh tính hiệu quả đối với các bài toán tối ưu hoá. Điểm chung của các giải thuật lớp này là đều cần một cơ chế để đánh giá các cá thể, để xác định chiều hướng của quá trình tối ưu. Cơ chế này được gọi là hàm mục tiêu. Với bài toán tối ưu mức độ phi tập trung của hệ thống chuỗi khối, quá trình đánh giá các giải pháp sử dụng giá trị hàm mục tiêu được tính toán thông qua mô-đun BS. Trình mô phỏng mạng chuỗi khối bao gồm hai thành phần: Thành phần thu thập dữ liệu các tiêu chí (Criteria Data collection) và Thành phần đánh giá mức độ phi tập trung (Decentralization Level Evaluation). Thành phần thu thập dữ liệu các tiêu chí hướng tới việc đánh giá các bộ trọng sốW của không gian tìm kiếm. Đối với thành phần này, các cá thể sẽ được áp dụng vào một hệ thống chuỗi khối mô phỏng. Mạng chuỗi khối mô phỏng này sẽ thực hiện chạy mạng chuỗi khối qua một số vòng nhất định với nhiều kịch bản khác nhau. Thông qua cơ chế này, hệ thống có thể xác định được hệ thống chuỗi khối sẽ hoạt động như thế nào khi áp dụng cá thể đó đối với các lớp kịch bản tổng quát (số nút mạng, số nút rời đi và tham gia vào mạng lưới, các hành vi bầu cử của các thành phần trong mạng lưới, ...). Đầu ra của module thu thập dữ liệu các tiêu chí là một vector có thích thước m chiều [N1, N2, ..., Nm] với m là số lượng các nút trong mạng chuỗi khối và Ni là số lần mà nút i trở thành nhà sản xuất khối trong các kịch bản tổng quát đó. Sau đó, vectơ này được chuẩn hóa về phạm vi[0,1]bằng cách sử dụng Công thức 3.4 và trở thành đầu vào của thành phần Decentralization Level Evaluation. Cuối cùng, thông qua công thức 3.5, mức độ phi tập trung của mạng lưới sử dụng bộ trọng số đó được tính toán. Quá trình tối ưu sử dụng nhóm giải thuật MHA sẽ sử dụng giá trị này như một giá trị của hàm mục tiêu để đánh giá cá thể đó. Dựa trên kết quả hàm mục tiêu, các giải thuật tối ưu hoá MHA tiếp
Initialization population by encoding the criteria weights to search agents
Nature-inspired Algorithms Evolutionary-based algorithms Swarm-based algorithms Physical-based algorithms Human-based algorithms Maximum number of generations reached?
Return the best search agent
(best criteria weights set)
Criteria Data Collection Decentralization Level Evaluation
Blockchain Simulator
Yes No
Metaheuristic Optimization Module
Hình 3.1: Luồng dữ liệu của quá trình tối ưu hoá
tục quá trình tối ưu và tìm ra cá thể (bộ trọng số) mà ở đó kết quả đánh giá mức độ phi tập trung đạt được là tốt nhất.
Ni = Ni
max[N1,N2,...,Nm] (3.4)
Hiện nay, các nghiên cứu về các giao thức đồng thuận trên thế giới tập trung vào việc cải thiện tính bảo mật, hiệu năng và tính phi tập trung của toàn bộ mạng lưới chuỗi khối được áp dụng. Tính phi tập trung của một hệ thống được đánh giá tốt hơn nếu như hệ thống đó ít bị phụ thuộc và chi phối bởi một hoặc một nhóm nút trong mạng lưới. Như vậy, một hệ thống chuỗi khối nếu có càng nhiều nút mạng tham gia và vai trò của các nút mạng này đối với hệ thống là tương đồng, thì hệ thống đó càng có tính phi tập trung tốt hơn. Đối với các hệ thống chuỗi khối, vai trò quan trọng nhất của các nút mạng được đánh giá thông qua quá trình tạo khối. Nút mạng nào có số lần tạo khối nhiều thì sẽ có vai trò lớn hơn. Dựa trên nhu cầu thực tiễn như trên, mức độ phi tập trung của các nhà sản xuất khối mới được đánh giá dựa trên hai yếu tố chính: số lượng nút trở thành nhà sản xuất khối trên toàn
mạng và sự chênh lệch giữa số lần mà toàn bộ các nút mạng trở thành nhà sản xuất
khối trong một số lượng vòng (round) nhất định. Mạng chuỗi khối đạt tính dân chủ
tốt hơn trong trường hợp số lượng nút trở thành nhà sản xuất khối lớn hơn. Điều này thể hiện rằng nhiều nút hơn trên mạng có thể trở thành nhà sản xuất khối thay vì bị tập trung một nhóm nhỏ các nút. Ngoài ra, sự khác biệt giữa số lần mà tất cả