BTC
ETH
HTX
SOL
BNB
Xem thị trường
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Khoa học phổ biến: Quá trình tạo khối mới Bitcoin

闲话挖矿
特邀专栏作者
2020-07-07 02:45
Bài viết này có khoảng 2939 từ, đọc toàn bộ bài viết mất khoảng 5 phút
Đây là nội dung thứ hai trong album khoa học phổ biến về khai thác của blogger, tiếp nối bài viết trước "Quá trình giao dịch Bitcoin" và tiếp tục phân tích toàn bộ quá trình giao dịch Bitcoin từ k
Tóm tắt AI
Mở rộng
Đây là nội dung thứ hai trong album khoa học phổ biến về khai thác của blogger, tiếp nối bài viết trước "Quá trình giao dịch Bitcoin" và tiếp tục phân tích toàn bộ quá trình giao dịch Bitcoin từ k

Đây là nội dung thứ hai trong album khoa học phổ thông của blogger khai thác, nối tiếp phần trước"Quá trình giao dịch Bitcoin", hãy tiếp tục xem bức tranh toàn cảnh về khai thác Bitcoin bằng cách phân tích toàn bộ quá trình giao dịch Bitcoin từ khi bắt đầu đến khi xác nhận.

hiện hữu

hiện hữu"Quá trình giao dịch Bitcoin"Trong bài viết đầu tiên, chúng ta đã biết thông tin giao dịch của Bitcoin được cấu trúc như thế nào, nhưng làm thế nào để thông tin này đi vào khối Bitcoin mới?

Tiếp theo, blogger sẽ giải thích cách khối Bitcoin ghi lại và xác nhận thông tin giao dịch thông qua quá trình tạo khối Bitcoin mới.

Sau đây là một vài điểm kiến ​​thức amway cần nắm trước:

nhóm giao dịch, tên tiếng Anh: mempool, còn được gọi là nhóm bộ nhớ, được sử dụng để lưu trữ các giao dịch được xác nhận. Mỗi nút khai thác Bitcoin có nhóm giao dịch độc lập của riêng mình. Do quy mô của nhóm giao dịch, tỷ lệ phí giao dịch tối thiểu (tỷ lệ phí là phí xử lý được bao gồm trong giao dịch trên mỗi đơn vị khối lượng và đơn vị là Sat/B, nghĩa là phí xử lý cho mỗi giao dịch B-byte là x Satoshi bitcoin, tương tự bên dưới). do những hạn chế khác nhau. Người khai thác (nhóm khai thác) cần chọn các giao dịch sẽ được đóng gói từ nhóm giao dịch khi xây dựng một khối sơ bộ. Vì nhóm giao dịch thường được gọi nên dữ liệu của nó được lưu trữ trong RAM của máy chủ nút, điều đó có nghĩa là khối lượng của nhóm giao dịch sẽ không quá lớn.

nút khai thác, trong mạng Bitcoin, tham gia vào việc ghi lại và xác minh các giao dịch và khối Bitcoin là một nút lưu dữ liệu Bitcoin. Một số nút này không chỉ tham gia vào công việc ghi và xác minh mà còn tham gia vào việc tạo các khối Bitcoin mới. Chúng xây dựng các khối mới và cạnh tranh để giành quyền ghi sổ thông qua bằng chứng khối lượng công việc PoW, sau đó có được quyền tạo các khối mới. các nút là một nút khai thác. Các nút khai thác ban đầu có các công cụ khai thác và nhóm khai thác, nhưng hiện tại, do độ khó khai thác Bitcoin cao nên rất khó để một công cụ khai thác duy nhất giành được quyền ghi sổ và tạo các khối mới. Hiện tại, các nút khai thác Bitcoin chính là các nhóm khai thác, chẳng hạn như F2Pool, Poolin, BTC.com, Antpool, Slushpool, v.v.

thư viện UTXO, nút Bitcoin xây dựng cụm UTXO bằng cách quét tất cả thông tin giao dịch của nút. Nó chứa tất cả các UTXO chưa sử dụng. Bất cứ khi nào một khối mới được tạo, thư viện UTXO sẽ xóa UTXO được sử dụng trong khối mới khỏi danh sách của chính nó và thêm UTXO mới được tạo vào danh sách của chính nó.

Phần thưởng Coinbasetiêu đề phụ

Các giao dịch được xác nhận trước tiên sẽ vào nhóm giao dịch

Khi chúng tôi muốn bắt đầu giao dịch Bitcoin, người khởi tạo giao dịch sẽ xây dựng thông tin giao dịch và thông tin giao dịch tại thời điểm này là giao dịch được xác nhận, bao gồmThông tin đầu vào giao dịch(UTXO chưa sử dụng được ký bằng khóa riêng chính xác) vàThông tin đầu ra giao dịch(Đang chờ xác nhận UTXO để khóa địa chỉ ví mới).

Mô tả hình ảnh

Hình 1 Các giao dịch cần được xác nhận vào nhóm giao dịch

Thông tin giao dịch cần xác minh bao gồm:

  • Liệu giao dịch có chứa địa chỉ ví đầu vào và đầu ra hợp lệ hay không;

  • Liệu khối lượng giao dịch có nhỏ hơn khối lượng tối đa của khối hay không (khối lượng tối đa của khối Bitcoin hiện tại là 1M);

  • UTXO đầu vào có hợp pháp hay không (so với thư viện UTXO của nút, UTXO đầu vào chưa được sử dụng);

  • Tổng đầu vào và đầu ra của giao dịch có hợp lý hay không (tổng đầu vào ≥ tổng đầu ra);

  • Đánh giá xem đầu vào của giao dịch có phần thưởng từ Coinbase hay không, loại tiền tương ứng với phần thưởng phải có ít nhất 100 xác nhận khối trước khi có thể sử dụng;

  • Xác nhận rằng không có giao dịch trùng lặp trong nhóm giao dịch;

  • tiêu đề phụ

Nút khai thác chọn các giao dịch từ nhóm giao dịch và xây dựng một khối sơ bộ

Khi nút khai thác muốn xây dựng một khối sơ bộ và chuẩn bị tạo một khối mới, nó sẽ sắp xếp giao dịch theo mức độ ưu tiên và lấy giao dịch được xác nhận từ nhóm giao dịch. Khối dự trữ thường dành một không gian nhất định cho các giao dịch có mức độ ưu tiên cao và không gian còn lại sẽ được sử dụng để lấp đầy khối hoặc sử dụng hết các giao dịch trong nhóm giao dịch theo tỷ lệ phí giao dịch (Sat/B) từ cao đến thấp .

Mô tả hình ảnh

TRONG,

TRONG,"Con số kỳ diệu"là một hằng số có giá trị là 0xD9B4BEF9;"kích thước khối"là tổng khối lượng của tất cả dữ liệu trong khối này;"tiêu đề khối"Nó có thể được coi là thông tin viết tắt của toàn bộ khối và thông tin khối được sử dụng để khai thác là tiêu đề khối;"Quầy giao dịch"Được sử dụng để ghi lại số lượng giao dịch trong khối;"Dữ liệu giao dịch"Đó là tất cả thông tin giao dịch có trong khối, bao gồm cả phần thưởng Coinbase.Nói chung, phần dữ liệu này chiếm phần lớn không gian của toàn bộ khối.

Trong một khối Bitcoin, tiêu đề khối là phần thông tin quan trọng nhất. Nó chứa tất cả các thông tin đặc trưng của toàn bộ khối:

  • chặn số phiên bản. Thông tin phiên bản của nút Bitcoin đã tạo khối được sử dụng để theo dõi việc nâng cấp và cập nhật giao thức Bitcoin;

  • Băm của khối trước đó. Còn được gọi là hàm băm khối chính, nó được sử dụng để định vị khối trước đó. Mỗi khối chứa giá trị băm của khối trước đó và bất kỳ thay đổi nhỏ nào đối với bất kỳ khối nào sẽ gây ra thay đổi lớn về giá trị băm của các khối tiếp theo, do đó, việc lồng vào nhau, đảm bảo tất cả các khối Bitcoin tạo thành một cấu trúc chuỗi duy nhất, có thể ngăn chặn hiệu quả việc giả mạo độc hại dữ liệu khối Bitcoin.

  • Băm MerkleRootMô tả hình ảnh

    Hình 3 Cấu trúc cây Merkle của dữ liệu giao dịch

    Do độ nhạy của thuật toán băm, bất kỳ thay đổi nhỏ nào trong dữ liệu giao dịch trong cây Merkle của toàn bộ giao dịch sẽ có tác động liên kết, dẫn đến giá trị băm gốc của cây Merkle thay đổi rất lớn. Do đó, giá trị băm gốc Merkle (MerkleRoot Hash) của dữ liệu giao dịch có thể được coi là dấu vân tay của toàn bộ giao dịch, được sử dụng để chỉ dữ liệu giao dịch trong khối.

  • dấu thời gian. Thời gian để tạo khối chuẩn bị.

  • băm mục tiêu hiện tạisố ngẫu nhiên

  • số ngẫu nhiên. Còn được gọi là Nonce. Chúng ta có thể thấy rằng trong thông tin tiêu đề khối, số phiên bản khối, giá trị băm của khối trước đó, giá trị băm MerkleRoot, dấu thời gian và hàm băm mục tiêu hiện tại đều là thông tin đã biết, tương đối cố định và không thuận tiện khi thay đổi theo ý muốn . Do đó, nếu bạn muốn điều chỉnh giá trị băm của khối chuẩn bị, bạn cần giới thiệu một dữ liệu biến - số ngẫu nhiên. Bằng cách sửa đổi số ngẫu nhiên, giá trị băm của khối chuẩn bị có thể được điều chỉnh.

Sau khi nút khai thác xây dựng khối chuẩn bị, nó sẽ gửi thông tin tiêu đề khối cho người khai thác. Người khai thác thay đổi giá trị băm của khối chuẩn bị bằng cách liên tục điều chỉnh số ngẫu nhiên trong tiêu đề khối. Khi giá trị băm của khối chuẩn bị là thấp Ở tốc độ băm mục tiêu hiện tại của mạng Bitcoin, khối này là một khối mới hợp pháp.

Người giới thiệu:

Người giới thiệu:

  • Phân tích mã nguồn bitcoin

  • Phân tích cấu trúc tiêu đề khối bitcoin:

  • tỷ lệ băm mục tiêu bitcoin

  • Cấu trúc khối bitcoin

  • Làm chủ Bitcoin

PoW
BTC
矿业