Vakaxa tiếp tục mời bạn đọc cùng tìm hiểu Genesis Block Bitcoin là gì? Cơ chế hoạt động của Genesis Block qua bài viết dưới đây nhé.

Genesis Block Bitcoin là gì?

Genesis Block là tên gọi dành cho khối đầu tiên trên Blockchain của Bitcoin, hay còn được gọi là “khối nguyên thủy”. Genesis Block được tìm thấy vào lúc 18:15:05 UTC ngày 03/01/2009 bởi Satoshi Nakamoto.

Genesis Block chứa một lời nhắn bí mật được giải mã với nội dung “The Times 03/Jan/2009 Chancellor on brink of second bailout for banks”.

Những thuật ngữ cơ bản của công nghệ Blockchain

Đây có thể là lời nhắn của Satoshi với 2 vế nhằm mục đích đánh dấu ngày khối đầu tiên được tìm thấy và nói rằng các chính phủ đã bơm gói cứu trợ nhằm chống lại sự sụp đổ của hệ thống ngân hàng.

Genesis Block chứa phần thưởng 50 BTC dành cho người khai thác được. Kể từ khi được tìm thấy, Genesis Block nhận được 1.073 giao dịch và 16.5 BTC từ những người tò mò về khối này. Không ai lý giải được vì sao Genesis Block lại tạo ra những BTC không sử dụng được và không có lời giải thích nào được tìm thấy trong mã nguồn của phiên bản Satoshi 0.1.

Các bạn có thể kiểm tra tại đây:

https://www.blockchain.com/btc/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

Satoshi đã giải thích rằng nếu thiết kế của Bitcoin là tĩnh thì các nguyên quy tắc như nguồn cung, độ khó khi đào và phần thưởng sẽ không thể thay đổi. Cho đến ngày nay thì thiết kế của Bitcoin vẫn được giữ nguyên vì đó là nền tảng của toàn bộ Blockchain này.

Ngoài ra Genesis Block còn chứa đựng nhiều bí ẩn khác chưa ai có thể lý giải như:

  • Chiếc máy tính đào ra Genesis Block nằm ở đâu trên thế giới này?
  • Satoshi Nakamoto đã sử dụng bao nhiêu máy tính để đào Genesis Block?
  • Tại sao lại mất 6 ngày để đào và Satoshi có nghĩ ngơi 1 ngày sau đó?

➤ Lập trình ứng dụng Blockchain | Phần mềm ứng dụng Blockchain

Cơ chế hoạt động của Genesis Block

Đầu tiên, mỗi block sẽ chứa : + Data + Previous hash + Current hash

↓ Vì vậy mình sẽ tạo ra 1 file gọi là Block.java sẽ có variables sau :

private int preHash; //previous hash
private int blockHash; //current hash
private String[] data; //data

sau đó tạo constructor chứa 2 params :

public Block(int preHash, String[] data) {
this.preHash = preHash;
this.data = data;

Object[] contents = {Arrays.hashCode(data), preHash}; //hash data and preHash ~> contents
this.blockHash = Arrays.hashCode(contents); //generate current block hash base on preHash and data .

}

ở trên mình dùng Arrays.hashCode để mã hóa transactions và previous hash. Sau đó lại hashCode result contents để generate ra hash của block hiện tại. Thêm hàm get để get value của previous hash, transactions, current hash :

public int getPreHash() {
return preHash;
}

public String[] getData() {
return transactions;
}

public int getBlockHash() {
return blockHash;
}

↓ OK, tiếp đến mình sẽ tạo file Main.java . Lần lượt khởi tạo object genesisBlock, block2, block3 :

String[] genesisData = {“A sent B 999 bitcoin”};
Block genesisBlock = new Block(0, genesisData);

String[] block2Data = {“B sent C 50 bitcoin”};
Block block2 = new Block(genesisBlock.getBlockHash(), block2Data);

String[] block3Data = {“C sent D 40 bitcoin”};
Block block3 = new Block(block2.getBlockHash(), block3Data);

Ở trên genesisBlock : là block đầu tiên, previous hash của nó được set value là 0, block2 được tạo ra dựa trên hash của genesisBlock, block 3 được tạo ra dựa trên hash của block2 .

Sau đây chúng ta thử print kết quả ra xem thế nào nhé :

System.out.println(“- Genesis block:”);
System.out.println(“Current blockhash: ” + genesisBlock.getBlockHash());

System.out.println(“- Block 2:”);
System.out.println(“Previous blockhash: ” + block2.getPreHash());
System.out.println(“Current blockhash: ” + block2.getBlockHash());

System.out.println(“- Block 3:”);
System.out.println(“Previous blockhash: ” + block3.getPreHash());
System.out.println(“Current blockhash: ” + block3.getBlockHash());

➤ Vakaxa – Công ty cung cấp sản phẩm công nghệ 4.0 uy tín tại Việt Nam

Run program và xem kết quả sẽ như sau :

ー Genesis block: Current blockhash: 984306106 ー Block 2: Previous blockhash: 984306106 Current blockhash: 1987505532 ー Block 3: Previous blockhash: 1987505532 Current blockhash: -209538211

Giờ ta thử thay đổi chuỗi genesisData = {“A sent B 999 bitcoin”} và run sẽ ra kết quả như sau :

ー Genesis block: Current blockhash: 1255653266 ー Block 2: Previous blockhash: 1255653266 Current blockhash: -2036114604 ー Block 3: Previous blockhash: -2036114604 Current blockhash: 61808949

Có thể thấy khi thay đổi data 1 block thì mã hash của block đó và các block sau đó đều bị thay đổi.

Trên đây là những kiến thức về Genesis Block Bitcoin là gì ? Cơ chế hoạt động của Genesis Block. Hy vọng những thông tin trong bài viết sẽ giúp ích cho các bạn đang tìm kiếm thông tin. Đừng quên chia sẻ kiến thức cho mọi người nhé.

 

  1. Vitalik Buterin: Giá eth cao tốt cho mạng Blockchain Ethereum, phát triển hệ sinh thái
  2. Công ty thiết kế web sàn giao dịch trên nền tảng MT6 hàng đầu tại Việt Nam
  3. Dịch vụ thiết kế, viết phần mềm ERP theo yêu cầu ứng dụng công nghệ Blockchain
  4. 7 sàn giao dịch tiền điện tử tốt nhất để trao đổi Bitcoin với bất kỳ Altcoin nào
  5. Ứng dụng Blockchain vào ngành y tế cho phép mã hóa hồ sơ và xử lý các trường hợp nhanh hơn
  6. Hàn Quốc sử dụng công nghệ Blockchain theo dõi chuỗi cung ứng thịt bò
  7. Mối quan hệ giữa tiền điện tử và công nghệ Blockchain
  8. NASA có kế hoạch tăng cường bảo mật dữ liệu với công nghệ Blockchain

Pin It on Pinterest

Share This