Proof of Work (PoW) là gì?
HomeArticles

Proof of Work (PoW) là gì?

Trung cấp
5mo ago
8m

Nội dung


Giới thiệu

Proof of Work (Bằng chứng Công việc, thường được viết tắt là PoW) là một cơ chế để ngăn chặn chi tiêu kép. Hầu hết các tiền mã hóa sử dụng nó như là thuật toán đồng thuận của chúng, được dùng như một phương pháp để bảo mật cho sổ cái của tiền mã hóa.

Proof of Work là thuật toán đồng thuận đầu tiên xuất hiện và cho đến nay vẫn là thuật toán thống trị. Nó được giới thiệu bởi Satoshi Nakamoto 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ừ lâu trước đó

HashCash của Adam Back là một ví dụ sớm về thuật toán Proof of Work trước khi sự ra đời của tiền mã hóa. Bằng cách yêu cầu người gửi thực hiện một phép tính nhỏ trước khi gửi email, người nhận có thể giảm thiểu thư rác. Phép tính này sẽ hầu như không tiêu tốn gì cho một người gửi hợp pháp, nhưng sẽ cộng dồn lên đến một con số lớn cho ai đó gửi số lượng lớn email.


Chi tiêu kép là gì?

Chi tiêu kép xảy ra khi cùng một khoản tiền nhưng được chi tiêu nhiều lần. Thuật ngữ này được sử dụng gần như độc quyền trong bối cảnh tiền kỹ thuật số - xét cho cùng, bạn sẽ gặp khó khăn khi chi tiêu hai lần trên cùng một khoản tiền. Ví dụ, ngày hôm nay, khi bạn trả tiền cho một ly cà phê, bạn trả tiền mặt cho một nhân viên thu ngân, người có thể khóa nó vào trong sổ. Bạn không thể đến quán cà phê bên kia đường và trả tiền cho một ly cà phê khác với cùng hóa đơn.

Trong các cơ chế tiền kỹ thuật số, khả năng thực thi là có thể. Bạn chỉ cần nhân bản một tập tin máy tính trước đó - bằng cách sao chép và dán. Bạn có thể gửi cùng một tệp qua email cho mười, hai mươi, năm mươi người.

Vì tiền kỹ thuật số chỉ là dữ liệu, bạn cần ngăn người khác sao chép và chi tiêu cùng một đơn vị tiền ở những nơi khác nhau. Nếu không, đồng tiền của bạn sẽ nhanh chóng sụp đổ.

Để tìm hiểu thêm hơn về chi tiêu kép, hãy đọc Hướng dẫn về chi tiêu hai lần dành cho người mới bắt đầu.


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

Nếu đã đọc bài hướng dẫn về công nghệ blockchain cho Người mới bắt đầu, bạn sẽ biết rằng người dùng phát các giao dịch lên mạng. Tuy nhiên, những giao dịch đó sẽ không được coi là hợp lệ ngay lập tức. Điều đó chỉ xảy ra khi chúng được thêm vào blockchain. 

Blockchain là một cơ sở dữ liệu lớn mà mọi người dùng đều có thể nhìn thấy, vì vậy họ có thể kiểm tra xem tiền đã được sử dụng trước đó chưa. Minh họa qua ví dụ như thế này: bạn và ba người bạn có một cuốn sổ. Bất cứ lúc nào một trong ba người muốn thực hiện chuyển bất cứ đơn vị nào mà nhóm đang sử dụng, người đó sẽ viết nó ra – Alice trả Bob năm đơn vị, Bob trả Carol hai đơn vị, v.v.

Có một rắc rối ở đây - mỗi khi thực hiện một giao dịch, bạn chỉ dẫn đến giao dịch với nguồn gốc của khoản tiền. Vì vậy, nếu Bob trả cho Carol hai đơn vị, mục nhập thực tế sẽ như sau: Bob trả cho Carol hai đơn vị từ giao dịch trước đó với Alice.

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

Điều này có thể hoạt động tốt trong một nhóm nhỏ. Mọi người đều biết nhau, vì vậy họ có thể sẽ đồng thuận về việc người bạn nào sẽ thêm giao dịch vào sổ. Nhưng nếu chúng ta muốn một nhóm 10.000 người tham gia thì sao? Ý tưởng cuốn sổ không mang tính thực tiễn, vì không ai muốn tin tưởng một người xa lạ quản lý nó.

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


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

Cuốn sổ của chúng ta ở ví dụ trên là blockchain. Nhưng chúng ta không thêm các giao dịch từng cái một - thay vào đó, chúng ta gộp chúng thành các khối. Chúng ta thông báo các giao dịch với mạng, sau đó những người dùng tạo một khối sẽ đưa chúng vào diện 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 blockchain.

Tuy nhiên, việc thêm vào một khối không rẻ. Proof of Work yêu cầu một thợ đào (người dùng tạo khối) sử dụng một số tài nguyên của chính họ để được hưởng đặc quyền. Tài nguyên đó là sức mạnh tính toán, được sử dụng để băm dữ liệu khối cho đến khi tìm thấy lời giải cho câu đố.

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

Hầu như không thể đảo ngược một block hash để lấy dữ liệu đầu vào. Tuy nhiên, khi biết một đầu vào thì việc xác nhận rằng hash liệu có chính xác là dễ dàng. Bạn chỉ cần gửi đầu vào qua hà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 mà có hash khớp với các điều kiện nhất định. Nhưng bạn không biết làm thế nào để thực hiện. Tùy chọn duy nhất của bạn là đưa dữ liệu của bạn qua một hàm băm và kiểm tra xem nó có khớp với các điều kiện 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 hash khác. Việc 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, do đó, không có cách nào để dự đoán đầu ra có thể là gì.

Kết quả là, nếu muốn tạo một khối, chính là bạn đang chơi một trò đoán. Bạn lấy thông tin về tất cả các giao dịch muốn thêm và một số dữ liệu quan trọng khác, sau đó băm tất cả chúng 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 biến thiên. Nếu không, bạn sẽ luôn thu về hash giống như đầu ra. Dữ liệu biến thiên này được đặt tên là một nonce. Đó là một con số mà bạn sẽ thay đổi sau mỗi lần thử, vì vậy bạn sẽ nhận được một hash khác nhau mỗi lần. Và đây là những gì chúng ta gọi là đào.

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 hash cụ thể. Nếu bạn tìm thấy một hash thỏa mãn các điều kiện được đặt ra bởi giao thức, bạn 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 sẽ cập nhật blockchain của họ để bao gồm khối mới.

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

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

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

  • Đào là tốn kém.
  • Bạn sẽ được thưởng nếu tạo ra được một khối hợp lệ.
  • Biết một đầu vào, người dùng có thể dễ dàng kiểm tra hash của mình - những người dùng không tham gia đào có thể xác minh rằng một khối là hợp lệ hay không mà không tiêu tốn nhiều sức mạnh tính toán.

Mọi thứ vẫn tiến triển tốt. Nhưng nếu bạn cố gắng gian lận thì sao? Điều gì sẽ ngăn bạn đưa một loạt các giao dịch gian lận vào khối và tạo ra một hash hợp lệ?

Đó là trường hợp dẫn đến sự ra đời của mật mã hóa khóa công khai. Chúng ta sẽ không đi sâu trong bài viết này, nhưng bạn có thể tìm hiểu qua bài Mật mã khóa công khai là gì? để có một cái nhìn toàn diện về nó. Nói tóm lại, chúng ta sử dụng một số thủ thuật mã hóa rành mạch cho phép bất kỳ người dùng nào xác minh xem liệu ai đó có quyền chuyển 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 nó. Bất cứ ai trên mạng đều có thể so sánh chữ ký của bạn với chìa khóa công khai, của bạn và kiểm tra xem chúng có khớp không. Họ cũng sẽ kiểm tra xem liệu bạn có thực sự có thể chi tiêu tiền của mình hay không và tổng số tiền đầu vào của bạn có cao hơn tổng số tiền đầu ra của bạn hay không (tức 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 bao gồm một giao dịch không hợp lệ sẽ bị mạng tự động từ chối. Việc cố gắng gian lận sẽ rất tốn kém cho bạn. Bạn sẽ lãng phí tài nguyên của mình mà không có bất kỳ phần thưởng nào.

Trong vấn đề này, Proof of Work thể hiện ưu điểm: Nó khiến cho việc gian lận trở nên tốn kém, nhưng lại có lợi khi hành động một cách trung thực. Bất kỳ thợ đào có lý trí nào cũng sẽ tìm kiếm ROI, vì vậy họ có thể được kỳ vọng sẽ hành xử theo cách đảm bảo doanh thu.



Bạn đang tìm cách bắt đầu với tiền mã hóa? Hãy mua Bitcoin trên Binance!



Proof of Work vs. Proof of Stake

Có nhiều thuật toán đồng thuận, nhưng một trong những thuật toán được mong đợi nhất là Proof of Stake (Bằng chứng Cổ phần - PoS). Khái niệm này có từ năm 2011 và đã được triển khai trong một số giao thức nhỏ hơn. Nhưng nó vẫn chưa được thấy áp dụng trong bất kỳ blockchain lớn nào.

Trong các hệ thống Proof of Stake, các thợ đào được thay thế bằng các trình xác nhận. Không có sự có mặt của đào và không có cuộc đua đoán hash. Thay vào đó, những người dùng được chọn ngẫu nhiên - nếu đượ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 một phần thưởng được tạo thành từ các khoản 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, những người tham gia phải khóa một cổ phần, là số tiền được định trước của đồng tiền gốc của blockchain. Cổ phần hoạt động giống như bảo lãnh: giống như việc các bị cáo phải đặt cọc một số tiền lớn để không khuyến khích họ bỏ qua phiên tòa, các trình xác nhận khóa một cổ phần để không khuyến khích gian lận. Nếu họ hành động không trung thực, cổ phần của họ (hoặc một phần của nó) sẽ bị lấy mất.

Proof of Stake có một số lợi ích so với Proof of Work. Điều đáng chú ý nhất là lượng khí thải carbon nhỏ hơn - vì PoS không cần đến các trang trại đào công suất điện cao, điện năng tiêu thụ chỉ là một phần nhỏ so với PoW. 

Thế nên mới nói, không có cái nào tiếp cận gần với PoW. Mặc dù PoW có thể được coi là lãng phí, đào là thuật toán đồng thuận duy nhất được chứng minh trên quy mô. Chỉ trong hơn một thập kỷ, nó đã bảo đảm 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 PoW trong việc đảm bảo bảo mật hay không, PoS cần phải được kiểm tra thỏa đáng trong thực tế.


Kết luận

Proof of Work là giải pháp ban đầu cho vấn đề chi tiêu kép 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 cùng một khoản tiền nhưng được chi tiêu hai lần. Với việc sử dụng mật mã hóa, các hàm băm, và lý thuyết trò chơi, những người tham gia trong một môi trường phi tập trung có thể đạt được đồng thuận về trạng thái của một cơ sở dữ liệu tài chính.