You are on page 1of 3

1. "Đào vàng"? Vì sao càng ngày càng khó đào được bitcoin? Số bitcoin còn lại là bao nhiêu?

Mục tiêu của việc đào bitcoin là tìm ra giá trị hash của khối hiện tại. Để thực hiện được việc này, cần
đoán giá trị Nonce để thay đổi giá trị hash cho đến khi giá trị này nhỏ hơn target, khi đó, ta có thể truy
cập được vào block. Trung bình thì cách đoán này cần lặp lại 1020 lần tùy thuộc vào sự may mắn của
người đào và tiêu tốn nhiều tài nguyên như điện, khả năng tính toán. Nếu thành công thì block mới sẽ
được broadcast lại cho tất cả mọi người trong mạng và khi đó “đào được vàng”

Lý do việc đào bitcoin ngày càng khó hơn là do nếu nhiều người tham gia đào tuy tốc độ đào sẽ nhanh
hơn và tạo được nhiều block mới nhưng độ khó cũng tăng lên (bởi độ khó sẽ tăng sau mỗi 2016 block).
Ngược lại, nếu ít người đào sẽ lâu hơn dù độ khó ít đi.

Tính đến ngày 31/9/2023 thì tồn tại 19,472,200 Bitcoin trong đó, còn 1,527,800 Bitcoin chưa được đào.
(nguồn: https://buybitcoinworldwide.com/how-many-bitcoins-are-there/)

2. Chuỗi khối"? Nối các khối với nhau như thế nào?

Công nghệ chuỗi khối lưu trữ dữ liệu trong các khối (block) được liên kết với nhau trong một chuỗi
(chain). Mỗi khối dữ liệu sẽ chứa những thông tin mà người dùng ghi vào (Ví dụ: thông tin giao dịch A
chuyển cho B bao nhiêu tiền) những thông tin này từ đó sẽ được tạo thành những Hash rồi thành
Merkle Tree, ngoài ra trong một block cũng cần những header để có thể kết nối thành chuỗi.

Để các khối có thể kết nối với nhau và tạo thành một chuỗi khối thì cần có 7 bước như sau:

 Bước 1: Mô tả tính sở hữu

Trong sổ cái chỉ lưu thông tin giao dịch (A chuyển B bao nhiêu tiền thay vì ở block này A có bao nhiêu
tiền và B có bao nhiêu tiền) để có thể dễ có thể duy trì lịch sử giao dịch và máy local có thể tính toán
số tiền hiện có bằng cách truy xuất thông tin từ block hiện tại và những block trước đó.

 Bước 2: bảo vệ tính sở hữu:

Bằng cách sử dụng phương pháp mã hóa bất đối xứng (asymmetric cryptogaphy) để tạo ra public key
để mã hóa và private key để giải mã từ đó ai cũng có thể gửi dữ liệu đến người nhận nhưng chỉ có
người nhận giải mã được dữ liệu.

 Bước 3, 4, 5: lưu trữ dữ liệu trong blockchain

Trong đó, các bước thự hiện là:

Bước 3: lưu thông tin giao dịch

Bước 4: Chuẩn bị sổ cái dể phân tán trong môi trường không tin cậy

Bước 5: Phân tán sổ cái

Việc đồng bộ dữ liệu ở các node là điều bắt buộc do người dung phải có thể xác thực và so sánh dữ liệu
trong blockchain ledger nhanh chóng và lịch sử thay đổi của dữ liệu phải có thể truy xuất được. Để làm
được việc này, blockchain sử dụng hàm băm (hash) để làm cho một thay đổi nhỏ cũng có thể tha đổi
hàm băm cuối nên người dùng có thể dễ dàng theo dõi bằng cách so sánh hàm băm cuối. Giá trị hash
đầu của một khối (header) được tạo ra bằng cách tạo một merkle tree và giá trị header và sẽ được lưu
vào block tiếp theo và sẽ được dùng để kết nối 2 khối với nhau (Như vậy block thứ 2 sẽ chứa header
của block thứ nhất và block thứ N sẽ có header có block thứ N-1)

 Bước 6: Tạo block mới:


Tương tự như bước ở trên, một block mới sinh cũng sẽ tạo ra Merkle tree từ thông tin giao dịch, tạo ra
một giá trị header từ hash của Merkle tree và tạo ra một hash để liên kết với khối sau. Cụ thể hơn, một
block mới sẽ có Nonce (chỉ số dựa vào để tạo ra block mới), Time Stamp (thời điểm tạo ra block),
Difficulty Level, Giá trị hash của block header trước và gốc của Merkel Tree.

 Bước 7: chọn sổ cái phản ánh đúng:

Khi mà nhiều miner tạo ra block sẽ tạo ra nhiều nhánh khác nhau, do đó cần chọn nhánh nào là nhánh
thể hiện đúng.

3. Vai trò của "Hàm băm" trong chuỗi khối?

Thứ nhất, hàm băm sẽ đảm bảo tính bảo mật của chuỗi khối. Thông qua cách mã hóa bất đối xứng và
tính một chiều, ai cũng có thể gửi dữ liệu nhưng chỉ người nhận có thể mở dữ liệu.

Thứ hai, hàm băm có thể giúp chuỗi khối phát hiện những thay đổi trong dữ liệu một cách nhanh
chóng. Bằng cách Hierarchy hasing, root của Merkel tree được tạo bởi mã hash từ nhiều mã hash nhỏ
hơn từ dữ liệu, do đó khi dữ liệu thay đổi thì root Merkel Tree thay đổi dẫn đến header thay đổi. Qua
đó, người dùng chỉ cần so sánh hash value cuối.

Thứ ba, hàm băm tạo nên tính liên kết của chuỗi khối. Giá trị header của mỗi block được tạo từ mã
hash của dữ liệu trong đó thông qua merkle tree, các khối có thể liên kết với nhau thông qua giá trị
header này.
Thứ tư, bất kì dữ liệu nào thông qua hàm hash cũng tạo ra một kết quả có độ dài không đổi, nên chỉ cần lưu giá
trị hash trong header là đủ để lưu trữ. Ngoài ra, khi một phần dữ liệu bị xóa bớt mà vẫn lưu lại hash sẽ không
ảnh hưởng đến hệ thống, do đó phần dữ liệu không cần thiết có thể được xóa đi mà không làm thay đổi chuỗi
khối.

4. Cơ chế hoạt động: Public crypto system vs. Digital signature system
 Public crypto system:

Gồm các user (sender và receiver)

Giả sử A gửi tin nhắn cho B. Đầu tiên A mã hóa dữ liệu bằng public key của B, và dữ liệu mã hóa có
thể được mở ra bởi private key của B. Khi đó ai cũng có thể gửi tin nhắn cho B nhưng chỉ B mới có thể
mở được tin nhắn dành cho mình.

 Digital signature system:

Gồm miner và user (chỉ muốn dùng mạng để trao đổi thông tin trong block chain ledger)

Giả sử A muốn gửi tin nhắn cho B. Đầu tiên A dùng public key của B để mã hóa dữ liệu sau đó tính
hash rồi được mã hóa bằng private key của người A và việc mã hóa này sẽ tạo ra chữ ký chứng tỏ A đã
tạo ra thông tin. Thông tin và chữ ký sẽ được chuyển tới mining pool, tại đây, các miner (người C) sẽ
có trách nhiệm ghi vào blockchain ledger bằng cách lấy về và giải mã xem chữ ký có phải người A
không. Nếu giải mã được thì người C sẽ ghi vào blockchain ledger. Người B sẽ lấy thông tin từ
blockchain ledger, dùng private key để giải mã thông tin để xem.

Như vậy, điểm khác nhau giữa 2 phương thức là Digital signature system có sự tham gia của các miner
để kiểm chứng chữ ký của A và qua đó B biết thông tin người gửi trong khi ở phương pháp Public
crypto system, người B chỉ nhận được thông tin được mã hóa.

You might also like