Proof of Work (PoW) là gì? Lý giải về cơ chế đồng thuận của Bitcoin
Proof of Work (PoW) là một cơ chế đồng thuận trên blockchain tăng cường độ chính xác của việc xác thực thông tin mạng lưới thông qua việc thưởng cho các thợ đào khi họ cung cấp sức mạnh tính toán cho toàn bộ hệ thống. Vậy Proof of Work là gì? Hãy cùng Coin68 tìm hiểu về cơ chế đồng thuận của Bitcoin trong bài viết dưới đây nhé.
Proof of Work (PoW) là gì? Lý giải về cơ chế đồng thuận của Bitcoin
Proof of Work (PoW) là gì?
Proof of Work là một thuật toán được áp dụng trong cơ chế đồng thuận của mạng lưới blockchain. Cơ chế đồng thuận Proof of Work từng là phương pháp phổ biến để xác minh giao dịch và tạo ra các block mới. Các thợ đào (miner) cần phải cạnh tranh để hoàn thành giao dịch trên mạng lưới để lấy nhận thưởng.
Khi người dùng tiền mã hóa muốn chuyển token cho nhau trên blockchain được phát triển dựa trên mô hình PoW, hệ thống mạng lưới của blockchain này sẽ sử dụng một sổ cái phân quyền để đưa các giao dịch vào một block cụ thể. Tuy nhiên, quá trình xác nhận giao dịch và sắp xếp block yêu cầu sự tham gia của con người.
Công việc quan trọng này, được gọi là “đào” block, thường do các thợ đào (miner) thực hiện. Nguyên lý cốt lõi của quá trình trong cơ chế PoW là giải quyết một “phương trình toán học phức tạp”, với mục tiêu tìm ra cách giải quyết nhanh và hiệu quả nhất.
Thế nào là “phương trình toán học phức tạp”?
“Phương trình toán học phức tạp” là một loại thuật toán đòi hỏi khả năng tính toán mạnh mẽ từ máy tính để giải quyết.
Các bài toán đào block trong cơ chế Proof of Work bao gồm:
- Hash Function: Đây là quá trình tìm kiếm ẩn số đầu vào dựa trên kết quả đầu ra của hàm.
- Integer Factorization: Bài toán này liên quan đến việc tìm một số biết nó là tích của hai số khác.
- Guided Tour Puzzle Protocol: Nếu server cảm thấy mình đang bị tấn công DDoS, nó sẽ cần phải tính toán lại hash của một số node theo thứ tự nhất định. Trong trường hợp này, bài toán sẽ là để “tìm một chuỗi các giá trị hash”.
Với sự mở rộng của mạng lưới, đòi hỏi sức mạnh tính toán ngày càng cao. Điều này đẩy nhanh sự cần đến năng lực hash (hash power) để giải quyết bài toán và đào block. Do đó, độ khó của thuật toán đào token tăng lên, trở thành một trong những vấn đề nhạy cảm nhất trên blockchain hiện nay.
Kết cấu của Proof of Work blockchain
Blockchain là các sổ cái phân tán ghi lại tất cả các giao dịch của Bitcoin, tương tự như cách bạn nhập các giao dịch vào một bảng tính. Mỗi block tương tự như một ô trong bảng tính. Thông tin như số tiền giao dịch, địa chỉ ví, thời gian và ngày tháng được ghi lại và mã hóa vào phần đầu của mỗi block – một số thập lục phân tạo ra thông qua hash của blockchain.
Hash
Hash từ block hiện tại được lưu trữ và sử dụng trong block tiếp theo. Điều này tạo ra một cuốn sổ cái gồm các block mắc nối với nhau mà không thể bị thay đổi vì thông tin từ mỗi block được bao gồm trong hash của block mới nhất. Đây là nơi mà Proof of Work phát huy tác dụng.
Hash là một con số hexa được mã hóa gồm 64 chữ số. Với công nghệ hiện đại, 1 hash có thể được tạo ra trong vài mili giây với một lượng dữ liệu lớn. Công việc của các thợ đào là cố gắng tính toán kết quả đó, điều này mất rất nhiều thời gian theo thuật ngữ của máy tính.
Đào là quá trình xác minh các giao dịch thông qua việc giải quyết hash và nhận phần thưởng.
Nonce
Hash bao gồm một chuỗi các con số gọi là nonce, viết tắt của “number used once” (số chỉ sử dụng một lần). Khi một thợ đào – chương trình trên node làm việc để giải quyết hash – bắt đầu khai thác, nó tạo ra 1 hash từ thông tin công khai có sẵn bằng cách sử dụng một nonce bằng 0.
Giải quyết hash
Nếu hash nhỏ hơn mục tiêu mạng hiện tại, thợ đào đã thành công trong việc giải quyết hash đó. Mục tiêu mạng là một kết quả toán học của một công thức được chuyển đổi thành một số hexa quy định độ khó trong việc khai thác.
Nếu hash lớn hơn mục tiêu, chương trình khai thác sẽ thêm một giá trị bằng 1 vào nonce và tạo ra một hash mới. Toàn bộ mạng lưới các thợ đào cố gắng giải quyết hash theo cách này.
Trên blockchain của Bitcoin, thợ đào thành công giải quyết hash sẽ nhận được phần thưởng cho công việc đã làm.
Các thành phần của cơ chế Proof of Work
Thợ đào – miner
Các blockchain sử dụng PoW dựa vào một mạng lưới phân tán các máy tính gọi là node. Những node này có trách nhiệm quan trọng là chấp nhận các lô giao dịch từ các node khác và đề xuất hoặc xác nhận các khối giao dịch mới cho toàn bộ mạng lưới.
Trong ngữ cảnh này, các node thường được gọi là những thợ đào, vì họ cống hiến năng lực tính toán và tài nguyên để kiếm tiền ảo cơ bản của mạng lưới.
“Work” trong PoW đại diện cho năng lực tính toán mà các node đóng góp để xác nhận một khối giao dịch mới. Sức mạnh này được thể hiện trong hàm băm mật mã SHA-256, tạo nên sự khác biệt cho PoW so với các cơ chế đồng thuận khác.
Một thuật toán quan trọng, được gọi là điều chỉnh độ khó, đảm bảo mạng lưới mất một khoảng thời gian cố định để xác nhận các khối giao dịch mới. Điều chỉnh này diễn ra khoảng mỗi 2016 khối (khoảng 2 tuần) để duy trì thời gian khối ổn định là 10 phút. Đáng chú ý, việc cá nhân người đào gia nhập hoặc rời khỏi mạng lưới không ảnh hưởng trực tiếp đến mức độ khó trong các khoảng thời gian ngắn.
Phần thưởng – block reward
Người đào sẽ nhận thưởng khi họ tìm ra một hash dưới ngưỡng được đặt ra bởi mạng lưới. Khi phát hiện ra một hash khối hợp lệ, người đào sẽ phổ biến thông tin này cho những người đào khác để xác nhận và tích hợp nhanh chóng vào bản sao blockchain của họ. Quá trình xác nhận này ngăn chặn các hành động gian lận như lặp chi (double-spending).
Hiện nay, người đào nhận được một phần thưởng cố định là 6,25 BTC/block, cùng với các phí giao dịch người dùng. Cấu trúc thưởng này là động lực cho thợ đào tranh giành tham gia vào hệ thống PoW, khuyến khích tính trung thực, vì bất kỳ cố gắng can thiệp vào hệ thống đều sẽ dẫn đến lãng phí tài nguyên.
Lượng thưởng này giảm một nửa sau mỗi 210.000 khối (khoảng 4 năm). Sự giảm này, gọi là chu kỳ halving, tạo ra lo ngại về nguy cơ làm giảm sự động viên của người đào nếu giá của Bitcoin không đủ đào kịp. Tuy nhiên, khi người đào rời mạng lưới, mức độ khó cũng điều chỉnh, từ đó giảm chi phí đào Bitcoin.
Nền kinh tế về đào Bitcoin không hề đơn giản. Có rất nhiều yếu tố tài chính tác động khiến người đào tiếp tục hoạt động, ngay cả khi không có lời nhuận rõ ràng.
Tại sao cần sự phức tạp như vậy trong Proof of Work?
Tuy nhiên, độ phức tạp của bài toán không nên vượt quá mức vì nếu vượt quá, quá trình tạo khối mới sẽ mất rất nhiều thời gian. Điều này có thể dẫn đến việc giao dịch chậm trễ, đợi mãi cho đến khi được xác nhận và gây ra trục trặc trong quá trình hoạt động. Nếu bài toán không thể được giải quyết trong thời gian hợp lý, mạng lưới sẽ trở nên không ổn định.
Tuy nhiên, nếu bài toán quá dễ, mạng lưới sẽ dễ bị tấn công DDoS, spam và những vấn đề khác.
Thêm vào đó, phản hồi từ thuật toán cũng cần đơn giản để dễ dàng kiểm tra và chấp nhận. Không phải tất cả các node đều có khả năng xác định xem tất cả các quá trình tính toán đã được thực hiện đúng theo quy trình. Trong trường hợp đó, bạn sẽ phải tin tưởng vào quyết định từ các node khác và có thể vi phạm tính minh bạch, một trong những yếu tố quan trọng nhất của Blockchain.
Ưu điểm của Proof of Work
Proof of Work (PoW) mang lại nhiều lợi ích quan trọng, bảo vệ chống tấn công từ chối dịch vụ (DDoS) và giảm thiểu rủi ro trong việc đào tiền.
Bảo vệ chống tấn công DDoS: PoW đặt ra giới hạn cao đối với mạng lưới. Điều này yêu cầu bất kỳ hành động nào trước hết cần phải vượt qua. Do đó, để tấn công mạng lưới, người tấn công cần phải sử dụng một lượng lớn năng lực máy tính và mất nhiều thời gian tính toán. Mặc dù có thể tấn công, nhưng với chi phí rất lớn.
Khả năng đào block: Điều quan trọng không phải là số tiền trong ví, mà là khả năng năng lực máy tính để giải quyết bài toán đào block. Vì vậy, trên mạng lưới blockchain, người có tiền không chắc chắn có quyền.
Nhược điểm của Proof of Work
PoW có nhược điểm về chi phí đắt đỏ, sự lãng phí của năng lực máy tính và tấn công 51%.
Chi phí đắt đỏ:Đào tiền yêu cầu thiết bị máy tính chuyên dụng với thuật toán rất phức tạp, với chi phí rất lớn đối với cá nhân. Vì vậy, hoạt động này chủ yếu được thực hiện bởi nhóm thợ đào. Nhóm này sử dụng thiết bị tiêu tốn nhiều năng lượng, tăng chi phí khai thác.
Sự lãng phí của năng lực máy tính: Thợ đào tạo ra block mới thông qua sức lao động cật lực, tiêu tốn rất nhiều điện năng. Tuy nhiên, công việc tính toán này không áp dụng ở các lĩnh vực khác.
Tấn công 51%: Tấn công 51% xảy ra khi một nhóm người dùng kiểm soát đa số năng lực khai thác.
Tấn công 51%, hay còn gọi là tấn công đa số, xảy ra khi một nhóm người dùng chiếm đa số năng lực khai thác trên mạng lưới. Điều này cho phép kẻ tấn công kiểm soát và thay đổi hầu hết các sự kiện trên mạng lưới. Họ có thể đơn độc quyền việc tạo block mới, thu thập toàn bộ phần thưởng và thậm chí đảo ngược các giao dịch.
Ví dụ: Nếu Alice gửi tiền cho Bob thông qua Blockchain và bị tấn công 51%, giao dịch có thể bị chặn. Một cuộc tấn công này có thể kích hoạt một hard fork, tạo hai chuỗi block song song. Một chain sẽ có nhiều thợ đào hơn (chain 51%) và sẽ đào nhiều block hơn. Chuỗi dài hơn cuối cùng sẽ được chấp nhận và chuỗi ngắn hơn bị loại bỏ, khiến giao dịch trở nên vô hiệu.
Mặc dù kẻ tấn công có thể đảo ngược giao dịch, tuy nhiên, việc thực hiện cuộc tấn công này đòi hỏi sự tập hợp lượng lớn năng lực khai thác. Thông tin về tấn công 51% khiến người dùng đặt dấu hỏi về tính phân quyền của mạng lưới, gây suy giảm giá trị của blockchain này. Điều này dẫn đến mất mát tài sản đáng kể đối với người dùng.
Tổng kết
Như vậy, Coin68 đã cùng bạn tìm hiểu về cơ chế đồng thuận Proof of Work, hy vọng qua bài viết này, bạn đã có cái nhìn tổng quan hơn về thuật ngữ Proof of Work cũng như thu thập được những thông tin hữu ích