Proof Of Work Là Gì?

1. Proof of work là gì?

Proof of work – PoW, là thuật toán đồng thuận ban đầu của mạng lưới Blockchain.

Với Blockchain, thuật toán này được dùng để xác nhận giao dịch và tạo ra các khối (block) mới. Với PoW, các thợ đào coin cạnh tranh với nhau để hoàn tất giao dịch trên mạng lưới và nhận phần thưởng.

Như các bạn đã biết người dùng tiền tệ mã hóa chắc chắn sẽ muốn gửi token cho nhau. Hệ thống sẽ sử dụng một sổ cái phân quyền để chuyển một lượng giao dịch nhất định vào 1 khối. Tuy nhiên, phải cần đến bàn tay con người tham gia vào công đoạn xác nhận các giao dịch và sắp xếp khối.

Nhiệm vụ đặc biệt trên thường được chúng ta biết đến với tên gọi mining (đào khối/block), còn những người đảm nhiệm công việc ấy chính là các miner (thợ đào coin).

Nguyên lí chính của quá trình là một phương trình toán học phức tạp và nhiệm vụ là tìm ra phương thức để giải quyết nó càng nhanh gọn càng tốt.

2. “Mathematical puzzle” hay “phương trình toán học phức tạp” là gì?

Một câu đố cần rất nhiều năng lực tính toán của máy tính mới có thể giải được.

Một số bài toán điển hình là:

  • Hash function (hàm băm): tìm ẩn số đầu vào khi đã biết kết quả đầu ra.
  • Integer factorization (thừa số nguyên): tìm một số biết nó là tích của hai số khác.
  • Guided tour puzzle protocol (giao thức hướng dẫn giải quyết bài toán): nếu server cảm thấy mình đang bị tấn công DoS, nó sẽ cần phải tính toán lại hàm băm của một số node theo thứ tự nhất định – trong trường hợp này, bài toán của chúng ta sẽ là để “tìm một chuỗi các giá trị băm”.

Câu trả lời dành cho phương trình toán học PoW được gọi là “hash”.

Khi mạng lưới ngày càng lớn mạnh thì nó sẽ phải đối mặt với nhiều bài toán với cấp độ khó hơn. Do vậy, thuật toán để đủ sức tìm ra đáp số và đào khối thì sẽ càng cần nhiều và nhiều hash power – năng lực băm hơn nữa. Vì thế, độ khó thuật toán đào coin là một trong những vấn đề nhạy cảm nhất trên Blockchain hiện nay.

3. Vì sao?

Sự chính xác trong xử lí và tốc độ của Blockchain phụ thuộc rất nhiều vào Proof of work.

Tuy nhiên, độ khó bài toán không nên quá phức tạp vì nếu thế thì thời gian tạo khối mới thì sẽ rất lâu. Các giao dịch sẽ bị nghẽn cho đến khi nào được xác nhận chuyển vào khối và dòng chảy công việc sẽ bị ngưng trệ. Nếu bài toán không thể được giải quyết trong khoản thời gian vô hạn định, mạng lưới xem như là sụp đổ.

Nhưng nếu bài toán quá dễ thì mạng lưới lại tự đặt mình vào vị trí thuận lợi để bị spam, tấn công DoS và những trục trặc khác.

Bên cạnh đó, đáp án trả về cũng nên đơn giản cho công tác kiểm tra và chấp thuận. Không phải node nào cũng có thể đủ khả năng để xác định liệu tất cả công đoạn tính toán đã làm đúng theo quy trình. Lúc này thì bạn sẽ phải tin tưởng vào quyết định từ các node khác và vi phạm một trong những khía cạnh quan trọng nhất của Blockchain – tính minh bạch.

4. PoW được thực hiện như thế nào trên Blockchain?

Thợ đào coin giải quyết bài toán, tạo ra khối mới rồi sau đó xác nhận giao dịch.

Độ khó của bài toán đào khối sẽ phụ thuộc vào số lượng người dùng, năng lực khai thác hiện tại và tải trọng của mạng lưới. Hash của mỗi khối chứa trong nó hash của các khối trước đó, giúp gia tăng mức độ an ninh và tránh vi phạm.

Sau khi thợ đào coin giải quyết được bài toán thì hệ thống sẽ cho phép tạo thêm một khối mới. Các giao dịch sẽ được chuyển vào khối này và xem như là đã được xác nhận.

5. Proof of work được áp dụng vào đâu?

Hiện tại, giao thức Proof of work đang được rất nhiều đồng tiền điện mã hóa sử dụng.

Một trong những ví dụ điển hình nhất cho PoW chính là ở Bitcoin. Chính Bitcoin đã tạo ra nền tảng giới thiệu thuật toán đồng thuận này đến với thế giới. PoW của Bitcoin có tên gọi là Hashcash. Giao thức này cho phép thay đổi độ khó thuật toán đào dựa trên năng lực khai thác hiện tại của mạng lưới. Thời gian trung bình tạo khối mới hiện tại là 10 phút. Những đồng tiền mã hóa khác trên nền tảng Bitcoin như Litecoin cũng sử dụng hệ thống tương tự.

Một mạng lưới khác sử dụng PoW là Ethereum. Vì ngay lúc này cứ 4 thì đã có đến 3 dự án chạy trên nền tảng Ethereum, vì vậy có thể nói phần lớn các ứng dụng Blockchain đều đang tích hợp mô hình đồng thuận Proof of work.

6. Tại sao phải sử dụng Proof of work ngay từ ban đầu?

Một trong những lợi ích chính là bảo vệ chống tấn công DoS và giảm thiểu rủi ro trong hoạt động đào coin.

  • Bảo vệ chống tấn công DoS (Denial of Service): PoW đặt ra giới hạn cao lên mạng lưới. Muốn thực hiện hành động gì đó thì trước hết phải đáp ứng được chúng. Do đó, để tấn công vào mạng lưới thì trước hết cần phải tập hợp lượng năng lực máy tính đủ lớn và cần nhiều thời gian để tính toán. Đợt tấn công vẫn có thể triển khai được nhưng với cái giá phải trả là chi phí cực kì lớn.
  • Khả năng đào khối: Không quan trọng là bạn có bao nhiêu tiền trong ví. Thứ tồn tại duy nhất là liệu bạn có đủ năng lực máy tính để giải toán đào khối hay không mà thôi. Do đó, trên mạng lưới Blockchain, người có tiền chưa chắc đã có quyền.

7. Proof of work có khiếm khuyết nào không?

Những điểm trừ chính là chi phí đắt đỏ, “sự vô dụng” của năng lực tính toán và tấn công 51%.

  • Chi phí đắt đỏ: Đào coin yêu cầu trang bị những máy tính cùng phần cứng chuyên dụng đủ sức chạy những thuật toán hết sức phức tạp. Số tiền phải bỏ ra là rất lớn đối với một cá nhân riêng lẻ. Chính vì vậy, hoạt động khai thác khối hiện giờ chỉ được thực hiện chủ yếu bởi các mining pool.

  • “Sự vô dụng” của năng lực máy tính: Thợ đào đúng thật là phải làm việc cật lực mới có thể tạo ra khối mới. Tuy nhiên, công việc tính toán của họ cũng không thể mang đi áp dụng ở những nơi khác.

8. Tấn công 51% là gì?

Một cuộc tấn công 51%, hay tấn công đa số, 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.

Khi ấy thì những kẻ tấn công sẽ có đủ quyền lực để kiểm soát và tác động lên đa số các sự kiện xảy ra trên mạng lưới.

Họ có thể độc quyền quá trình tạo khối mới và giành lấy toàn bộ phần thưởng vì chúng hoàn toàn dễ dàng ngăn những thợ đào khác giải xong bài toán trước.

Họ thậm chí còn có thể đảo ngược giao dịch.

Ví dụ, hãy giả dụ Alice gửi Bob một số tiền thông qua Blockchain. Alice bị dính tấn công 51%, Bob thì không. Giao dịch tuy đã được chuyển vào trong khối, nhưng những kẻ tấn công lại chặn không cho chuyển tiền. Và thế là sẽ có một đợt fork xảy ra trên Blockchain.

Lúc đó thì thợ đào sẽ phân nhánh thành hai chuỗi (chain) nhỏ hơn. Một bên chắc chắn sẽ có 51% số thợ đào, chính vì thế chuỗi đó sẽ đào được nhiều khối hơn.

Đến cuối cùng, chuỗi dài hơn sẽ tồn tại, chuỗi ngắn hơn sẽ bị đào thải. Giao dịch giữa Bob và Alice xem như chưa từng xảy ra. Bob sẽ không nhận được tiền của mình.

Từ những bước trên, kẻ tấn công có thể đảo ngược lại giao dịch.

Mặc dù vậy, tấn công 51% vẫn không phải là một lựa chọn có lợi về kinh tế. Nó yêu cầu phải tập hợp một lượng năng lực đào áp đảo. Và khi tin tức về việc này lan truyền, người dùng sẽ cân nhắc từ bỏ mạng lưới vì họ xem như nó không còn duy trì được tính phân quyền nữa. Giá của đồng tiền mã hóa gắn liền với Blockchain ấy sẽ sụt giảm. Tất yếu, người dùng sẽ mất toàn bộ tài sản của mình.

Rate this post