MỞ ĐẦU Blockchain (chuỗi khối) là một cơ sở dữ liệu kỹ thuật số phi tập trung lưu trữ thông tin các giao dich (transaction) trong các khối thông tin (block) được liên kết với nhau bằng mã hóa và mở rộng theo thời gian. Mỗi khối đều chứa thông tin về thời gian khởi tạo và được liên kết với khối trước đó, kèm theo đó là một mã thời gian và dữ liệu giao dịch. Blockchain được thiết kế dé chống lại sự thay đôi của dữ liệu: một khi dữ liệu đã được mạng lưới chấp nhận thì sẽ không có cách nào dé thay đôi được nó. Hiện nay, Ethereum là một trong những tiền điện tử phổ biến được xây dựng dựa trên nền tảng công nghệ Blockchain, được phát minh vào năm 2015 bởi một lập trình viên Vitalik Buterin và cũng là người đồng sáng lập Tạp chí Bitcoin.
Ethereum mining là quá trình quan trọng nhằm tạo một block mới cho hệ thống và đảm bảo sự vận hành của mạng lưới Ethereum. Băng việc thêm các block mới vào Blockchain, quá trình này giúp các giao dịch được thực hiện. Bên cạnh đó, Ethereum mining được vận hành theo cơ chế đồng thuận Proof-of-Work (PoW), cụ thé sẽ thực hiện thuật toán Ethash dé tìm số nonce thỏa mãn yêu cầu của hệ thống Ethereum. Có rất nhiều miners cùng giải thuật toán Ethash nhưng chỉ có một miner nhận được tiền thưởng khi tìm thay số nonce thoả mãn đầu tiên.
Hiện nay việc mining thực hiện chủ yêu trên GPU và CPU, việc này sẽ tiêu tốn rất nhiều năng lượng. Trong đề tài nảy nhóm sẽ hiện thực giải thuật Ethash trên phần cứng sau đó sẽ tiến hành tối ưu dé cải thiện được tốc độ xử lý và giảm tiêu hao năng lượng. Tuy nhiên giới hạn của đề tài nay là cần phải xử lý, sử dụng một lượng dữ liệu cực lớn đó chính là tập tin dit liệu DAG có kích thước lớn hơn 4GB tính đến thời điểm hiện tại, sẽ được cập nhật và tăng dần sau mỗi 30000 block. Mà hiện tại các board FPGA có bộ nhớ rất nhỏ so với kích thước của tập tin DAG.
Cho nên đề tài này nhóm sẽ giới hạn tập tin DAG để có thể tổng hợp thiết kế trên phần cứng FPGA và mô phỏng kiểm tra thiết kế của hệ thông. TONG QUAN ĐÈ TÀI 1. Giới thiệu đề tài Tên đề tài: Nghiên cứu và tối ưu thiết kế phần cứng tạo block cho mạng Ethereum Blockchain. Động lực thực hiện đề tài: Ethereum (ETH) là một nền tảng phi tập trung dựa trên công nghệ Blockchain, được giới thiệu bởi Vitalik Buterin (một lập trình viên đồng sáng lập Tạp chí Bitcoin) vào năm 2015 [1].
Ethereum là một mục tiêu khó khăn đối với các vụ lừa đảo và kiểm duyệt vì tính phi tập trung của nó. Mục tiêu của ETH là cung cấp bảo mật cao hơn với chỉ phí thấp hơn so với các hợp đồng truyền thống. Với những yếu tổ trên, không có gi ngạc nhiên khi Ethereum trở thành đồng tiền điện tử quan trọng thứ hai trên thị trường. Đào Ethereum (Ethereum mining) là một quá trình quan trọng trong việc vận hành mạng lưới Ethereum.
Kết quả của quá trình này là sinh ra một block mới, nơi mà chứa đựng và bảo mật các thông tin được tạo ra bởi các quá trình giao dịch của người dùng. Đào Ethereum thực chất là đi giải một bài toán lớn phức tạp có tên là Ethash nhăm tìm ra một con sô nonce thỏa yêu câu hệ thông. Do đó, trong đề tài này nhóm sẽ nghiên cứu và hiện thực giải thuật Ethash trên phần cứng là giải thuật tao block cho mạng Ethereum Blockchain, bằng việc tối ưu kiến trúc các module thành phần trong hệ thống Ethash lớn sẽ giúp cải thiện tốc độ tính toán so với các nghiên cứu trước. Một số nghiên cứu liên quan Hiện nay, lĩnh vực tiền điện tử như Bitcoin, Litecoin và Ethereum đang là một xu hướng được quan tâm và đầu tư phát triển.
Chính vì vậy việc hiện thực giải thuật Ethash trên phần cứng chuyên biệt nhằm tăng tốc độ đào đang là vấn đề cần được chú tâm nhiều nhất. Tuy nhiên giải thuật này có độ tính toán phức tạp cao và tiêu tốn nhiều tài nguyên phần cứng. Theo quá trình tìm hiéu, phân tích của nhóm, giải thuật Ethash [1] bao gồm các giải thuật nhỏ hon đó là Keccak (gồm Keccak512 và Keccak256), hàm FNV va phép modulo (mod). Hiện nay, có nhiều nghiên cứu về các giải thuật con này và được trình bày ở một số bài báo được đăng tải trên tạp chí IEEE.
Tuy nhiên các nghiên cứu này được tiến hành nghiên cứu, tối ưu phần cứng không hướng tới việc đề tối ưu phần cứng cho hệ thống lớn Ethash. Trong bài báo [2], giải thuật Keccak256 được hiện thực theo kiến tric Iterative là một kiến trúc truyền thống với tần số đạt được là 301. Ở bài báo [3], tác giả tối ưu kiến trúc Iterative băng cách tối ưu hoá bộ control của hệ thống kết quả đạt được tốt hơn so với nghiên cứu [2] có tần số đạt được 309,6 MHz, Throughput và Efficiency lần lượt là 14. Trong bài báo [4], tác giả có đề cập đến kiến trúc pipeline bằng việc đặt các thanh ghi (register) giữa các khối tính toán giúp rút ngắn critical path điều đó giúp tăng tốc độ tính toán của hàm băm trên FPGA nhưng vẫn đảm bảo chi phi area ở mức vừa phải.
Trong đó bài báo số [4] hiện thực thiết kế trên nền tảng Virtex-7 có kết quả là tan số đạt được là 832.848 MHz, Throughput là 36.985 Gbps, do vậy Efficiency của kiến trúc đạt được rất tốt bằng 22. Bên cạnh đó, bài báo [5] cũng hiện thực thiết kế theo kiến trúc pipeline 2 tầng nhưng trên nền tảng Arria 10 với kết quả tần số khá tốt là 498.62 MHz, Throughput và Efficiency đạt 22. Về giải thuật Ethash hiện thực trên phần cứng thì hiện tại nhóm chi tim thay một bài báo [6]. Ở bài báo này, nhóm tác giả đã đề xuất kiến trúc phần cứng và hiện thực giải thuật Ethash trên board FPGA cụ thé là Xilinx Virtex-7 VC707.
Sau đó đánh giá kết qua thu được khi tổng hợp trên FPGA, các thông số và kết quả cụ thé như Bảng 1.1: Hiện nay, GPU được sử dung phé bién trong việc dao ETH. Vì trên GPU sử dụng nhiều core dé xử lý nên thông số Hashrate cao, kèm theo năng lượng tiêu tốn lớn dẫn đến Efficiency nhỏ.2 là kết quả hiện thực Ethash trên GPU trong [7], [8]. Cuda Core : Design : Devices sài, Stream Hashrate | Power | Efficiency (MH/W) Processor (AMD) l3 | 027 155 | 054 156 | 016 NVIDIA P40000 77 0.22 Vi vậy ở dé tài này, nhóm sẽ tối ưu giải thuật mã hoá Keccak trên phan cứng theo kiến trúc pipeline nhằm đạt tần số cao. Bên cạnh đó nhóm sẽ nghiên cứu tối ưu các module thành phần trong hệ thống Ethash từ đó cải thiện Hashrate và giảm năng lượng tiêu tốn của hệ thống.
Mục tiêu đề tài Trong đề tài khóa luận tốt nghiệp nhóm sẽ đặt ra hai mục tiêu chính dưới đây: 1. Mục tiêu cho hàm Keccak [4] 832848 | 1673 36.89 Keccak256 dé xuat | Virtex- 7 | gq 1200 36 30 Bảng 1.3 là mục tiêu nhóm đặt ra khi hiện thực hàm Keccak256. Đề đánh giá kết quả tổng hợp phần cứng Keccak256, Throughput và Efficiency được xác định như sau: r x Fmax x Nmsg Throughput = (1.1) Latency Throughput Efficiency = _.2) Are a Trong đó: e r= 1600-— 2*d = 1088, là hăng số. e Fmax: tần số hoạt động tôi đa của thiết kế.
e Nmsg: số lượng message_in được xử lý đồng thời tại một thời điểm. e Latency: tông số chu kỳ dé cho ra giá trị hash của Msg. e Area: tông sé slice chiếm dụng khi tổng hợp trên phần cứng FPGA. Giá trị max va Area thu được sau khi tông hợp thiết kế bằng công cụ ISE Design Suite.
Đề thiết kế đạt được Throughput tốt, thì chúng ta cần nâng cao Fmax và giảm Latency xuông mức tối thiêu. Đồng thời Area nhỏ nhất dé có thé đạt được Efficiency tét nhất. Mục tiêu cho hệ thống Ethash Bảng 1.4 Mục tiêu thiết kế hệ thống Ethash Area Frequency | Throughput | Hashrate (Slices) (KH/s) we | a | a [ame Ethash dé xuat | vitex-7| §000 16 0.077 150 Muc tiéu nhom dat ra cho hé thống Ethash được trình bày ở Bảng 1. Đề đánh giá hệ thống Ethash, thông số Hashrate được xác định như sau: Frequency Hashrate = ——————— V3 Cycles (1.3) Với Frequency là tần số hoạt động va Cycles là số chu ky trung bình dé thu được một giá tri ethash_value của hệ thống Ethash.
Ngoài những mục tiêu đề ra ở Bảng 1.4 để so sánh với nghiên cứu [6] trên FPGA, nhóm còn đặt ra mục tiêu về Efficiency được tính theo công thức (1.4) dé so sánh với kết quả hiện thực phần mềm của các nghiên cứu trên GPU như Bang 1. Hashrate Efficiency= Power” (1.4) Với Power là năng lượng tiêu thụ của hệ thống Ethash tính theo đơn vị Watt (W) khi hiện thực thiết kế trên FPGA Virtex-7 VC707 bằng công cụ Vivado. So sánh Hashrate của hệ thống Ethash trên nền tảng FPGA với trên GPU thì rất chênh lệch vì GPU sử dụng rất nhiều core để xử lý và tính toán. Chính vì vậy nhóm đặt ra mục tiêu so sánh Efficiency đê xem độ hiệu quả của hai nên tang.5 Mục tiêu Efficiency của hệ thống Ethash (NVIDIA); Hashrate | Power | Efficiency Devices Stream (W) | (MH/W) Processor (AMD) l3 | 027 155 | 054 156 | 016 77 | 034 100 | 029 110 | 027 90 | 032 AMD RX 580 2304 130 0.15 Báo cáo này được chia làm năm chương chính.
Chương đâu tiên giới thiệu vê đê tai luận văn, một sô nghiên cứu liên quan và mục tiêu đê tài. Các chương tiêp theo được trình bày như sau: Chương 2: Cơ sở lý thuyết Chương 2 sẽ trình bay tổng quan những lý thuyết về Blockchain, Ethereum, Ethereum mining, giải thuật Ethash, giải thuật Keccak, hàm FNV và phép modulo. Chương 3: Kiến trúc đề xuất Dựa vào những kiến thức đã tìm hiểu được ở chương 2, chương 3 là phần trình bày về kiến trúc tổng thể cho hệ thống Ethash. Ở chương này, các thành phần của thiết kế sẽ được trình bay một cach chi tiét nhu hé thống Ethash, kiến trúc hàm Keccak và các thành phan trong Main_Loop.
Chương 4: Kiểm tra và đánh giá kết quả Chương 4 trình bày về phương pháp đánh giá và kiểm tra kết quả thực hiện đề tài. Cụ thé, kết quả thực hiện trên phần mềm bằng ngôn ngữ Python sẽ được so sánh với các khối thông tin đã có sẵn trên Ethereum Blockchain và kết quả hiện thực phần cứng sẽ được so sánh với kết quả hiện thực phần mềm. Đồng thời kết quả hiện thực phần cứng sẽ được so sánh, đánh giá với các nghiên cứu liên quan.