Tổng quan

Một trong những rào cản quan trọng nhất của kiến trúc Blockchain là làm thế nào để xử lý số lượng giao dịch nhiều nhất trong khoảng thời gian ngắn nhất, số liệu được gọi là thông lượng. Hầu hết các Blockchain đều cố gắng cải thiện điều này bằng cách tăng hiểu quả một loại node được sử dụng trên mạng lưới.
Flow giới thiệu một cải tiến cơ bản và mới lạ hơn để tăng thông lượng bằng cách phân chia công việc khác nhau cho các Miners(như các công việc truyền thống), trong đó việc sắp xếp các giao dịch (đồng thuận) được thực hiện một cách độc lập.

Các loại Node & cách vận hành

Node truy cập – Access Node (AN)

Access node
Access node

Access Nodes cung cấp dành riêng cho khách hàng bên ngoài quyền truy cập vào các Blocks gần nhất và gửi giao dịch từ khách hàng tới Collection Node. Access Nodes sẽ xác định bộ sự tập nào sẽ gửi giao dịch tới (bộ sưu tập sẽ được mapping với một loạt Transaction Hashes). Đối với các nhà phát triển, bằng cách chạy node của riêng mình, họ có quyền truy cập trực tiếp vào trạng thái đang phát triển của mạng mà không cần phải phụ thuộc vào bên thứ ba. Điều này làm tăng quyền riêng tư, bảo mật, giảm sự phụ thuộc vào các máy chủ bên ngoài và giúp cân bằng phân phối tải.

Chi tiết về Access Nodes

Node thu thập – Collection Node (LN)

Node thu thập sẽ làm việc cùng nhau để gộp các giao dịch vào một bộ sưu tập. Cụm Node thu thập sẽ quyết định (thông qua thuật toán đồng thuận nhỏ) bộ sưu tập nào sẽ được gửi đến mạng dưới dạng Collection Guarantee, có thể được sử dụng để lấy toàn bộ nội dung của bộ sưu tập và các giao dịch của nó.

Node đồng thuận – Consensus Node (SN)

Các node đồng thuận hình thành và đề xuất các khối dựa trên thông tin thu thập được gửi từ các nút thu thập.

Node thực thi – Execution Node(EN)

Các Execution Node thực hiện các giao dịch và là kết quả của việc cập nhật dữ liệu được thao tác thông qua các giao dịch (ví dụ: số dư tài khoản khi giao dịch chuyển token). Các node thực thi gửi Biên lai (Execution Receipts) tới mạng lưới. Biên nhận thực thi (Execution Receipts) chứa kết quả thực thi, là một hàm băm của dữ liệu tại thời điểm khi quá trình thực thi hoàn tất.

Node xác minh – Verification Node (VN)

Các node xác minh (Verification Node) đánh giá tính chính xác của công việc được thực hiện bởi các nút thực thi (Node thực thi) . Nút xác minh (Verification Node) gửi Phê duyệt kết quả cho mạng. Phê duyệt kết quả được so khớp với Kết quả thực thi (Execution Results) bởi các node Đồng thuận (Consensus Node) để kiểm tra tính hợp lệ của việc thực thi.

Đây là cách luồng dữ liệu trong mạng ở mức nâng cao:

Consensus flow
Consensus flow

Cơ chế đồng thuận sử dụng giao thức đồng thuận HotStuff để đạt được sự đồng thuận cho một block được đề xuất.

Vì sao lại nhiều loại node khác nhau như vậy?

Mục tiêu của flow là xây dựng một blockchain mang lại hiệu suất cao và dễ phát triển, không giống như các giải pháp Layer 2/ Sharding để đạt được hiệu suất với chi phí tăng độ phức tạp cho các nhà phát triển ứng dụng. Đội ngũ đạt được mục tiêu này bằng cách chia thành nhiều vai trò của từng node theo cách truyền thống, giúp mạng lưới trở lên linh hoạt hơn trong việc mở rộng mạng.

Họ đã phân chia việc lựa chọn và sắp xếp các giao dịch, thực hiện giao dịch, hình thành block (đồng thuận) và xác minh thực hiện giao dịch thành các vai trò riêng biệt. Điều này cho phép xây dựng mạng lưới với các đảm bảo phân cấp và bảo mật vượt trội, đồng thời tập trung các hoạt động tính toán tốn kém vào một nhóm nhỏ các node có hiệu suất cao.

Vai trò của từng node để đạt được hiểu quả mạng

Thông lượng giao dịch của toàn bộ hệ thống phụ thuộc vào hiệu quả của thuật toán đồng thuận, được điều hành bởi các Node đồng thuận (Consensus nodes), một trong bốn loại node chính. Đội ngũ Flow thường gọi các Node đồng thuận là ủy ban đồng thuận (Consensus committee).

Sau khi các node thu thập (Collection Node) đã hình thành các giao dịch đến từ người dùng thành các bộ sưu tập, họ sẽ gửi chúng đến ủy ban đồng thuận (Consensus committee). Các node trong ủy ban phải nhanh chóng đi đến thống nhất về thứ tự của các bộ sưu tập theo block. Như bạn có thể tưởng tượng, tốc độ của điều này rất nhạy cảm với kích thước block, bởi vì block cần được phân phối cho tất cả các node trong ủy ban đồng thuận(Consensus committee).

Consensus
Consensus

Giao thức Flow đạt được hiệu quả cao bằng cách không đính kèm nội dung của các giao dịch trong block. Thay vào đó, block chỉ chứa các cam kết của các node thu thập (Collection nodes) mà mạng có thể truy cập bộ sưu tập, được gọi là Collection Guarantee, về cơ bản là một mã định danh bộ sưu tập. Collection Guarantee được thêm vào một block bởi Consensus Leader. Vì chúng hầu hết chỉ là các số nhận dạng đơn giản thay vì các giao dịch lớn, nên các node có thể xử lý chúng nhanh và hơn nhiều.

Sau khi block được đề xuất bởi Consensus Leader, nó có thể được xử lý bởi các Node Thực thi (Execution nodes). Các Node thực thi (Execution nodes) giám sát hoạt động trên mạng p2p và tìm kiếm các block mới được đề xuất sẽ được thực thi do ủy ban đồng thuận (Consensus committee) cung cấp. Node Thực thi (Execution nodes) sẽ sử dụng các Collection Guarantees trong block để yêu cầu nội dung bộ sưu tập từ các node thu thập (Collection nodes) thực hiện các giao dịch trong bộ sưu tập.

Việc thực thi block cần được thực hiện tuần tự để đảm bảo tính chính xác của kết quả (việc thay đổi thứ tự giao dịch sẽ tạo ra các kết quả khác nhau và việc thực hiện song song các giao dịch mang đến một loạt thách thức khác nằm ngoài phạm vi của bài đăng này). Vì lý do này, tốc độ thực hiện là điều cần thiết đối với thông lượng giao dịch. Các Node Thực thi được yêu cầu phải là các máy có dung lượng lớn cũng như sức mạnh tính toán.

Khi block được thực thi, mỗi node Thực thi (Execution node) sẽ xuất bản một kết quả thực thi, kết quả này cần được xác minh bởi Node xác minh (Verification nodes) để đẩm bảo quá trình thực thi được thực hiện chính xác. Xác minh nghieax là thực hiện giao dịch và so sánh kết quả với kết quả thực hiện được công bố bởi node thực thi (Verification nodes).

Trái ngược với việc thực thi block, việc xác minh block có thể được thực hiện song song, bởi vì mỗi kết quả thực hiện giao dịch có thể được xác minh độc lập. Điều này có nghĩa là việc xác minh dễ dàng mở rộng theo chiều ngang (nhiều Verification nodes xác minh song song các giao dịch khác nhau).

Việc song song hóa quá trình xác minh được thực hiện bằng cách chia một block thành nhiều phần. Verification Nodes xác định việc gán block từ kết quả thực thi có trong một block và yêu cầu gói dữ liệu block từ Execution nodes. Các Verification nodes gửi phê duyệt kết quả của họ tới mạng, các Consensus nodes sử dụng phê duyệt kết quả để xác minh việc thực thi block và cuối cùng niêm phong (seal) block.

Trong quá trình triển khai giao thức Flow kể từ tháng 3 năm 2022, các block giống hệt với Bộ sưu tập (mapping 1 to 1). Bộ sưu tập sẽ được thực thi, Chunk là một bộ sưu tập đã được thực thi.