Ethash:cách hoạt động khi khai thác Ethereum

Ethash:cách hoạt động khi khai thác Ethereum

Ngày nay, khai thác Ethereum trên thẻ video là tiêu chuẩn và cho đến nay các thợ đào vẫn chưa có bước nhảy vọt mạnh mẽ để khởi chạy thuật toán khai thác Ethash trên các giải pháp phần cứng chuyên dụng (ví dụ:FPGA và ASIC). Có những Asik trên mạng, nhưng chúng không mang lại lợi thế lớn như trên Bitcoin.

Nhiều bài báo và diễn đàn giải thích điều này bằng cách nói rằng sự phát triển của ASIC cho Ethash là một vấn đề về bộ nhớ).

Ở đây chúng ta nói về ràng buộc bộ nhớ chặt chẽ của Ethereum đến từ đâu và thế hệ thiết bị khai thác tùy chỉnh tiếp theo để khai thác ETH có thể trông như thế nào.

Ở đây chúng ta nói về ràng buộc bộ nhớ chặt chẽ của Ethereum đến từ đâu và thế hệ thiết bị khai thác tùy chỉnh tiếp theo để khai thác ETH có thể trông như thế nào.

Để có giải thích kỹ hơn, theo hướng lập trình viên về thuật toán khai thác Ethereum có tên là Ethash, vui lòng tham khảo trang Ethash trong kho lưu trữ Ethereum GitHub….

Giải thích nhanh về Proof-of-Work

Khi khai thác bằng Proof-of-Work, người khai thác tìm kiếm một giải pháp (được gọi là số một lần - “nonce”), khi được băm sẽ cung cấp giá trị đầu ra nhỏ hơn ngưỡng mục tiêu được xác định trước.

Do bản chất mật mã của hàm băm của mỗi loại tiền tệ, không có cách nào để đảo ngược thiết kế hoặc tính toán ngược lại số một lần (“nonce”) thỏa mãn giới hạn ngưỡng mục tiêu.

Thay vào đó, các thợ đào nên “đoán và xác minh” các hàm băm càng nhanh càng tốt và hy vọng rằng họ là những thợ đào đầu tiên trong toàn bộ mạng lưới tiền điện tử tìm thấy một số hợp lệ dùng một lần. Do đó, họ sẽ tìm thấy một khối mới.

Cách hoạt động của thuật toán Ethash

Tệp DAG

Thuật toán Ethash dựa trên giả ngẫu nhiên tập dữ liệu được khởi tạo với độ dài hiện tại của chuỗi khối.

Đây được gọi là tệp DAG và được khôi phục sau mỗi 30.000 khối (hoặc cứ ~ 5 ngày một lần). Kể từ tháng 9 năm 2019, DAG là ~ 3,22 GB và DAG sẽ tiếp tục phát triển về kích thước khi blockchain phát triển.

Các tính năng tạo DAG không quá phù hợp với bài viết này, nhưng bạn có thể đọc thêm về tạo DAG tại đây .

Tiến trình của thuật toán băm Ethash có thể được tóm tắt như sau:

Nguyên tắc hoạt động của thuật toán băm Ethereum

  1. Tiêu đề được xử lý trước - tiêu đề được xử lý trước (lấy từ khối cuối cùng) và Không phải hiện tại ( hiện tại số một lần ), kết hợp với việc sử dụng thuật toán giống SHA-3 để tạo 128 byte ban đầu của hỗn hợp, được gọi là Mix-0 ở đây.
  2. Kết hợp được sử dụng để tính toán trang 128 byte nào từ DAG cần được trích xuất, được biểu thị bằng khối "Lấy trang DAG".
  3. Kết hợp được kết hợp với trang DAG kết quả. Điều này được thực hiện bằng cách sử dụng chức năng kết hợp "dành riêng cho Ethereum" để tạo ra hỗn hợp tiếp theo, được gọi là Kết hợp 1 ở đây.
  4. Bước 2 và 3 được lặp lại 64 lần, dẫn đến Kết hợp là 64.
  5. Kết hợp 64 được xử lý sau để tạo ra Thông báo kết hợp 32 byte ngắn hơn.
  6. Kết hợp Thông báo được so sánh với Ngưỡng mục tiêu 32 byte được xác định trước (ngưỡng mục tiêu). Nếu Thông báo kết hợp nhỏ hơn hoặc bằng Ngưỡng mục tiêu, thì số không hiện tại (Current Nonce) được coi là thành công và sẽ được phát tới mạng Ethereum. Nếu không, số một lần hiện tại được coi là không hợp lệ và thuật toán được khởi động lại với một số một lần khác (bằng cách tăng số một lần hiện tại hoặc bằng cách chọn ngẫu nhiên một số mới).

Tại sao Ethash gắn liền với bộ nhớ?

Mỗi thao tác trộn yêu cầu đọc 128 byte từ DAG (xem Hình 1, bước 2).

Việc băm một số một lần yêu cầu 64 hỗn hợp, dẫn đến (128 byte x 64) =8 KB bộ nhớ đọc. Đọc truy cập ngẫu nhiên (mỗi trang 128 byte được chọn giả ngẫu nhiên dựa trên chức năng trộn), vì vậy việc đặt một đoạn DAG nhỏ trong bộ đệm L1 hoặc L2 sẽ không giúp ích nhiều, vì lần tìm nạp DAG tiếp theo rất có thể dẫn đến thiếu bộ nhớ đệm.

Vì việc truy xuất các trang DAG từ bộ nhớ chậm hơn nhiều so với kết hợp tính toán, chúng tôi sẽ khó thấy bất kỳ sự cải thiện hiệu suất nào từ việc tăng tốc tính toán kết hợp.

Cách tốt nhất để tăng tốc thuật toán băm của Ethash là tăng tốc độ tìm nạp trang DAG 128 byte từ bộ nhớ.

Do đó, chúng tôi coi thuật toán Ethash được gắn chặt với bộ nhớ hoặc liên quan đến bộ nhớ , vì băng thông bộ nhớ hệ thống giới hạn hiệu suất của chúng tôi.

Đạt đến giới hạn băng thông bộ nhớ trong phần cứng thực

Để làm ví dụ về cách các giới hạn băng thông bộ nhớ ảnh hưởng đến phần cứng thực, chúng ta hãy xem xét kỹ hơn hiệu suất khai thác của một thẻ video thường được sử dụng:RX 590.

Nếu băm Ethash thực sự yêu cầu nhiều bộ nhớ, chúng tôi hy vọng rằng tốc độ khai thác thực tế cho thiết bị này sẽ rất gần với tốc độ băm lý thuyết tối đa, miễn là lấy mẫu các trang DAG là bước duy nhất được thực hiện.

Chúng tôi có thể tính toán tỷ lệ băm lý thuyết tối đa này như sau:

(Băng thông bộ nhớ) / (Bộ nhớ DAG được trích xuất để băm) =tốc độ băm lý thuyết tối đa

(256 gigabyte / giây) / (8 kilobyte / băm) =32 megabyte / giây.

Băm thực nghiệm của RX 490 trong quá trình hoạt động thực tế là ~ 31 mega / s.

Sự chậm trễ nhỏ này có thể dễ dàng được giải thích bởi độ trễ của bộ nhớ hoặc các hoạt động nhanh khác trên hệ thống. Do đó, hiệu suất của card màn hình này giống như mong đợi, với điều kiện là bộ nhớ khó băm dữ liệu và việc lựa chọn các trang DAG là một bước hạn chế tốc độ.

Chiến thắng trước thẻ video:thế hệ thiết bị khai thác tiếp theo để khai thác ETH

Cách duy nhất mà thiết bị khai thác của người dùng Ethereum có thể hữu ích là nếu nó tiết kiệm hơn hoặc tiết kiệm năng lượng hơn với băng thông bộ nhớ (dưới $ / (GB / s) hoặc ít hơn W / (GB / s)).

Tùy chọn 1:Băng thông bộ nhớ cao FPGA / ASICs

Nhìn vào RX 590, chúng ta có thể tính toán một chút ($ 245 cho mỗi thẻ / (256 GB / giây)) để xem tỷ lệ băm là $ 0,95 / GB / giây.

So với một chip GDDR5 duy nhất (ví dụ: Micron EDW4032BABG ), có giá 6,83 đô la và có băng thông 24 GB / giây, chúng tôi có thể làm tốt hơn - 0,28 đô la / GB / giây.

Do đó, nếu chúng tôi có thể tạo chip của riêng mình (ASIC hoặc FPGA) ngoài giao diện với 9 chip GDDR5, chúng tôi sẽ có băng thông bộ nhớ 216 GB / s với mức giá 61,47 đô la.

Tuy nhiên, đây sẽ không phải là một thiết bị hoàn chỉnh vì chúng ta cần bộ điều khiển bộ nhớ FPGA hoặc ASIC, bảng mạch in và thiết bị điện tử phụ trợ.

Nếu việc lắp ráp cuối cùng được vận chuyển (bổ sung thêm các bộ phận, quy trình, kiểm tra và hậu cần bổ sung) có giá thấp hơn RX 590 (chỉ $ 245), thì bo mạch người dùng sẽ vượt qua card màn hình.

Đó là, cho đến khi một card màn hình nhanh hơn, hiệu quả hơn và rẻ hơn xuất hiện trên thị trường.

Ví dụ: cạc đồ họa HBM đã có sẵn. Nhưng nếu bạn tìm thấy chip FPGA hoặc ASIC rẻ tiền có sẵn 5-10 bộ điều khiển bộ nhớ DDR hoặc HBM hoặc công ty của bạn có kinh nghiệm tạo thiết bị ASIC chuyên dụng với băng thông bộ nhớ cao, bạn có thể làm mà không cần phần cứng.

Tuy nhiên, trong tình huống này, có lẽ bạn nên thay đổi tạo mô hình kinh doanh của riêng mình và thay vào đó tạo thẻ video, vì đây đã là một thị trường rộng lớn.

Tùy chọn 2:Sử dụng Chipset Di động Thế hệ Tiếp theo

Khi việc sử dụng điện thoại thông minh và đồ họa 3D di động ngày càng tăng, chúng ta sẽ thấy băng thông bộ nhớ cao và thân thiện với thiết bị di động hơn.

Nó có thể là giải pháp cho các hệ thống di động trên chip có bộ xử lý đồ họa tích hợp (ví dụ: NVidia Tegra X1 ) hoặc bộ xử lý đồ họa di động độc lập (ví dụ: PowerVR Series 8XE ), hoặc bộ xử lý chuyên dụng có băng thông cao hoặc tập trung vào mạng nơ-ron có bộ nhớ tích hợp (ví dụ: Movidius Myriad 2 ).

Các lớp thiết bị này sẽ tiếp tục phát triển và nếu chi phí, năng lượng và băng thông bộ nhớ đến đúng chỗ, chúng ta có thể thấy các công cụ khai thác tùy chỉnh Ethereum với 10-20 bộ xử lý đồ họa di động hoặc VPU nằm trên cùng một bảng.

Kết luận

Các mẫu trang DAG tuần tự trong thuật toán băm Ethash đạt đến giới hạn băng thông bộ nhớ của phần cứng hiện đại.

Tỷ lệ băm tối đa theo lý thuyết của chúng hiện bị giới hạn.

Chúng ta sẽ thấy những người khai thác Ethereum trong tương lai như thế nào? Chúng có thể sẽ không dựa trên ASIC hoặc FPGA. Nhiều khả năng chúng sẽ dựa trên chip làm sẵn (GPU di động hoặc VPU) chứ không dựa trên hình thức của card màn hình truyền thống, điều mà chúng ta thường thấy trong các máy tính hiện đại vì GPU hoặc VPU di động được điều chỉnh nhiều hơn băng thông bộ nhớ.

Bài viết này nói về giao thức Ethash, dựa trên Proof-of-Work, được sử dụng để khai thác Ethereum. Trong các hệ thống dựa trên Proof-of-Work, như hệ thống này, những người khai thác thực hiện một lượng tính toán đáng kể để tìm ra các khối mới và nhận phần thưởng bằng tiền mặt.

Ngay sau khi mạng Ethereum chuyển sang Proof-of-Stake hệ thống (có lẽ là sau năm 2020 với Ethereum 2.0 hoặc giai đoạn Serenity ), phần thưởng tiền mặt sẽ được trao cho những người sở hữu tiền tệ Ethereum, không phải người khai thác, điều này có khả năng làm cho việc khai thác Ethereum trở nên lỗi thời.

Khi quá trình chuyển đổi này xảy ra, vẫn chưa rõ ràng rằng dự kiến ​​giai đoạn đầu tiên sẽ được khởi động vào ngày 3 tháng 1 năm 2020.

Các bài viết liên quan được đề xuất:

  • NoDevFee (NoFee) - Cách vô hiệu hóa hoa hồng trong trình khai thác
  • ATIFlash / ATI WinFlash (trình chỉnh sửa BIOS) - Tải xuống
  • OhGodAnETHlargementPill (EthlargementPill) - tăng tốc độ băm trong khai thác GPU NVIDIA
  • OverdriveNTool (Phần mềm ép xung GPU) - Tải xuống và định cấu hình
  • Cách khai thác Monero (XMR) trên thuật toán RandomX

Khai thác mỏ
  1. Chuỗi khối
  2. Bitcoin
  3. Ethereum
  4. Trao đổi tiền tệ kỹ thuật số
  5. Khai thác mỏ