5.4. Mỏ khai thác
Hãy xem xét tính kinh tế của việc trở thành một thợ đào nhỏ. Giả sử bạn là một cá nhân đã chi 6.000 đô la trong số tiền khó kiếm được của mình để mua một giàn khai thác Bitcoin mới, đẹp, sáng bóng. Giả sử rằng hiệu suất là như vậy mà bạn mong đợi để tìm thấy một khối sau mỗi 14 tháng (và hãy nhớ rằng một khối có giá trị khoảng 10.000 đô la vào năm 2015).
Được phân bổ, doanh thu dự kiến của thợ đào của bạn có thể là 400 đô la mỗi tháng khi bạn tính đến điện và các chi phí vận hành khác. Nếu bạn thực sự nhận được séc qua thư mỗi tháng với giá 400 đô la, thì việc mua giàn khai thác sẽ rất hợp lý. Nhưng hãy nhớ rằng khai thác là một quá trình ngẫu nhiên. Bạn không biết khi nào bạn sẽ tìm thấy khối tiếp theo và cho đến khi điều đó xảy ra, bạn sẽ không kiếm được gì.
Phương sai cao
Nếu chúng ta xem xét sự phân bổ của số lượng khối bạn có thể tìm thấy trong năm đầu tiên, thì phương sai là khá cao và con số dự kiến là khá thấp. Bởi vì bạn tìm thấy các khối với tỷ lệ cố định, thấp, không phụ thuộc vào thời gian kể từ khối cuối cùng bạn tìm thấy, nên số khối dự kiến của bạn cũng gần đúng theo phân phối Poisson. Một phân phối Poisson phát sinh nếu bạn có N thử nghiệm độc lập, mỗi thử nghiệm có cơ hội thành công λ/N khi N tiến tới vô hạn. Trong khai thác Bitcoin, mỗi nonce riêng lẻ đã thử thực tế là một thử nghiệm ngẫu nhiên với cơ hội thành công nhỏ, vì vậy N thực sự lớn ngay cả đối với những người khai thác nhỏ và con số gần đúng là tuyệt vời.
Nếu bạn mong đợi tìm được khoảng 1 khối mỗi 14 tháng (phân phối Poisson với λ = 6/7 khối / năm), thì có hơn 40% khả năng là bạn sẽ không tìm thấy khối nào trong năm đầu tiên. Đối với một người khai thác cá nhân, điều này có thể rất tàn khốc. Bạn đã chi hàng nghìn đô la cho thiết bị khai thác, trả nhiều tiền điện để chạy nó và không nhận lại được gì. Có khoảng 36% khả năng bạn sẽ tìm thấy một khối trong năm đầu tiên, điều đó có nghĩa là có thể bạn hầu như không phải cạo, miễn là chi phí điện của bạn không quá cao. Cuối cùng, có một cơ hội nhỏ hơn là bạn sẽ tìm thấy hai hoặc nhiều khối, trong trường hợp đó, bạn có thể kiếm được lợi nhuận tốt (Hình 5.11).
Những con số này chỉ mang tính chất gần đúng, nhưng điểm chính ở đây là mặc dù kỳ vọng là bạn có thể kiếm đủ tiền để thu hồi vốn đầu tư của mình, nhưng phương sai đủ cao để có nhiều khả năng bạn sẽ không kiếm được gì cả. Đối với một thợ đào nhỏ, điều này có nghĩa là khai thác là một canh bạc lớn.
HÌNH 5.11. Sự không chắc chắn trong khai thác. Giả sử rằng tỷ lệ băm toàn cầu là không đổi và thời gian trung bình để tìm thấy một khối là 14 tháng, thì phương sai đối với một người khai thác nhỏ là khá cao.
Mỏ khai thác
Trong lịch sử, khi các doanh nhân nhỏ phải đối mặt với rất nhiều rủi ro, họ đã thành lập các công ty bảo hiểm tương hỗ để giảm thiểu rủi ro đó. Ví dụ, nông dân có thể đồng ý rằng nếu bất kỳ kho thóc của nông dân nào bị thiêu rụi, những người khác sẽ chia sẻ lợi nhuận của họ với nông dân đó. Chúng ta có thể có một mô hình bảo hiểm tương hỗ hoạt động cho những người khai thác Bitcoin nhỏ không?
Một nhóm khai thác chính xác là như vậy—bảo hiểm lẫn nhau cho những người khai thác Bitcoin. Một nhóm thợ đào sẽ tạo thành một nhóm và tất cả đều cố gắng khai thác một khối với người nhận coinbase được chỉ định. Người nhận đó được gọi là người quản lý mỏ. Vì vậy, bất kể ai thực sự tìm thấy khối, người quản lý nhóm sẽ nhận được phần thưởng. Người quản lý nhóm sẽ phân phối doanh thu đó cho tất cả những người tham gia trong nhóm dựa trên mức độ công việc mà mỗi người tham gia đã thực hiện. Tất nhiên, người quản lý mỏ cũng có thể sẽ thực hiện một số hình thức cắt giảm cho dịch vụ quản lý mỏ.
Giả sử mọi người đều tin tưởng người quản lý nhóm, thì phương pháp này hoạt động tốt để giảm phương sai của thợ đào. Nhưng làm thế nào để một người quản lý mỏ biết được mỗi thành viên của mỏ đã đóng góp bao nhiêu công sức? Rõ ràng, người quản lý mỏ không nên đơn giản chỉ lấy lời của mọi người về điều đó, bởi vì mọi người có thể tuyên bố rằng họ đã làm được nhiều hơn những gì họ thực sự làm.
Cổ phần khai thác
Có một giải pháp thanh lịch cho vấn đề này. Người khai thác có thể chứng minh một cách xác suất mức độ công việc họ đang làm bằng cách xuất ra các cổ phiếu hoặc các khối gần hợp lệ. Giả sử mục tiêu là một số bắt đầu bằng 67 số không. Giá trị băm của một khối phải thấp hơn mục tiêu để khối hợp lệ. Trong quá trình tìm kiếm một khối như vậy, người khai thác sẽ tìm thấy một số khối có mã băm bắt đầu bằng rất nhiều số 0, nhưng không hoàn toàn 67. Người khai thác có thể hiển thị các khối gần như hợp lệ này để chứng minh rằng họ thực sự đang làm việc (Hình 5.12). Một lượt chia sẻ có thể yêu cầu 40 hoặc 50 số không, tùy thuộc vào loại người khai thác mà nhóm được hướng tới.
Người quản lý nhóm cũng sẽ điều hành một nút Bitcoin thay mặt cho những người tham gia, thu thập các giao dịch và tập hợp chúng thành một khối. Người quản lý sẽ bao gồm địa chỉ của riêng cô ấy trong giao dịch coinbase và gửi khối cho tất cả những người tham gia trong nhóm. Tất cả những người tham gia nhóm làm việc trên khối này và họ chứng minh rằng họ đã làm việc trên nó bằng cách gửi chia sẻ.
HÌNH 5.12. Cổ phần khai thác. Các thợ đào liên tục cố gắng tìm các khối có hàm băm bên dưới mục tiêu. Trong quá trình này, họ sẽ tìm thấy các khối khác có hàm băm chứa ít số 0 hơn—nhưng vẫn đủ hiếm để chứng minh rằng họ đã làm việc chăm chỉ. Trong hình này, các băm tô bóng là chia sẻ, trong khi băm đậm là từ một khối hợp lệ (cũng là một chia sẻ hợp lệ).
Khi một thành viên của nhóm tìm thấy một khối hợp lệ, anh ta sẽ gửi nó cho người quản lý nhóm, người sẽ phân phối phần thưởng tương ứng với khối lượng công việc đã hoàn thành. Người khai thác thực sự tìm thấy khối không được thưởng đặc biệt, vì vậy nếu một người khai thác khác làm nhiều việc hơn, người khai thác sau này sẽ được trả nhiều hơn, mặc dù anh ta không phải là người tìm thấy khối hợp lệ (Hình 5.13).
Có một vài tùy chọn về cách người quản lý nhóm tính toán chính xác số tiền phải trả cho mỗi người khai thác dựa trên số cổ phần họ gửi. Chúng ta xem xét hai trong số những cái phổ biến, đơn giản hơn. Có nhiều kế hoạch khác cũng được sử dụng, nhưng chúng minh họa sự cân bằng giữa các kế hoạch phần thưởng.
Trả cho mỗi cổ phiếu
Trong mô hình trả cho mỗi cổ phần, người quản lý nhóm sẽ trả một khoản phí cố định cho mỗi phần trên một độ khó nhất định cho khối mà nhóm đang làm việc. Trong mô hình này, các thợ đào có thể gửi cổ phiếu của họ cho người quản lý nhóm ngay lập tức và được trả tiền mà không cần đợi nhóm tìm thấy khối.
Theo một số cách, mô hình trả cho mỗi cổ phiếu là tốt nhất cho các thợ đào. Họ được đảm bảo một số tiền nhất định mỗi khi tìm được cổ phần. Các nhà quản lý nhóm về cơ bản hấp thụ tất cả rủi ro, vì họ trả phần thưởng ngay cả khi không tìm thấy khối. Tất nhiên, do rủi ro tăng lên, trong mô hình pay-per-share, người quản lý pool có thể sẽ tính phí cao hơn so với các mô hình khác.
Một vấn đề với mô hình trả cho mỗi chia sẻ là những người khai thác không thực sự có bất kỳ động cơ nào để gửi các khối hợp lệ cho người quản lý nhóm. Có nghĩa là, họ có thể loại bỏ các khối hợp lệ nhưng vẫn được trả phần thưởng tương tự, điều này sẽ gây ra tổn thất lớn cho nhóm. Một người quản lý nhóm độc hại có thể tấn công một nhóm cạnh tranh theo cách này để cố gắng đuổi họ ra khỏi hoạt động kinh doanh.
HÌNH 5.13. Phần thưởng khai thác. Ba người tham gia trong hình đều đang làm việc trên cùng một khối. Họ được thưởng tương xứng với khối lượng công việc đã hoàn thành. Mặc dù người khai thác ở bên phải là người tìm thấy khối hợp lệ, người khai thác ở bên trái được trả nhiều hơn, vì người khai thác này đã làm nhiều việc hơn. Không có (thường) không có tiền thưởng nào được trả cho người khai thác thực sự tìm thấy khối.
Theo tỷ lệ
Trong mô hình tỷ lệ, thay vì trả một khoản phí cố định cho mỗi cổ phiếu, số tiền thanh toán phụ thuộc vào việc liệu nhóm có thực sự tìm thấy một khối hợp lệ hay không. Mỗi khi một khối hợp lệ được tìm thấy, phần thưởng từ khối đó sẽ được phân phối cho các thành viên tỷ lệ với số lượng công việc họ thực sự đã làm.
Trong mô hình tỷ lệ, các thợ đào vẫn phải chịu một số rủi ro tỷ lệ thuận với rủi ro của nhóm nói chung. Nhưng nếu pool đủ lớn, phương sai của tần suất pool tìm thấy các khối sẽ khá thấp. Các khoản thanh toán theo tỷ lệ cung cấp rủi ro thấp hơn cho người quản lý nhóm, vì họ chỉ thanh toán khi tìm thấy các khối hợp lệ. Điều này cũng giải quyết vấn đề đã được đề cập đối với mô hình trả cho mỗi chia sẻ, vì những người khai thác được khuyến khích gửi các khối hợp lệ mà họ tìm thấy, vì điều đó kích hoạt doanh thu quay trở lại với họ.
Mô hình tỷ lệ đòi hỏi người quản lý nhóm phải làm việc nhiều hơn một chút để xác minh, tính toán và phân phối phần thưởng so với mô hình trả cho mỗi cổ phiếu cố định.
Pool Hopping
Ngay cả khi chỉ với hai loại nhóm này, chúng ta có thể thấy rằng các thợ đào có thể được khuyến khích chuyển đổi giữa các nhóm vào những thời điểm khác nhau. Để thấy điều này, hãy xem xét rằng một nhóm tỷ lệ thuần túy sẽ trả một cách hiệu quả số tiền lớn hơn trên mỗi cổ phiếu nếu một khối được tìm thấy nhanh chóng, vì nó luôn trả phần thưởng cho một khối bất kể nó đã bao lâu kể từ khi khối cuối cùng được tìm thấy.
Một người khai thác thông minh có thể thử khai thác trong một nhóm tỷ lệ sớm trong chu kỳ (ngay sau khi khối trước đó được tìm thấy), trong khi phần thưởng trên mỗi cổ phiếu tương đối cao, chỉ để chuyển (“hop”) sang nhóm trả cho mỗi cổ phiếu sau đó trong chu kỳ, khi phần thưởng mong đợi từ việc khai thác trong nhóm tỷ lệ tương đối thấp. Do đó, các nhóm tỷ lệ không thực sự thiết thực. Các kế hoạch phức tạp hơn, chẳng hạn như “trả cho mỗi N cổ phiếu cuối cùng được gửi” phổ biến hơn, nhưng ngay cả những kế hoạch này cũng tuân theo hành vi nhảy gộp tinh vi. Làm thế nào để thiết kế một sơ đồ phần thưởng cho nhóm khai thác không dễ bị thao túng như vậy vẫn là một vấn đề còn bỏ ngỏ.
Lịch sử và tiêu chuẩn hóa
Các nhóm khai thác lần đầu tiên bắt đầu vào khoảng năm 2010 trong kỷ nguyên khai thác Bitcoin của GPU. Chúng ngay lập tức trở nên phổ biến vì lý do rõ ràng là chúng đã giảm phương sai cho các thợ đào tham gia. Bây giờ chúng đã trở nên khá tinh vi. Nhiều giao thức tồn tại để làm thế nào để chạy các nhóm khai thác và thậm chí đã có ý kiến cho rằng các giao thức nhóm khai thác này nên được tiêu chuẩn hóa như một phần của chính Bitcoin. Cũng giống như có một giao thức Bitcoin để chạy mạng ngang hàng, các giao thức nhóm khai thác cung cấp một API giao tiếp (giao diện lập trình ứng dụng) để người quản lý nhóm gửi cho tất cả các thành viên thông tin chi tiết của khối để làm việc và cho các thợ đào gửi trả lại cho người quản lý nhóm các chia sẻ mà họ đang tìm thấy. Giao thức getblocktemplate chính thức được chuẩn hóa dưới dạng Đề xuất cải tiến Bitcoin (BIP). Một giao thức cạnh tranh, Stratum, hiện đang phổ biến hơn trong thực tế và là một BIP được đề xuất. Không giống như bản thân giao thức Bitcoin, chỉ có một chút bất tiện nhỏ là có nhiều giao thức nhóm khai thác không tương thích. Mỗi nhóm có thể chỉ cần chọn giao thức họ thích và thị trường có thể quyết định giao thức nào ưu việt hơn.
Một số phần cứng khai thác thậm chí còn hỗ trợ các giao thức này ở cấp phần cứng, điều này cuối cùng sẽ hạn chế phần nào tính linh hoạt phát triển của chúng. Tuy nhiên, điều này làm cho việc mua một phần cứng khai thác và tham gia nhóm trở nên đơn giản. Bạn chỉ cần cắm nó vào tường—cả điện và kết nối mạng của bạn—chọn một nhóm và sau đó phần cứng khai thác sẽ bắt đầu ngay lập tức nhận hướng dẫn từ nhóm, khai thác và chuyển đổi điện của bạn thành tiền.
51 Phần trăm Mỏ Khai thác
Tính đến năm 2015, gần như tất cả các thợ đào đang khai thác thông qua các nhóm; rất ít thợ đào khai thác solo nữa. Vào tháng 6 năm 2014, GHash.IO, nhóm khai thác lớn nhất, đã lớn đến mức nó thực sự chiếm hơn 50% toàn bộ công suất của mạng Bitcoin (Hình 5.14a). Về cơ bản, GHash đã cung cấp một thỏa thuận tốt cho các thợ đào tham gia mà đa số đều muốn tham gia.
Đây là điều mà cộng đồng đã lo sợ trong một thời gian dài, và nó đã dẫn đến phản ứng dữ dội đối với GHash. Đến tháng 8, thị phần của GHash đã giảm theo thiết kế, do nhóm này ngừng chấp nhận những người tham gia mới (Hình 5.14b). Tuy nhiên, hai nhóm khai thác đã kiểm soát khoảng một nửa sức mạnh trong mạng.
Đến tháng 4 năm 2015, tình hình có vẻ rất khác và ít tập trung hơn, ít nhất là bề ngoài (Hình 5.14c). Khả năng một nhóm có được 51% vẫn là một mối quan tâm trong cộng đồng, nhưng công khai tiêu cực mà GHash nhận được đã khiến các nhóm không thể trở nên quá lớn kể từ đó. Khi các nhóm khai thác và nhóm khai thác mới tham gia vào thị trường và các giao thức chuẩn hóa đã làm tăng khả năng chuyển đổi dễ dàng giữa các nhóm cho các thợ đào, thị phần của các nhóm khác nhau vẫn khá hay thay đổi. Vẫn còn phải xem các mỏ sẽ phát triển như thế nào trong thời gian dài.
HÌNH 5.14. Sức mạnh băm bởi nhóm khai thác. (A) Tháng 6 năm 2014. (B) Tháng 8 năm 2014. (C) Tháng 4 năm 2015. Nguồn: blockchain.info.
Tuy nhiên, điều đáng chú ý là các nhóm khai thác có thể đang che giấu sự tập trung thực tế của sức mạnh khai thác trong tay của một số tổ chức khai thác lớn, có thể tham gia vào nhiều nhóm khai thác đồng thời để che giấu kích thước thực của chúng. Hoạt động này được gọi là băm rửa (laundering hashes). Vẫn chưa biết thực sự kiểm soát vật lý tập trung của phần cứng khai thác như thế nào và các nhóm khai thác khiến điều này khá khó xác định.
Các mỏ khai thác có mang lại lợi ích không?
Lợi thế của các nhóm khai thác là chúng làm cho việc khai thác dễ dự đoán hơn đối với những người tham gia và chúng giúp những người khai thác nhỏ hơn tham gia vào trò chơi dễ dàng hơn. Nếu không có các nhóm khai thác, phương sai sẽ khiến việc khai thác không khả thi đối với nhiều thợ đào nhỏ.
Một lợi thế khác của các nhóm khai thác là vì có một người quản lý nhóm trung tâm đang ngồi trên mạng và tập hợp các khối, nên việc nâng cấp mạng trở nên dễ dàng hơn. Nâng cấp phần mềm mà trình quản lý nhóm khai thác đang chạy cập nhật hiệu quả phần mềm mà tất cả các thành viên nhóm đang chạy.
Tất nhiên, nhược điểm chính của các nhóm khai thác là chúng là một hình thức tập trung. Đó là một câu hỏi mở về việc các nhà khai thác của một nhóm khai thác lớn thực sự có bao nhiêu quyền lực. Về lý thuyết, các thợ đào có thể tự do rời khỏi một nhóm nếu nó được coi là quá mạnh, nhưng không rõ tần suất các thợ đào làm như vậy trong thực tế.
Một nhược điểm khác của các nhóm khai thác là chúng làm giảm số lượng người tham gia thực sự đang chạy một nút Bitcoin xác thực đầy đủ. Trước đây, tất cả các thợ đào, cho dù nhỏ đến đâu, đều phải chạy nút xác thực đầy đủ của riêng họ. Tất cả đều phải lưu trữ toàn bộ chuỗi khối và xác thực mọi giao dịch. Bây giờ, hầu hết các thợ đào giảm tải nhiệm vụ đó cho người quản lý nhóm của họ. Đây là lý do chính, như chúng ta đã đề cập trong Chương 3, số lượng các nút đã được xác thực đầy đủ thực sự có thể đang giảm trong mạng Bitcoin.
Nếu bạn lo lắng về mức độ tập trung được giới thiệu bởi các nhóm khai thác, bạn có thể hỏi: Chúng ta có thể thiết kế lại quy trình khai thác để chúng ta không có bất kỳ nhóm nào và mọi người phải tự khai thác không? Chúng ta sẽ xem xét câu hỏi này trong Chương 8.