Khóa luận tốt nghiệp: Triển khai hệ thống đào Bitcoin đa lõi SHA256 sử dụng FPGA

Khóa luận trình bày hệ thống đào bitcoin đa lõi SHA256 trên FPGA, sử dụng chuyển đổi mở rộng, tối ưu hiệu suất và tiết kiệm năng lượng.

Trường đại học

Đại học Công nghệ Thông tin

Chuyên ngành

Kỹ thuật máy tính

Người đăng

Ẩn danh

Thể loại

Khóa luận tốt nghiệp

2022

84
5
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CAM ĐOAN

LỜI CẢM ƠN

MỤC LỤC

1. CHƯƠNG 1: TONG QUAN DE TÀI

1.1. Giới thiệu đề tài

1.2. Một số nghiên cứu liên quan

1.3. Hướng nghiên cứu của đề tài

1.4. Mục tiêu đặt ra

1.5. Lý thuyết Blockchain

2. CHƯƠNG 2

2.1. Bitcoin hoạt động như thế nào

2.2. Giao dịch Bitcoin

2.3. Giải thuật Bitcoin Mining

2.4. Giải thuật SHA-256

2.4.1. Giới thiệu SHA-256

2.4.2. Các thành phần có trong SHA-256

2.4.3. Đệm tin nhắn

3. CHƯƠNG 3: THIẾT KẾ ĐỀ XUẤT

3.1. Thiết kế chi tiết khối Multicore Miner

3.2. Thiết kế chi tiết khối Miner Core

3.3. Thiết kế chi tiết khối SHA 256 Unfolding factor 2

3.4. Kiểm tra kết quả thiết kế

3.4.1. Kết quả kiểm tra thiết kế SHA 256 Unfolding factor 2

3.4.2. Kết quả kiểm tra thiết kế Multicore Miner

3.4.3. Mô hình kiểm tra

3.4.4. Kết quả kiểm tra

3.4.5. Kết quả hiện thực

5. CHƯƠNG 5: HIỆN THỰC THIẾT KẾ TRÊN FPGA

5.1. Tổng quan hệ thống Mining Bitcoin

5.2. Đóng gói và hiện thực thiết kế lên FPGA

5.3. Viết chương trình python để truyền nhận dữ liệu giữa thiết kế trên FPGA và PC thông qua UART

5.4. Test với các block đã được tìm thấy để kiểm chứng độ chính xác của hệ thống

5.5. Test hệ thống với việc lấy dữ liệu và đào trực tiếp từ mining pool

5.6. Kết quả hiện thực hệ thống SoC trên FPGA

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

DANH MỤC HÌNH

DANH MỤC BẢNG

DANH MỤC TỪ VIẾT TẮT

TÓM TẮT KHÓA LUẬN

MỞ ĐẦU

Tóm tắt

I. Giới thiệu về hệ thống đào Bitcoin đa lõi SHA256 trên FPGA

Luận văn này tập trung vào việc xây dựng một hệ thống đào Bitcoin hoàn chỉnh, sử dụng FPGA technology để triển khai SHA256 algorithm theo phương pháp unfolding transformation. Hệ thống bao gồm cả phần cứng và phần mềm, trong đó phần cứng là một máy đào multi-core mining được hiện thực trên FPGA, còn phần mềm kết nối với mining pool để trao đổi dữ liệu. Mục tiêu chính là tăng mining efficiencyhash rate optimization thông qua việc áp dụng hardware accelerationcryptographic hashing.

1.1. Mục tiêu nghiên cứu

Mục tiêu của nghiên cứu là xây dựng một hệ thống đào Bitcoin đa lõi, sử dụng SHA256 algorithm với phương pháp unfolding factor 2 để giảm số chu kỳ lặp và tăng thông lượng. Hệ thống được hiện thực trên FPGA architecture, đạt hash rate tối thiểu 250 MHash/s và tối đa 500 MHash/s. Ngoài ra, hệ thống cần kết nối với mining pool để hoạt động trong thời gian thực, đảm bảo tính ứng dụng thực tế.

1.2. Các nghiên cứu liên quan

Các nghiên cứu trước đây về SHA256 algorithm trên phần cứng đã đạt được một số kết quả đáng kể. Ví dụ, nghiên cứu của Lê Vũ Trùng Dương và Nguyễn Thị Thanh Thủy đã đề xuất thiết kế SHA256 pipeline với tần số 454 MHz. Tuy nhiên, các thiết kế này chưa được tích hợp vào một hệ thống đào Bitcoin thực sự. Luận văn này hướng đến việc hoàn thiện hệ thống đào Bitcoin đa lõi, kết nối trực tiếp với mining pool để khai thác trong thời gian thực.

II. Thiết kế hệ thống đào Bitcoin đa lõi

Hệ thống đào Bitcoin đa lõi được thiết kế dựa trên FPGA technology, sử dụng SHA256 algorithm với phương pháp unfolding factor 2. Thiết kế bao gồm các khối multicore miner, mỗi khối chứa hai lõi SHA256 được tối ưu hóa để giảm số chu kỳ lặp và tăng hash rate. Hệ thống được hiện thực trên FPGA Xilinx Virtex 7-VC707, đạt tần số 104.167 MHz và hash rate 101.01 MHash/s.

2.1. Thiết kế khối Multicore Miner

Khối multicore miner được thiết kế với nhiều lõi SHA256, mỗi lõi hoạt động độc lập trên một khoảng giá trị nonce nhất định. Việc này giúp tăng hiệu suất khai thác thông qua việc xử lý song song. Thiết kế sử dụng phương pháp unfolding factor 2 để giảm số chu kỳ lặp, từ đó tăng throughputhash rate.

2.2. Thiết kế khối SHA256 Unfolding Factor 2

Khối SHA256 được thiết kế dựa trên phương pháp unfolding factor 2, giúp giảm số chu kỳ lặp từ 64 xuống còn 32. Thiết kế này bao gồm hai khối chính: message expandermessage compressor, được tối ưu hóa để tăng tốc độ xử lý. Kết quả kiểm tra cho thấy thiết kế đạt hash rate 101.01 MHash/s và tần số 104.167 MHz.

III. Hiện thực hệ thống trên FPGA

Hệ thống đào Bitcoin đa lõi được hiện thực trên FPGA Xilinx Virtex 7-VC707, sử dụng FPGA architecture để triển khai các khối multicore minerSHA256 unfolding factor 2. Hệ thống được kết nối với một mining pool thông qua phần mềm được lập trình trên PC, cho phép khai thác Bitcoin trong thời gian thực. Kết quả hiện thực cho thấy hệ thống đạt hash rate 101.01 MHash/s và tần số 104.167 MHz.

3.1. Kết nối với Mining Pool

Hệ thống được kết nối với một mining pool thông qua phần mềm được lập trình trên PC. Phần mềm này có nhiệm vụ trao đổi dữ liệu với mining pool, đưa dữ liệu xuống FPGA và nhận kết quả từ FPGA. Quá trình này được thực hiện trong thời gian thực, đảm bảo tính ứng dụng thực tế của hệ thống.

3.2. Kết quả hiện thực

Kết quả hiện thực trên FPGA Xilinx Virtex 7-VC707 cho thấy hệ thống đạt hash rate 101.01 MHash/s và tần số 104.167 MHz. Thiết kế sử dụng unfolding factor 2 giúp giảm số chu kỳ lặp và tăng throughput. Hệ thống có thể xử lý nhiều khối dữ liệu cùng lúc, đáp ứng yêu cầu khai thác Bitcoin trong thời gian thực.

IV. Phân tích và đánh giá

Hệ thống đào Bitcoin đa lõi sử dụng FPGA technologySHA256 algorithm với phương pháp unfolding factor 2 đã đạt được hash rate 101.01 MHash/s và tần số 104.167 MHz. Thiết kế này có tính ứng dụng cao, có thể kết nối với mining pool để khai thác Bitcoin trong thời gian thực. Tuy nhiên, hash rate của hệ thống vẫn thấp hơn so với các máy đào ASIC, nhưng lại có ưu điểm về tính linh hoạt và khả năng tùy chỉnh.

4.1. So sánh với ASIC

So với các máy đào ASIC, hệ thống sử dụng FPGAhash rate thấp hơn nhưng lại có ưu điểm về tính linh hoạt và khả năng tùy chỉnh. FPGA cho phép thay đổi thiết kế để phù hợp với các thuật toán khai thác khác nhau, trong khi ASIC chỉ có thể thực hiện một thuật toán cụ thể.

4.2. Hướng phát triển trong tương lai

Trong tương lai, hệ thống có thể được cải tiến bằng cách tăng số lõi SHA256 và tối ưu hóa FPGA architecture để đạt hash rate cao hơn. Ngoài ra, việc tích hợp thêm các công nghệ energy-efficient mining cũng là một hướng phát triển quan trọng để giảm chi phí điện năng trong quá trình khai thác.

21/02/2025
Khóa luận tốt nghiệp kỹ thuật máy tính triển khai hệ thống đào bitcoin đa lõi sha256 sử dụng chuyển đổi mở rộng trên fpga

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TONG QUAN DE TÀI 1. Giới thiệu đề tài Bitcoin là là một trong những tiền điện tử phi tập trung được xây dựng dựa trên công nghệ Blockchain phô biến và có giá trị nhất trên thế giới, ra mắt lần đầu vào năm 2009 bởi nhà phát trién Satoshi Nakamoto. Bitcoin được tạo ra duy nhất bởi một quy trình được gọi là khai thác Bitcoin. Khai thác Bitcoin là quá trình xác minh các giao dịch mới trên hệ thống mạng lưới của đồng tiền Bitcoin cũng như quá trình duy nhất dé Bitcoin mới được tạo ra và đưa vào lưu thông.

Với việc khai thác thành công một khối, tương ứng với một lượng Bitcoin mới đã được tạo ra. Điều này đồng nghĩa với việc số lượng Bitcoin sẽ dan đi đến giới hạn. Do tỷ lệ Bitcoin được khai thác giảm theo thời gian điều nay đồng nghĩa với việc độ khó tăng lên và tính cạnh tranh giữa các Miner cao hơn để có thể tìm ra block mới. Việc nay đã thúc day đến việc hình thành nên các máy đào với hiệu năng cao như các máy đào chuyên dụng ASIC hoặc FPGA.

Trong luận văn này, nhóm muốn hướng đến xây dựng một hệ thống máy đào Bitcoin đa nhân, trong đó các lõi SHA 256 sẽ được xây dựng và phát triển theo hướng sử dụng chuyển đổi mở rộng [3]. Hiện thực thiết kế đa nhân từ các lõi đơn này trên FPGA và tiến hành xây dựng một máy đào FPGA kết nói tới một Mining Pool dé tiến hành khai thác Bitcoin. Đề tài mong muốn hướng đến một hệ thống hoàn chỉnh và hoạt động, ứng dụng được vào quá trình khai thác thực tế. Một số nghiên cứu liên quan Hiện nay, đã có nhiều nghiên cứu về ứng dung và thực hiện giải thuật SHA256 trên phần cứng như trong [4] nhóm tác giả Lê Vũ Trùng Dương và Nguyễn Thị Thanh Thủy đề xuất thiết kế SHA256 pipeline 2 mức đạt tần số là 454.

Trong [3] Shamsiah Suhaili and Norhuzaimin Julai đã đưa ra đề xuất bộ chuyền đổi mở rộng với hệ số 2 và 4 vào trong thiết kế SHA256, trong đó với thiết kế áp dụng chuyên đổi mở rộng hệ số 2 đạt được tần số là 251.07 MHz và throughput là 3. Trong [5] nhóm tác giả đưa ra một kiến trúc phần cứng SHA256 áp dụng kỹ thuật tính toán song song được dé xuất và hiện thực trên ASIC Intel 14nm. Tần số hoạt động của thiết kế này đạt 1,531.39 MHz và throughtput là 4. Tuy nhiên, các thiết kế [3] và [5] chưa được sử dụng vào một trong hệ thống đào Bitcoin thực sự.

Thiết kế [4] được ứng dụng trong một hệ thống đào bitcoin nhưng chỉ dừng lại ở việc kiểm tra với các tập dữ liệu được chuẩn bị sẵn, thiếu sự kết nối trực tiếp đến các mining pool. Qua đó, nhóm hướng tới việc hiện thực thiết kế máy dao trên phần cứng đề tiễn hành triển khai một hệ thống đào Bitcoin đa lõi theo hướng chuyên đổi mở rộng cho các lõi SHA-256 trên FPGA và kết nối trực tiếp đến một Mining pool dé có thé khai thác ở thời gian thực. Hướng nghiên cứu của đề tài Dựa trên các đề tài nghiên cứu hiện nay, nhóm nhận thấy các đề tài chủ yếu xây dựng theo hướng một lõi đơn và vẫn chưa hoàn thiện việc xây dựng một hệ thống đào Bitcoin thực sự mà chỉ dừng lại ở việc kiểm chứng. Chính vì vậy nhóm mong muốn mang đến một hướng đi khác là triển khai một hệ thống đào Bitcoin đa nhân (multicore) trong đó các lõi SHA 256 được áp dụng phương pháp mở rộng hệ số 2 (Unfolding factor 2) và hoàn thiện được một hệ thống có thé hoạt động thực tẾ.

Với máy đào Bitcoin đa nhân, các lõi đơn sé chỉ hoạt động trên một khoảng giá tri Nonce nhất định và việc này có thể giúp tăng hiệu suất mong đợi thông qua mô tả như trong [2]. Mục tiêu đặt ra Trong luận văn này, nhóm hướng đến các mục tiêu sau: - Tim hiéu, nghiên cứu và triển khai hệ thống thống đào Bitcoin theo hướng đa nhân (Multicore). Tiến hành xây dựng thuật toán Hash — SHA 256 theo hướng chuyên đổi mở rộng [3] và áp dụng thiết kế vào hệ thống dao Bitcoin theo hướng đa nhân SHA 256. Mục tiêu trong thiết kế thuật toán Hash sẽ hướng đến tần số, throughput và tài nguyên phần cứng sử dụng của một lõi đơn SHA 256.

Xây dựng thành công máy đào đa lõi SHA 256 dé hướng đến tỉ lệ băm cao và có thé xử ly được nhiều khối trong cùng một thời điểm. Mục tiêu Hash rate đặt ra cho thiết kế phần cứng của máy đào đa lõi (Multicore Miner) đạt tối thiểu 250 MHash/s và tối da 500 MHash/s, tài nguyên đáp ứng trên board FPGA virtex 7 — VC707. Thiết kế hiện thực được trên FPGA và có thé áp dụng được trên một Mining pool dé tiền hành đào Bitcoin. Có tính ứng dụng, có thể đưa vào hoạt động, khai thác dữ liệu thực tế, Realtime.

Ly thuyết Blockchain Blockchain là một cơ sở dữ liệu lưu trữ các khối dit liệu được mã hóa sau đó kết chuỗi chúng lại với nhau dé tạo thành một nguồn chân lý duy nhất theo thứ tự thời gian cho dữ liệu. Blockchain, đôi khi được gọi là Công nghệ số cái phân tán (DLT), làm cho lịch sử của bat kỳ tài sản kỹ thuật số nào không thé thay đôi và minh bạch. Nội dung được phân cấp, cho phép công chúng truy cập đầy đủ theo thời gian thực và minh bạch. Các biện pháp bảo mật vôn có của blockchain và sô cái công khai Hash __ Owner 1's ‘| Owner 2's + Owner 3's _-w/Singature ow Singature ow Singature Sign | Sign” a Owner 2's” a Private Key Hình 2.

1: Mô hình Fonte Blockchain đâu tiên theo Satoshi Nakamoto[7] Nguồn: “Blockchain: the technological revolution and impacts to the economy” [7] Theo mô hình của Nakamoto trong hình 2.1 [7], mỗi giao dich phải được kiêm tra và hỗ trợ bởi chủ sở hữu chuyên đi, thông qua chữ ký điện tử. Với cách mô tả sơ bộ, Blockchain sẽ là “khối”, dùng dé chỉ mô hình ban đầu của Nakamoto. Công nghệ chuỗi khối là một mạng lưới các khối lồng vào nhau, yêu cầu xác thực kỹ thuật số. Do đó, khối tiếp theo chứa xác thực chữ ký số hoặc khối trước đó được thêm vào nội dung hoặc thông tin của bạn.

Công nghệ Blockchain rat an toàn, vì nó sử dụng sức mạnh xử lý dé dam bảo rằng ham băm của mỗi khối là hợp lệ. Blockchain đặc biệt được biết đến như một công nghệ để thực hiện các đồng tiền mã hóa như bitcoin, cho đến ngày nay công nghệ này được sử dụng nhiều nhất. Bitcoin có đặc điểm là duy trì giá trị của tiền tệ trong bất kỳ cơ quan quản lý nào của chính phủ và là loại tiền kỹ thuật số thành công nhất sử dụng blockchain. Mặc dù sự khởi đầu của công nghệ blockchain về bản chất được liên kết với Bitcoin, nhưng nó có thê được áp dụng cho bắt kỳ giao dịch tài sản kỹ thuật số nào trực tuyến.

Blockchain bao gồm ba khái niệm quan trọng: Block, nodes và miners. e Blocks Mọi chuỗi đều bao gôm nhiều khối và mỗi khối có ba phan tử cơ ban: - Dữ liệu trong khối: là một số lượng các giao dịch (transaction) đã được thu thập và mã hóa. - _ Một số nguyên 32 Bit được gọi là nonce. Nonce được tạo ngẫu nhiên khi một khối được tạo, sau đó tạo ra băm tiêu đề khối.

- Ham băm là một số 256-bit được thêm vào từ nonce. Nó phải bat đầu với một số lượng lớn các số 0. Khi khối đầu tiên của một chuỗi được tạo, một nonce tạo ra hàm băm mật mã. Dữ liệu trong khối được coi là đã ký và mãi mãi gắn liền với nonce và giá trị hash trừ khi nó được khai thác.

Mỗi khối chứa một giá trị băm của khối ngay trước đó. Hơn nữa, dé thay đôi các giao dịch liên quan đến khối quá khứ, viết lại tất cả các khối tiếp theo là cần thiết. Do đó, bằng cách áp dụng một cơ chế xác định thích hợp việc tạo nút một khối mới, các blockchain có thể được lưu trữ khó khăn trong các giao dịch giả mạo ngay cả trong các môi trường có thê có nhiêu node độc hại e Miner Miner tạo ra các khối mới trên chuối thông qua quá trình khai thác (mining). Trong một chuỗi khối, mỗi block đều có hàm băm và hàm băm riêng biệt, nhưng cũng tham chiếu đến hàm băm của khối trước đó trong chuỗi, vì vậy việc khai thác một khối không dé dàng, đặc biệt là trên các chuỗi lớn.

Một số thuật toán đã được đề xuất để xác định node tạo khối. Một trong những các thuật toán được biết đến là Proof of Work (PoW) được sử dụng trong Bitcoin. Trong PoW, một nút tạo ra một khối mới được xác định dựa trên sức mạnh tính toán của nút. Mỗi khối bao gồm một giá tri được thiết lập tự do bởi mỗi nút được gọi là nonce.

Cac Miner sẽ di giải quyét van dé toán hoc cho việc khai thác dé tìm ra một giá tri nonce với điều kiện số nonce này tạo ra một hàm băm được chấp nhận. Bởi vì nonce chỉ có 32 Bit và băm là 256 Bit, nên có khoảng bốn tỷ t6 hợp nonce-băm có thê phải được khai thác trước khi tìm thấy một tổ hợp đúng. Giá trị băm của khối được chấp nhận khi mỗi nút định vị một khối có giá trị băm của toàn bộ khối thấp hơn một ngưỡng (target hash). Chỉ các khối bên dưới ngưỡng được coi là khối chính thức.

Khi điều đó xảy ra, những người khai thác được cho là đã tìm thấy "nonce vàng" và khối của họ được thêm vào chuôi. Thực hiện thay đổi đối với bất kỳ khối nào trước đó trong chuỗi yêu cầu khai thác lại không chỉ khối có thay đổi mà còn ảnh hưởng đến tất cả các khối sau đó. Day là lý do tại sao việc thao túng công nghệ Blockchain cực kỳ khó khăn. Khi một khối được khai thác thành công, sự thay đổi được tất cả các node trên mạng chấp nhận và người khai thác được thưởng về mặt tài chính.

Khó khăn của khối có thể được điều chỉnh băng cách thay đổi giá trị ngưỡng. Quá trình tính toán giá trị băm của toàn bộ khối trong khi thay đổi nonce được gọi là khai thác. Trong PoW, mỗi nút có thê tạo một khối mới với xác suất tỷ lệ so với sức mạnh tính toán của node. e Nodes Các nút là một phần quan trọng của hệ sinh thái blockchain vì chúng là những thứ thực hiện mọi thứ.

Là một hệ thống ngang hàng phi tập trung, mọi người hoạt động như một máy khách và máy chủ kết hợp.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu "Hệ thống đào Bitcoin đa lõi SHA256 trên FPGA" trình bày về việc thiết kế và triển khai một hệ thống đào Bitcoin hiệu quả, tận dụng sức mạnh tính toán song song của FPGA (Field-Programmable Gate Array) để tăng tốc quá trình băm SHA256. Điểm mấu chốt là việc sử dụng kiến trúc đa lõi, cho phép thực hiện nhiều phép tính băm đồng thời, từ đó cải thiện đáng kể hiệu suất so với các hệ thống đào Bitcoin truyền thống dựa trên CPU hoặc GPU. Đọc tài liệu này sẽ giúp bạn hiểu rõ hơn về kiến trúc phần cứng được tối ưu hóa cho việc đào Bitcoin và cách tận dụng FPGA để đạt được hiệu suất cao hơn.

Để tìm hiểu sâu hơn về ứng dụng của FPGA trong các hệ thống thời gian thực, bạn có thể tham khảo thêm tài liệu "Developing a real time object detection system on fpga". Tài liệu này, dù không trực tiếp liên quan đến đào Bitcoin, nhưng sẽ cung cấp thêm kiến thức về việc thiết kế các hệ thống dựa trên FPGA để xử lý các tác vụ phức tạp trong thời gian thực. Đây là một góc nhìn khác về tiềm năng của FPGA và cách tối ưu hóa hiệu suất cho các ứng dụng khác nhau.