Các khái niệm cơ bản của Blockchain
Các khái niệm cơ bản của Blockchain (Phần 1)
Bài viết giải thích một
cách đơn giản các khái niệm cơ bản về Blockchain.
Blockchain dịch nghĩa là
chuỗi (Chain) khối tức một chuỗi các khối (Blocks) liên kết chặt chẽ với nhau
như sợi xích rất khó tách rời.
Vậy hiển nhiên thành
phần chính của Blockchain là các Blocks. Vậy Block có những gì và dùng để làm
gì.
Các thành phần của
Block:
1. Block có thể hình dung như một hộp chứa dữ liệu
cần lưu trữ trên hệ thống Blockchain. Dữ liệu này có thể là các thông tin về
giao dịch của người dùng (transactions) trong hệ thống, hay các dạng dữ liệu
khác như hợp đồng thông minh Smart Contract trong Ethereum…
2. Block Hash: Các dữ liệu trong Block sẽ được mã
hóa bằng các thuật toán để đảm báo tính bảo mật của hệ thống. Kết quả trả về là
các đoạn mã Hash. Khi có bất kĩ thay đổi nào về dữ liệu của Block đoạn mã Hash
này sẽ bị thay đổi.
3. Prev_Hash: Để tạo ra Hash cho một Block,
Prev_Hash hay Hash của Block trước đó là một thành phần quan trọng. Điều là là
hết sức quan trọng trong việc bảo đảm tính an toàn của hệ thống. Giả sử khi
Hash của Block số 10 ở trên bị thay đổi, sẽ làm cho dữ liệu về Prev_hash của
Block số 11 thay đổi theo khiến cho Hash của block số 11 và 12 và các Blocks
sau đó bị thay đổi. Do đó, gần như không thể tấn công để thay đổi dữ liệu của
Blockchain vì số lượng Blocks trong một Blockchain là rất lớn. (Với Bitcoin cứ
10 phút sinh ra 1 Block mới, với nhiều Chain khác có thể là từ 5 – 10s / Block)
4. Timestamp: Mác thời gian là dữ liệu ghi lại thời
điểm Block được tạo và cũng là một trong 4 yếu tố để tạo ra Hash của Block.
5. Tx_root: Là dữ liệu về các giao dịch phát sinh
trong thời điểm Block 101 đó được tạo ra, ví dụ với Bitcoin trong khoảng thời
gian từ 10h30 – 10h40 có 100 giao dịch (transactions) được hoàn thành thì thông
tin của 100 giao dịch này sẽ được đẩy vào Block 101 này. Do đó, số lượng giao
dịch trong các Block là không giống nhau. Đây cũng là một trong 4 yếu tố để tạo
ra Hash của hệ thống.
6. Nonce: Là một giá trị số ví dụ Nonce = 10982 là
một con số ngẫu nhiên. 3 thông số về Prev_Hash, timestamp, Tx_Root là các thông
số cần thiết của Block, tuy nhiên để Block được tạo ra (được đào) sẽ nhờ các
máy đào. Tuy nhiên, do sẽ có nhiều máy đào tham gia quá trình đào, và để đảm
bảo Block time (là 10 phút với Bitcoin ở trên) giái trị Nonce được đưa ra. Các
máy đào sẽ lựa chọn ngẫu nhiên số Nonce của mình để kết hợp với 3 thông số Prev_Hash,
timestamp, Tx_Root cho đến khi nào chọn được số Nonce chuẩn của Block. Điều này
dẫn đến tính may mắn cho các máy đào trong quá trình đào Block.
Nhận xét
Đăng nhận xét