Logo Zephyrnet

Tìm hiểu kiến ​​thức cơ bản về blockchain - Phần 2: “Khai thác”, “Thợ đào” và Thuật toán Bằng chứng Công việc

Ngày:

hình ảnh

Phần thứ hai của loạt bài này mô tả thuật toán Proof of Work (PoW).

Sau khi đọc bài viết này, bạn sẽ có hiểu biết cơ bản về một cơ chế đồng thuận quan trọng đằng sau các blockchain như Bitcoin, điều này sẽ giúp bạn hiểu các khái niệm được nêu trong các bài viết sau của loạt bài này.

Điều kiện tiên quyết

'Khai thác' là gì và tại sao nó lại hữu ích? 

Giống như các dòng trên một trang được thiết kế để chứa đầy các từ, một khoảng trống trong mỗi khối trong chuỗi khối được thiết kế để chứa đầy thông tin giao dịch. Một trang có giới hạn không gian (số hàng hoặc kích thước giấy) giống như một khối trong chuỗi khối (số byte tối đa trên mỗi khối). 

  • Một khối có thể có kích thước tuần tự hóa tối đa là 1 megabyte dữ liệu không phải segwit, trong đó các khối có thể có tổng cộng tối đa 4 triệu đơn vị trọng lượng dữ liệu (đơn vị trọng lượng cũng có thể được chuyển đổi thành “vbyte” với tỷ lệ 4 đơn vị trọng lượng mỗi vbyte).

Khi hết một tờ giấy, nhưng một câu chuyện vẫn chưa kết thúc, nhà văn phải viết tiếp trên một tờ giấy mới. Các blockchains hoạt động tương tự: khi một khối đầy, nó phải được ký và sau đó được nối bằng mật mã với khối trước đó, vì vậy chúng lần lượt ngồi vào nhau, giống như các toa tàu nối tiếp nhau phía sau đầu máy. Chuỗi này được thực hiện bằng cách thêm thông tin vào tiêu đề khối của một khối mới bởi các thợ mỏ, mà bạn có thể coi đó là cách đặt tên cho khối. Những người khai thác này về cơ bản cạnh tranh để giành quyền đặt tên cho các khối mới - xem Tiêu đề khối.

  • Khai thác, thợ đào và các nút: Khai thác là quá trình các giao dịch blockchain được xác thực và đặt tên các khối dựa trên PoW mới, sử dụng nhiều loại bộ xử lý khác nhau. Những người làm điều này được gọi là thợ mỏ. Trong những ngày đầu của blockchain (2015), rất nhiều thợ đào đã thiết lập một nút cục bộ, do đó tạo ra hiệu quả cần thiết của việc phân quyền. Ngày nay (năm 2021), nhiều thợ đào độc lập kết nối với các nhóm và không cần vận hành các nút của riêng họ. Nhiều nhà khai thác nút không khai thác. Một nút không tương đương với một máy chủ không phải blockchain nhưng đảm nhiệm các nhiệm vụ tương tự. Blockchain được tập hợp bởi một mạng lưới các nút, chạy phiên bản phần mềm blockchain của riêng chúng, tuân theo một cách xác định các quy tắc để đạt được cùng một trạng thái trên tất cả các nút khác trong mạng.

Mỗi khối (được khai thác) hiện tại có tên do các thợ đào đặt và chúng tôi sẽ gọi mã nhận dạng này như một hàm băm tiêu đề khối. Hàm băm tiêu đề khối hay còn gọi là “mã băm khối” là hàm băm SHA256 kép của tiêu đề khối và được sử dụng để xác định khối trước đó trong khối tiếp theo được khai thác. Trong thế giới của blockchain, mọi thứ đều được đặt tên bằng một mã chữ và số cụ thể được gọi là “băm”, là sự kết hợp của các chữ cái và số tạo thành một chuỗi.

Trong ngữ cảnh blockchain, các hàm băm:

  • Đại diện cho một địa chỉ ví của người dùng.
  • Lưu trữ thông tin về các giao dịch ngang hàng (P2P) giữa một số người dùng blockchain (giao dịch không phải lúc nào cũng giữa những người dùng. Một giao dịch có thể từ địa chỉ này sang địa chỉ khác do cùng một người dùng sở hữu hoặc từ một người dùng đến một hợp đồng thông minh . vân vân).
  • Được sử dụng để đặt tên cho các khối blockchain (chẳng hạn như Bitcoin).

Vì vậy, thay vì một tên tiêu chuẩn, chẳng hạn như John Doe, blockchain sử dụng các đầu vào của mật mã một chiều toán học băm chức năng.

Đây là tổng quan nhanh về hàm băm:

  • Họ bảo vệ tính toàn vẹn của dữ liệu bằng cách ẩn và mã hóa thông điệp gốc thành một chuỗi duy nhất, và do đó, theo một cách nào đó, tạo ra yếu tố của các bút danh hay nhất trên blockchain trong khi vẫn cho phép mọi thứ vẫn minh bạch.
  • Chúng đại diện cho lượng dữ liệu đầu vào được nén, chẳng hạn, 32 byte (ngay cả khi tin nhắn gốc dài 2 triệu byte). Nén dữ liệu được cung cấp bởi chức năng nén của hàm băm cụ thể. Số lượng byte dữ liệu được nén xuống bởi một hàm băm tùy thuộc vào hàm. Thuật toán băm SHA-1 tạo ra một chuỗi 20 byte.
  • Chúng là đầu ra của các hàm băm, chẳng hạn như: SHA-1, SHA-2, MD5

Những gì họ đại diện cho PoW:

  • Hàm băm là các hàm một chiều - Bạn có thể tạo ra một hàm băm và hiển thị thông báo ban đầu của nó nếu và chỉ khi bạn có các đầu vào chính xác.
  • Trong trường hợp của PoW, đầu vào cho bằng chứng công việc là mọi thứ được yêu cầu để tạo ra bằng chứng công việc hợp lệ: tiêu đề khối (băm), giao dịch (băm) và nonce (bắt buộc đối với khai thác liên quan đến PoW tạo ra băm ).

Để biết thêm về hàm băm, hãy chờ phần tiếp theo của loạt bài này: Hàm băm.

PoW Liên kết các khối với nhau

hình ảnh

Tiêu đề của mỗi khối chứa thông tin về khối trước đó (ngoại trừ khối gốc, khối đầu tiên từng được khai thác trong chuỗi khối) trong một chuỗi các khối tuyến tính tạo thành một chuỗi khối. Điều này có nghĩa là, ví dụ, khối thứ ba có thông tin được mã hóa trong tiêu đề khối của nó liên kết nó với khối thứ hai trong chuỗi.

Hãy xem ví dụ về khối Bitcoin này và chú ý đến thuộc tính “beforeblockhash”.

{
    "size" : 43560,
    "version" : 2,
    "previousblockhash" :
        "00000000000000027e7ba6fe7bad39faf3b5a83daed765f05f7d1b71a1632249",
    "merkleroot" :
        "5e049f4030e0ab2debb92378f53c0a6e09548aea083f3ab25e1d94ea1155e29d",
    "time" : 1388185038,
    "difficulty" : 1180923195.25802612,
    "nonce" : 4215469401,
    "tx" : [
        "257e7497fb8bc68421eb2c7b699dbab234831600e7352f0d9e6522c7cf3f6c77",
 #[... other transactions omitted ...]
        "05cfd38f6ae6aa83674cc99e4d75a1458c165b7ab84725eda41d018a09176634"
    ]
}

Điều này là cần thiết để làm cho chuỗi khối Bitcoin có khả năng phục hồi và dữ liệu giao dịch, được ghi lại trong các khối này, được an toàn. Tiêu đề khối của khối số 3 là sự kết hợp của băm tiêu đề khối số 2, được đặc trưng trong một khối dưới thẻ “beforeblockhash”, được trộn với một bộ ký tự duy nhất mà chúng tôi gọi là nonce (số chỉ được sử dụng một lần). Nonce là nước sốt bí mật được áp dụng trong quá trình đặt tên cho một khối blockchain Bitcoin và là thứ mà các thợ đào đang khai thác (sẽ nói thêm về điều này ở phần sau của chương này). Ghép nối hai khối liền kề với nhau bằng cách sử dụng tiêu đề khối của chúng giống như các khối nắm giữ “bàn tay kỹ thuật số” để tạo ra một chuỗi mạnh. 

Điều này cũng đảm bảo rằng Bitcoin ngày càng trở nên đàn hồi hơn theo thời gian. Chuỗi khối càng dài thì các khối cũ càng được bảo vệ tốt hơn.

Ví dụ:

Nếu ai đó cố gắng sửa đổi khối số 2, nó sẽ dẫn đến sự thay đổi của khối khối số 3 và tất cả các tiêu đề khối tiếp theo, vì chúng được kết nối bằng thông tin “beforeblockhash”. Như bạn có thể nhớ từ video giới thiệu, sự thay đổi trong khối số 2 sẽ cần được theo sau bằng cách khai thác lại tất cả các khối tiếp theo.

Tương tự 1 - Kim tự tháp Ai Cập

Chúng ta biết rằng blockchain là một cấu trúc tuyến tính, nhưng hãy tưởng tượng một người đàn ông đang cố gắng kéo một khối đá từ giữa kim tự tháp ở Ai Cập. Trọng lượng của tất cả các cấp trên sẽ bị hạn chế nghiêm trọng cho một hành động như vậy. Như đã nhắc lại ở đoạn trước, trên thực tế, khối gần đây nhất là khối dễ thay đổi / loại bỏ nhất.

Để tiếp tục với phép ẩn dụ kim tự tháp: hãy tưởng tượng bạn đang xây một kim tự tháp từ mặt đất lên. Khối cuối cùng bạn đặt là khối dễ dàng nhất để loại bỏ, phải không? Bởi vì nó chưa có bất kỳ trọng lượng nào được xây dựng trên nó. Tương tự như một người nào đó muốn loại bỏ một khối đá của kim tự tháp để thay đổi cấu trúc của nó, gây ra thiệt hại hoặc chỉ vào bên trong và ăn cắp, phương pháp ẩn tương tự sẽ được lựa chọn bởi một người nào đó đang cố gắng tạo lại một phần của chuỗi khối.

Cách tiếp cận này rất có thể sẽ được thực hiện một cách bí mật và không ai phát hiện ra nó. Trong vấn đề gian lận blockchain, thời điểm mà “ai đó” sẽ sẵn sàng tiết lộ phiên bản chuỗi được chuẩn bị riêng của họ (và bạn biết về điều này từ Phần tấn công 51%) sẽ là khi họ chắc chắn rằng chuỗi của họ nặng đủ để vượt qua chuỗi hiện tại. Điều này sẽ ngay lập tức gây ra một cuộc tổ chức lại blockchain. Tùy thuộc vào độ dài của tổ chức lại, nó chắc chắn có thể thu hút sự chú ý của mọi người!

Tương tự 2 - Dog-cọc các khối

Khối # 3 đóng cọc trên đầu của khối # 2 và khối # 4 đóng cọc ở trên cùng của khối 3, v.v. Điều này làm cho đống chó ngày càng nặng hơn với mỗi khối mới được thêm vào, làm cho nó càng ngày càng khó thay đổi một khối khi nó bị chôn vùi sâu hơn (vì lần đầu tiên bạn phải xóa, sau đó thêm lại, tất cả các khối ở trên cùng của khối mà bạn đang cố gắng thay đổi).

PoW và cách đặt tên cho một khối Bitcoin mới

Để chứng minh việc thêm một khối mới vào chuỗi khối, chúng tôi sẽ sử dụng Bitcoin làm ví dụ. Lưu ý rằng các chuỗi khác hoạt động khác nhau! 

Trước khi một khối có thể được kết nối với khối trước đó và tạo thành 'chuỗi khối', những người khai thác phải tìm một "tên" thích hợp cho khối mới. Nó tương tự như một nhà báo viết một bài đăng trên blog, vì việc tìm kiếm một tiêu đề thích hợp cho bài báo đôi khi có thể là một thách thức (các tác giả Wiki biết rất rõ điều này). Tuy nhiên, tìm một cái tên thích hợp cho khối còn khó hơn.

Cho đến nay, chúng tôi có ba yếu tố:

  • Một khối mới chưa có dấu (chưa đặt tên) cần được đặt tên bằng tiêu đề khối
  • Tiêu đề khối của khối trước đó
  • Sự cần thiết phải thiết lập chính xác khâm mạng

Kết hợp nonce chính xác với tiêu đề khối của khối trước đó sẽ giải được câu đố và tạo ra tên của khối mới.

Mật mã của blockchain 'một chiều`hàm băm thực hiện nonce + phần còn lại của tiêu đề khối cho khối hiện tại tính toán để hình thành tiêu đề khối (tên) khối mới này.

Tuy nhiên, có một yêu cầu nữa khiến toàn bộ quá trình này trở nên khó khăn. Kết quả của hàm băm này, là một chuỗi chữ và số dài 32 ký tự, cần bắt đầu bằng các ký tự cụ thể.

Ví dụ, với ba số không đứng đầu tuần tự (tiền tố 000).

Quá trình Poisson

hình ảnh

Việc giải câu đố được đề cập ở trên có vẻ giống như "đoán không cần bạo lực", tiếp theo là ghép nối nonce với phần còn lại của tiêu đề khối cho khối hiện tại để thu được kết quả băm thỏa mãn về mặt toán học.

Mặc dù nghe có vẻ như là sự ngẫu nhiên thuần túy tạo ra những con số hỗn độn, nhưng thực sự có một nguyên tắc toán học đằng sau điều này được gọi là Quá trình Poisson, tách PoW khỏi sự ngẫu nhiên hoàn toàn.

Quá trình Poisson hoạt động với Phân phối rời rạc Poisson (đối với tổng số kết quả từ 1 đến vô cùng) để mô tả số lượng sự kiện xảy ra trong một khoảng thời gian cố định hoặc khu vực cơ hội. Một tính năng chính của phân phối này là nó chỉ yêu cầu một tham số: số lượng sự kiện dự kiến ​​trên mỗi khoảng thời gian, lambda.

Có những lý do tinh tế nhưng quan trọng tại sao các khối có thời gian nhắm mục tiêu (mười phút) để khai thác và các điều chỉnh độ khó (lên và xuống) trong khai thác khối blockchain.

Thông tin này cho người khai thác biết rằng một khối mới cần được thêm vào trong một khoảng thời gian nhất định. Người khai thác muốn tìm càng nhiều khối càng tốt, càng nhanh càng tốt, để họ có thể kiếm được nhiều phần thưởng khối nhất, miễn là có có lãi.

Các điều chỉnh độ khó giúp họ kiểm soát bằng cách liên tục điều chỉnh độ khó để nhắm mục tiêu thời gian khối mười phút, khó hơn nếu các khối trong giai đoạn khó khăn cuối cùng mất trung bình ít hơn mười phút để được khai thác và ít khó hơn nếu các khối trong giai đoạn khó khăn cuối cùng mất trung bình hơn mười phút để được khai thác.

Tổng sức mạnh băm của mạng là một thuộc tính của mạng blockchain giống nhau đối với tất cả các thợ đào tham gia.

  • Các thợ mỏ đang giải quyết cùng một vấn đề cùng một lúc; để nói rõ rằng họ đang giải quyết vấn đề một cách riêng biệt, cạnh tranh với nhau (ngoại trừ những người khai thác là một phần của cùng một nhóm khai thác).

Tác vụ hiện tại có thể được giải quyết bằng cách cung cấp tiêu đề khối hợp lệ mới cho khối mới.

Hàm băm để giải quyết tên khối mới

Đầu ra của hàm băm được thiết kế để tạo ra đầu ra giống như một chuỗi ký tự được tạo ngẫu nhiên, nhưng không có cái gọi là ngẫu nhiên trong hàm băm.

Sovryn Dojo mô tả hàm băm và hàm băm chi tiết hơn trong một tập phim trong tương lai. Chúng ta hãy xem ví dụ sau, nơi chúng ta sẽ chuyển ba số thành một hàm băm mật mã để cung cấp cho bạn một ý tưởng chung.

Khi đó, hiện tượng bạn có thể thấy trong Hình 1 dưới đây được gọi là hiệu ứng Avalanche. Có một thực tế là ngay cả một chuỗi ký tự đơn giản hơn cũng được mã hóa thành một đầu ra dài cả chữ và số.

Bây giờ, hãy tưởng tượng tất cả mật khẩu của bạn sẽ an toàn như thế nào nếu mỗi mật khẩu trông như thế này? Mặt khác, chúng không dễ nhớ. Điều tiếp theo cần đề cập với hàm băm là một sự thay đổi chữ số đơn giản của đầu vào sẽ thay đổi hoàn toàn đầu ra băm cuối cùng. Xem hình bên dưới:

hình ảnh

Hình 1: Lưu ý rằng ngay cả một thay đổi đơn giản từ 001 thành 010 cũng sẽ tạo ra một đầu ra hoàn toàn khác. Nếu ai đó sửa đổi một bit duy nhất trong khối Bitcoin, nó sẽ gây ra hiệu ứng tuyết lở làm thay đổi hoàn toàn diện mạo của băm.

Giả sử rằng thay đổi đó không hợp lệ (có thể là gian lận) hoặc thay đổi đó bị áp lực bởi một chuỗi khối hợp lệ khó hơn. Việc thay đổi băm sau đó sẽ khiến trạng thái khối hiện tại được gắn nhãn là không hợp lệ, dẫn đến việc từ chối hoạt động gian lận. Điều này là do nhiều bản sao của blockchain, được lưu trữ trong các nút blockchain khác (máy chủ), sẽ không sở hữu hoạt động băm này trong chuỗi của chúng, vì vậy sự đồng thuận mạnh mẽ của nhiều người cuối cùng sẽ từ chối chuỗi của nút bị lỗi duy nhất.

  • Node: Một máy chủ hoặc thiết bị lưu trữ lưu trữ toàn bộ dữ liệu chuỗi khối và chạy một phần mềm ứng dụng khách chuỗi khối, sử dụng tất cả dữ liệu giao dịch và chuỗi khối để kiểm tra xem chúng có tuân thủ các quy tắc xác thực khối hay không.

Trong ví dụ này, chúng tôi đã bỏ qua việc sử dụng nonce (nhưng sẽ được đề cập trong Hình 2) được thêm vào đầu vào trong quá trình 'khai thác'. Trên thực tế, các thợ đào thay thế đầu vào từ ví dụ này bằng phần còn lại của tiêu đề khối cho khối hiện tại. Sau đó, sử dụng quy trình “thử và sai”, họ tìm thấy một băm mật mã có tiền tố là ba số không:

00019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f 

Bây giờ, nếu bạn muốn đi sâu hơn xuống lỗ thỏ để biết thêm về những số XNUMX ở đầu này, hãy xem video này của George Levy: “Tại sao có quá nhiều Zeros trong một khối Bitcoin băm?”.

Tóm tắt đặt tên khối chuỗi khối

Những gì người khai thác cần làm bây giờ là đoán một chuỗi chữ và số bằng quy trình Poisson, sau khi trộn với phần còn lại của tiêu đề khối cho khối hiện tại, cung cấp một hàm băm mới kết thúc bằng ba số không - điều này tùy thuộc vào thời gian và khó khăn do trạng thái hiện tại của mạng blockchain.

Khả năng một người khai thác sẽ thành công với dự đoán đầu tiên của họ giống như việc tìm thấy một hạt cát nhỏ cụ thể trên sa mạc Sahara. Nó giống như việc trúng xổ số với hàng tỷ người tham gia. Đó là lý do tại sao các thợ đào cần phải đoán nhiều biến thể, rất nhanh chóng.

Sau khi tất cả, nó là một cuộc thi rất bổ ích. Người khai thác đoán đúng nonce sẽ tạo ra một tên mới cho khối dưới dạng băm tiêu đề khối và ký khối bằng tên này. Các khối đã ký có thể được thêm vào một chuỗi tuyến tính của các khối khác và tạo ra chuỗi khối. Thật xuất sắc, người khai thác đã ký một khối và nhận được 6.25 bitcoin như một phần thưởng cho sự chăm chỉ của họ.

Từ đây, có thể dễ dàng suy ra tại sao quá trình này được gọi là thuật toán Proof of Work. Phương pháp tạo ra các số ngẫu nhiên để giải một phương trình được gọi là brute force nâng cao các nguyên tắc toán học của hiệu ứng Poisson. Và đó là những gì các thợ mỏ làm.

Họ sử dụng tính vũ phu, khả năng đoán băm để giải câu đố trong thời gian dành riêng. Việc phỏng đoán này đòi hỏi một lượng sức mạnh tính toán phi thường (công việc) và tạo ra nhãn Proof of Work nổi tiếng.

PoW như một cơ chế điều khiển Sybil

Các cuộc tấn công Sybil là gót chân Achilles cho các giao thức phi tập trung trong đó kẻ tấn công phá hoại hệ thống danh tiếng của dịch vụ mạng bằng cách tạo ra một số lượng lớn các danh tính giả và sử dụng chúng để đạt được ảnh hưởng lớn không tương xứng.

  • Sybil Attacks chạy nhiều nút độc hại trên một mạng mà sau đó có thể từ chối cho phép các khối mới tham gia vào một chuỗi khối.
  • Không thay đổi điều này đối với Cuộc tấn công 51%, cho phép các thực thể độc hại giữ lại phần lớn quyền kiểm soát mạng và sử dụng nó để hoàn nguyên lịch sử giao dịch của khối mới nhất để che dấu vết sau khi thực hiện chi tiêu gấp đôi. (Chủ đề này sẽ được đề cập trong phần 4: 51%)

Thành thật mà nói, thuật toán PoW không ngăn chặn các cuộc tấn công Sybil. Tuy nhiên, PoW theo thiết kế khiến một cuộc tấn công Sybil trở nên rất tốn kém và cực kỳ không thực tế đối với kẻ tấn công bằng cách áp dụng một bộ quy tắc cho quá trình tạo ra một khối mới. Việc bảo vệ PoW thực sự dựa vào chi phí trả trước để ngăn chặn các cuộc tấn công của Sybil.

Hãy chạy qua một ví dụ với Bitcoin:

Quy tắc bảo vệ số 1

  • Khả năng tạo khối phải tỷ lệ thuận với tổng sức mạnh xử lý của cơ chế Proof of Work. Điều đó có nghĩa là kẻ tấn công sẽ thực hiện một lượng công việc tính toán không tùy tiện và bằng nhau cần thiết để tạo khối mới (rất khó và tốn kém đối với kẻ tấn công), do đó sẽ được thưởng. Khai thác Bitcoin là một cuộc cạnh tranh rất khốc liệt được thiết kế để thúc đẩy những người khai thác Bitcoin trung thực.

Quy tắc bảo vệ số 2

  • Mọi danh tính Sybil phải thực hiện nhiều công việc như mọi danh tính trung thực, do đó làm cho một cuộc tấn công Sybil cực kỳ tốn kém.

Sự lặp lại là mẹ của tất cả sự khôn ngoan

Trước khi tiếp tục, hãy tóm tắt những gì chúng ta đã biết và đưa thêm một số kiến ​​thức nền tảng kỹ thuật vào đó!

'Nonce' được đoán (đã được đề cập ở đoạn trên) là từ viết tắt của "number only sử dụng once, ”Là một số được thêm vào khối băm trong chuỗi khối. 'Nonce' là con số mà các 'thợ đào' blockchain đang giải quyết. Các công cụ khai thác PoW đang đoán hậu tố 'nonce' duy nhất (vì nó là trường cuối cùng trong tiêu đề khối) của băm định danh của khối.

'Nonce' với phần còn lại của tiêu đề khối cho khối hiện tại là đầu vào mà chúng ta phải đặt trong hàm băm, hàm này tạo ra một băm ứng viên mới: tiêu đề khối của khối mới (xem Hình 2 bên dưới). 

hình ảnh

Hình 2: Ứng cử viên này phải đáp ứng tiêu chí xác định trước, được chỉ định bởi các quy tắc được mã hóa trong phần mềm nút đầy đủ mà người dùng blockchain chạy trên máy tính của họ. Nếu ứng viên mới không đáp ứng các tiêu chí được xác định trước, 'nonce' phải được sửa đổi (đoán lại) và quá trình lặp lại. Nếu không, khối mới được ký thành công và được thêm vào blockchain.

Tìm một 'nonce' chính xác cho mỗi hàm băm rất khó vì nó đòi hỏi phải tìm đúng chuỗi ký tự sẽ thay đổi kết quả đầu ra là một số 256 bit (đơn vị tính toán cơ bản nhất), thường được biểu diễn trong hệ thống số thập lục phân với 64 ký tự để con người có thể đọc được, điều này cần thiết khi xác nhận các giao dịch với giao thức.

Tôi giải thích hiện tượng này sau trong phần 3: “Tại sao blockchain cần hàm băm?"

Hiện tại, chúng tôi vượt xa bất kỳ máy tính nào có thể giải quyết khó khăn Bitcoin hiện tại một mình. Sử dụng một máy tính đơn giản duy nhất, thợ đào có thể giải quyết vấn đề này trong một năm nếu họ cực kỳ may mắn (không thể xảy ra), nhưng như chúng ta đã biết, thợ đào không có nhiều thời gian như vậy.

  • Mục tiêu khó khăn khó hơn hàng tỷ lần so với một máy tính đơn lẻ có thể giải quyết trong khoảng thời gian mười phút.

Điều gì sẽ xảy ra nếu những người khai thác một mình sử dụng 100 máy tính cùng một lúc và gia nhập lực lượng? Quá trình tìm kiếm một 'nonce' chính xác tốn nhiều thời gian và điện năng, nhưng với đủ sức mạnh tính toán, có lẽ họ có thể nhận được 'nonce' cần thiết cho khối mới nhanh hơn nhiều.

Sự hợp tác của các thợ mỏ trong cái mà họ gọi là các nhóm khai thác là về việc tập hợp các trang trại khai thác lớn, hợp chất của hàng nghìn chip ASIC mạnh mẽ (máy đào Bitcoin), nhằm mục đích cải thiện cơ hội và nhân lên thời gian cũng như hiệu quả chi phí của họ trong cuộc đua đoán bạo lực, được nâng cao bởi các nguyên tắc toán học của quá trình Poisson.

  • Các công cụ khai thác Bitcoin sử dụng chip ASIC vì GPU và CPU không còn hiệu quả để khai thác BTC (nhưng có thể sử dụng cho Ethereum và các loại khác).

Việc tìm ra nonce chính xác là cách khối được đặt tên, có nghĩa là khối cuối cùng có thể được thêm vào một chuỗi khối. Họ được thưởng bằng tiền điện tử gốc của chuỗi đó cho nỗ lực của họ; các công ty khai thác hoạt động trên cơ sở số tiền này bao gồm chi phí điện năng tiêu thụ và hơn thế nữa.

Ngày nay, một bitcoin (1 BTC) tương đương với ~ $ 33,000 USD. Số tiền thưởng khối hiện tại là 6.25 BTC (con số này sẽ giảm một nửa xuống còn 3.175 BTC trong đợt 'giảm một nửa' năm 2024). ~ $ 312,500 nghe có vẻ như là một phần thưởng xứng đáng cho tất cả những rắc rối đó!

Sau đó, phương pháp duy nhất này có thể được thực hiện là phương pháp trong đó người khai thác tạo ra một chuỗi chữ và số duy nhất bằng cách đoán brute-force, điều này ảnh hưởng đến việc một hàm băm dài 24 ký tự trông như thế nào (và vâng, những hàm băm đó phải trông giống hệt như vì đó là cách toán học đằng sau nó hoạt động), quá trình này có thể mất nhiều thời gian.

“Về cơ bản, Proof of Work là một hệ thống xổ số trong đó một 'thợ đào' cố gắng đoán một số ngẫu nhiên càng nhanh càng tốt trong một môi trường có sự cạnh tranh gay gắt." - Mickey

Vâng :), tác giả chỉ tự trích dẫn. Bạn làm tốt lắm!

Công cụ khai thác, khai thác và các nút

Tìm một tên riêng cho một khối không phải là trách nhiệm duy nhất của các thợ đào. Họ cũng xác minh các giao dịch được thực hiện trên mạng, tương tự như các nút đầy đủ. Người khai thác phải xác minh các giao dịch để chúng không đưa giao dịch không hợp lệ vào khối của họ.

Các thợ mỏ làm điều này bằng phần mềm nút đầy đủ. Những người dùng không khai thác khác chạy phần mềm nút đầy đủ một mình để xác minh các giao dịch và lưu trữ bản sao blockchain của riêng họ - “Đừng tin tưởng, hãy xác minh”.

Ví dụ:

  • Khi Honey Badger gửi 20 mã thông báo SOV như một cách cảm ơn vì bài hát mà Wolverine đã viết về anh ta, giao dịch này trước tiên cần được xác thực bởi các thợ đào. Đối với mỗi giao dịch mà họ giúp xác minh, họ sẽ nhận được một khoản phí nếu và, nếu người khai thác chiến thắng trong cuộc đua đặt tên nonce, phần thưởng khối cho khối mà một giao dịch nhất định đã được bao gồm trong đó.

Giải thích sự khác biệt giữa mạng tập trung có trung gian và mạng ngang hàng blockchain không có trung gian (gửi FIAT so với gửi bitcoin)

Cuối cùng, để hiểu đầy đủ về tầm quan trọng của thợ đào, hãy tưởng tượng một ví dụ trong đó Công ty A muốn gửi tiền cho Công ty B:

Tổ chức tài chính đứng sau tài khoản của Công ty A phải tạo một lệnh liên lạc và máy chủ của họ sẽ thực hiện giao dịch này. Tuy nhiên, không có máy chủ nào như thế này trong thế giới của blockchain dựa trên PoW, còn được gọi là mạng ngang hàng (P2P). Thay vì các máy chủ của công ty, bất kỳ máy tính nào được kết nối với mạng blockchain đều có thể hoạt động như một nút blockchain.

Các nút đó có thể thay thế các máy chủ này cho nỗ lực di chuyển tiền. Bây giờ, chúng ta hãy bao gồm những người khai thác được kết nối với mạng blockchain bằng tất cả phần cứng mạnh mẽ đó. Lý do duy nhất mà những người khai thác yêu cầu lượng sức mạnh tính toán này là để cạnh tranh với những người khai thác khác và khi hashrate và những người khai thác tăng lên theo thời gian, thì sức mạnh cần thiết để cạnh tranh cũng vậy.

Nói một cách nghệ thuật, blockchain sử dụng sự cạnh tranh tính toán này để xử lý các giao dịch và bảo mật chuỗi theo cấp số nhân. Proof of Work đồng thời giải quyết vấn đề về cách các nút xác định chuỗi khối nào là "chuỗi khối chính" trong tình huống có nhiều chuỗi khối hợp lệ để lựa chọn. Sau đó, họ sẽ đi với chuỗi hợp lệ nặng nhất với bằng chứng công việc tích lũy nhất (được đo bằng khó khăn).

Trong khi đó, trong khi các thợ đào đang ẩu đả với nhau, tiền từ công ty A đã đến đích. Và vâng, ngoại trừ quy trình tiếp nhận không quá khó, công ty B không làm gì trong toàn bộ ví dụ.

Thông tin về giao dịch này rất có thể chỉ được lưu trữ trên máy chủ của Công ty A và B. Không bên ngoài nào có thể xác minh giao dịch đã xảy ra và thay vào đó phải dựa vào cả hai công ty để xử lý giao dịch một cách công bằng.

Với một giao dịch Bitcoin từ ví Bitcoin này sang ví Bitcoin khác bằng cách sử dụng một chuỗi khối, thông tin giao dịch liên quan được chuyển tiếp trong toàn mạng - được chuyển từ nút này sang nút khác (từ máy chủ đến máy chủ) cho đến khi nó được truyền và lưu trữ trong tất cả các nút tham gia vào mạng blockchain.

Vòng kỹ thuật

Proof of Work là lĩnh vực khai thác (trái tim luôn đập của blockchain) thực hiện kung-fu của nó; nó là xương sống của tiền điện tử chính, Bitcoin, cũng như nhiều blockchain khác.

Thợ đào là những người chạy các máy ASIC (Mạch tích hợp dành riêng cho ứng dụng được tùy chỉnh cho một mục đích sử dụng cụ thể) hoặc các hệ thống máy tính mạnh với phần cứng mạnh mẽ (CPU, GPU), mà họ sử dụng để đoán số brute-force (khai thác). Những con số đó sau đó được sử dụng để xác thực các giao dịch và ký một khối đầy đủ.

Càng nhận được nhiều phần thưởng, thì sức mạnh tính toán sẽ được tiêu tốn nhiều hơn để nhận được phần thưởng. Nhưng hãy cẩn thận, số lượng giao dịch có thể được xử lý hoàn toàn không liên quan đến bao nhiêu hashpower mà người khai thác có.

Nếu một người khai thác cụ thể tạo ra một khối mới bằng cách khai thác hàm băm của nó, họ sẽ được thưởng bằng mã thông báo tiền điện tử. Đối với mọi giao dịch, người gửi phải khuyến khích các thợ đào xử lý giao dịch của mình bằng cách trả phí cho họ.

Bằng chứng công việc là cách thân thiện với môi trường nhất để giải quyết vấn đề cụ thể mà Bitcoin giải quyết: tiền chống kiểm duyệt, không thể thay đổi được bởi các tập đoàn lớn và chính phủ. Bitcoin cũng khuyến khích các thợ đào tìm kiếm nguồn năng lượng rẻ nhất và điều này xảy ra thường là từ các nguồn năng lượng sạch, nhưng không phải lúc nào cũng vậy.

Gần đây, nhiều hoạt động khai thác đã bắt đầu sử dụng năng lượng sạch từ các nguồn mà nếu không sẽ bị lãng phí. Ví dụ, các nguồn năng lượng thủy điện và địa nhiệt (như El-Salvadorian hoạt động khai thác núi lửa) thường sẽ không được sử dụng do ở quá xa về mặt địa lý so với các trường hợp sử dụng thông thường, như cấp điện cho các thị trấn.

Các thợ đào chỉ yêu cầu kết nối internet để chuyển một cách kinh tế sức mạnh tính toán của họ từ nguồn sang năng suất, có nghĩa là các mạng PoW như bitcoin có thể và sẽ là một phương tiện giao dịch cực kỳ sạch sẽ. 

Ai đó có thể nói: “Có thể có rất nhiều tiềm năng tính toán bị lãng phí trong cuộc cạnh tranh này. Từ một quan điểm kỹ thuật, năng lượng tiêu thụ do khai thác là lãng phí; tuy nhiên, nó không bị lãng phí theo quan điểm kinh tế. Sức mạnh tính toán có nghĩa là có một chi phí liên quan.

Nỗ lực được đền đáp bằng các mã thông báo, thu được giá trị. Giá trị đó cần phải lớn hơn chi phí để làm cho quá trình hiệu quả về mặt kinh tế. Vì việc tham gia khai thác được mở cho bất kỳ ai, sự khác biệt giữa chi phí và phần thưởng sẽ luôn được giới hạn.

Ví dụ: nếu một người khai thác chỉ cần 100 USD để khai thác các mã thông báo trị giá 500 USD, thì sẽ có nhiều người tham gia vào việc khai thác hơn. Điều này làm tăng tổng sức mạnh tính toán liên quan đến cạnh tranh cho một khối, do đó tăng chi phí trung bình cần thiết để khai thác một khối.

Chi phí khai thác một khối càng cao thì khối đó càng có nhiều bảo mật chống lại các tác nhân độc hại. Trong trường hợp của Bitcoin, tỷ lệ độ khó được điều chỉnh liên tục đảm bảo mỗi khối mất 10 phút để khai thác mục tiêu, có nghĩa là số lượng tính toán cần thiết tăng lên khi nhiều công suất khai thác hơn vào mạng, tăng thêm tính bảo mật của mạng. 

Điều gì đó cần suy nghĩ thêm:

  • PoW và Khả năng chịu lỗi Byzantine thực tế Các thuật toán (PBFT) cố gắng cung cấp giải pháp cho khả năng chịu lỗi byzantine (chỉ theo những cách rất khác nhau).
  • Bản thân PoW có thể được sử dụng để ngăn chặn thư rác, như đề xuất ban đầu của Dwork và Naor.
  • PoW không giúp bạn có được một thỏa thuận; nó giúp bạn giới hạn tỷ lệ.
  • Bản thân PoW không phải là một cơ chế đồng thuận. Để đạt được sự đồng thuận cũng cần có một chuỗi hợp lệ với bằng chứng công việc tích lũy nhất. Chuỗi này cũng được gọi là dài nhất hoặc nặng nhất trong lịch sử gần đây. Trong mạng Bitcoin, PoW hoạt động với quy tắc lựa chọn chuỗi dài nhất / nặng nhất để đạt được sự đồng thuận.

Xin chúc mừng. Bạn đã thực hiện bước thứ hai trong việc trở thành chuyên gia blockchain.

Bạn muốn biết thêm?

Bạn có muốn biết thêm về khai thác mỏthợ mỏ? Đọc hai bài báo bổ sung sau đây và khai thác kiến ​​thức từ bộ óc của những người thợ mỏ!

  • Điều một - Giới thiệu, tóm tắt lý thuyết, Bộ ba cuộc phỏng vấn với các 'thợ mỏ' thuộc mọi loại và cấp độ chuyên môn.
  • Điều hai - Tiếp tục câu chuyện từ tập đầu tiên, hai cuộc phỏng vấn khác, hướng dẫn và hướng dẫn sử dụng để 'khai thác'.

Hẹn gặp lại Các bạn trong những tập tiếp theo về Hàm băm.

Cho đến lúc đó, hãy ở lại!

Mickey Maler
Tiếng Việt Wiki

hình ảnh

Tag

Tham gia Hacker Noon

Tạo tài khoản miễn phí của bạn để mở khóa trải nghiệm đọc tùy chỉnh của bạn.

PlatoAi. Web3 được mô phỏng lại. Khuếch đại dữ liệu thông minh.

Nhấn vào đây để truy cập.

Nguồn: https://hackernoon.com/learn-the-blockchain-basics-part-2-osystem-miners-and-the-proof-of-work-algorithm-ug3z35j6?source=rss

tại chỗ_img

Tin tức mới nhất

tại chỗ_img