Thuật toán đồng thuận

Một phần của tài liệu CÁC CUỘC TẤN CÔNG LÊN BLOCKCHAIN (Trang 26 - 28)

Một số thuật toán đồng thuận đáng chú ý được sử dụng trong Blockchains bao gồm bằng chứng công việc (PoW), bằng chứng cổ phần (PoS), bằng chứng hoạt động (PoA), bằng chứng năng lực (PoC), bằng chứng ghi (PoB), bằng chứng kiến

thức (PoK) và thực tế Khả năng chịu lỗi Byzantine (PBFT) [71] - [75]. Thuật toán

đồng thuận phổ biến nhất được sử dụng rộng rãi trong Blockchains là PoW, tiếp theo là PoS và PBFT. Chúng em thảo luận về chúng trong phần sau.

Bằng chứng làm việc. Trong PoW Blockchains, các đồng nghiệp trong mạng cố gắng giải quyết một thách thức toán học tốn kém về mặt tính toán. Ví dụ: thách thức đối với Bitcoin là đưa ra một giải pháp không để khi được băm với dữ liệu khối sẽ tạo ra giá trị băm nhỏ hơn ngưỡng mục tiêu do hệ thống đặt ra. Tất cả các đồng nghiệp trong hệ thống sử dụng sức mạnh tính toán của họ để giải quyết thử thách toán học. Đồng đẳng đưa ra giải pháp chiến thắng trong cuộc đua khối và

khai thác một khối mới. Khi một khối được phát tới mạng, mỗi người ngang hàng sẽ xác minh giải pháp và gắn khối vào Blockchain của mình. Xác suất chiến thắng trong một cuộc đua khối tỷ lệ thuận với khả năng tính toán của những người tham gia. Đồng thời, có một giới hạn thời gian đối với việc khai thác

khối [76], [77]. Trong Bitcoin, thời gian khối được đặt thành 10 phút. Nói cách

khác, mạng này mong đợi một giải pháp mới cho câu đố khối sau mỗi 10 phút. Tuy nhiên, khi sức mạnh tính toán tăng lên, cơ hội phát hiện ra một khối mới dưới 10 phút sẽ tăng lên. Để giải quyết vấn đề đó, mạng sẽ tự động điều chỉnh độ khó của thử thách theo sự thay đổi về sức mạnh tính toán của các thợ đào. Thông thường, nhiều hơn một người khai thác có thể đưa ra một giải pháp hợp lệ dẫn đến các nhánh Blockchain và các khối cũ và không có, mà chúng ta sẽ thảo luận trong phần IV.

Trong Hình 1, chúng em minh họa vòng đời giao dịch trong một ứng dụng

Blockchain dựa trên bằng chứng công việc (PoW). Người dùng A (người gửi) tạo giao dịch cho người dùng B (người nhận). Giao dịch được phát tới toàn bộ mạng ngang hàng nơi nó được lưu trữ tạm thời trong kho lưu trữ giao dịch được gọi là nhóm bộ nhớ (mempool). Trong mạng ngang hàng, mempool là một không gian được phân bổ trong RAM của một nút đầy đủ để lưu trữ và chuyển tiếp các giao dịch đến các đồng nghiệp khác. Để duy trì trạng thái của Blockchain, có các nút đặc biệt trong mạng được gọi là thợ đào hoặc người xác minh, chịu trách nhiệm xác minh các giao dịch và tính toán một khối. Các thợ mỏ truy vấn mempool và chọn các giao dịch mà họ chọn để đưa vào các khối. Thông thường, các giao dịch trả phí khai thác có thể được xem như một động lực dành cho các thợ đào để khai thác giao dịch. Đương nhiên, các thợ đào ưu tiên cho các giao dịch trả phí khai thác cao hơn. Các giao dịch không được chọn bởi thợ đào, hãy ở trong mempool cho đến khi một số thợ đào khác chọn chúng cho một khối mới. Các giao dịch không nhận được khai thác trong một thời gian dài, cuối cùng bị loại bỏ. Proof- of-Stake. Thuật toán đồng thuận phổ biến thứ hai trong các Blockchains công

khai là bằng chứng cổ phần (PoS) [78], [79]. PoS được giới thiệu để giải quyết

tình trạng kém hiệu quả về năng lượng của PoW. Trong PoS, sức mạnh khai thác của người dùng được xác định bởi tổng số coin mà anh ta sở hữu. Đối với mỗi khối mới, một cuộc đấu giá được thực hiện để chọn người khai thác ứng

viên. Người dùng đặt giá thầu trên khối và người có giá thầu cao nhất được chọn làm thợ đào. Do đó, trái ngược với PoW, sức mạnh băm được thay thế bằng khối lượng tài sản mà người dùng sở hữu. Người dùng sở hữu càng nhiều xu, cơ hội chiến thắng trong cuộc đua khối càng cao. Việc thay thế khai thác sử dụng nhiều năng lượng bằng khai thác dựa trên cổ phần, làm cho PoS tiết kiệm năng lượng và an toàn trước các cuộc tấn công đa số (phần VB) . Không giống như PoW, trong PoS, tất cả các mã thông báo tiền điện tử được phát hành trước khi tạo ra

khối gốc [80]. Do đó, khi một khối mới được khai thác, nó không giới thiệu các

đồng tiền mới trong hệ thống. Tuy nhiên, các thợ đào được thưởng phí giao dịch cho những đóng góp của họ. PBFT. Giao thức đồng thuận Blockchain phổ biến thứ ba được gọi là khả năng chịu lỗi byzantine thực tế (PBFT) [81],

[82] giao thức. PBFT được sử dụng rộng rãi trong các Blockchains riêng tư và cố định, nơi mạng có mô hình tin cậy mạnh hơn so với PoS và PoW. Trong PBFT Blockchains, hệ thống được chuyển thành một nhóm các đại diện chủ động và thụ động. Trong số các bản sao đang hoạt động, một bản sao chính được chọn là người nhận các giao dịch từ khách hàng và gửi chúng đến các bản sao đang hoạt động để thực hiện. Quá trình thực hiện được thực hiện trong bốn giai đoạn, đó là giai đoạn chuẩn bị trước, chuẩn bị, cam kết và trả lời. Trong giai đoạn chuẩn bị trước, chính gửi các giao dịch đến tất cả các bản sao đang hoạt động. Trong giai đoạn chuẩn bị và cam kết, mỗi bản sao hoạt động ký kết giao dịch và trao đổi nó với tất cả các bản sao khác. Trong giai đoạn trả lời, tất cả các bản sao đang hoạt động gửi phản hồi của chúng đến bản sao chính. Giao dịch chính thu thập tất cả các giao dịch đã ký và đặt chúng vào một khối. Trong Hình 2, chúng em cho thấy quy trình xác minh giao dịch trong PBFT Blockchain. Lưu ý rằng so với PoW và PoS, PBFT có độ phức tạp của thông điệp cao hơn.

Trong Bảng III, chúng em so sánh các thuật toán đồng thuận phổ biến được sử dụng trong các ứng dụng Blockchain. Lưu ý rằng các Blockchains không được phép có thông lượng thấp và thời gian xác nhận cao. Bitcoin có thông lượng giao dịch từ 3-7 giao dịch mỗi giây. Ngược lại, các Blockchains được cấp phép có thông lượng và thời gian xác nhận thấp. Về bảo mật, PBFT có khả năng chịu lỗi thấp (33%) so với PoW và PoS (50%). Tuy nhiên, vì các Blockchains được cấp phép có mô hình tin cậy mạnh mẽ hơn, do đó, chúng ít bị tổn thương hơn trước các cuộc tấn công của đối thủ. Cũng có thể quan sát thấy trong Bảng III, các Blockchains công khai có khả năng mở rộng hơn các Blockchains riêng [83], [84]. Điều này có thể là do độ phức tạp của thông báo trong quá trình xác minh giao dịch và khả năng chịu đựng đối với các nút Byzantine. Vì PBFT có độ phức tạp của bản tin cao và khả năng chịu lỗi Byzantine thấp, do đó, nó không thể mở rộng quy mô vượt quá vài trăm nút. Do đó, mỗi phương án đồng thuận đều có những lợi ích và hạn chế riêng. Do đó, trong quá trình chờ xử lý mô hình ứng dụng, một chương trình đồng thuận có thể được lựa chọn để đáp ứng các yêu cầu.

Một phần của tài liệu CÁC CUỘC TẤN CÔNG LÊN BLOCKCHAIN (Trang 26 - 28)

w