Phần 4: Thử trao đổi tiền MyCoin trong mạng ngang hàng bằng Blockchain
Ở 3 phần trước ta đã thấy cách đào tiền ảo, cách giao dịch, nhưng chưa thấy rõ cách vận hành của một khối Blockchain trao đi đổi lại giữa các máy người dùng như thế nào. Bởi vì không hề có server chung gian để xử lý giao dịch và thêm Block vào Blockchain. Mỗi máy người dùng sẽ đóng vai trò là ...
Ở 3 phần trước ta đã thấy cách đào tiền ảo, cách giao dịch, nhưng chưa thấy rõ cách vận hành của một khối Blockchain trao đi đổi lại giữa các máy người dùng như thế nào.
Bởi vì không hề có server chung gian để xử lý giao dịch và thêm Block vào Blockchain. Mỗi máy người dùng sẽ đóng vai trò là một máy chủ để xử lý chuỗi Blockchain nhận được từ người khác, rồi bạn tạo giao dịch mới hoặc đào hash cho giao dịch tạm hoãn và cập nhật chuỗi Blockchain của bạn, gửi cho những người khác trong mạng.
Hình dung nó sẽ giống như thế này
Nhưng vấn đề là rất dễ xảy ra tranh chấp. Vì bạn và người A cùng sửa chuỗi Blockchain và cùng đào được Hash, nghĩa là 2 bạn cùng thêm 1 Block mới vào Blockchain, nhưng 2 block của bạn là khác nhau. Vậy phải làm thế nào?
Lúc này ta phải có thuật toán để nối Block lại.
Để xác định được một Block được thêm vào là chuẩn chỉnh hay chưa. Thì hàm KiemTraTinhToanVen sẽ cho biết. Nhưng 2 Blockchain toàn vẹn, lại có 2 phần tử cuối cùng khác nhau, nếu lấy một trong 2 Blockchain và bỏ cái kia đi, thì một vài giao dịch đã tự dưng bị mất.
Phần này ta sẽ thử viết Demo để có thể giải quyết được bài toán này.
(đang viết Demo...)
Như vậy sau khi giải quyết được bài toán, ta thấy rằng, Blockchain nào dài nhất sẽ được quyền ưu tiên. Vì thời gian Hash mã của nó nhiều nhất, giá trị tiền ảo bên trong nó cũng đang lưu nhiều nhất. Tuy nhiên các khối Block khác từ các người dùng khác vẫn sẽ được nối thêm vào để tránh làm mất dữ liệu.
Tuy nhiên thuật toán ưu tiên Blockchain dài nhất này lại có một nhược điểm chết người. đó là 51% Attach
Đây nghĩa là gì?
Nếu giờ có Hacker nào đó mua một cỗ máy siêu khủng, và số lượng Block ban đầu chưa nhiều, anh ta sẽ thử nhanh tay đào Hash và tạo ra một Blockchain dài hơn tất cả, lúc này anh ta sẽ được quyền chiếm giữ hệ thống.
Tại sao? tại vì anh ta sẽ ép được các máy khác lưu Blockchain đã chỉnh sửa của anh ta. Nếu những người kia muốn thay đổi lại, họ phải đào hash. Trong lúc đó anh này cũng Hash. Đôi bên cứ giằng co như vậy. Và con số 51% có nghĩa là sức mạnh tính toán hash được nhiều hơn tổng khối lượng hash của toàn hệ thống thì sẽ chiếm được hệ thống.
Dĩ nhiên là điều này khó xảy ra. Vì sức mạnh tính toán sẽ là tổng của toàn bộ người chơi trong hệ thống. Nếu hệ thống lớn như BitCoin thì hàng triệu người cùng hì hụi đào, không một máy cá nhân hoặc một công ty nào đủ điện để chiến đấu với từng ấy người.
Nhưng biết đâu máy tính lượng tử ra đời với khả năng tính hàng triệu tỉ phép tính giây sẽ cho phép Hash nhanh như điện, lúc đó mới đáng lo.
Cũng có một số ý kiến cho rằng, nếu hack được một đồng tiền bằng phương pháp 51% attach, toàn bộ người chơi trong hệ thống sẽ biết, và họ sẽ từ bỏ đồng tiền đó để nó từ từ chết đi, cho giảm giá trị, nên việc hack này sẽ không có nhiều người ham hố. Bạn thì bạn nghĩ sao?
Bạn hãy cùng comment các sũy nghĩ của bạn về Blockchain và các đường link hay khác để các bạn khác tham khảo với nhé!