Tìm hiểu thuật toán PoW (Proof-of-Work) là gì?
POW (Proof-of-work) là một thuật toán trong blockchain, dựa trên cơ chế đồng thuận phi tập trung yêu cầu các thành viên của mạng phải nỗ lực giải một câu đố toán học tùy ý để ngăn chặn bất kỳ ai chơi có ý định gian lận trên hệ thống. Vậy cách thức hoạt động của POW như thế nào? cùng tìm hiểu ở bài viết bên dưới nhé!
Proof-of-Work (PoW) là gì?
Proof-of-Work (PoW) được mô tả là một hệ thống yêu cầu một lượng nỗ lực không đáng kể nhưng khả thi để ngăn chặn việc sử dụng sức mạnh tính toán một cách phù phiếm hoặc độc hại, chẳng hạn như gửi email spam hoặc thực hiện các cuộc tấn công từ chối dịch vụ. Khái niệm này sau đó đã được Hal Finney điều chỉnh để đảm bảo tiền kỹ thuật số vào năm 2004 thông qua ý tưởng về “Proof-of-Work có thể tái sử dụng” bằng cách sử dụng thuật toán băm SHA-256.
Sau khi được giới thiệu vào năm 2009, Bitcoin đã trở thành ứng dụng đầu tiên được áp dụng rộng rãi cho ý tưởng PoW của Finney (Finney cũng là người nhận giao dịch bitcoin đầu tiên). Proof-of-Work cũng tạo thành nền tảng của nhiều loại tiền điện tử khác, cho phép đồng thuận an toàn, phi tập trung.
Proof-of-Work (PoW) là một cơ chế đồng thuận phi tập trung yêu cầu các thành viên của mạng phải nỗ lực giải một câu đố toán học tùy ý để ngăn chặn bất kỳ ai có ý định gian lận, thao túng và phá vỡ các quy tắc của hệ thống PoW.
Proof-of-Work được sử dụng rộng rãi trong khai thác tiền điện tử, để xác thực các giao dịch và khai thác các mã thông báo mới.
Do Proof-of-Work, Bitcoin và các giao dịch tiền điện tử khác có thể được xử lý ngang hàng một cách an toàn mà không cần bên thứ ba đáng tin cậy.
Proof-of-Work ở quy mô lớn đòi hỏi lượng năng lượng khổng lồ, điều này chỉ tăng lên khi có nhiều thợ đào (miner) tham gia vào mạng lưới.
Proof of Stake (POS) là một trong một số cơ chế đồng thuận mới được tạo ra như một sự thay thế cho Proof-of-Work.
Tìm hiểu về Proof-of-Work (PoW) và cách thức hoạt động
Hãy xem xét một tài khoản ngân hàng thông thường. Nếu bạn gửi séc vào tài khoản tiết kiệm của mình, làm thế nào để bạn biết rằng bạn sẽ được ghi có số tiền chính xác? Làm thế nào để người viết séc tin tưởng rằng họ sẽ chỉ được ghi nợ số tiền mà họ đã viết trên séc? Giá trị của ngân hàng là tất cả các bên tham gia giao dịch đều tin tưởng ngân hàng chuyển tiền một cách chính xác.
Với tiền điện tử, không có chủ ngân hàng hoặc tổ chức tài chính nào để đảm bảo sự tin tưởng. Thay vào đó, các thợ đào (miner) và Proof-of-Work đảm bảo các giao dịch minh bạch, chính xác. Đối với các blockchains sử dụng Proof-of-Work, thợ đào (miner) là người bảo vệ và hỗ trợ giúp hệ thống vận hành trơn tru và chính xác.
Cơ chế Proof-of-Work yêu cầu người khai thác sử dụng tài nguyên máy tính cho đặc quyền. Đây là cách nó hoạt động:
Các giao dịch mới được nhóm lại với nhau. Người dùng mua và bán tiền điện tử và dữ liệu từ các giao dịch này được tổng hợp thành một khối.
Các thợ mỏ cạnh tranh để xử lý khối mới. Các thợ đào (miner) tiền điện tử cạnh tranh để trở thành người đầu tiên giải một bài toán phức tạp. Bằng cách đưa ra bằng chứng rằng họ đã thực hiện công việc tính toán — được gọi là băm — giúp người khai thác có quyền xử lý khối giao dịch.
Một người khai thác được chọn để thêm khối mới. Có một mức độ ngẫu nhiên trong việc quyết định người khai thác nào giành được quyền xử lý khối. Người chiến thắng được trao các đồng tiền điện tử mới và thêm một khối mới vào blockchain.
Dan Schwenk, giám đốc điều hành của Digital Asset Research cho biết: “Các thợ mỏ làm việc để giải các bài toán phức tạp để kiếm được phần thưởng. Đây là những vấn đề tốn nhiều công sức đòi hỏi sức mạnh và năng lượng máy tính đáng kể để giải quyết. Vì các thợ đào (miner) đã đầu tư nguồn lực đáng kể vào thiết bị máy tính và chi phí năng lượng cần thiết, họ có động lực để xác thực chính xác các giao dịch.
Các thuật toán và phần cứng mà các thợ sử dụng để khai thác
Các blockchains Proof-of-Work có các thuật toán(algorithms) khai thác hoặc các hàm băm mật mã lấy một khối làm đầu vào và tạo ra một đầu ra nhỏ. Hàm băm được thiết kế để người khai thác phải giữ các khối băm cho đến khi anh ta tạo ra kết quả mong muốn. Tiếp tục đọc, và tôi sẽ cho bạn thấy điều này xảy ra như thế nào. Để hoàn thành nhiệm vụ này, người khai thác cần thử cùng một nhiệm vụ này hàng triệu hoặc hàng tỷ lần, yêu cầu phần cứng, điện và thời gian.
Đối với Bitcoin, hàm băm khai thác là SHA256 và Bitcoin áp dụng quy trình SHA256 kép để tăng cường bảo mật. Ethereum sử dụng Ethash hoặc Dagger-Hashimoto Keccak. Các blockchains Proof-of-Work khác nhau sử dụng các thuật toán khác nhau, nhưng được biết đến nhiều nhất là:
- SHA256 – 256 bit “Thuật toán băm an toàn” có thể được khai thác bởi các CPU có mục đích chung và nó được sử dụng bởi các loại tiền điện tử như Bitcoin, Bytecoin, Peercoin, Namecoin và một số loại khác. SHA256 là một hàm rất dễ dàng, tức là nó là một hoạt động boolean đơn giản và phép cộng 32 bit. Các chức năng đơn giản như thế này có thể được thực hiện theo logic kỹ thuật số trong chip ASIC, tạo ra phần cứng khai thác rất hiệu quả.
- Ethash – Ethash là thuật toán khai thác Proof-of-Work của Ethereum. Vì tốn nhiều bộ nhớ hơn, GPU cung cấp tốc độ băm hiệu quả hơn. Các máy khai thác ASIC cũng được phát triển để khai thác Ethash. Một số blockchain sử dụng thuật toán này, bao gồm Ethereum và Ethereum Classic.
- X11 – Các nhà phát triển Dash đã tạo ra thuật toán X11 và nó được coi là một trong những thuật toán an toàn nhất. Các máy khai thác ASIC cũng được phát triển để khai thác X11. Một số loại tiền điện tử sử dụng nó là Dash, Karmacoin và MonetaryUnit.
- Scrypt – Scrypt cũng là một thuật toán khai thác được sử dụng rộng rãi. Nó nhanh hơn SHA256 và các blockchain hàng đầu sử dụng nó là Dogecoin 🐶, Litecoin,…
- Cryptonight – đây là một thuật toán Proof-of-Work khác với một cái tên thú vị. Nó được thiết kế để hiệu quả hơn với việc khai thác CPU. Các loại tiền điện tử sử dụng nó là Monero, Dashcoin, DigitalNote, Bytecoin,…..
CPU, GPU và ASIC – Phần cứng mà các thợ đào dùng để “kiếm tiền”
Khai thác CPU, GPU và ASIC phản ứng theo những cách khác nhau đối với các thuật toán blockchain khác nhau. Một số thuật toán được khai thác dễ dàng hơn (nghĩa là có tốc độ băm tốt hơn) với CPU – mục đích chung hơn – GPU – sử dụng nhiều tài nguyên hơn cho các phép tính đơn giản và tốt hơn cho các thuật toán sử dụng nhiều bộ nhớ – hoặc ASIC – được thiết kế cho các mục đích cụ thể. Các công cụ khai thác ASIC, mặc dù rất hiệu quả, nhưng chúng cũng có một số nhược điểm. Một số nhà phát triển blockchain đã cố gắng cập nhật các giao thức để làm cho chúng có khả năng chống lại ASIC, tức là không thể khai thác bằng các thiết bị ASIC. Khi điều này xảy ra, các công cụ khai thác ASIC sẽ trở nên vô dụng vì chúng được thiết kế với một thuật toán cụ thể và không thể thực hiện bất kỳ tác vụ nào khác. Một số nhà phát triển blockchain tin rằng các thiết bị ASIC có thể tăng tính tập trung.
Lưu ý rằng điều này chỉ áp dụng cho các blockchains Proof-of-Work chứ không phải các blockchains Proof-of-Stake. Tìm hiểu về poof-of-stake ở đây
Ưu điểm của PoW
-Khả năng mở rộng của mạng (về số lượng node).
-Bảo mật tăng lên theo số lượng node, tức là cộng đồng khai thác lớn hơn, nó càng an toàn hơn.
-Những người khai thác nhận được một phần thưởng khuyến khích để đổi lấy sự đóng góp sức mạnh tính toán của họ cho mạng lưới.
-Rất an toàn trong hầu hết các trường hợp.
Nhược điểm của PoW
-Chi phí và tài nguyên tiêu thụ cao: việc vận hành mạng lưới PoW cần phải tốn 1 lượng lớn các phần cứng CPU, GPU và ASIC và điều này dẫn đến việc tiêu tốn quá nhiều tài nguyên, thêm nữa các thợ đào cần phải “mua sắm” một lượng phần cứng đắt tiền để hiệu quả và thu được nhiều “sản lượng” hơn.
-Tốc độ giao dịch chậm và phí cao khiến nó không hiệu quả.
Kết Luận
Proof-of-Work là cơ chế phổ biến nhất trong số hai cơ chế đồng thuận chính để xác thực các giao dịch trên blockchain. Mặc dù không phải là không có giới hạn, nhưng những người khai thác sử dụng Proof-of-Work giúp đảm bảo rằng chỉ các giao dịch hợp pháp mới được ghi lại trên blockchain.
Bằng cách đó, các thợ đào cũng giúp bảo vệ an ninh của blockchain khỏi các cuộc tấn công tiềm ẩn có thể khiến các doanh nghiệp giao dịch dựa trên blockchain đó bị thiệt hại.