forward the original title ‘白话区块链三:揭开挖矿神秘的面纱——挖矿是什么?为什么要挖矿?谁是我们买不起显卡的罪魁祸首?’
Một trong những khái niệm quen thuộc nhất liên quan đến blockchain đối với mọi người có lẽ là khai thác. Rất nhiều người có thể đã nghe nói về khai thác nhiều lần nhưng không chắc chắn về nó nghĩa là gì. Trong phần này, chúng tôi sẽ gián đoạn chương trình thường xuyên của chúng tôi để giới thiệu trước về 'khai thác'.
Tóm tắt nhanh nội dung từ "Plain Blockchain 1: Giới thiệu về Bitcoin (Người tiên phong của cuộc cách mạng blockchain và kẻ thách thức tiền tệ có chủ quyền)", nơi Satoshi Nakamoto thiết kế hệ thống tiền tệ Bitcoin để liên kết phần thưởng cho sổ sách kế toán với phát hành tiền tệ. Cách tiếp cận này cho phép việc phát hành tiền tệ được tự động hóa thông qua quy trình ghi sổ kế toán, giải quyết vấn đề phát hành tiền tệ đồng thời khuyến khích các nhân viên kế toán tích cực tham gia.
Trong thế giới thực, khai thác liên quan đến việc người khai thác sử dụng các công cụ khác nhau để đào ra kim loại quý ẩn trong đá từ mỏ. Người khai thác trích xuất giá trị từ những kim loại hiếm hoi này ẩn trong tự nhiên thông qua lao động vật chất.
Đối với các dự án blockchain có phần thưởng cho việc kế toán sách (thường là các dự án tiền điện tử), các nút mạng tiêu tốn tài nguyên tính toán để giải quyết các vấn đề. Khi họ tìm ra giải pháp, họ đóng gói khối và nhận được phần thưởng dưới dạng tiền tệ mới phát hành. Quá trình này tương tự như việc khai thác các kim loại quý như vàng từ quặng, do đó nó thường được gọi là “khai thác”. Ở đây, các kế toán viên là những người khai thác, họ cạnh tranh để đóng gói các khối bằng phần cứng và điện năng, dẫn đến việc tạo ra tiền tệ mới.
Khai thác có hai mục đích chính: xác minh giao dịch gần đây bằng cách đóng gói chúng thành các khối và liên kết chúng với blockchain, và phát hành tiền tệ mới bằng cách thưởng cho người ghi sổ. Dưới đây là các chức năng chi tiết của khai thác:
Người đào được khuyến khích tham gia vào việc khai thác vì họ nhận được phần thưởng đáng kể cho việc đóng gói một khối vào blockchain thành công. Những phần thưởng này đến từ hai nguồn chính:
Với thời gian, phần thưởng khối sẽ giảm (ví dụ như cơ chế halving của Bitcoin, trong đó phần thưởng được giảm một nửa khoảng mỗi bốn năm). Cuối cùng, sau khi tất cả 21 triệu Bitcoin đã được khai thác, dự kiến vào khoảng năm 2141, phần thưởng khối tự động sẽ ngừng tồn tại và phí giao dịch sẽ trở thành nguồn thu chính của các nhà khai thác.
Bitcoin tạo ra một khối mới khoảng 10 phút một lần. Ban đầu, mỗi khối mới tạo ra 50 Bitcoin. Phần thưởng này trải qua một nửa cứ sau bốn năm và cho đến nay, đã có bốn sự kiện giảm một nửa như vậy. Hiện tại, mỗi khối tạo ra 3.125 bitcoin, với đợt giảm một nửa gần đây nhất xảy ra vào tháng 4/2024. Việc giảm một nửa tiếp theo được dự đoán vào khoảng năm 2028. Đến khoảng năm 2141, Bitcoin sẽ đạt đến giới hạn phát hành.
Phí giao dịch không chỉ bị ảnh hưởng bởi cung cầu mà còn bởi kích thước của giao dịch, vì phí được tỷ lệ với không gian mà giao dịch chiếm trong khối.
Đối với những người khai thác, tham gia khai thác rất đơn giản. Tải xuống một trình khách ví tiền điện tử và trong trình khách đó, nhấp vào nút khai thác để bắt đầu khai thác.
đối với các dự án blockchain có phần thưởng khối, thuật toán khai thác thường được viết vào một script tích hợp vào ví. Các thợ đào chỉ cần nhấp vào một nút để bắt đầu script.
thuật toán khai thác là xác định, có nghĩa là miễn là các thợ mỏ liên tục chạy thuật toán, họ sẽ cuối cùng nhận được một kết quả. tuy nhiên, do tài nguyên tính toán thay đổi, thời gian cần thiết để tính toán kết quả này có thể khác nhau giữa các thợ mỏ. khi một nút tính toán giá trị mục tiêu, những nỗ lực của các thợ mỏ khác trong khoảng thời gian đó trở nên vô ích, dẫn đến lợi nhuận âm do tài nguyên vật lý đã tiêu tốn.
Để tránh lãng phí công sức, các thợ đào thường gom nhóm tài nguyên tính toán của họ bằng cách tham gia một nút hồ bơi khai thác. Nút này hoạt động giống như bất kỳ nút nào khác nhưng có sức mạnh tính toán đáng kể hơn. Khi hồ bơi thành công khai thác một khối, phần thưởng được phân phối cho các thợ đào tham gia dựa trên tài nguyên tính toán họ đã đóng góp. Quan trọng phải lưu ý rằng trên blockchain, thợ đào được ghi nhận là đóng gói khối là nút hồ bơi khai thác, trong khi các thợ đào cá nhân nhận được phần thưởng được phân bổ bởi hồ bơi, không phải trực tiếp từ hệ thống tiền tệ.
Bitmain, một công ty chuyên sản xuất chip khai thác chuyên dụng hiệu suất cao, đã củng cố vai trò của các nhóm khai thác, đóng góp vào việc tập trung quyền kiểm soát sổ sách.
Các dự án blockchain khác nhau có thể có các câu đố khai thác khác nhau và mức độ khó khăn khác nhau. Ở đây, chúng ta lấy bitcoin làm ví dụ. Thuật toán khai thác được sử dụng bởi bitcoin được gọi là proof of work (pow). Bản chất của thuật toán này là để đạt được một kết quả, một lượng công việc nhất định phải được tiêu tốn để chứng minh nó.
bài toán khai thác không phải là một vấn đề toán học truyền thống mà liên quan đến việc tìm kiếm một số ngẫu nhiên, được gọi là nonce. nonce này, khi kết hợp với dữ liệu trong khối và xử lý thông qua một hàm băm, phải tạo ra một giá trị băm thỏa mãn một điều kiện cụ thể. Thông thường, điều kiện này yêu cầu giá trị băm phải nhỏ hơn một giá trị mục tiêu (hoặc tương đương, n bit đầu tiên của giá trị băm là không). Phương trình được biểu diễn như sau: hash(nonce+block_data)≤target\text{hash}(\text{nonce} + \text{block_data}) \leq \text{target}hash(nonce+block_data)≤target
Bitcoin sử dụng hàm băm SHA-256, chuyển đổi bất kỳ độ dài đầu vào nào thành đầu ra có độ dài cố định là 256 bit (tương đương với 64 chữ số thập lục phân hoặc 32 byte). Đầu ra gần như ngẫu nhiên nhưng được đảm bảo giống nhau cho cùng một đầu vào. Khai thác liên quan đến việc liên tục thay đổi nonce và băm dữ liệu tiêu đề khối bằng SHA-256 cho đến khi tìm thấy giá trị băm đáp ứng điều kiện mục tiêu.
Ví dụ: giá trị băm SHA-256 với 30 bit đầu tiên là số không: 000000000000000000000000000000111111010000011011000100100110111011000110100010011011000110100010110110101010011101011010100100011011010001111101001111110101001101111101011110011100011110011110000111000100110000001011011010001110011100110010111010010010010001101010110010110000000000000000000000000000000111111010000011011000100100110111011000110100010011011000110100010110110101010011101011010100100011011010001111101001111110101001101111101011110011100011110011110000111000100110000001011011010001110011100110010111010010010010001101010110010110000000000000000000000000000000111111010000011011000100100110111011000110100010011011000110100010110110101010011101011010100100011011010001111101001111110101001101111101011110011100011110011110000111000100110000001011011010001110011100110010111010010010010001101010110010110
chuyển đổi này thành hệ thập lục phân cho kết quả là một giá trị bắt đầu bằng bảy số không: 00000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac9000000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac9000000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac90
Để đơn giản hóa, xác suất tìm thấy một hash với n bit đầu tiên là 0 là 12n\frac{1}{2^n}2n1. Càng lớn n, càng nhiều bit là 0 và xác suất càng thấp:
với n lên đến 256, việc tìm giá trị băm như vậy với sức mạnh tính toán hiện tại của con người, loại trừ máy tính lượng tử, gần như là không thể trước khi trái đất ngừng tồn tại.
do với tính chất của sha-256, phương pháp duy nhất là vét cạn, bao gồm liên tục thử nghiệm các nonce khác nhau cho đến khi điều kiện được đáp ứng. điều này làm cho việc khai thác đòi hỏi thiết bị tính toán hiệu suất cao như vậy.
Vì bạn không thể dự đoán giá trị băm được tạo ra bằng cách thêm nonce vào dữ liệu khối và chuyển nó qua SHA-256, quá trình này hoàn toàn ngẫu nhiên. Ví dụ: nếu giá trị băm mục tiêu là 10.000, bạn không có cách nào biết nonce nào kết hợp với dữ liệu khối sẽ mang lại giá trị băm nhỏ hơn 10.000. Bản chất ngẫu nhiên và không thể đoán trước này có nghĩa là các thợ mỏ phải tiếp tục liệt kê các khả năng cho đến khi điều kiện được thỏa mãn. Nếu nhiều giá trị đáp ứng điều kiện, giá trị băm nhỏ nhất được chọn vì giá trị băm nhỏ hơn cho thấy độ khó cao hơn và xác suất xảy ra thấp hơn.
xác minh xem giá trị băm được tạo ra có đáp ứng yêu cầu dễ dàng, chỉ cần một phép so sánh duy nhất. tuy nhiên, việc tìm một giá trị băm nhỏ hơn hoặc bằng giá trị mục tiêu chỉ có thể đạt được thông qua liệt kê vét cạn. đặc điểm này, trong đó việc xác minh một kết quả dễ dàng nhưng tìm kết quả lại khó, được gọi là bất đối xứng tính toán.
Đoạn code sau mô phỏng quá trình khai thác. Nó bắt đầu với một chuỗi dữ liệu tiêu đề khối “geekbang” và tìm kiếm từ một giá trị nonce là 10.000 cho đến khi nó tìm thấy một giá trị nonce thỏa mãn điều kiện cụ thể.
Đây là một tập lệnh Python minh họa quá trình khai thác:
import hashlib
def main():
base_string = "geekbang"
nonce = 10000
count = 0
while true:
target_string = base_string + str(nonce)
pow_hash = hashlib.sha256(target_string.encode()).hexdigest()
count += 1
if pow_hash.startswith("0000"): # first 4 hex digits are 0, equivalent to the first 16 bits being 0
print("hash:", pow_hash)
print("nonce:", nonce, "scan times:", count)
break
nonce += 1
if __name__ == '__main__':
main()
Khi yêu cầu là 4 chữ số thập lục phân đầu tiên của kết quả băm là 0 (tương đương với 16 bit đầu tiên là 0), số lần tính toán là khoảng 58.000. Nếu yêu cầu được nâng lên thành 5 chữ số đầu tiên là 0, số lần tính toán tăng lên đến 1,23 triệu. Khi yêu cầu là 7 chữ số đầu tiên là 0, số lần tính toán đạt đến 160 triệu. Điều này cho thấy mỗi chữ số 0 bổ sung vào tiền tố băm tăng số lần tính toán khoảng 16 lần.
Dưới đây là kết quả cho các điều kiện mục tiêu khác nhau:
4 chữ số hex đầu tiên là không (16 bit):
import hashlib
def main():
base_string = "geekbang"nonce = 10000count = 0trong khi đó: target_string = base_string + str(nonce) pow_hash = hashlib.sha256(target_string).hexdigest() count = count + 1 if pow_hash.startswith("0000"): # Four first hexadecimal digits are 0, equivalent to the first 16 bits are 0 print pow_hash print "nonce: https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/51d786353cf4ac886dbb869fc7abf883dac67ceb.png" scan times: https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/4ebdb22f10c27f8797a1c2ae7bbbd78f40220ed4.png"" % (nonce, count) break nonce = nonce + 1
nếutên== ‘chính‘:
main()
như đã thấy, việc tăng số lượng số không đầu tiên cần thiết trong băm tăng đáng kể số lượng lần cần thử, theo một mô hình tăng theo cấp số mũ. điều này chứng tỏ sự khó khăn về tính toán và tài nguyên cần thiết cho việc khai thác, nhấn mạnh sự cần thiết của các thiết bị tính toán hiệu suất cao trong quá trình khai thác.
Để đảm bảo rằng một khối được tạo ra khoảng 10 phút một lần, hệ thống Bitcoin điều chỉnh độ khó khai thác bằng cách thay đổi số lượng số không đứng đầu cần thiết trong giá trị băm. Cơ chế điều chỉnh độ khó này là một phần quan trọng của hệ thống Bitcoin. Nó đánh giá thời gian cần thiết để tạo các khối 2016 cuối cùng, lý tưởng nhất là khoảng hai tuần. Nếu các khối này được khai thác trong vòng chưa đầy hai tuần, độ khó sẽ tăng lên bằng cách thêm nhiều số không đứng đầu (giảm giá trị mục tiêu). Ngược lại, nếu mất hơn hai tuần, độ khó sẽ giảm bằng cách giảm số lượng số không đứng đầu (tăng giá trị mục tiêu). Cơ chế này đảm bảo rằng thời gian để tạo một khối vẫn còn khoảng 10 phút, ngay cả khi tổng tỷ lệ băm của mạng dao động.
Cơ chế điều chỉnh khó khăn này, được thiết kế bởi người sáng tạo của bitcoin Satoshi Nakamoto, đã được lên kế hoạch từ đầu để tự động thích ứng với tổng công suất tính toán của mạng. Nó duy trì một tốc độ khai thác ổn định và ngăn ngừa việc phát hành tiền tệ quá nhanh, có thể làm đảo lộn nền kinh tế thị trường.
Các dự án blockchain khác nhau có thể có các thuật toán khai thác khác nhau. Ở đây, chúng tôi mô tả thuật toán khai thác nổi tiếng nhất: thuật toán khai thác bitcoin.
quy trình thực hiện thuật toán khai thác cơ bản của bitcoin như sau:
kích thước của mỗi trường trong tiêu đề khối như sau:
https://time.geekbang.org/column/article/5963
cấu trúc cây merkle như sau:
大后端私房菜]. alt="">
Sự tranh luận chính về việc khai thác liên quan đến các thuật toán chứng minh công việc (POW) được sử dụng bởi bitcoin và các dẫn xuất của nó. Các thuật toán này đòi hỏi người khai thác phải cấp phát nguồn lực tính toán đáng kể để giải quyết các vấn đề mà mạng đồng ý. Rất nhiều người đang làm việc trên những tính toán này cùng một lúc, nhưng chỉ người đầu tiên giải quyết vấn đề được thưởng. Các người tham gia khác cũng cấp phát nguồn lực tính toán và điện hiệu quả nhưng không tạo thêm giá trị gì.
có hai con đường chính để tối ưu hóa lãng phí tài nguyên này:
Giá trị của việc khai thác là gì? Nó dường như là lãng phí tài nguyên và không có ý nghĩa đối với xã hội.
trong việc xem xét lại phần 'tại sao khai thác là cần thiết?' của bài viết này, ý nghĩa trực tiếp của việc khai thác là hỗ trợ việc phát hành tiền điện tử. các phần thưởng khai thác khuyến khích nhiều người hơn tham gia vào việc duy trì tiền điện tử, khiến chúng trở nên ổn định hơn. Ngoài ra, các thuật toán khai thác duy trì tính nhất quán của giao dịch trong các hệ thống tiền điện tử, khiến chúng trở nên mạnh mẽ hơn và ít dễ bị tấn công từ bên trong và bên ngoài.
Ý nghĩa gián tiếp của việc khai thác được suy ra từ chính các loại tiền điện tử. Tiền điện tử tạo ra một hệ thống tiền tệ toàn cầu, không tin cậy, nơi mà các giao dịch an toàn có thể diễn ra mà không cần đến các tổ chức tập trung, tránh được nhược điểm của tập trung. Tính toàn cầu của chúng cũng cho phép các giao dịch vượt biên hiệu quả và chi phí thấp.
Sự giảm lợi nhuận từ việc khai thác có thể dẫn đến việc chi phí vượt quá thu nhập, khiến cho người khai thác dừng việc khai thác và giao dịch ngừng diễn ra?
Điều đáng lo ngại thông thường là lợi nhuận khai thác chỉ phụ thuộc vào phần thưởng hệ thống, điều này giảm dần theo thời gian. Tuy nhiên, khai thác cũng tạo ra thu nhập đáng kể từ phí giao dịch. Khi các loại tiền điện tử được chấp nhận rộng rãi, thị trường giao dịch tiền điện tử sẽ mở rộng. Khối lượng giao dịch tăng lên này sẽ làm gia tăng cạnh tranh để bao gồm khối, dẫn đến việc thu phí cao hơn mà người dùng sẵn lòng trả để ưu tiên giao dịch của họ. Do đó, người khai thác có thể tiếp tục kiếm được khoản phí giao dịch đáng kể, đảm bảo tính khả thi liên tục của việc xử lý giao dịch.
Phí giao dịch có đền bù được chi phí khai thác không?
Vâng, phí giao dịch có thể giúp bù đắp chi phí khai thác. Khi phần thưởng khối giảm dần theo thời gian, phí giao dịch trở thành nguồn thu quan trọng đối với các nhà khai thác. Điều này đảm bảo rằng ngay cả khi chi phí điện cao, các nhà khai thác vẫn có thể duy trì hoạt động thông qua các khoản phí được người dùng trả để xử lý giao dịch.
Nhiều người khai thác có chia sẻ phần thưởng khai thác nếu họ cùng lúc phát sóng các khối mới của họ không?
không, nếu nhiều thợ đào giải quyết được câu đố và phát sóng khối mới của họ cùng một lúc, nó tạo ra một cái cào tạm thời trong chuỗi khối. đây là cách nó hoạt động:
ví dụ:
Cuộc tấn công 51% là gì và tại sao siêu nút không gian lận?
Cuộc tấn công 51% xảy ra khi một thực thể hoặc nhóm kiểm soát hơn 50% sức mạnh tính toán của mạng. Đây là lý do tại sao siêu nút thường không gian lận:
Làm thế nào blockchain ngăn chặn sự cố cố ý và giao dịch gian lận?
ngăn chặn phân phối khối không nhất quán bởi các nhà khai thác
định nghĩa và chức năng: trong mạng blockchain, tất cả các giao dịch phát sóng chưa được bao gồm trong một khối được tạm thời lưu trữ trong bộ nhớ cache (mempool) của các nút mạng. các nhà khai thác theo dõi mempool của họ để chọn giao dịch để xây dựng các khối mới.
Chiến lược lựa chọn giao dịch: những người khai thác có thể chọn giao dịch từ bộ nhớ đệm dựa trên chiến lược của họ. Thông thường, họ ưu tiên các giao dịch có phí cao hơn, nhưng một số người cũng có thể xem xét các yếu tố khác, như tuổi của giao dịch (thời gian nó đã dành trong bộ nhớ đệm).
Ai tham gia và cách họ kiếm tiền: Ngoài người dùng, ba người tham gia chính trong hệ thống Bitcoin là thợ mỏ, nhà phát triển và nhà khai thác nút.
tăng giá GPU: nhu cầu cao về GPU từ phía các thợ mỏ để khai thác đã dẫn đến thiếu hụt nguồn cung, làm tăng giá.
Thẻ đồ họa khai thác: Thẻ đồ họa khai thác là những thẻ đã được sử dụng trước đây để khai thác tiền điện tử. Những thẻ đồ họa này trải qua tính toán mạnh, dẫn đến hao mòn đáng kể. Do hiệu suất giảm sút, hầu hết mọi người thích không mua các thẻ đồ họa khai thác đã qua sử dụng.
Yêu cầu lưu trữ dự phòng đầy đủ: Có, các thợ đào cần lưu trữ toàn bộ sổ cái blockchain để xác minh xem mã thông báo đã được chi tiêu trước đó hay chưa và để đảm bảo tính bảo mật và tính toàn vẹn của sổ cái. Tuy nhiên, đối với các khối rất sớm, các thợ đào chỉ cần lưu trữ các tiêu đề khối, không phải nội dung khối đầy đủ. Điều này giúp duy trì hiệu quả của blockchain trong khi vẫn bảo vệ tính bảo mật của nó.
không có phần thưởng tự động vượt quá 21 triệu bitcoin: khi tổng cung cấp bitcoin đạt đến giới hạn là 21 triệu, hệ thống sẽ không còn phát hành bitcoin mới như phần thưởng cho các nhà khai thác. Nếu người dùng cũng không sẵn lòng trả phí giao dịch, lý thuyết, hệ thống giao dịch có thể đối mặt với những thách thức hoạt động. Tuy nhiên, có khả năng người dùng sẽ sẵn lòng trả phí giao dịch để giao dịch của họ được xử lý, đảm bảo sự tiếp tục của hệ thống.
chiều cao khối sẽ tiếp tục tăng: ngay cả sau khi đạt đến cung cấp tối đa là 21 triệu bitcoin, chiều cao khối (tổng số khối) sẽ tiếp tục tăng lên miễn là các nhà khai thác vẫn sẵn lòng khai thác và đóng gói giao dịch vào các khối mới. chiều cao khối không bị giới hạn bởi giới hạn cung cấp bitcoin.
Tiềm năng thay đổi đồng thuận: cộng đồng có thể đề xuất thay đổi các quy tắc đồng thuận, như tăng tổng nguồn cung bitcoin, để cho phép tạo ra đồng coin mới nếu cần thiết.
Giao dịch Coinbase: Trong chuỗi khối Bitcoin, phần thưởng thợ đào được phân phối thông qua một giao dịch đặc biệt được gọi là "Giao dịch Coinbase" hoặc "Phần thưởng khối". Giao dịch này có các đặc điểm độc đáo:
tính toán doanh thu từng khối: doanh thu của người đào được tính toán mỗi khi một khối được đào thành công và được xác nhận bởi cơ chế đồng thuận của mạng. người đào (hoặc nhóm đào) khai thác khối nhận phần thưởng khối và phí giao dịch tích lũy từ tất cả các giao dịch được bao gồm trong khối.
Quy trình nhận phần thưởng: Khi thợ đào hoặc nhóm khai thác khai thác thành công một khối và được mạng xác nhận, họ sẽ nhận được phần thưởng khối và phí giao dịch. Điều này được thực hiện thông qua giao dịch Coinbase, chuyển đổi phí và phần thưởng thành đầu ra giao dịch chưa sử dụng (UTXO) được ghi có vào tài khoản của thợ đào.
sự tạo ra tuần tự: các khối được tạo ra tuần tự trong blockchain. một khối mới chỉ có thể được tạo ra sau khi khối trước đó đã được khai thác thành công và thêm vào chuỗi.
Nhiều giao dịch trên mỗi khối: Các khối thường chứa nhiều giao dịch. Các thợ đào bao gồm càng nhiều giao dịch càng tốt để tối đa hóa thu nhập phí giao dịch của họ, thay vì đóng gói các giao dịch riêng lẻ.
Các khối được điền một phần: hầu hết các khối không được sử dụng đầy đủ. Các thợ đào bắt đầu làm việc trên khối tiếp theo ngay khi họ tìm thấy một giá trị băm hợp lệ đáp ứng yêu cầu độ khó, bất kể khối có đầy đủ hay không.
các khối rỗng: các khối có thể được khai thác ngay cả khi không có giao dịch để bao gồm. Những khối này, gọi là khối rỗng, vẫn cung cấp phần thưởng hệ thống cho người khai thác.
quy tắc chuỗi dài nhất: khi xảy ra fork, mạng sẽ theo chuỗi có số lượng chứng minh công việc tích lũy nhiều nhất, thường là chuỗi dài nhất. các nút chuyển sang chuỗi dài hơn khi trở nên rõ ràng rằng chuỗi nào có nhiều công việc được đầu tư hơn.
giải quyết double-spend:
Quy trình xác nhận:
tính phí giao dịch: người dùng có thể kiểm soát phí giao dịch để đẩy nhanh quá trình xác nhận giao dịch của họ. Phí được xác định bằng công thức sau:
Phí giao dịch = Tổng đầu vào − Tổng sản lượng − thay đổi
Người dùng đặt phí giao dịch bằng cách điều chỉnh số tiền đầu vào, số tiền đầu ra và số tiền thay đổi.
Phân phối thu nhập: Khi khai thác trong một nhóm, nút nhóm sẽ nhận được phần thưởng khối. Nhóm sau đó phân phối thu nhập cho các thành viên dựa trên sức mạnh tính toán đóng góp của họ. Việc phân phối này được thực hiện thông qua chuyển khoản vào ví của thợ mỏ.
Đào coin ích kỷ: Đào coin ích kỷ là chiến lược mà một nhà đào (hoặc hồ bơi đào coin) tìm thấy một khối mới nhưng không phát sóng ngay. Thay vào đó, họ tiếp tục đào coin riêng tư trên chuỗi của họ (chuỗi ẩn). Khi họ tìm thấy thêm khối, họ phát sóng tất cả cùng một lúc. Điều này có thể vô hiệu hóa công việc của các nhà đào khác và làm nghiêng sức mạnh tính toán và phần thưởng về phía nhà đào ích kỷ. Bitcoin có thể giảm thiểu tác động của đào coin ích kỷ bằng cách cải thiện giao thức phát sóng.
Xác thực giao dịch: Khi một giao dịch được phát tới một nút, nó sẽ trải qua một số kiểm tra để xác định xem nó có nên được thêm vào Mempool hay không:
xác thực khối: khi một nút khai thác nhận được một khối mới, nó thực hiện các kiểm tra kỹ lưỡng trên khối và các giao dịch của nó:
[1] bài giảng 12 | công nghệ blockchain sâu (4): khai thác đồng thuận sâu rộng giải thích về công nghệ blockchain-geek thời gian:Disclaimer:
forward the original title ‘白话区块链三:揭开挖矿神秘的面纱——挖矿是什么?为什么要挖矿?谁是我们买不起显卡的罪魁祸首?’
Một trong những khái niệm quen thuộc nhất liên quan đến blockchain đối với mọi người có lẽ là khai thác. Rất nhiều người có thể đã nghe nói về khai thác nhiều lần nhưng không chắc chắn về nó nghĩa là gì. Trong phần này, chúng tôi sẽ gián đoạn chương trình thường xuyên của chúng tôi để giới thiệu trước về 'khai thác'.
Tóm tắt nhanh nội dung từ "Plain Blockchain 1: Giới thiệu về Bitcoin (Người tiên phong của cuộc cách mạng blockchain và kẻ thách thức tiền tệ có chủ quyền)", nơi Satoshi Nakamoto thiết kế hệ thống tiền tệ Bitcoin để liên kết phần thưởng cho sổ sách kế toán với phát hành tiền tệ. Cách tiếp cận này cho phép việc phát hành tiền tệ được tự động hóa thông qua quy trình ghi sổ kế toán, giải quyết vấn đề phát hành tiền tệ đồng thời khuyến khích các nhân viên kế toán tích cực tham gia.
Trong thế giới thực, khai thác liên quan đến việc người khai thác sử dụng các công cụ khác nhau để đào ra kim loại quý ẩn trong đá từ mỏ. Người khai thác trích xuất giá trị từ những kim loại hiếm hoi này ẩn trong tự nhiên thông qua lao động vật chất.
Đối với các dự án blockchain có phần thưởng cho việc kế toán sách (thường là các dự án tiền điện tử), các nút mạng tiêu tốn tài nguyên tính toán để giải quyết các vấn đề. Khi họ tìm ra giải pháp, họ đóng gói khối và nhận được phần thưởng dưới dạng tiền tệ mới phát hành. Quá trình này tương tự như việc khai thác các kim loại quý như vàng từ quặng, do đó nó thường được gọi là “khai thác”. Ở đây, các kế toán viên là những người khai thác, họ cạnh tranh để đóng gói các khối bằng phần cứng và điện năng, dẫn đến việc tạo ra tiền tệ mới.
Khai thác có hai mục đích chính: xác minh giao dịch gần đây bằng cách đóng gói chúng thành các khối và liên kết chúng với blockchain, và phát hành tiền tệ mới bằng cách thưởng cho người ghi sổ. Dưới đây là các chức năng chi tiết của khai thác:
Người đào được khuyến khích tham gia vào việc khai thác vì họ nhận được phần thưởng đáng kể cho việc đóng gói một khối vào blockchain thành công. Những phần thưởng này đến từ hai nguồn chính:
Với thời gian, phần thưởng khối sẽ giảm (ví dụ như cơ chế halving của Bitcoin, trong đó phần thưởng được giảm một nửa khoảng mỗi bốn năm). Cuối cùng, sau khi tất cả 21 triệu Bitcoin đã được khai thác, dự kiến vào khoảng năm 2141, phần thưởng khối tự động sẽ ngừng tồn tại và phí giao dịch sẽ trở thành nguồn thu chính của các nhà khai thác.
Bitcoin tạo ra một khối mới khoảng 10 phút một lần. Ban đầu, mỗi khối mới tạo ra 50 Bitcoin. Phần thưởng này trải qua một nửa cứ sau bốn năm và cho đến nay, đã có bốn sự kiện giảm một nửa như vậy. Hiện tại, mỗi khối tạo ra 3.125 bitcoin, với đợt giảm một nửa gần đây nhất xảy ra vào tháng 4/2024. Việc giảm một nửa tiếp theo được dự đoán vào khoảng năm 2028. Đến khoảng năm 2141, Bitcoin sẽ đạt đến giới hạn phát hành.
Phí giao dịch không chỉ bị ảnh hưởng bởi cung cầu mà còn bởi kích thước của giao dịch, vì phí được tỷ lệ với không gian mà giao dịch chiếm trong khối.
Đối với những người khai thác, tham gia khai thác rất đơn giản. Tải xuống một trình khách ví tiền điện tử và trong trình khách đó, nhấp vào nút khai thác để bắt đầu khai thác.
đối với các dự án blockchain có phần thưởng khối, thuật toán khai thác thường được viết vào một script tích hợp vào ví. Các thợ đào chỉ cần nhấp vào một nút để bắt đầu script.
thuật toán khai thác là xác định, có nghĩa là miễn là các thợ mỏ liên tục chạy thuật toán, họ sẽ cuối cùng nhận được một kết quả. tuy nhiên, do tài nguyên tính toán thay đổi, thời gian cần thiết để tính toán kết quả này có thể khác nhau giữa các thợ mỏ. khi một nút tính toán giá trị mục tiêu, những nỗ lực của các thợ mỏ khác trong khoảng thời gian đó trở nên vô ích, dẫn đến lợi nhuận âm do tài nguyên vật lý đã tiêu tốn.
Để tránh lãng phí công sức, các thợ đào thường gom nhóm tài nguyên tính toán của họ bằng cách tham gia một nút hồ bơi khai thác. Nút này hoạt động giống như bất kỳ nút nào khác nhưng có sức mạnh tính toán đáng kể hơn. Khi hồ bơi thành công khai thác một khối, phần thưởng được phân phối cho các thợ đào tham gia dựa trên tài nguyên tính toán họ đã đóng góp. Quan trọng phải lưu ý rằng trên blockchain, thợ đào được ghi nhận là đóng gói khối là nút hồ bơi khai thác, trong khi các thợ đào cá nhân nhận được phần thưởng được phân bổ bởi hồ bơi, không phải trực tiếp từ hệ thống tiền tệ.
Bitmain, một công ty chuyên sản xuất chip khai thác chuyên dụng hiệu suất cao, đã củng cố vai trò của các nhóm khai thác, đóng góp vào việc tập trung quyền kiểm soát sổ sách.
Các dự án blockchain khác nhau có thể có các câu đố khai thác khác nhau và mức độ khó khăn khác nhau. Ở đây, chúng ta lấy bitcoin làm ví dụ. Thuật toán khai thác được sử dụng bởi bitcoin được gọi là proof of work (pow). Bản chất của thuật toán này là để đạt được một kết quả, một lượng công việc nhất định phải được tiêu tốn để chứng minh nó.
bài toán khai thác không phải là một vấn đề toán học truyền thống mà liên quan đến việc tìm kiếm một số ngẫu nhiên, được gọi là nonce. nonce này, khi kết hợp với dữ liệu trong khối và xử lý thông qua một hàm băm, phải tạo ra một giá trị băm thỏa mãn một điều kiện cụ thể. Thông thường, điều kiện này yêu cầu giá trị băm phải nhỏ hơn một giá trị mục tiêu (hoặc tương đương, n bit đầu tiên của giá trị băm là không). Phương trình được biểu diễn như sau: hash(nonce+block_data)≤target\text{hash}(\text{nonce} + \text{block_data}) \leq \text{target}hash(nonce+block_data)≤target
Bitcoin sử dụng hàm băm SHA-256, chuyển đổi bất kỳ độ dài đầu vào nào thành đầu ra có độ dài cố định là 256 bit (tương đương với 64 chữ số thập lục phân hoặc 32 byte). Đầu ra gần như ngẫu nhiên nhưng được đảm bảo giống nhau cho cùng một đầu vào. Khai thác liên quan đến việc liên tục thay đổi nonce và băm dữ liệu tiêu đề khối bằng SHA-256 cho đến khi tìm thấy giá trị băm đáp ứng điều kiện mục tiêu.
Ví dụ: giá trị băm SHA-256 với 30 bit đầu tiên là số không: 000000000000000000000000000000111111010000011011000100100110111011000110100010011011000110100010110110101010011101011010100100011011010001111101001111110101001101111101011110011100011110011110000111000100110000001011011010001110011100110010111010010010010001101010110010110000000000000000000000000000000111111010000011011000100100110111011000110100010011011000110100010110110101010011101011010100100011011010001111101001111110101001101111101011110011100011110011110000111000100110000001011011010001110011100110010111010010010010001101010110010110000000000000000000000000000000111111010000011011000100100110111011000110100010011011000110100010110110101010011101011010100100011011010001111101001111110101001101111101011110011100011110011110000111000100110000001011011010001110011100110010111010010010010001101010110010110
chuyển đổi này thành hệ thập lục phân cho kết quả là một giá trị bắt đầu bằng bảy số không: 00000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac9000000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac9000000003f41b126ec689b1a2da9d5d46d13d0fd1bece47983d59c5d32eb4ac90
Để đơn giản hóa, xác suất tìm thấy một hash với n bit đầu tiên là 0 là 12n\frac{1}{2^n}2n1. Càng lớn n, càng nhiều bit là 0 và xác suất càng thấp:
với n lên đến 256, việc tìm giá trị băm như vậy với sức mạnh tính toán hiện tại của con người, loại trừ máy tính lượng tử, gần như là không thể trước khi trái đất ngừng tồn tại.
do với tính chất của sha-256, phương pháp duy nhất là vét cạn, bao gồm liên tục thử nghiệm các nonce khác nhau cho đến khi điều kiện được đáp ứng. điều này làm cho việc khai thác đòi hỏi thiết bị tính toán hiệu suất cao như vậy.
Vì bạn không thể dự đoán giá trị băm được tạo ra bằng cách thêm nonce vào dữ liệu khối và chuyển nó qua SHA-256, quá trình này hoàn toàn ngẫu nhiên. Ví dụ: nếu giá trị băm mục tiêu là 10.000, bạn không có cách nào biết nonce nào kết hợp với dữ liệu khối sẽ mang lại giá trị băm nhỏ hơn 10.000. Bản chất ngẫu nhiên và không thể đoán trước này có nghĩa là các thợ mỏ phải tiếp tục liệt kê các khả năng cho đến khi điều kiện được thỏa mãn. Nếu nhiều giá trị đáp ứng điều kiện, giá trị băm nhỏ nhất được chọn vì giá trị băm nhỏ hơn cho thấy độ khó cao hơn và xác suất xảy ra thấp hơn.
xác minh xem giá trị băm được tạo ra có đáp ứng yêu cầu dễ dàng, chỉ cần một phép so sánh duy nhất. tuy nhiên, việc tìm một giá trị băm nhỏ hơn hoặc bằng giá trị mục tiêu chỉ có thể đạt được thông qua liệt kê vét cạn. đặc điểm này, trong đó việc xác minh một kết quả dễ dàng nhưng tìm kết quả lại khó, được gọi là bất đối xứng tính toán.
Đoạn code sau mô phỏng quá trình khai thác. Nó bắt đầu với một chuỗi dữ liệu tiêu đề khối “geekbang” và tìm kiếm từ một giá trị nonce là 10.000 cho đến khi nó tìm thấy một giá trị nonce thỏa mãn điều kiện cụ thể.
Đây là một tập lệnh Python minh họa quá trình khai thác:
import hashlib
def main():
base_string = "geekbang"
nonce = 10000
count = 0
while true:
target_string = base_string + str(nonce)
pow_hash = hashlib.sha256(target_string.encode()).hexdigest()
count += 1
if pow_hash.startswith("0000"): # first 4 hex digits are 0, equivalent to the first 16 bits being 0
print("hash:", pow_hash)
print("nonce:", nonce, "scan times:", count)
break
nonce += 1
if __name__ == '__main__':
main()
Khi yêu cầu là 4 chữ số thập lục phân đầu tiên của kết quả băm là 0 (tương đương với 16 bit đầu tiên là 0), số lần tính toán là khoảng 58.000. Nếu yêu cầu được nâng lên thành 5 chữ số đầu tiên là 0, số lần tính toán tăng lên đến 1,23 triệu. Khi yêu cầu là 7 chữ số đầu tiên là 0, số lần tính toán đạt đến 160 triệu. Điều này cho thấy mỗi chữ số 0 bổ sung vào tiền tố băm tăng số lần tính toán khoảng 16 lần.
Dưới đây là kết quả cho các điều kiện mục tiêu khác nhau:
4 chữ số hex đầu tiên là không (16 bit):
import hashlib
def main():
base_string = "geekbang"nonce = 10000count = 0trong khi đó: target_string = base_string + str(nonce) pow_hash = hashlib.sha256(target_string).hexdigest() count = count + 1 if pow_hash.startswith("0000"): # Four first hexadecimal digits are 0, equivalent to the first 16 bits are 0 print pow_hash print "nonce: https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/51d786353cf4ac886dbb869fc7abf883dac67ceb.png" scan times: https://s3.ap-northeast-1.amazonaws.com/gimg.gateimg.com/learn/4ebdb22f10c27f8797a1c2ae7bbbd78f40220ed4.png"" % (nonce, count) break nonce = nonce + 1
nếutên== ‘chính‘:
main()
như đã thấy, việc tăng số lượng số không đầu tiên cần thiết trong băm tăng đáng kể số lượng lần cần thử, theo một mô hình tăng theo cấp số mũ. điều này chứng tỏ sự khó khăn về tính toán và tài nguyên cần thiết cho việc khai thác, nhấn mạnh sự cần thiết của các thiết bị tính toán hiệu suất cao trong quá trình khai thác.
Để đảm bảo rằng một khối được tạo ra khoảng 10 phút một lần, hệ thống Bitcoin điều chỉnh độ khó khai thác bằng cách thay đổi số lượng số không đứng đầu cần thiết trong giá trị băm. Cơ chế điều chỉnh độ khó này là một phần quan trọng của hệ thống Bitcoin. Nó đánh giá thời gian cần thiết để tạo các khối 2016 cuối cùng, lý tưởng nhất là khoảng hai tuần. Nếu các khối này được khai thác trong vòng chưa đầy hai tuần, độ khó sẽ tăng lên bằng cách thêm nhiều số không đứng đầu (giảm giá trị mục tiêu). Ngược lại, nếu mất hơn hai tuần, độ khó sẽ giảm bằng cách giảm số lượng số không đứng đầu (tăng giá trị mục tiêu). Cơ chế này đảm bảo rằng thời gian để tạo một khối vẫn còn khoảng 10 phút, ngay cả khi tổng tỷ lệ băm của mạng dao động.
Cơ chế điều chỉnh khó khăn này, được thiết kế bởi người sáng tạo của bitcoin Satoshi Nakamoto, đã được lên kế hoạch từ đầu để tự động thích ứng với tổng công suất tính toán của mạng. Nó duy trì một tốc độ khai thác ổn định và ngăn ngừa việc phát hành tiền tệ quá nhanh, có thể làm đảo lộn nền kinh tế thị trường.
Các dự án blockchain khác nhau có thể có các thuật toán khai thác khác nhau. Ở đây, chúng tôi mô tả thuật toán khai thác nổi tiếng nhất: thuật toán khai thác bitcoin.
quy trình thực hiện thuật toán khai thác cơ bản của bitcoin như sau:
kích thước của mỗi trường trong tiêu đề khối như sau:
https://time.geekbang.org/column/article/5963
cấu trúc cây merkle như sau:
大后端私房菜]. alt="">
Sự tranh luận chính về việc khai thác liên quan đến các thuật toán chứng minh công việc (POW) được sử dụng bởi bitcoin và các dẫn xuất của nó. Các thuật toán này đòi hỏi người khai thác phải cấp phát nguồn lực tính toán đáng kể để giải quyết các vấn đề mà mạng đồng ý. Rất nhiều người đang làm việc trên những tính toán này cùng một lúc, nhưng chỉ người đầu tiên giải quyết vấn đề được thưởng. Các người tham gia khác cũng cấp phát nguồn lực tính toán và điện hiệu quả nhưng không tạo thêm giá trị gì.
có hai con đường chính để tối ưu hóa lãng phí tài nguyên này:
Giá trị của việc khai thác là gì? Nó dường như là lãng phí tài nguyên và không có ý nghĩa đối với xã hội.
trong việc xem xét lại phần 'tại sao khai thác là cần thiết?' của bài viết này, ý nghĩa trực tiếp của việc khai thác là hỗ trợ việc phát hành tiền điện tử. các phần thưởng khai thác khuyến khích nhiều người hơn tham gia vào việc duy trì tiền điện tử, khiến chúng trở nên ổn định hơn. Ngoài ra, các thuật toán khai thác duy trì tính nhất quán của giao dịch trong các hệ thống tiền điện tử, khiến chúng trở nên mạnh mẽ hơn và ít dễ bị tấn công từ bên trong và bên ngoài.
Ý nghĩa gián tiếp của việc khai thác được suy ra từ chính các loại tiền điện tử. Tiền điện tử tạo ra một hệ thống tiền tệ toàn cầu, không tin cậy, nơi mà các giao dịch an toàn có thể diễn ra mà không cần đến các tổ chức tập trung, tránh được nhược điểm của tập trung. Tính toàn cầu của chúng cũng cho phép các giao dịch vượt biên hiệu quả và chi phí thấp.
Sự giảm lợi nhuận từ việc khai thác có thể dẫn đến việc chi phí vượt quá thu nhập, khiến cho người khai thác dừng việc khai thác và giao dịch ngừng diễn ra?
Điều đáng lo ngại thông thường là lợi nhuận khai thác chỉ phụ thuộc vào phần thưởng hệ thống, điều này giảm dần theo thời gian. Tuy nhiên, khai thác cũng tạo ra thu nhập đáng kể từ phí giao dịch. Khi các loại tiền điện tử được chấp nhận rộng rãi, thị trường giao dịch tiền điện tử sẽ mở rộng. Khối lượng giao dịch tăng lên này sẽ làm gia tăng cạnh tranh để bao gồm khối, dẫn đến việc thu phí cao hơn mà người dùng sẵn lòng trả để ưu tiên giao dịch của họ. Do đó, người khai thác có thể tiếp tục kiếm được khoản phí giao dịch đáng kể, đảm bảo tính khả thi liên tục của việc xử lý giao dịch.
Phí giao dịch có đền bù được chi phí khai thác không?
Vâng, phí giao dịch có thể giúp bù đắp chi phí khai thác. Khi phần thưởng khối giảm dần theo thời gian, phí giao dịch trở thành nguồn thu quan trọng đối với các nhà khai thác. Điều này đảm bảo rằng ngay cả khi chi phí điện cao, các nhà khai thác vẫn có thể duy trì hoạt động thông qua các khoản phí được người dùng trả để xử lý giao dịch.
Nhiều người khai thác có chia sẻ phần thưởng khai thác nếu họ cùng lúc phát sóng các khối mới của họ không?
không, nếu nhiều thợ đào giải quyết được câu đố và phát sóng khối mới của họ cùng một lúc, nó tạo ra một cái cào tạm thời trong chuỗi khối. đây là cách nó hoạt động:
ví dụ:
Cuộc tấn công 51% là gì và tại sao siêu nút không gian lận?
Cuộc tấn công 51% xảy ra khi một thực thể hoặc nhóm kiểm soát hơn 50% sức mạnh tính toán của mạng. Đây là lý do tại sao siêu nút thường không gian lận:
Làm thế nào blockchain ngăn chặn sự cố cố ý và giao dịch gian lận?
ngăn chặn phân phối khối không nhất quán bởi các nhà khai thác
định nghĩa và chức năng: trong mạng blockchain, tất cả các giao dịch phát sóng chưa được bao gồm trong một khối được tạm thời lưu trữ trong bộ nhớ cache (mempool) của các nút mạng. các nhà khai thác theo dõi mempool của họ để chọn giao dịch để xây dựng các khối mới.
Chiến lược lựa chọn giao dịch: những người khai thác có thể chọn giao dịch từ bộ nhớ đệm dựa trên chiến lược của họ. Thông thường, họ ưu tiên các giao dịch có phí cao hơn, nhưng một số người cũng có thể xem xét các yếu tố khác, như tuổi của giao dịch (thời gian nó đã dành trong bộ nhớ đệm).
Ai tham gia và cách họ kiếm tiền: Ngoài người dùng, ba người tham gia chính trong hệ thống Bitcoin là thợ mỏ, nhà phát triển và nhà khai thác nút.
tăng giá GPU: nhu cầu cao về GPU từ phía các thợ mỏ để khai thác đã dẫn đến thiếu hụt nguồn cung, làm tăng giá.
Thẻ đồ họa khai thác: Thẻ đồ họa khai thác là những thẻ đã được sử dụng trước đây để khai thác tiền điện tử. Những thẻ đồ họa này trải qua tính toán mạnh, dẫn đến hao mòn đáng kể. Do hiệu suất giảm sút, hầu hết mọi người thích không mua các thẻ đồ họa khai thác đã qua sử dụng.
Yêu cầu lưu trữ dự phòng đầy đủ: Có, các thợ đào cần lưu trữ toàn bộ sổ cái blockchain để xác minh xem mã thông báo đã được chi tiêu trước đó hay chưa và để đảm bảo tính bảo mật và tính toàn vẹn của sổ cái. Tuy nhiên, đối với các khối rất sớm, các thợ đào chỉ cần lưu trữ các tiêu đề khối, không phải nội dung khối đầy đủ. Điều này giúp duy trì hiệu quả của blockchain trong khi vẫn bảo vệ tính bảo mật của nó.
không có phần thưởng tự động vượt quá 21 triệu bitcoin: khi tổng cung cấp bitcoin đạt đến giới hạn là 21 triệu, hệ thống sẽ không còn phát hành bitcoin mới như phần thưởng cho các nhà khai thác. Nếu người dùng cũng không sẵn lòng trả phí giao dịch, lý thuyết, hệ thống giao dịch có thể đối mặt với những thách thức hoạt động. Tuy nhiên, có khả năng người dùng sẽ sẵn lòng trả phí giao dịch để giao dịch của họ được xử lý, đảm bảo sự tiếp tục của hệ thống.
chiều cao khối sẽ tiếp tục tăng: ngay cả sau khi đạt đến cung cấp tối đa là 21 triệu bitcoin, chiều cao khối (tổng số khối) sẽ tiếp tục tăng lên miễn là các nhà khai thác vẫn sẵn lòng khai thác và đóng gói giao dịch vào các khối mới. chiều cao khối không bị giới hạn bởi giới hạn cung cấp bitcoin.
Tiềm năng thay đổi đồng thuận: cộng đồng có thể đề xuất thay đổi các quy tắc đồng thuận, như tăng tổng nguồn cung bitcoin, để cho phép tạo ra đồng coin mới nếu cần thiết.
Giao dịch Coinbase: Trong chuỗi khối Bitcoin, phần thưởng thợ đào được phân phối thông qua một giao dịch đặc biệt được gọi là "Giao dịch Coinbase" hoặc "Phần thưởng khối". Giao dịch này có các đặc điểm độc đáo:
tính toán doanh thu từng khối: doanh thu của người đào được tính toán mỗi khi một khối được đào thành công và được xác nhận bởi cơ chế đồng thuận của mạng. người đào (hoặc nhóm đào) khai thác khối nhận phần thưởng khối và phí giao dịch tích lũy từ tất cả các giao dịch được bao gồm trong khối.
Quy trình nhận phần thưởng: Khi thợ đào hoặc nhóm khai thác khai thác thành công một khối và được mạng xác nhận, họ sẽ nhận được phần thưởng khối và phí giao dịch. Điều này được thực hiện thông qua giao dịch Coinbase, chuyển đổi phí và phần thưởng thành đầu ra giao dịch chưa sử dụng (UTXO) được ghi có vào tài khoản của thợ đào.
sự tạo ra tuần tự: các khối được tạo ra tuần tự trong blockchain. một khối mới chỉ có thể được tạo ra sau khi khối trước đó đã được khai thác thành công và thêm vào chuỗi.
Nhiều giao dịch trên mỗi khối: Các khối thường chứa nhiều giao dịch. Các thợ đào bao gồm càng nhiều giao dịch càng tốt để tối đa hóa thu nhập phí giao dịch của họ, thay vì đóng gói các giao dịch riêng lẻ.
Các khối được điền một phần: hầu hết các khối không được sử dụng đầy đủ. Các thợ đào bắt đầu làm việc trên khối tiếp theo ngay khi họ tìm thấy một giá trị băm hợp lệ đáp ứng yêu cầu độ khó, bất kể khối có đầy đủ hay không.
các khối rỗng: các khối có thể được khai thác ngay cả khi không có giao dịch để bao gồm. Những khối này, gọi là khối rỗng, vẫn cung cấp phần thưởng hệ thống cho người khai thác.
quy tắc chuỗi dài nhất: khi xảy ra fork, mạng sẽ theo chuỗi có số lượng chứng minh công việc tích lũy nhiều nhất, thường là chuỗi dài nhất. các nút chuyển sang chuỗi dài hơn khi trở nên rõ ràng rằng chuỗi nào có nhiều công việc được đầu tư hơn.
giải quyết double-spend:
Quy trình xác nhận:
tính phí giao dịch: người dùng có thể kiểm soát phí giao dịch để đẩy nhanh quá trình xác nhận giao dịch của họ. Phí được xác định bằng công thức sau:
Phí giao dịch = Tổng đầu vào − Tổng sản lượng − thay đổi
Người dùng đặt phí giao dịch bằng cách điều chỉnh số tiền đầu vào, số tiền đầu ra và số tiền thay đổi.
Phân phối thu nhập: Khi khai thác trong một nhóm, nút nhóm sẽ nhận được phần thưởng khối. Nhóm sau đó phân phối thu nhập cho các thành viên dựa trên sức mạnh tính toán đóng góp của họ. Việc phân phối này được thực hiện thông qua chuyển khoản vào ví của thợ mỏ.
Đào coin ích kỷ: Đào coin ích kỷ là chiến lược mà một nhà đào (hoặc hồ bơi đào coin) tìm thấy một khối mới nhưng không phát sóng ngay. Thay vào đó, họ tiếp tục đào coin riêng tư trên chuỗi của họ (chuỗi ẩn). Khi họ tìm thấy thêm khối, họ phát sóng tất cả cùng một lúc. Điều này có thể vô hiệu hóa công việc của các nhà đào khác và làm nghiêng sức mạnh tính toán và phần thưởng về phía nhà đào ích kỷ. Bitcoin có thể giảm thiểu tác động của đào coin ích kỷ bằng cách cải thiện giao thức phát sóng.
Xác thực giao dịch: Khi một giao dịch được phát tới một nút, nó sẽ trải qua một số kiểm tra để xác định xem nó có nên được thêm vào Mempool hay không:
xác thực khối: khi một nút khai thác nhận được một khối mới, nó thực hiện các kiểm tra kỹ lưỡng trên khối và các giao dịch của nó:
[1] bài giảng 12 | công nghệ blockchain sâu (4): khai thác đồng thuận sâu rộng giải thích về công nghệ blockchain-geek thời gian:Disclaimer: