Bitcoin Mining Difficulty - What is it And How Does it Work?

Updated on: May 2nd, 2020
This content has been Fact-Checked.
Bitcoin Mining Difficulty - What is it And How Does it Work?

Trước khi chúng ta thậm chí bắt đầu hiểu những gì khó khăn khai thác bitcoin có nghĩa là, chúng ta cần phải biết làm thế nào khai thác mỏ hoạt động. Chúng tôi đã đề cập chi tiết chủ đề này trước đây, vì vậy chúng tôi sẽ chỉ cung cấp cho bạn một cái nhìn tổng quan nhỏ trước khi đi vào các sắc thái khác nhau của khó khăn. Sau đó, chúng ta sẽ xem xét cách tính toán độ khó khai thác và cách nó thay đổi cho phù hợp với nhu cầu của mạng.

Làm thế nào để khai thác mỏ hoạt động? Mất bao lâu để khai thác 1 Bitcoin?

Mạng lưới của Bitcoin có một số nút chuyên biệt được gọi là “thợ mỏ”, những người sử dụng thiết bị chuyên dụng để giải quyết các câu đố cứng bằng mật mã. Nếu họ thành công, sau đó họ sẽ có cơ hội để thêm các khối vào blockchain BTC thành công. Đây là cách nó hoạt động:

Các thợ mỏ chọn lên các giao dịch chờ đợi trong mempool và băm chúng.

Họ thêm một giá trị hệ thập lục phân ngẫu nhiên vào phía trước của băm và băm toàn bộ giá trị.

Hàm băm này cần phải nhỏ hơn một giá trị cụ thể, được gọi là “khó khăn”.

Điều gì quyết định khó khăn khai thác bitcoin? Tại sao BTC khó khăn tăng lên?

#1 Để duy trì tính toàn vẹn của mạng

Mức độ khó khai thác Bitcoin tăng hoặc giảm theo sự dễ dàng khai thác trong giao thức. Hãy nhớ rằng, Bitcoin cần phải có thời gian chặn nhất quán là 10 phút. Nói cách khác, BTC mới có thể được tiêm vào nguồn cung tuần hoàn mỗi 10 phút. Để đảm bảo rằng thời gian này không thay đổi giao thức Bitcoin:

Tăng độ khó mạng khi nó trở nên dễ dàng hơn cho thợ mỏ để khai thác.

Giảm khó khăn mạng khi nó trở nên khó khăn hơn cho thợ mỏ để khai thác.

Mạng Bitcoin có một khó khăn khối phổ quát. Tất cả các khối hợp lệ phải có một băm bên dưới mục tiêu. Bể khai thác cũng có một khó khăn chia sẻ hồ bơi cụ thể thiết lập một giới hạn thấp hơn cho cổ phiếu.

#2 Mối quan hệ với tỷ lệ băm

Một trong những chỉ số quan trọng trong việc đánh giá sức khỏe của một mạng lưới bằng chứng làm việc là tỷ lệ băm. Đơn giản chỉ cần đặt, hashrate cho bạn thấy sức mạnh của các thợ mỏ trong mạng. Tốc độ hashrate mạng bitcoin cao hơn, cao hơn nó là an ninh tổng thể và tốc độ. Tuy nhiên, các mạng này cần phải giữ tốc độ hashrate của họ dưới sự kiểm soát để sản xuất khối nhất quán. Đây là lý do tại sao, khi hashrate trở nên cao, khó khăn bitcoin cuối cùng cũng trở nên cao hơn, làm cho nó khó khăn hơn cho các thợ mỏ để khai thác dễ dàng trong mạng.

Nghịch đảo cũng đúng.

Nếu tỷ lệ hashrate của Bitcoin giảm, độ khó mạng cũng sẽ giảm. Hashrate có thể giảm vì những lý do sau:

Bitcoin hiện đang có một khó khăn cao, đó là lý do tại sao các thợ mỏ đang có một thời gian khó khăn khai thác trong hệ thống.

Giá của BTC đã giảm, đó là lý do tại sao rất nhiều thợ mỏ bỏ khai thác mỏ.

Để hiểu mối tương quan giữa hai, chúng ta hãy kiểm tra đồ thị của chúng. Đầu tiên, chúng ta có tỷ lệ băm.

Sau đó, chúng ta có biểu đồ khó khăn bitcoin:

Như bạn có thể thấy, có một mối tương quan rất gần gũi giữa hai người. Khoảng ngày 26 tháng 3, độ khó mạng đã giảm 16% từ 16,55 nghìn tỷ xuống còn 13,9 nghìn tỷ. Đây là vụ tai nạn lớn nhất trong khó khăn mạng kể từ đầu năm 2013. Để hiểu lý do tại sao điều này xảy ra thời gian này xung quanh, hãy xem mức hashrate giảm như thế nào ngay trước khi sự sụt giảm của bitcoin. Sự sụt giảm này xảy ra do sự sụp đổ giá của Bitcoin, khiến rất nhiều thợ mỏ phải bỏ hoạt động.

Bitcoin tính toán độ khó như thế nào?

Độ khó mạng của Bitcoin thay đổi mỗi năm 2016 khối. Công thức được sử dụng bởi mạng để tính toán độ khó đi như sau:

difficulty = difficulty_1_target/current_target

Trong công thức trên:

mục tiêu là một số 256-bit. Theo giao thức của Bitcoin, các mục tiêu là một loại dấu chấm động tùy chỉnh với độ chính xác hạn chế. Khách hàng Bitcoin gần đúng khó khăn dựa trên thực tế này. Giá trị này còn được gọi là bdiff.

difficulty_1_target có thể khác nhau tùy thuộc vào cách bạn chọn để đo độ khó. Theo truyền thống, nó đại diện cho một băm mà 32 bit hàng đầu là zero và phần còn lại là một. Trong thực tế, giá trị này còn được gọi là khó khăn hồ bơi hoặc pdiff.

Mỗi khối duy nhất lưu trữ một đại diện đóng gói của khó khăn bitcoin trong các khối của họ được gọi là “Bits”. Mục tiêu này thường xuất hiện dưới dạng 0x1b0404cb (được lưu trữ theo thứ tự little-endian: cb 04 1b).

Một khối tính toán giá trị đích thông qua một công thức xác định trước. Ví dụ. Với mục tiêu đóng gói đưa ra ở trên, tức là 0x1b0404cb. Mục tiêu thập lục phân là:

0x0404cb * 2** (8* (0x1b - 3)) = 0x00000000000404CB00000000000000000000000000000000000000000000

Bây giờ chúng ta hãy tính toán bdiff và pdiff.

Mục tiêu cao nhất có thể (difficulty_1_target) được định nghĩa là 0x1d00ffff hoặc, ở dạng hex:

0x00ffff * 2** (8* (0x1d - 3)) = 0x00000000FFFF0000000000000000000000000000000000000000000000000000

Bây giờ chúng ta biết giá trị này, chúng ta có thể sử dụng điều này để tính toán bdiff của chúng tôi bằng cách sử dụng các khó khăn = difficulty_1_target/current_target công thức

Bây giờ, như chúng ta đã xác định trong phần trước, current_target là 0x1b0404cb hoặc 0x000000000000000404CB000000000000000000000000000000000000000000000000000000000000.

Vì vậy, để tính toán độ khó hiện tại:

0x00000000FFFF0000000000000000000000000000000000000000000000000000000000000000/

0x00000000000404CB000000000000000000000000000000000000000000000000000000000000

= 16307.420938523983

Do đó, bdiff là 16307.420938523983.

Bây giờ, chúng ta hãy tính toán pdiff. Các bể khai thác có xu hướng sử dụng các mục tiêu không cắt ngắn mà đặt difficulty_1_target tại 0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF.

Nếu đó là trường hợp sau đó cho cùng một current_target, pdiff của chúng tôi sẽ là:

0x00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF/

0x00000000000404CB000000000000000000000000000000000000000000000000000000000000

= 16307.669773817162

Dưới đây là một mã chương trình lấy từ wiki Bitcoin dựa vào các bản ghi để làm cho việc tính toán khó khăn dễ dàng hơn:

#include iostream

#include cmath

inline float fast_log (phao val)

{

int * const exp_ptr = reinterpret_cast int * (và val);

int x = *exp_ptr;

const int log_2 = ((x 23) và 255) - 128;

x và = ~ (255 23);

x += 127 23;

*exp_ptr = x;

val = (-1.0f/3) * val + 2) * val - 2.0f/3;

trả lại ((val + log_2) * 0.69314718f);

}

độ khó phao (bit int không ký)

{

tĩnh max_body đôi = fast_log (0x00ffff), scaland = fast_log (256);

trở lại exp (max_body - fast_log (bit và 0x00ffffff) + scaland * (0x1d - ((bit và 0xff000000) 24));

}

int main ()

{

std። khó khăn cout (0x1b0404cb) std። endl;

trả về 0;

}

Làm thế nào để bạn đặt một khó khăn khai thác mỏ?

Thợ mỏ sử dụng phần cứng ASIC chuyên dụng để khai thác Bitcoins. Những máy này cực kỳ nhanh và sản xuất tetrahashes mỗi giây. Nó sẽ là vô cùng không thực tế cho một hệ thống để siêng năng kiểm tra mỗi một trong số họ để xem liệu họ có đáp ứng tất cả các điều kiện cần thiết hay không. Điều này đúng theo cấp số nhân đối với các bể khai thác mỏ. Họ không thể kiểm tra tất cả các băm được tạo ra bởi một thợ mỏ bitcoin mỗi giây. Đây là lý do tại sao các bể khai thác sử dụng một khái niệm được gọi là “Share Time”.

Vì vậy, chúng ta hãy tưởng tượng rằng hồ bơi khai thác bitcoin của bạn đã thiết lập thời gian chia sẻ là 5 giây. Điều này có nghĩa là, trung bình, hồ bơi khai thác của bạn sẽ yêu cầu thợ mỏ nộp một phần cho họ mỗi 5 giây.

Làm thế nào chính xác là điều này được thực hiện?

Hồ bơi khai thác bitcoin của bạn sẽ thiết lập một giá trị gọi là Chia sẻ Khó khăn cho mỗi thợ mỏ. Khó khăn chia sẻ của một thợ mỏ tỷ lệ thuận với hashrate cá nhân của họ. Như vậy, cao hơn hashrate của thợ mỏ, độ khó chia sẻ của họ cao hơn. Ý tưởng là thợ mỏ sẽ sử dụng thiết bị của họ để tạo ra tấn băm. Thời điểm họ tìm thấy một băm đáp ứng mục tiêu Chia sẻ Khó khăn, họ sẽ gửi băm vào hồ bơi.

Các thợ mỏ được thưởng như thế nào?

Các thợ mỏ trong hồ bơi được thưởng trên cơ sở “Trả tiền cho mỗi cổ phiếu” (PPS). Trong hệ thống này, các thợ mỏ được khen thưởng cho các cổ phiếu mà họ gửi. Các giá trị của cổ phiếu hoàn toàn phụ thuộc vào mức độ khó khăn của việc khám phá ra cổ phiếu.

Chúng ta hãy lấy một ví dụ để xem cách hoạt động này:

Giả sử bạn là một thợ mỏ với một hashrate cá nhân là 50 TH/s.

Hồ bơi khai thác mà bạn đã tham gia đã đặt Khó khăn Chia sẻ của bạn ở mức 1.000.000.

Khi bạn nhận được cổ phiếu trên 1.000.000, bạn sẽ được thưởng bởi hồ bơi.

Các hồ bơi có thể thay đổi khó khăn của bạn để đảm bảo rằng bạn không gửi cổ phiếu của bạn quá nhanh.

Bây giờ, nếu bạn mua một số thiết bị mới và tăng hashrate của bạn lên 150 TH/s, hồ bơi sẽ làm tăng độ khó của bạn lên 3,000,000. Bạn sẽ nộp cổ phiếu với tỷ lệ tương tự như bạn đã nộp trước đó. Tuy nhiên, bạn sẽ nhận được 3 lần phần thưởng mà bạn đã nhận được trước đó cho số cổ phiếu bạn gửi.

Lý do tại sao hồ bơi đề nghị khó khăn cao hơn cho phần cứng nhanh hơn là để giảm tải mạng trên cả hai hệ thống của thợ mỏ và hồ bơi. Nó cũng làm giảm sự chậm trễ khởi động lại cho phần cứng khai thác mỏ của bạn khi nó chuẩn bị cho các đơn vị làm việc tiếp theo. Đồng thời, các hồ bơi phải cẩn thận không để thiết lập các khó khăn quá cao mà sẽ dẫn đến rất nhiều cổ phiếu cũ.

LƯU Ý: Chia sẻ mục tiêu = 1/Chia sẻ khó khăn

Tầm quan trọng của khó khăn trong sự đồng thuận Nakamoto

Để hiểu được khó khăn quan trọng đối với hệ sinh thái của Bitcoin như thế nào, bạn cần phải biết sự đồng thuận Nakamoto hoạt động như thế nào. Đối với một mạng lưới diện rộng không có thực thể tập trung, các giao thức đồng thuận là cách duy nhất để duy trì bất kỳ hình thức quản trị nào. Các thuật toán đồng thuận truyền thống như Raft không lý tưởng cho việc duy trì một giao thức kinh tế mật mã diện rộng. Đây là lý do tại sao Satoshi Nakamoto, người sáng tạo ra Bitcoin, đã đưa ra sự đồng thuận của Nakamoto. Nguyên lý trung tâm của sự đồng thuận Nakamoto là để tham gia vào hệ thống, người ta phải trả giá. Trong trường hợp chứng minh công việc (POW), tức là, sự đồng thuận của Bitcoin, các thợ mỏ phải trả một mức giá với “công việc”. Công việc, trong trường hợp này, là một lượng lớn năng lượng tính toán mà một thợ mỏ phải chi tiêu để khai thác một Bitcoin. Đây là nơi khó khăn xảy ra. Khó khăn là số liệu làm cho việc khai thác Bitcoin khó khăn, cộng thêm, đây là những gì mà Nakamoto đồng thuận tận dụng để giải quyết vấn đề chi tiêu gấp đôi.

Chi tiêu gấp đôi là gì?

Chi tiêu gấp đôi là lý do tại sao tất cả các nỗ lực trong việc tạo ra một cryptocurrency phi tập trung đã thất bại thảm hại trước Bitcoin. Nói một cách đơn giản, nó là một lỗ hổng có thể cho phép một Bitcoin được chi tiêu nhiều hơn một lần cùng một lúc. Chúng tôi không bao giờ gặp phải vấn đề này trong khi đối phó với tiền mặt vật lý. Sau khi tất cả, nếu bạn đang mua một cái gì đó với một lưu ý $10, bạn không thể đồng thời mua một cái gì đó khác với cùng một lưu ý, đúng không?

Tuy nhiên, một mã thông báo kỹ thuật số có các tập tin kỹ thuật số có thể dễ dàng nhân đôi, dẫn đến chi tiêu gấp đôi không thể tránh khỏi. Như bạn có thể tưởng tượng, chi tiêu gấp đôi có thể có một số tác động tàn phá đối với nền kinh tế của hệ sinh thái:

Thứ nhất, nó làm tăng tổng nguồn cung của các đồng tiền trong hệ sinh thái, điều này làm cho phương trình cung cầu ra khỏi tầm kiểm soát.

Thứ hai, nếu bất cứ ai, bất cứ nơi nào có thể chi tiêu cùng một đồng xu mà không bị hạn chế, nó sẽ làm giảm niềm tin của người dân vào sự thánh thiện của đồng tiền đó.

Bitcoin yêu cầu tất cả các giao dịch phải được bao gồm trong blockchain, mà không thất bại. Điều này đảm bảo rằng bất cứ ai trong mạng có thể theo dõi từng Bitcoin ngay đến nguồn gốc của nó. Mức độ minh bạch cao như vậy đảm bảo không ai có thể chi tiêu gấp đôi mà không nhận thấy toàn bộ mạng. Tuy nhiên, chúng ta hãy nghĩ về một cái gì đó quỷ hơn. Giả sử, ai đó quyết định cướp blockchain bằng cách chia ra và cố gắng tăng gấp đôi chi tiêu tất cả các Bitcoins.

Vậy chuyện gì sẽ xảy ra?

Vâng, nó chỉ ra rằng do khó khăn mạng, số lượng tài nguyên và tiền mà kẻ tấn công sẽ cần phải tiếp quản chuỗi sẽ được cấp số mũ. Như vậy, nó sẽ chỉ đơn giản là không có giá trị kinh tế cho họ để hành động chống lại lợi ích của hệ thống. Đây là cách khó khăn mạng mang lại cho Nakamoto Consensus hỏa lực cần thiết để duy trì an ninh mạng và tính toàn vẹn.

Kết luận - Bitcoin Mining Khó khăn

Chúng tôi hy vọng rằng bạn tìm thấy rất nhiều giá trị trong bài viết này. Nếu bạn có một số nghi ngờ, sau đó cảm thấy tự do để liên hệ với chúng tôi bất cứ lúc nào.

Ameer Rosic
#SerialEntrepreneur, Investor, #Digitalmarketing Adviser and Cofounder of @Blockgks a #blockchain innovation hub

Like what you read? Give us one like or share it to your friends and get +16

0
Hungry for knowledge?
New guides and courses each week
Looking to invest?
Market data, analysis, and reports
Just curious?
A community of blockchain experts to help

Get started today

Already have an account? Sign In