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.