NỘI DUNG
Trong Hồi 2 – Cảnh 4 – Liên kết Block vào Blockchain hiện hữu của Giải ngố Blockchain – Phần 2: Hiểu nhanh cơ chế hoạt động của Blockchain với Bitcoin trong 5 phút, tôi có đề cập đoạn “…Ngay khi một Miner tìm được một Nonce đáp ứng yêu cầu, ngay lập tức ổng sẽ la làng lên cho cả cái Network biết mà kiểm tra. Nếu đa số kết luận cái Nonce này chuẩn cmnr thì quá trình Mining cho cái Block chứa giao dịch của Mr. X và bạn đã kết thúc. Block này khi đó sẽ được liên kết vào Blockchain hiện hữu mà không thế lực thù địch nào có thể thay đổi nữa…”. Đoạn trên thể hiện nguyên lý cho cái khái niệm Proof Of Work – POW (Bằng chứng công việc), là một trong các Consensus Mechanisms (cơ chế đồng thuận) phổ biến của tiền mã hóa (cụ thể là Bitcoin).
POW giải quyết được bài toán đồng thuận cho tiền mã hóa tuy nhiên giải pháp này yêu cầu khối lượng tính toán quá lớn. Ngoài ra, vì độ khó của việc tính toán tăng khi trữ lượng tiền mã hóa chưa khai thác giảm dẫn đến khá nhiều lời ra tiếng vào về việc POW quá hoang phí tài nguyên (cụ thể là điện năng). Do vậy, nhiều anh em cùng cha khác mẹ của nó ví dụ như Proof Of Stake – POS đã được phát triển để thay thế. Trong phạm vi kỳ này, tôi sẽ chưa đề cập đến các giải pháp thay thế POW mà sẽ tập trung vào một số vấn đề quan trọng trong việc áp dụng POW làm cơ chế đồng thuận cũng như xem xét thử trong kịch bản mà Bitcoin Network sẽ sụp đổ.
#1 Điều gì xảy ra nếu có nhiều hơn 1 Miner tìm ra Nonce đáp ứng yêu cầu?
Nguyên lý xử lý ở đây là không quan tâm bao nhiêu ông Miner tính ra cái Nonce đồng thời vì tất cả các kết quả sẽ đều được sử dụng để kết nối vào Blockchain hiện hữu.
Giả sử có 2 ông Miner U và Miner V cùng cho đáp án chính xác cùng một thời điểm và Blockchain đang hiện hữu là B. Lúc này cái Block chứa giao dịch mới sẽ sử dụng với cả 2 kết quả từ 2 Miner liên kết vào Blockchain hiện hữu để tạo thành 2 chuỗi tương ứng là B-U tương ứng cho Miner U và B-V tương ứng cho Miner V.
Lúc này trên Bitcoin Network sẽ có một số Node nhận thông tin từ Miner U nên có Blockchain hiện hữu là B-U và một số Node nhận thông tin từ Miner V nên có Blockchain hiện hữu là B-V. Các giao dịch vẫn tiếp diễn nên Block mới N sẽ vẫn tiếp tục được hình thành và Miner tính toán Nonce để gắn vào Blockchain hiện hữu. Trường hợp các Miner với phiên bản Blockchain B-V xác định ra Nonce trước thì Block mới N sẽ được gắn vào để hình thành B-V-N và thông báo cho Network. Lúc này khi so sánh, B-V-N sẽ dài hơn B-U nên B-U sẽ bị loại bỏ và B-V-N sẽ được sử dụng thống nhất.
Trường hợp lại có 2 Miner xác định đồng thời Nonce để gắn Block mới N vào 2 Blockchain hiện hữu B-U, B-V thì bạn sẽ có B-U-N và B-V-N. Công cuộc giao dịch và thêm Block mới vẫn tiếp diễn đến khi có 1 Blockchain đạt được độ dài lớn hơn để trở thành Blockchain thống nhất cho Network. Cái này thì lý thuyết có thể kéo dài chứ thực tế việc các Miner liên tục tìm ra Nonce đồng thời cũng sẽ không cao lắm. Cái chính bạn cần lưu ý là thông tin giao dịch tối quan trọng trong các Block mới sẽ chắn chắc được lưu giữ trong Blockchain chính thức cuối cùng.
#2 Khi nào Bitcoin Network sụp đổ?
Trước khi trả lời câu hỏi trên, tôi muốn xem xét trước một câu hỏi khác: Một mình bạn solo tính tất cả Nonce thay cả Bitcoin Network được không?
Bạn có thể nghĩ thầm là thằng nào rảnh hơi đi tính thay cho cả Network làm gì? Tuy nhiên tôi nghĩ thực tế sẽ có ít nhất 2 nhóm sau: Nhóm mấy thằng hâm, thích chơi trội và nhóm mấy thằng muốn lật kèo giao dịch, xỏ lá anh em.
Tạm bỏ qua thể loại hâm, thích chơi trội, tôi sẽ tập trung vào thằng muốn lật kèo giao dịch. Nhắc lại tình huống bạn mua của Mr. X 1 Bitcon. Sau khi bạn chuyển tiền mua và Mr. X cũng đã thực hiện chuyển Bitcoin cho bạn. Như trình bày ở Giải ngố Blockchain – Phần 2: Hiểu nhanh cơ chế hoạt động của Blockchain với Bitcoin trong 5 phút, lúc này giao dịch của bạn đã được đưa vào Block và Miner cũng đã tính ra Nonce để gắn vào Blockchain.
Hiện tại, cả Network ghi nhận Blockchain B-X đã bao gồm giao dịch sau của Mr. X và bạn.
Đột nhiên Mr. X trúng cơn gió độc nảy sinh tà tâm muốn lật kèo sửa lại giao dịch Bitcoin dù đã nhận hơn 200 củ của bạn. X sửa lại giao dịch từ 1 BTC thành 1 satoshi như sau:
Lúc này Block X sẽ trở thành X’ và để gắn X’ vào Blockchain, Mr. X phải tính lại giá trị Nonce mới để Block X’ đáp ứng điều kiện cho phép hình thành Blockchain B-X’.
Tôi điểm lại tình hình cái để bạn tiện theo dõi:
- Mr. X sửa lại giao dịch trong Block X (Block X sẽ thành X’) và tính lại Nonce để gắn vào Blockchain B tạo thành B-X’;
- Cả Network vẫn đang tiếp tục xử lý các giao dịch mới, hình thành thêm Block Y và tính Nonce để gắn vào Blockchain hiện tại B-X tạo thành B-X-Y;
Giả sử Mr. X có nguồn lực tính toán xấp xỉ toàn Network (mạnh vãi nồi!) nên lúc Network tạo được B-X-Y thì Mr. X cũng đã tạo được B-X’. Cuộc đua của Mr. X và Network lại tiếp diễn:
- Mr. X hốt mớ giao dịch trong Block Y tính lại Nonce để gắn vào B-X’;
- Network xử lý giao dịch mới tạo Block Z, tính Nonce để gắn vào B-X-Y.
Như vậy với giả sử Mr. X có nguồn lực tính toán xấp xỉ toàn Network, Blockchain của Mr. X vẫn luôn ngắn hơn Blockchain của toàn Network nên vẫn bị Network loại bỏ.
Tuy nhiên, nếu bằng cách nào đó, Mr. X được buff thêm nên chỉ số sức mạnh vượt qua tổng chỉ số toàn Network thì lúc này việc độ dài Blockchain chứa giao dịch chỉnh sửa của Mr. X vượt Blockchain chính thống của Network chỉ còn là vấn đề thời gian.
Đây là chính là kịch bản có thể làm Bitcoin Network sụp đổ với cái tên gọi là “51% Attack” (Tấn công 51%). Trong kịch bản này, bạn nên chuẩn bị nói lời vĩnh biệt tiền của mình là vừa rồi đấy.
Với công nghệ hiện tại, hiện vẫn chưa có tổ chức hay cá nhân nào có khả năng buff lên tới chỉ số sức mạnh để triển cái 51% Attack như Mr. X nói trên. Tuy nhiên, cái đó dựa trên các thông tin công khai thôi chứ còn mấy đại ca nào có năng lực mà giấu bài thì chịu thôi. Ngoài ra, như tôi đã đề cập trong Giải ngố Blockchain – Phần 1: 5 điều nhất định phải biết trước khi đầu tư Bitcoin năm 2020, các tiến bộ trong lĩnh vực Quantum Computing (tính toán lượng tử) cũng cần được quan tâm nếu bạn đã bỏ một số vốn vào tiền mã hóa nhé.