Giải mã bài toán các thợ đào cần giải để đào được bitcoin

05/02/2018 14:30 PM | Xã hội

Như đã biết, bitcoin là đồng tiền thưởng cho các miner sau khi họ cùng tham gia giải một bài toán để ‘đào’ (mining) thành công một block mới. Vậy, bài toán cụ thể mà các miners phải giải để đào một block mới là gì?

Thế giới đang chứng kiến tuần tồi tệ nhất của Bitcoin cũng như các đồng tiền mật mã khác. Bitcoin đã mất một nửa giá trị so với mức đỉnh được lập cuối tháng 12 năm ngoái, gần như là mức sụt giảm mạnh nhất của đồng tiền này kể từ 2015.

Một trong số những nguyên nhân quan trọng khiến Bitcoin được ưa thích bởi những người chơi tiền mật mã là đặc tính khan hiếm của nó. Đặc tính này được quy định thông qua thuật toán bitcoin, khiến cho số lượng đồng tiền này bị giới hạn ở mức 21 triệu, với số bitcoin thưởng cho mỗi block mới được đào (mining) thành công giảm dần theo thời gian. Đồng bitcoin cuối cùng dự kiến được khai thác vào năm 2140.

Như đã biết, bitcoin là đồng tiền thưởng cho các miner sau khi họ cùng tham gia giải một bài toán để ‘đào’ (mining) thành công một block mới. Vậy, bài toán cụ thể mà các miners phải giải để đào một block mới là gì? Có lẽ chưa có nhiều người biết. Quan trọng hơn là việc hiểu biết được các vấn đề kỹ thuật của công nghệ khai thác Bitcoin sẽ khiến cho chúng ta hiểu rõ hơn về đồng tiền này, để tự mỗi người sẽ đánh giá được, liệu Bitcoin – cũng như các đồng tiền mật mã khác- có đáng để tôn thờ như một loại tài sản vĩnh cửu hay không.

Thuật toán Bitcoin quy định, mỗi block mới phát sinh trong một khoảng thời gian chứa đựng (1) thông tin về các giao dịch mới phát sinh trong khoảng thời gian đó, (2) thông tin được mã hóa một chiều của các giao dịch trong block liền trước nó trong blockchain, và (3) một tham số để giải bài toán.

Trước hết, thông tin về các giao dịch mới phát sinh trong một khoảng thời gian được gói vào trong một block. Sau đó thông tin này được mã hóa bằng thuật toán SHA-256 (Secure Hash Algorithm). Đây là thuật toán mã hóa bất cứ dữ liệu nào thành một kết quả dài 256 bit, tức 64 ký tự bao gồm chữ và số. Ví dụ, cụm từ ‘U23 Việt Nam lập kỳ tích lọt vào trận chung kết U23 Châu Á’ sau khi mã hóa bởi thuật toán SHA – 256 sẽ được kết quả là ‘f6679d7151d85fc4ea1ac4047ae4cdba7a2ed836652672c8f2178f695f45cef9’.

Kết quả này sau đó tiếp tục được ghép với kết quả mã hóa của một giao dịch khác kế tiếp bằng thuật toán SHA-256 (double hashing) cho tới khi còn hai kết quả hashing của các giao dịch trong block này sau khi mã hóa. Quá trình này tạo thành một cây nhị phân gọi là Merkle Tree.

Tới đây, hai kết quả này được ghép lại và mã hóa để tạo thành một kết quả hashing sau cùng. Kết quả hashing sau cùng này gọi là Gốc (Merkle Root). (Hình minh họa)

 Giải mã bài toán các thợ đào cần giải để đào được bitcoin  - Ảnh 1.

Hình 1. Quá trình hashing tạo thành cây nhị phân Merkle Tree. (Nguồn: Người viết minh họa)

Kết quả hashing sau cùng này được ghép cùng các thông tin khác trong block, bao gồm (1) kết quả hashing của block trước đó, (2) nhãn thời gian ghi chép việc khởi tạo block, (3) tham số chạy Nounce là biến chạy ngẫu nhiên có vai trò đặc biệt quan trọng. Các thông số này tiếp tục được mã hóa để tạo ra kết quả hashing cuối cùng của block mới khởi tạo đó.

Kết quả hashing cuối cùng này sẽ có dạng chuỗi ký tự 256 bit (64 ký tự), chẳng hạn có dạng ‘0000641727781545e50c0235823c9ae0785d419499cc5a5dcdff2332a53f0f7f’.

Thuật toán Bitcoin quy định, một block mới chỉ có thể được khởi tạo khi miner tìm được kết quả hashing cuối cùng này nhỏ hơn giá trị mục tiêu (Target Value) đang được duy trì trong hệ thống blockchain. Chẳng hạn, với Target value mà hệ thống đang duy trì là ‘00007bbd6491304360d142bd5f32610214937c263b0bc6c44b3ac04574b62d4c’, thì kết quả hashing ở trên được coi là hợp lệ, bởi vì các ký tự đầu ‘00006’ nhỏ hơn ‘00007’ của Target Value.

Sau đó, kết quả này sẽ ngay lập tức được chuyển tới các block khác trong mạng lưới để xác nhận. Sau khi có đa số (trên 50%) số block trong blockchain xác nhận kết quả, block mới chính thức được tạo thành.

Nếu như kết quả chưa hợp lệ, tham số động Nounce sẽ được thay đổi ngẫu nhiên cho tới khi nào có một miner tìm được tham số thỏa mãn tiêu chí hệ thống đặt ra, đó là kết quả hashing nhỏ hơn Target Value của hệ thống. Khi đó block mới sẽ được tạo thành, và miner khai thác được block đó sẽ được thưởng một số lượng Bitcoin nhất định.

Như vậy, ‘bài toán’ mà các miner phải giải chính là việc tìm ra tham số Nounce thỏa mãn tiêu chí của hệ thống. Khi số lượng miner càng lớn, hệ thống sẽ tự động điều chỉnh Target Value thấp xuống để đảm bảo thời gian để tạo thêm một block mới duy trì ở khoảng 10 phút.

 Giải mã bài toán các thợ đào cần giải để đào được bitcoin  - Ảnh 2.

Hình 2. Minh họa quá trình Proof of Work. (Nguồn: Người viết minh họa)

Quá trình tìm kiếm tham số Nounce ngẫu nhiên này gọi là ‘Proof of Work’ (Bằng chứng công việc), rất tốn kém điện năng để duy trì năng lực tính toán của hệ thống, khiến cho Bitcoin được cho là có giá trị, bởi việc tìm kiếm thêm các đồng Bitcoin mới sẽ ngày càng tốn kém nguồn lực điện năng.

Toàn bộ quá trình những người tham gia mạng lưới cùng tìm kiếm tham số Nounce để tạo ra kết quả hashing hợp lệ này nhằm xác nhận việc tạo thành các block mới, hay chính là việc xác nhận các giao dịch mới, được gọi là mining. Như vậy, toàn bộ lượng điện năng khổng lồ mà các miner đang tiêu thụ được sử dụng để chạy các phép toán ngẫu nhiên, một việc không có nhiều ý nghĩa.

Một số người chỉ trích việc này làm tiêu tốn nguồn lực của quốc gia. Giáo sư John Quiggin thuộc Đại học Queensland đã tính ra rằng, cứ nửa giờ, mạng lưới Bitcoin sử dụng một lượng điện năng gần tương đương với lượng điện các hộ gia đình bình thường tại Mỹ dùng trong một năm, với giả định các hộ gia đình bình thường tại Mỹ tiêu thụ điện năng từ 10.000 tới 12.000 kWh/năm. Tức là, lượng điện năng này tương đương với lượng điện cần thiết để tạo ra 4 Bitcoin, với mức giá hiện tại ở khoảng hơn 8.000 USD/Bitcoin.

Một số người khác cho rằng, đặc tính tiêu tốn nguồn lực này khiến cho Bitcoin thực sự là một tài sản có giá trị, bởi việc tạo ra đồng tiền mật mã này yêu cầu tốn kém chi phí.

Với những người giao dịch Bitcoin thông thường, việc hiểu được cơ chế kỹ thuật tạo ra đồng Bitcoin sẽ phần nào giúp nhận thức đầy đủ hơn về đồng tiền này. Qua đó, mỗi người sẽ có đánh giá khách quan về việc Bitcoin thực sự có giá trị hay không.

(Tham khảo:

1. https://bitcoin.org

2. Mark Gates, Blockchain – Ultimate guide to understanding blockchain, bitcoin, cryptocurrencies, smart contracts and the future of money

3. https://en.wikipedia.org/wiki/Secure_Hash_Algorithms

4. https://en.wikipedia.org/wiki/Blockchain) 


Theo Quang Huân

Cùng chuyên mục
XEM