Đi tìm khối hợp lệ

Đi tìm khối hợp lệ.

Block là khối giao dịch, một khối có thể chứa thông tin của nhiều giao dịch khác nhau.

Ví dụ về một khối giao dịch:

https://anders.com/blockchain/block.html

Block #: Số thứ tự của khối, khối số 1, ta gọi là khối nguyên thủy.

Nonce: Number used once, một số ngẫu nhiên, đây là công việc của các thợ đào, tìm cho ra được số này.

Data: Dữ liệu của khối, ví dụ ông A chuyển tiền cho ông B, ông C chuyển tiền cho ông D.

Hash: Mã băm của khối, hay gọi là địa chỉ khối, mỗi khối sẽ có một địa chỉ nhất định. Một địa chỉ gọi là hợp lệ khi nó bắt đầu bằng các số 0.

Khi thay đổi giá trị bất kì dữ liệu nào, khối đó sẽ trở nên không hợp lệ.

Khối không hợp lệ

Khối không hợp lệ

Lúc này, bạn click Mine, máy tính sẽ tìm ra một số Nonce sao cho mã hash bắt đầu bằng các số 0

Khối hợp lệ

Khối hợp lệ có mã hash bắt đầu bằng các số 0

Nonce là số ngẫu nhiên, số này khó để tìm ra, tuy nhiên rất dễ để kiểm tra nó có đúng hay sai. Và đây là công việc của các thợ đào Bitcoin, họ phải tìm ra được số Nounce, sao cho khi kết hợp với các giao dịch trong khối đó, mã hash sẽ được bắt đầu bởi các con số 0. Số lượng số 0 phải thấp hơn độ khó của thuật toán Bitcoin hiện hành. Mã hash tìm được gọi là mã hash hợp lệ cho khối.

Qua hình minh họa trên, giả sử độ khó của khối là 6, thì số Nounce phải là số làm cho mã hash có ít hơn 6 số 0.

Khối hợp lệ, sẽ được thêm vào Blockchain của Bitcoin, khối mới nhất sẽ chứa thông tin truy xuất đến khối liền trước nó. Vì thế từ một khối bất kì, khi ta truy ngược lại, bao giờ nó cũng trả về khối đầu tiên, hay còn gọi là khối nguyên thủy.

Bạn có thể xem Blockchain của Bitcoin được cập nhật theo thời gian thực tại đây https://blockexplorer.com/

Các môn học khác

HTTP giúp kết nối các máy tính trên mạng Internet thông qua TCP/IP

Khoa học về dinh dưỡng, giáo trình giảm cân cho mọi người.

C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi đầu cho kế hoạch .NET của họ. C# được miêu tả là ngôn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java.