Giới thiệu
Proof of Work (thường được viết tắt là PoW) là một cơ chế để ngăn chặn việc chi tiêu gấp đôi . Hầu hết các chính cryptocurrencies sử dụng như là họ thuật toán đồng thuận . Đó chỉ là những gì chúng tôi gọi là một phương pháp để bảo mật sổ cái của tiền thuật toán.
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 Satoshi Nakamoto giới thiệu trong sách trắng về 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ụ ban đầu về thuật toán Proof of Work trong những ngày tiền thuật toán. Bằng cách yêu cầu người gửi thực hiện một lượng nhỏ tính toán trước khi gửi email, người nhận có thể giảm thiểu thư rác. Việc tính toán này hầu như không tốn kém gì đối với một người gửi hợp pháp, nhưng nhanh chóng cộng dồn cho ai đó gửi email liên tục.
Chi tiêu gấp đôi là gì?
Chi tiêu gấp đôi xảy ra 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 bối cảnh tiền kỹ thuật số – sau tất cả, bạn sẽ gặp khó khăn khi chi tiêu cùng một loại tiền mặt vật chất hai lần. Khi bạn trả tiền cho một ly cà phê hôm nay, bạn giao tiền mặt cho một nhân viên thu ngân, người có thể đã khóa nó trong một quầy thu ngân. 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 một hóa đơn.
Trong các chương trình tiền mặt kỹ thuật số, có khả năng là bạn có thể. Bạn chắc chắn đã sao chép một tệp máy tính trước đây – bạn chỉ cần sao chép và dán 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 mọi người sao chép và chi tiêu cùng một đơn vị ở những nơi khác nhau. Nếu không, tiền tệ của bạn sẽ sụp đổ ngay lập tức.
Để có cái nhìn sâu hơn về chi tiêu kép, hãy xem Giải thích về chi tiêu kép .
Tại sao Bằng chứng Công việc lại cần thiết?
Nếu bạn đã đọc hướng dẫn của chúng tôi về công nghệ blockchain , bạn sẽ biết rằng người dùng truyền phát các giao dịch lên mạng. Tuy nhiên, những giao dịch đó 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 có thể nhìn thấy, vì vậy họ có thể kiểm tra xem tiền đã được sử dụng trước đó hay chưa. Hình dung nó như thế này: bạn và ba người bạn có một sổ ghi chú. Bất cứ khi nào một trong các bạn muốn chuyển bất kỳ đơn vị nào bạn đang sử dụng, bạn hãy viết ra giấy – Alice trả cho Bob năm đơn vị, Bob trả cho Carol hai đơn vị , v.v.
Có một điều phức tạp khác ở đây – mỗi khi bạn thực hiện một giao dịch, bạn sẽ tham chiếu đến giao dịch mà tiền đến từ đâu. Vì vậy, nếu Bob thanh toán cho Carol hai đơn vị, thì mục nhập thực sự sẽ giống như sau: Bob trả cho Carol hai đơn vị 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ị. Nếu Bob cố gắng thực hiện một giao dịch khác bằng chính những đơn vị mà anh ấy 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 thêm giao dịch vào sổ ghi chú.
Bây giờ, đ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 ý về việc người bạn nào nên thêm giao dịch vào sổ ghi chú. Điều gì sẽ xảy ra nếu chúng ta muốn một nhóm 10.000 người tham gia? Ý tưởng notepad không mở rộng quy mô tốt, bởi vì không ai muốn tin tưởng một người lạ quản lý nó.
Đây là lúc Proof of Work xuất hiện. Nó đảm bảo rằng người dùng không tiêu 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?
Notepad của chúng tôi ở trên là blockchain. Nhưng chúng tôi không thêm từng giao dịch một – thay vào đó, chúng tôi gộp chúng thành khối. Chúng tôi thông báo các giao dịch cho mạng lưới, sau đó người dùng tạo một khối sẽ đưa họ vào một khối ứng cử viên . Các giao dịch sẽ chỉ được coi là hợp lệ khi khối ứng cử viên của chúng 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, thêm một khối không hề rẻ. Proof of Work yêu cầu người khai thác (người dùng tạo khối) sử dụng hết một số tài nguyên của riêng họ cho đặ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 của khối cho đến khi tìm ra lời giải cho một câu đố.
Băm dữ liệu của khối có nghĩa là bạn chuyển nó qua một hàm băm để tạo ra một hàm băm khối. Băm 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.
Hầu như không thể đảo ngược băm khối để lấy dữ liệu đầu vào. Tuy nhiên, biết một đầu vào, bạn có thể xác nhận rằng băm là chính xác. Bạn chỉ cần gửi đầu vào thông qua chức năng 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 phù hợ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 để đạt được điều đó. Tùy chọn duy nhất của bạn là chuyển dữ liệu của bạn qua một hàm băm và kiểm tra xem nó có phù hợ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. 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 kết quả đầu ra có thể là gì.
Do đó, nếu bạn muốn tạo một khối, bạn đang chơi trò chơi đoán. 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 được. Nếu không, bạn sẽ luôn nhận được cùng một hàm băm như đầu ra. Dữ liệu biến này là những gì chúng tôi gọi 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 hàm băm khác nhau mỗi lần. Và đây là những gì chúng tôi gọi là khai thác .
Tóm lại, khai thác 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 hàm băm cụ thể. Nếu bạn tìm thấy một băm thỏa mãn các điều kiện do giao thức đặt ra, 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 cập nhật chuỗi khối của họ để bao gồm khối mới.
Đối với các loại tiền thuật toán lớn hiện nay, các điều kiện là vô cùng thách thức để đáp ứng. Càng cao tỷ lệ băm trên mạng, càng khó để tìm một hash 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.
Như bạn có thể tưởng tượng, việc cố gắng đoán một lượng lớn các hàm băm có thể tốn kém trên máy tính của bạn. Bạn đang lãng phí chu kỳ tính toán và điện năng. Nhưng giao thức sẽ thưởng cho bạn tiền thuật toán nếu bạn tìm thấy một hàm băm hợp lệ.
Hãy tóm tắt lại những gì chúng ta biết cho đến nay:
- Nó đắt cho bạn để khai thác.
- Bạn sẽ được thưởng nếu bạn tạo ra 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 mã băm của nó – người dùng không khai thác có thể xác minh rằng một khối là hợp lệ mà không tốn nhiều sức mạnh tính toán.
Càng xa càng tốt. Nhưng nếu bạn cố gắng gian lận thì sao? Điều gì có thể 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 hàm băm hợp lệ?
Đó là nơi xuất hiện của mật mã khóa công khai. Chúng tôi sẽ không đi sâu vào bài viết này, nhưng hãy kiểm tra Mật mã khóa công khai là gì? để có một cái nhìn toàn diện về nó. Tóm lại, chúng tôi sử dụng một số thủ thuật mật mã gọn gàng 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ý tên vào nó. Bất kỳ ai trên mạng đều 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 của mình 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 (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. Bạn thậm chí cố gắng gian lận sẽ rất tốn kém. 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.
Cái hay của Proof of Work nằm ở chỗ: nó khiến việc gian lận tốn kém, nhưng lại có lợi nếu hành động trung thực . Bất kỳ người khai thác hợp lý nào cũng sẽ tìm kiếm ROI , vì vậy họ có thể mong đợi hoạt động theo cách đảm bảo doanh thu.