Proof of Work (PoW) | Bằng chứng công việc là gì?

PoW 2
Read Time:13 Minute, 22 Second

Các điểm chính

  • Proof of Work (PoW) là một cơ chế đồng thuận được tạo ra để ngăn chặn hiện tượng chi tiêu hai lần trong các hệ thống thanh toán kỹ thuật số.
  • PoW là một phần quan trọng của quá trình đào, quá trình này sẽ thêm các khối giao dịch mới vào blockchain và tạo các đơn vị tiền mã hóa mới.
  • Bitcoin và nhiều loại crypto khác chọn PoW làm phương pháp bảo mật cho mạng lưới blockchain và dữ liệu của họ.

Giới thiệu về PoW

Nói tóm lại, Proof of Work (PoW) là một cơ chế được tạo ra để ngăn chặn chi tiêu hai lần trong các hệ thống thanh toán kỹ thuật số. Bitcoin và nhiều loại crypto khác chọn PoW làm phương pháp bảo mật cho mạng lưới blockchain và dữ liệu của họ. Các cơ chế như vậy thường được gọi là thuật toán đồng thuận hoặc cơ chế đồng thuận, bởi vì chúng cần nhiều bên đạt được sự đồng thuận mà không cần phải tin tưởng lẫn nhau.

Proof of Work là thuật toán đồng thuận đầu tiên xuất hiện và nó vẫn là một trong những thuật toán quan trọng nhất cùng với Proof of Stake (PoS). PoW được Satoshi Nakamoto giới thiệu trong sách trắng Bitcoin năm 2008, nhưng bản thân công nghệ này đã được hình thành từ rất lâu trước đó.

HashCash của Adam Back là một ví dụ sớm nhất về thuật toán Proof of Work trong những ngày trước khi có tiền mã hóa. Bằng cách yêu cầu người gửi thực hiện một vài hoạt động tính toán trước khi gửi email, người nhận có thể giảm việc nhận thư rác. Hoạt động tính toán này hầu như không tốn kém gì đối với người gửi hợp pháp nhưng nhanh rất tốn kém tài nguyên với người gửi email hàng loạt.

Chi tiêu hai lần là gì?

Chi tiêu hai lần hoặc lặp chi là hành động dùng để chỉ khi cùng một khoản tiền được chi tiêu nhiều lần. Thuật ngữ này hầu như chỉ được sử dụng trong lĩnh vực tiền kỹ thuật số, vì trên thực tế sẽ rất khó để chi một tờ tiền mặt hai lần. 

Khi trả tiền mặt cho một ly cà phê, bạn sẽ đưa tiền mặt cho nhân viên thu ngân để vào két đựng tiền. Nhưng nếu bạn muốn đến quán cà phê bên kia đường và tiếp tục dùng tờ tiền này trả cho một ly cà phê khác, thì hoàn toàn không thể. Tuy nhiên, trong các hệ thống tiền mặt kỹ thuật số, đây là việc khả thi. 

Giống như việc bạn dùng copy và paste để sao chép một file trên máy tính. Bạn có thể dễ dàng gửi cùng một file qua email cho hàng chục người. Vì tiền kỹ thuật số cũng chỉ là dữ liệu, bạn cần đảm bảo để tránh nguy cơ gian lận lặp chi, tức là sao chép và chi tiêu cùng một đơn vị tiền ở những nơi khác nhau. Một hệ thống thanh toán kỹ thuật số mà không ngăn chặn được việc gian lận lặp chi sớm hay muộn cũng sẽ sụp đổ.

Tại sao Proof of Work lại cần thiết?

Nếu đã đọc bài viết về công nghệ blockchain, bạn sẽ biết rằng người dùng tiền mã hoá truyền các giao dịch lên mạng lưới liên tục. Tuy nhiên, các giao dịch này không ngay lập tức được tính là hợp lệ. Các giao dịch tính là hợp lệ khi chúng được xác nhận và thêm vào blockchain.

Ví dụ, blockchain Bitcoin hoạt động như một cơ sở dữ liệu giao dịch công khai (sổ cái) mà mọi người dùng đều có thể nhìn thấy. Để dễ hình dung như thế này: bạn và ba người bạn có một quyển sổ để theo dõi các giao dịch bitcoin của mình. Bất cứ khi nào một người trong nhóm muốn chuyển giao giá trị đều phải ghi lại:

Alice trả cho Bob 5 BTC; Bob trả cho Carol 2 BTC,…

Tuy nhiên, mỗi lần bạn thực hiện một giao dịch, bạn sẽ phải ghi lại cả nguồn gốc của tiền giao dịch. Vì vậy, nếu Bob thanh toán cho Carol 2 BTC, mục nhập thực sự sẽ như sau: 

Bob trả cho Carol 2 BTC đến từ giao dịch trước đó với Alice.

Bây giờ, chúng ta đã có một cách để theo dõi các đơn vị của BTC. Nếu Bob cố gắng thực hiện một giao dịch khác bằng chính 2 BTC mà mình vừa gửi cho Carol, mọi người sẽ biết ngay lập tức và nhóm sẽ không cho phép giao dịch này được thêm vào sổ vì 2 BTC đó đã được ghi nhận cho giao dịch ban đầu.

Dẫu vậy, phương thức này này chỉ có thể hoạt động tốt trong một nhóm nhỏ. Với một nhóm nhỏ nơi mọi người đều biết rõ nhau sẽ dễ đồng ý với nhau trong việc ai có thể nên thêm giao dịch vào sổ. Điều gì sẽ xảy ra nếu chúng ta muốn có một nhóm 10.000 người tham gia? Việc dùng một quyển sổ ghi chép sẽ khó thể được áp dụng, bởi vì không ai muốn tin vào duy nhất một người lạ để quản lý sổ.

Đây là khi Proof of Work xuất hiện. Nó đảm bảo rằng người dùng không dùng được số tiền mà họ không có quyền chi tiêu. Bằng cách sử dụng kết hợp lý thuyết trò chơi và mật mã, thuật toán PoW cho phép bất kỳ ai cũng có thể cập nhật blockchain theo các quy tắc của hệ thống.

PoW hoạt động như thế nào?

Hãy tưởng tượng rằng quyển sổ từ ví dụ trên là một blockchain. Nhưng thay vì thêm từng giao dịch một – thay vào đó, chúng tôi gộp chúng vào các khối. Chúng tôi thông báo các giao dịch lên mạng lưới và sau đó các người dùng tạo khối sẽ đưa chúng vào một khối ứng viên. Các giao dịch sẽ chỉ được coi là hợp lệ khi khối ứng viên trở thành một khối được xác nhận, có nghĩa là nó đã được thêm vào cơ sở dữ liệu blockchain.

Quá trình xác thực giao dịch và nối thêm các khối mới được gọi là đào. Nó tốn kém và khó khăn, nhưng nó cũng đem lại nhiều lợi ích. Phần thưởng khối được tạo ra từ phí giao dịch từ người dùng và các bitcoin hoàn toàn mới do giao thức tạo ra. 

Cơ chế Proof of Work yêu cầu thợ đào (người dùng tạo khối) đầu tư các tài nguyên như điện và máy tính mạnh để băm dữ liệu khối ứng viên của họ cho đến khi tìm thấy lời giải cho câu đố.

Băm dữ liệu của khối có nghĩa là chuyển nó qua hàm băm để tạo ra một chuỗi băm của khối. Chuỗi băm của khối hoạt động giống như một “dấu vân tay” – đó là danh tính cho dữ liệu đầu vào của bạn và là duy nhất cho mỗi khối.

Nói cách khác, thợ đào phải xác minh và thu thập các giao dịch đang chờ xử lý, sắp xếp chúng thành một khối ứng viên và đưa dữ liệu của khối vào hàm băm để tạo ra một chuỗi băm hợp lệ. Nếu tìm được một chuỗi băm hợp lệ cho khối ứng viên của mình, họ sẽ phát nó lên mạng lưới, thêm khối vào blockchain và thu thập phần thưởng đào.

Khi một thợ đào phát khối ứng viên và chuỗi băm của họ lên mạng, những người tham gia mạng khác sẽ lặp lại quy trình băm để xác minh rằng đầu ra thực sự hợp lệ. 

Mặc dù phải mất vô số lần thử băm để tìm ra một chuỗi băm hợp lệ, nhưng khó ai xác nhận rằng chuỗi băm được tạo là chính xác. Họ chỉ cần gửi cùng một đầu vào (dữ liệu khối) thông qua hàm băm và kiểm tra xem đầu ra có giống nhau không.

Trong Proof of Work, bạn phải cung cấp dữ liệu có hàm băm khớp với các điều kiện nhất định. Nhưng không ai biết làm thế nào để đạt được các điều kiện đó. Cách duy nhất là chuyển dữ liệu của mình qua một hàm băm và kiểm tra xem dữ liệu có khớp với các điều kiện hay không. Nếu không, bạn sẽ phải thay đổi dữ liệu của mình một chút để có được một hàm băm khác. Chỉ thay đổi ngay cả một ký tự trong dữ liệu của bạn sẽ dẫn đến một kết quả hoàn toàn khác, vì vậy không có cách nào để dự đoán đầu ra có thể là gì.

Do đó, nếu muốn tạo một khối, bạn đang tham gia một trò chơi đoán mò. Bạn thường lấy thông tin về tất cả các giao dịch mà bạn muốn thêm và một số dữ liệu quan trọng khác, sau đó băm tất cả lại với nhau. Nhưng vì tập dữ liệu của bạn sẽ không thay đổi, bạn cần thêm một phần thông tin có thể thay đổi. Nếu không, bạn sẽ luôn nhận được cùng một hàm băm đầu ra. Dữ liệu biến này là những gì chúng ta gọi là nonce. Đó là một con số mà bạn sẽ thay đổi với mỗi lần thử, vì vậy mỗi lần bạn sẽ nhận được một hàm băm khác nhau.

Tóm lại, đào là quá trình thu thập dữ liệu blockchain và băm nó cùng với một nonce cho đến khi bạn tìm thấy một chuỗi băm cụ thể. Nếu tìm thấy một chuỗi băm đáp ứng các điều kiện do giao thức đặt ra, bạn sẽ có quyền phát khối mới lên mạng. Tại thời điểm này, những người tham gia khác của mạng cập nhật blockchain của họ để thêm khối mới.

Đối với các loại tiền mã hóa lớn ngày nay, các điều kiện là vô cùng khó để đáp ứng. Tỷ lệ băm trên mạng càng cao thì càng khó tìm được mã băm hợp lệ. Điều này được thực hiện để đảm bảo rằng các khối không được tìm thấy quá nhanh.

Đúng như tưởng tượng, việc cố gắng đoán số lượng lớn các hàm băm có thể tốn kém tài nguyên máy tính của bạn. Bạn đang lãng phí chu kỳ tính toán và điện. Nhưng giao thức sẽ thưởng cho bạn bằng tiền mã hóa nếu bạn tìm thấy một chuỗi băm hợp lệ.

Hãy tóm tắt lại những gì chúng ta biết cho đến nay:

  • Việc đào rất khó khăn và tốn kém nhưng cung cấp bảo mật cho mạng.
  • Những thợ đào tạo ra một khối hợp lệ sẽ được thưởng bằng tiền mã hóa mới phát hành và phí giao dịch.
  • Tạo một chuỗi băm hợp lệ cần có thời gian, nhưng những người dùng khác có thể dễ dàng kiểm tra tính hợp lệ của nó bằng cách lặp lại quá trình băm.

Đơn giản là vậy. Nhưng nếu bạn gian lận thì sao? Làm gì có ai ngăn cản bạn đưa một loạt giao dịch gian lận vào khối và tạo ra một chuỗi băm hợp lệ?

Đó là lúc mật mã hoá khóa công khai xuất hiện. Chúng ta sẽ không đi sâu vào bài viết này, nhưng hãy xem Mật mã hoá khóa công khai là gì? để có cái nhìn toàn diện hơn. Tóm lại, có một số thủ thuật mã hóa cho phép bất kỳ người dùng nào xác minh xem ai đó có quyền di chuyển số tiền mà họ đang cố gắng chi tiêu hay không.

Khi bạn tạo một giao dịch, bạn ký chữ ký của mình. Bất kỳ ai trên mạng cũng có thể so sánh chữ ký của bạn với khóa công khai và kiểm tra xem chúng có khớp hay không. Họ cũng sẽ kiểm tra xem bạn có thực sự có thể chi tiêu tiền số tiền này hay không và tổng đầu vào của bạn có cao hơn tổng đầu ra của bạn hay không (nghĩa là bạn không chi tiêu nhiều hơn số tiền bạn có).

Bất kỳ khối nào chứa giao dịch không hợp lệ sẽ tự động bị mạng lưới từ chối. Sẽ rất tốn kém nếu bạn muốn gian lận. Bạn sẽ lãng phí tài nguyên của chính mình mà không có bất kỳ phần thưởng nào.

Đó là điểm tốt của Proof of Work: làm bạn tốn kém nếu cố tình gian lận, nhưng lại mang lại lợi nhuận khi bạn trung thực. Vì vậy, bất kỳ thợ đào sáng suốt nào cũng sẽ tìm kiếm lợi tức đầu tư của họ, vì vậy sẽ hành xử theo cách có nhiều khả năng mang lại doanh thu hơn.

So Sánh Hai Cơ Chế Đồng Thuận Proof of Work (PoW) Và Proof of Stake (PoS)

Có rất nhiều thuật toán đồng thuận bên cạnh PoW, nhưng một trong những thuật toán phổ biến nhất là Proof of Stake (PoS). Khái niệm này xuất hiện từ năm 2011 và đã được triển khai trong Ethereum và một số giao thức khác.

Trong hệ thống Proof of Stake, các thợ đào được thay thế bằng các người xác thực (validator). Không có hoạt động đào liên quan và không có cuộc đua để đoán các hàm băm. Thay vào đó, người dùng được chọn ngẫu nhiên – nếu họ được chọn, họ phải đề xuất (hoặc “rèn”) một khối. Nếu khối hợp lệ, họ sẽ nhận được phần thưởng được tạo thành từ phí từ các giao dịch của khối.

Tuy nhiên, không phải bất kỳ người dùng nào cũng có thể được chọn – giao thức chọn họ dựa trên một số yếu tố. Để đủ điều kiện tham gia, người tham gia phải khóa một khoản tiền stake, đây là số tiền được xác định trước của tiền gốc của blockchain. Stake giống như bảo lãnh: giống như các bị cáo đưa ra một khoản tiền lớn để đảm bảo không bỏ qua phiên tòa, các trình xác thực khóa cổ phần để đảm bảo không gian lận. Nếu họ hành động không trung thực, khoản stake của họ (hoặc một phần của stake) sẽ bị lấy đi.

Proof of Stake có một số ưu điểm khi so sánh với Proof of Work. Ưu điểm đáng chú ý nhất là lượng khí thải carbon nhỏ hơn – vì không cần các mining farm công suất cao trong PoS, lượng điện tiêu thụ chỉ bằng một phần nhỏ so với mức tiêu thụ trong PoW. 

Tuy nhiên, PoS không có bề dày thành tích như PoW. Mặc dù có thể bị coi là lãng phí, nhưng đào là thuật toán đồng thuận duy nhất đã hoạt động hiệu quả trong trong hơn một thập kỷ. Kể từ khi ra mắt, PoW của Bitcoin đã đảm bảo cho các giao dịch trị giá hàng nghìn tỷ đô la. Để nói chắc chắn liệu PoS có thể cạnh tranh với tính bảo mật của nó hay không, việc stake cần phải được kiểm tra đúng cách trong thời gian dài.

Tổng kết

Proof of Work là giải pháp ban đầu cho vấn đề chi tiêu hai lần và đã được chứng minh là đáng tin cậy và an toàn. Bitcoin đã chứng minh rằng chúng ta không cần các thực thể tập trung để ngăn chặn việc chi tiêu hai lần cùng một khoản tiền. Bằng cách sử dụng thông minh mật mã, hàm băm và lý thuyết trò chơi, những người tham gia trong môi trường phi tập trung có thể đồng ý về trạng thái của cơ sở dữ liệu tài chính.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Social profiles