Tìm hiểu Blockchain: Proof of Work vs Proof of Stake
Ethereum đang chuyển từ Proof of Work sang Proof of Stake.
Casper (smart contract cho phép sử dụng Proof of Stake) vừa được cộng đồng Ethereum Dev release phiên bản 0.1.0 gần 1 tháng trước, hứa hẹn việc chuyển mình từ PoW sang PoS cho không chỉ Ethereum mà còn nhiều các Cryptocurrency khác.
Thiên hạ bàn tán nhiều về ưu nhược điểm của 2 phương pháp.
Là người mới tìm hiểu về blockchain, khoan chưa nói về ưu nhược điểm vội, trước hết ta cần hiểu cơ bản về 2 phương pháp này, chúng khác nhau như thế nào?
Có thể đọc lại bài viết này để review lại 1 chút về cơ chế hoạt động của Blockchain.
Proof of Work (PoW) hoạt động như thế nào?
Nếu đọc kĩ bài viết ở link phía trên, ta cũng đã hiểu được cơ chế hoạt động của PoW. Xin được điểm lại 1 chút.
Các node tham gia hệ thống blockchain được gọi là các miner (thợ đào) cùng thực hiện tính toán để tìm ra hash cho khối block thoả mãn một điều kiện nhất định (điều kiện càng khó thì khối lượng tính toán càng nhiều). Ai tính toán ra kết quả đầu tiên sẽ là được phần thưởng, là một số lượng coin.
Đó là lý do tại sao cơ chế hoạt động này có tên gọi Proof of Work: Bằng chứng công việc.
Để được nhận phần thưởng, các node phải cố gắng trở thành người hoàn thành tính toán đầu tiên, cũng có nghĩa là cần đẩy nhanh tốc độ và khối lượng tính toán. Dẫn đến khối lượng tính toán của toàn hệ thống tăng, tương ứng với nó là mức độ ngốn năng lượng.
Đó cũng là lý do tại sao bạn thường thấy hình ảnh các công ty đào bitcoin sở hữu các căn phòng rộng đặt hàng trăm hàng nghìn máy đào dài tăm tắp, và thường đặt ở các quốc gia khí hậu lạnh và giá điện rẻ.
Hơn thế nữa, khi khối lượng trung bình của hệ thống tăng, độ khó của điều kiện đặt ra cũng được điều chỉnh tăng. Điều này giúp cho số lượng coin mới không được sinh ra quá nhiều, giúp ổn định số lượng coin của toàn hệ thống.
Độ khó tính toán tăng, mất nhiều thời gian để tính toán hơn, block chain ngày càng trở nên tốn kém về cả thời gian và tiền bạc.
Hầu hết các nước ở châu Phi còn tiêu tốn ít năng lượng hơn tổng năng lượng của ngành đào Bitcoin.
Câu hỏi đặt ra:
Có cần thiết phải tốn kém nhiều thời gian và tiền bạc như vậy chỉ để đóng gói 1 block? Có cách nào nhanh và rẻ hơn không? Và người ta nghĩ đến 1 cơ chế kiểu khác đặt tên là Proof of Stake.
Proof of Stake (PoS) hoạt động như thế nào?
Khắc phục nhược điểm kể trên, với PoW, việc tất cả node cùng tham gia tính toán giải các hàm hash là tốn thời gian và năng lượng.
PoS đưa ra một phương pháp đồng thuận mới trong việc đóng gói block vào chain.
Trong các node tham gia, một node sẽ được lựa chọn ngẫu nhiên để trở thành người kiểm định và đóng gói block.
Node tham gia được gọi là các validator (người kiểm định).
Điều kiện để tham gia là các node này cần phải bỏ một khoản tiền vào mạng lưới, mà anh Vitalik Buterin gọi là bet (đặt cược). Ta có thể hiểu nôm na là đặt cọc tiền để chứng minh danh tính bản thân.
Khoản tiền này được gọi bằng từ chuyên môn là Stake.
Khoản tiền này sẽ bị hệ thống thực hiện lock. Và sẽ được unlock sau khi node rút khỏi việc tham gia validator một thời gian (Chú ý việc unlock sẽ không được thực hiện ngay lập tức).
Validator được chọn sẽ thực hiện validate block. Thuật ngữ chuyên môn cho hành động này là forge hoặc mint (phân biệt với mine trong PoW).
Nếu block hợp lệ và ghi được vào chain, validator này sẽ được phần thưởng chính là từ transaction fee.
Thuật toán lựa chọn validator tiến hành forge
Thực chất việc lựa chọn này không hoàn toàn ngẫu nhiên mà dựa trên giá trị stake của những validator tham gia.
Giả dụ Alice có stake là 10 USD, Bob có stake là 100 USD. Vậy Bob sẽ có cơ hội cao để được lựa chọn hơn Alice.
Ý tưởng đơn giản là: Ai có giá trị stake cao sẽ có tiếng nói tin cậy.
Nếu có gian lận thì sao?
Điều gì xảy ra nếu validator được chọn thực hiện gian lận cố tình validate block giả mạo.
Nếu điều này bị phát hiện (được thông báo lên mạng lưới từ các validator khác), anh ta sẽ bị phạt toàn bộ số tiền trong stake.
Đây cũng là lý do tại sao stake không được hoàn trả ngay sau khi validator từ bỏ quyền tham gia. Tránh trường hợp anh ta validate block giả mạo sau đó từ bỏ quyền luôn để trốn chạy.
Để đảm bảo lợi thu được nhỏ hơn nhiều số tiền bị phạt, stake tối thiểu được quy định của Casper là 1250 ETH (Code trên github ở đây).
Nên hiểu là chỉ có 1 block được chấp nhận và thêm vào chain, tất cả các validator đặt stake cho block bị coi là giả mạo (không được thêm vào chain) cũng sẽ mất toàn bộ stake của họ.
Đánh vào các hình phạt kinh tế là điểm then chốt để đảm bảo tính an toàn của PoS, khiến cho việc tấn công và giả mạo trở nên khó khăn hơn.
Tấn công vào hệ thống
Với PoW, rất khó để thực hiện tấn công vào hệ thống, như tấn công 51% sẽ đòi hỏi chi phí về năng lượng tính toán cực lớn mà nhiều khi chi phí để tấn công còn tốn hơn nhiều lần món lợi đem lại.
Với PoS, việc tấn công cũng không hề dễ dàng. Nếu tấn công thất bại, kể tấn công sẽ bị phạt mất toàn bộ số tiền cược (stake).
Để thực hiện tấn công 51%, kẻ tấn công cần phải có hơn 50% tổng số coin của hệ thống, điều này càng khó có thể xảy ra khi tổng giả trị thị trường của ETH hiện nay đã lên tới gần 60B USD.
Vitalik Buterin có đề cập trong bài viết của anh về việc sẽ hard fork nếu có tấn công và cần thiết để khôi phục hậu quả.
Có thể tìm hiểu thêm về hark fork ở đây.
PoW vs PoS
PoS là sự cải tiến của PoW nên chứa nhiều điểm khắc phục:
- Do không cần tính toán giải các hàm hash phức tạp, hệ thống sử dụng PoS tốn ít thời gian và năng lượng hơn nhiều so với PoW.
- PoS hứa hẹn sẽ tạo ra mạng lưới an toàn và decentralize hơn PoW
- Với PoW, việc đào coin hiện nay chỉ hiệu quả với những hệ thống máy đào lớn, năng lượng cao. Điều này dẫn tới hiện nay power của toàn hệ thống chủ yếu tập trung ở các mining pool lớn. Làm cho hệ thống trở nên centralize (tập trung).
Hiện nay 3 mining pools lớn nhất là BTC.com, AntPool, và SlushPool đã chiếm hơn 50%. Điều gì sẽ diễn ra nếu 3 mining pools này sát nhập. Hệ thống Bitcoin sẽ bị tấn công dễ dàng bởi 51% attack.
- Với PoS, do không đòi hỏi năng lượng và dễ dàng để tham gia đặt cược (chỉ cần bạn có đủ số tiền vượt ngưỡng min deposit), hứa hẹn sẽ có nhiều node tham gia, giúp hệ thống trở nên decentralize hơn, và do đó an toàn hơn.
Tuy nhiên:
- Với Ethereum Casper, con số tối thiểu để tham gia đặt cược là 125 ETH (tương đương 750K USD tại thời điểm hiện tại). Đây là 1 khoản tiền lớn, không phải ai cũng có. Vậy nếu được áp dụng PoS có thực sự giúp hệ thống trở nên decentralize hơn, hay quyền lực vẫn chỉ nằm trong tay một nhóm các người giàu nhất định.
- Việc hạn chế chỉ người giàu có thể tham gia làm cho người giàu càng trở nên giàu hơn (do thu được thêm lợi từ transaction fee) sẽ đẩy mạnh khoảng cách giàu nghèo. Đây có phải là điều chúng ta muốn tránh?
- Ngoài ra PoS còn phải đối mặt với nhiều vấn đề kỹ thuật cần giải quyết trước khi đưa vào hoạt động thực tế như: Nothing at Stake hay Long Range Attack. Mình xin được nói về 2 vấn đề này và cách Casper giải quyết nó trong các bài viết khác.
Phần tiếp theo: