1. Trang chủ
  2. » Luận Văn - Báo Cáo

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 SHA-256 sử dụng chuyển đổi mở rộng trên FPGA

84 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Triển khai hệ thống đào Bitcoin đa lõi SHA-256 sử dụng chuyển đổi mở rộng trên FPGA
Tác giả Dương Quang Thắng, Nguyễn Ngọc Thái
Người hướng dẫn Thạc sĩ. Phạm Thanh Hùng
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Kỹ thuật máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 84
Dung lượng 42,89 MB

Nội dung

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 và cũng là quá trình duy nhất dé Bitcoin mới được tạo ra, đưa vào lưu thông.. Để k

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TÍNH

DUONG QUANG THANG NGUYEN NGOC THAI

KHOA LUAN TOT NGHIEP

TRIEN KHAI HE THONG DAO BITCOIN DA LOI

SHA-256 SU DUNG CHUYEN DOI MO RONG TREN FPGA

DEPLOY MULTI CORE SHA-256 IN BITCOIN MINING

SYSTEM USING UNFOLDING TRANSFORMATION ON FPGA

KỸ SU KỸ THUAT MAY TÍNH

TP HO CHÍ MINH, 2022

Trang 2

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KY THUAT MAY TÍNH

DUONG QUANG THANG - 18521389 NGUYEN NGỌC THÁI - 18521383

KHÓA LUẬN TÓT NGHIỆP

TRIEN KHAI HE THONG ĐÀO BITCOIN DA LOI

SHA-256 SU DUNG CHUYEN DOI MO RONG TREN FPGA

DEPLOY MULTI CORE SHA-256 IN BITCOIN MINING

SYSTEM USING UNFOLDING TRANSFORMATION ON FPGA

KY SƯ KY THUAT MAY TÍNH

GIANG VIEN HUONG DAN THAC SĨ PHAM THANH HÙNG

TP HÒ CHÍ MINH, 2022

Trang 3

THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP

Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 526/QD-DHCNTT

ngày 19 tháng Ø7 năm 2022 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

Trang 4

Để hoàn thành luận văn tốt nghiệp, em xin gửi lời cảm ơn trân trọng đến:

Quý thầy cô Trường Đại học Công Nghệ Thông Tin — Đại học Quốc gia

Thanh phó Hồ Chí Minh và đặc biệt quý thầy cô khoa Kỹ thuật máy tinh đã nhiệt tình dạy dỗ, truyền đạt những kiến thức quý báu cho chúng em trong suốt bốn năm học tập và rèn luyện tại trường.

Chúng em xin đặc biệt cảm ơn Thạc sĩ Phạm Thanh Hùng, thầy đã hướng

dẫn tận tình, hỗ trợ, đưa ra những góp ý và định hướng giúp chúng em trong suốt quá trình thực hiện đề tài để có đạt được kết quả tốt nhất.

Cuối cùng, xin gửi lời cảm ơn đến gia đình, bạn bè, những người sẵn sàng chia sẽ và giúp đỡ, luôn bên cạnh ủng hộ, động viên tỉnh thần trong suốt thời gian

thực hiện khóa luận.

Mặc dù nhóm đã cô gắng hoàn thiện luận văn trong phạm vi và khả năng có

thé Tuy nhiên, do giới hạn kiến thức và khả năng lý luận của bản thân còn nhiều thiếu sót và hạn chế Chúng em rat mong nhận được su cảm thông và kính mong nhận

được chỉ dẫn đóng góp của hội đồng dé nhóm có thé hoàn thiện dé tài nghiên cứu tốt hơn.

Em xin trân trọng cảm cảm ơn!

TP Hồ Chí Minh, Ngày 09 tháng 08 năm 2022

Sinh viên thực hiện

Nguyễn Ngọc Thái Dương Quang Thắng

Trang 5

MỤC LỤC

TOM TAT KHÓA LUẬN 222:©2222222222222222112222231122221111 2221111221211 ccre 1

"9527105 -” 2 CHƯƠNG I: TONG QUAN DE TÀII -22222222+2+22222E2222231222221122222Eece2 3

1.1 Giới thiệu để tài -.222ccc2 2222 E2 rrEEEEEEEErrrrrtrrrrtrrrrrrrrrrrrrrrrerrree 3 1.2 Một số nghiên cứu liên quan - 2¿22+ctvcvssererrrserrrrxserrrrecce+3

1.3 Hướng nghiên cứu của để tài 222cc 222v+tt2EEEEvretrkrvrrerrkrrrrsrrkrrree 4 1.4 Mục tiêu đặt ra -.- 2c tt nv 191 1T 1 151 1116101 H1 HH HH hờn 4 Chương 2 CƠ SỞ LÝ THUYẾTT -2222¿£2222EESvvv+ttt2EEEEExvrrrrrrrrrrrrrree 6

Trang 6

2.5 Unfolding transformation [12] ¿-¿- 5 + 5++++++£++e£erzksesrersreree 25 Chương 3 THIẾT KE ĐỀ XUẤT.

3.1 Thiết kế chỉ tiết khối Multicore Miner - -:-¿©22sscz+ccvszczrx 28 3.2 Thiết kế chỉ tiết khối Miner Core

3.3 Thiết kế Chi tiết khối SHA 256 Unfolding factor 2 - - 34 Chương 4 KIỂM TRA KET QUA THIET KE.

4.1 Kết qua kiểm tra thiết kế SHA 256 Unfolding factor 2 - - 42 4.2 Kết quả kiểm tra thiết kế Multicore Miner

4.2.1 Mô hình kiểm tra 2:c2222++tECEEErttErrvrrrrrrrrrrerrkrrrrrrg 43 4.2.2 Kết quả kiểm tra -.c22ccc22SSvcreErrvrrrrrrrrrrerrrrrrrsrg 44 4.3 Kết quả hiện thực -+¿5222++++22222222221112222112222211 22.1 cerrkev 48 Chương 5 HIỆN THỰC THIET KE TREN FPGA -:- ¿222552 50 5.1 Tổng quan hệ thống Mining Bitcoin ¿-2c¿+222+zzcecvvszcsrr 50

5.2 Đóng gói và hiện thực thiết kế lên FPGA -czz2ccs+ 51 5.3 Viết chương trình python dé truyền nhận dữ liệu giữa thiết kế trên FPGA và

PC thông qua UARÍT, óc St ng HH HH Tnhh nến 56

5.3.1 _ Test với các block đã được tim thấy dé kiểm chứng độ chính xác của

hệ thống 56

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

5.4 Kết quả hiện thực hệ thống SoC trên FPGA -c -+ 61 Chương 6 KET LUẬN VÀ HƯỚNG PHAT TRIÊN -2 62

Sẽ n5 62 6.2 Khó khăn gặp phải - ¿6 kề ST k2 HH1 010121 63 6.3 Hướng phát triển -c2::¿+22222EEvvvrt2EE2EEEtrrEEEEErrrrrrrrrrrrrreg 63

Trang 7

DANH MỤC HÌNH

Hình 2 1: Mô hình Fonte Blockchain dau tiên theo Satoshi Nakamoto[7] 6 Hình 2 2: Các node trong mạng Blockchain tạo thành một mạng ngang hang [8] 9 Hình 2 3: Ví dụ mô hình Public Blockchain [ Ì Ï ] «-c«<c=ss<sxsxeeeereesexsx 10 Hình 2 4: Ví dụ mô hình Consortium Blockchain [11] -c-+cs+s++ss+ss£+ss+ 11 Hinh 2 5: Vi du mé hinh Private Blockchain [11] „12

Hình 2 6: Chuyển đổi trường “nBits” thành target [13],[14] „17 Hình 2 7: Chuyển đổi nhanh chóng “nBits” thành target [13] 18

22

Hinh 2 9: Vi du vé Unfolding factor 2 Nguén: “VLSI Digital Signal Processing Hinh 2 8: Qua trinh dém dau vao cho théng diép

Systems—Design and Implementation” [ Ï2] S5 sv£v£eEerexeeevseeererersee 26

Hình 2 10: (a) DFG gốc và (b) DFG áp dụng giải thuật unfolding factor 2 27

Hình 3 1: Duo-core [2 ] -.-c ScS St SE St St EEEEtEEESEEEEEEEtkrxerrkkrrxskrrerrrererre 28

Hình 3 2: Sơ đô khói thiết kế Multicore Miner

Hình 3 3: Tổng quan các dữ liệu được đưa xuống cho thiết kế phan cứng ở hình 3.2 ỐốỐốỐốỐốẻỐẻỐốỐốỐốỐ h6." `ˆẽe“+xy “Số 31

Hình 3 4: Kiến trúc khối Miner core với cốt lõi là 2 khối SHA 256 32

Hình 3 5: Sơ đô khối chỉ tiết thiết kế SHA 256 Unfolding factor 2 35 Hình 3 6: Khối Message Expander sử dụng phương pháp unfolding factor 2 38

Hình 3 7: Sơ đô chỉ tiết khối Message Expaiider -sc5ccccccccccccccccveeersrr 38 Hình 3 8: Message Compressor sử dụng phương pháp unfolding factor 2 39

Hình 3 9: Thiết kế chỉ tiết Cho Function với dau vào mới được áp dụng 40

Hình 3 10: Thiết ké chỉ tiết Majo Function với đầu vào mới được áp dụng 40 Hình 3 11: : Thiết kế chỉ tiết summation 0 (%0) với dau vào mới được áp dụng .40 Hình 3 12: Thiết kế chỉ tiết summation 1 (1) với đâu vào mới được áp dung .41

Trang 8

Hình 4.

Hình 4.

Hình 4.

Hình 4.

Hình 4.

Hình 5.

Hình 5.

Hình 5.

Hình 5.

Hình 5.

Hình 5.

Hình 5.

Hình 5.

Hình 5.

Hình 5.

Hình 5.

Hình 5.

3: Mô hình kiểm tra thiết kế trên phan mém viwado -° 44

4: Giá tri nonce của block test đầu tiên trong bảng 4.2 - 46

5: Giá tri nonce của 9 block test dau tiên trong bảng 4.2 - 46

6: Kết quả in trên console của 5 block header dau tiên trong bảng 4.2 47

7 Kết quả in trên console cua 5 block header cuối cùng trong bảng 4.2 47

1: Mô hình hệ thong Bitcoin Mining - ©ccccccccccccccccceeeccee 50 2: Thiết kế TOP IP phù hợp với chuẩn AXI4 Lite -c-cc c2 52 3: Hệ thông SoC Bitcoin Miner Multicore hoàn chỉnh -‹ 55

4: Thử nghiệm thực tế với thiết kế Multicore Miner dựa trên SoC 56

5: Thông tin của một block heer c5 5+ S5 SE‡EsEeekeeererersee 57 6: Kết quả kiểm tra của 4 block đầu trong bảng 4.2 - 57

7: Kết quả kiểm tra lại giá trị băm của Block 32144 với nonce từ FPGA 58

8: Kết quả của các block tiếp theo và 5 block cuối cùng trong bảng 4.2 58

9: Cai đặt Ubuntu LTS trên Microsoft Store

10: Dữ liệu được lay về từ Mining Pool va xử lý trước khi đẩy xuống FPGA

11: Dữ liệu tính toán từ FPGA trả về lại PC sau 30s.

12: Tan số hiện thực của hệ thống trên FPGA -:©cc-z+c-se+ 61

Trang 9

DANH MUC BANG

1: Các trường trong một Block Header cccccccsecccscsececestsceeesseeesetesseestesensaees 152: Thanh phan kích thước chuẩn của hàm băm SHA-256 19

3: Giá tri Hash khởi tạo ban đÌM -c- Set SE E+ESEEEEEEEeEertetererxresrrrs 211: Mô tả các tín hiệu trong khối Multicore Miner -s sz©5z<: 292: Mô tả các tín hiệu trong khối Miner Core -5c©5z©cs+cs+cscs2 333: Bang mô tả các tín hiệu thiết kế SHA 256 Unfolding factor 2 35

1: Tài nguyên phan cứng hiện thực khối SHA 256 Unfolding factor 2 43

2: 32 Block sử dụng dé kiểm tra Multicore MMiner . -s-cs+cs+s+ 453: Tài nguyên phân cứng hiện thực khối Multicore Miner 484: So sánh với các dé tài nghiên cứu khác -s©secce+c+cs+cxecse+ 48

I Mô tả các tín hiệu của TOP TÌP c c5 + + vEEk+SkkkEEkesssseeeeesee 522: Ban đồ địa chỉ thanh ghi lưu trữ dữ liệu của thiết kế trong hình 5.2 54

3: Tài nguyên của hệ thong khi hiện thực trên FPGA Virtex7 — VC707 61

Trang 10

DANH MỤC TỪ VIET TAT

Từ viết tắt Từ day đủ

SHA-256 Secure Hashing Algorithm 256

P2P Peer to peer

FPGA Field-Programmable Gate Array

ASIC Application-Specific Integrated Circuit SoC System on Chip

DFG Data-flow graph

PoW Proof of Work

DLT Distributed Ledger Technology

AXI Advanced eXtensible Interface

LUT Look Up Table

FF Flip Flop

MMCM Mixed-Mode Clock Manager

BUFG Global Clock Simple Buffer

Trang 11

tìm tham số none và được hiện thực trên FPGA Phần mềm sẽ là một chương trình

kết nối đến một Mining Pool dé trao đổi, lay dữ liệu về đưa xuống thiết kế phần cứng

và thực hiện gửi lại kết quả phần cứng đến Mining Pool Thiết kế phần cứng được xây dựng theo hướng máy đào đa nhân (Multicore Miner) Trong đó giải thuật SHA

256 được sử dụng trong các lõi Miner Core được xây dựng dựa theo phương pháp áp

dụng chuyển đổi mở rộng (unfolding) Việc áp dụng tốt phương pháp chuyển đổi mở

rộng giúp cải thiện, giảm số chu kỳ lặp của thuật toán, qua đó tăng thông lượng và Hash rate của thiết kế.

Với đề tài luận văn này, nhóm đã xây dựng và hoàn thành đầy đủ hệ thống khai thác Bitcoin đa lõi Trong đó thiết kế phần cứng xây dựng theo hướng đa lõi và

được hiện thực trên FPGA và kết nối với một phần mềm được lập trình trên PC Phần

mềm mày sẽ kết nói đến một Mining Pool dé lay dữ liệu về và đưa xuống FPGA, tao

nên một hệ thống hoàn chỉnh, hoạt động được ở thời gian thực (real time) và có thé

khai thác Bitcoin Thiết kế phan cứng được hiện thực trên FPGA Xilinx Virtex

7-VC707 đạt được kết qua Hash rate 101.01 MHash/s, tần số 104.167 MHz và

throughput đạt 51.717 Gbps.

Trang 12

MỞ ĐÀU

Bitcoin là hệ thống tiền điện tử đầu tiên và có giá trị cao nhất ở thời điểm hiện

tại trên sàn crypto ra mắt lần đầu vào năm 2009 bởi nhà phát triển Satoshi Nakamoto Bitcoin sử dụng công nghệ Blockchain làm nên tảng chính dé duy trì va tạo nên tính

minh bạch, xác thực cho các giao dịch Công nghệ này tạo ra một bản ghi vĩnh viễn

và không thể thay đổi hoặc phá hủy của mỗi giao dịch Bitcoin sử dụng công nghệ

Blockchain với cốt lõi là P2P dé thực hiện giao dịch, trao đổi giữa các bên mà không cần thông qua bat kỳ thực thể tập trung nào như ngân hàng hay chính phủ dé đảm bảo

độ tin cậy.

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 và cũng là quá trình duy nhất dé Bitcoin mới được tạo ra, đưa vào lưu thông Tính đến thời điểm tháng 3 năm 2022 thì số lượng Bitcoin được khai thác là hơn 19 triệu Bitcoin trên tông số 21 triệu 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ẽ dần đi đến giới hạn của nó là 21 triệu Bitcoin Bitcoin

mới được thêm vào nguồn cung Bitcoin khoảng 10 phút một lần, đây là lượng thời

gian trung bình cần để tạo ra một khối Bitcoin mới Theo thiết kế, số lượng Bitcoin được khai thác trên mỗi khối giảm 50% sau mỗi 210.000 khối, hoặc khoảng bốn năm một lần Do tỷ lệ Bitcoin được khai thác giảm theo thời gian điều này đồ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 và nhận một lượng Bitcoin Việc này đã 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.

Bitcoin sử dụng thuật toán băm SHA-256 dé mã hóa dit liệu được lưu trữ trong

các khối trên blockchain Để khai thác Bitcoin giải thuật băm được sử dụng là Double

SHA 256 (Secure Hash Algorithm 256) và liên tục thực hiện các phép thử bằng việc thay đổi thông thông số Nonce trong Block Header cho đến khi tạo ra một hàm băm

bé hơn hàm băm mục tiêu (Target Hash) Việc tìm ra được thông số Nonce được gọi

là “proof of word” và Miner tìm được sẽ trao đổi khối nhận lấy một lượng tiền điện

tử tương ứng.

Trang 13

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

1.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ế.

1.2 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.5 MHz và 232.704 Gbps throughput.

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

Trang 14

chuyên đổi mở rộng hệ số 2 đạt được tần số là 251.07 MHz và throughput là 3.6210Gbps.

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ậttí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.082 Gbps

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ưngchỉ 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ốitrự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áydao 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ướngchuyê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.

1.3 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ựngtheo 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 đàoBitcoin thực sự mà chỉ dừng lại ở việc kiểm chứng Chính vì vậy nhóm mong muốnmang đế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].

1.4 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).

Trang 15

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ânSHA 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.

Trang 16

Chương2 CƠ SỞ LÝ THUYET

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

Trang 17

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

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 MinerMiner tạo ra các khối mới trên chuối thông qua quá trình khai thác (mining)

Trang 18

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ũngtham 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ộtkhố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ácthuậ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ủanú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á trinonce 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ì noncechỉ 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ấpnhậ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ạikhô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ạngchấ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à khaithá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ạnhtính toán của node.

e Nodes

Trang 19

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 độngnhư một máy khách và máy chủ kết hợp

P2P network of

participating node (an application — level network)

Hình 2 2: Các node trong mạng Blockchain tạo thành một mạng ngang hang [6Š]

Nguồn: ” SimBlock: A Blockchain Network Simulator” [8]

Trong hình 2.2 [8], Các node tham gia vào chuỗi khối tạo thành một mạng nganghàng (P2P) Dữ liệu được ghi lại trong các chuỗi khối được gọi là giao dịch(transaction) và được phát giữa các node liên quan đến mạng blockchain Giao dịch

này được lưu trữ trong nhóm giao dịch (transaction pool) của mỗi nút nhưng chưa

được ghi lai trong sé cái Đề lưu trữ giao dich trong sé cái, cần tạo ra một khối trong

đó chứa số lượng lớn các giao dịch đã được thu thập Bằng cách xác minh khối này,

các giao dịch có trong khối được phê duyệt và ghi lại trong số cái Như được hiền thị

trong hình 2.2 [8], các khối được kết nối thành một hàng băng cách bao gồm hàm

băm ngay trước đó, kỹ thuật này được gọi là blockchain.

Một trong những khái niệm quan trọng nhất trong công nghệ Blockchain là phânquyền Không một máy tính hoặc tổ chức nào có thé sở hữu chuỗi Thay vào đó, nó

là một số cái phân tán thông qua các nút được kết nối với chuỗi Các nút có thé là bất

Trang 20

kỳ loại thiết bị điện tử nào duy trì các bản sao của chuỗi khối và giữ cho mạng hoạt

động như cái máy đảo, các thiết bi dùng dé khai thác

Mỗi nút đều có bản sao blockchain của riêng nó và mạng phải phê duyệt theo thuật

toán cho bất kỳ khối nào mới được khai thác dé chuỗi được cập nhật, tin cậy và xác

minh Vì các blockchains là minh bạch nên mọi hành động trong số cái đều có théđược kiểm tra và xem dé dàng Mỗi người tham gia được cấp một mã số nhận dạngchữ và số duy nhất dé hiển thị các giao dịch của họ

Việc kết hợp thông tin công khai với hệ thống kiểm tra và cân bằng giúp blockchain

duy trì tính toàn vẹn và tạo sự tin tưởng giữa người dùng.

2.1.2 Cac loại Blockchain

Có 3 loại công nghệ Blockchain:

s* Blockchain công khai (Public Blockchain): Mỗi và mọi bản ghi đều được công

khai có thể xem được trong loại blockchain này Mọi người đều có thể tham giavào quá trình đồng thuận Mọi người không thé chỉ kiểm tra mà còn xác minh các

giao dịch.

Một blockchain công khai có thể đọc và ghi được cho tat cả mọi người trên toàn

cầu Tiền điện tử dựa trên Public Blockchain như Ethereum và Bitcoin đều là

những ví dụ về blockchain công khai và được thé hiện như trong hình 2.3 [11]

Hình 2 3: Ví dụ mô hình Public Blockchain [11]

Nguồn: “A Detailed Review on Blockchain and Its Applications” [11]

10

Trang 21

¢* Blockchain liên hợp (Consortium Blockchain): Loại chuỗi khối này biểu thị rang

nút có quyền hạn có thể là đã chọn trước đó Nó thường sở hữu quan hệ đối tácchang hạn như giữa doanh nghiệp với doanh nghiệp Loại blockchain này chứa

dữ liệu bao gồm riêng tư hoặc mở và có thé được xem như là một phan phi tập

trung Chỉ một tập hợp các nút được chọn trước đó sẽ tham gia vào một quy trình

đồng thuận của tập đoàn blockchain và được mô tả trong hình 2.4 [11] Một sốblockchain liên hợp bao gồm R3CEV và Hyperledger

Nguồn: “A Detailed Review on Blockcha and Its Applications” [11]

“* Blockchain riêng tu (Private Blockchain): Các nút thuộc về một tô chức cu thé sé

được phép tham gia vào quy trình đồng thuận Một blockchain riêng được coi lànhư một mạng tập trung, do thực tế là chỉ một tổ chức duy nhất kiểm soát nó hoàn

toàn Tập đoàn blockchain được xây dựng bởi nhiều công ty được phân cấp một

phần vì nó sẽ chọn một phần nhỏ các nút dé xác định sự đồng thuận, điều này

được mô tả như trong hình 2.5 [11].

Một blockchain áp đặt các giới hạn về người có thê tương tác với hoặc đọcblockchain Các blockchain riêng tư cũng được công nhận là được cấp phép, trong

đó chỉ những nút cụ thê có thê tương tác với blockchain mới có thé được cung cấp

quyền truy cập Hình 2.5 [11] dưới đây cho thấy mô hình của một PrivateBlockchain.

11

Trang 22

Nguồn: “A Detailed Review on Blockchain and Its Applications” [11]

2.2 Ly thuyét Bitcoin

2.2.1 Bitcoin là gi?

Bitcoin là một trong những tiền điện tử phi tập trung mà bat ky ai cũng có thé muabán và trao đôi trực tiếp mà không cần thông qua một đơn vị trung gian nào như ngânhàng, thay vào đó, nó dựa vào công nghệ P2P (peer-to-peer) dé thực hiện giao dịch.Bitcoin được xây dựng dựa trên công nghệ Blockchain ra mắt lần đầu vào năm 2009bởi nhà phát triển Satoshi Nakamoto

Mọi giao dịch Bitcoin từng được thực hiện đều tôn tại trên một số cái công khai màmọi người đều có thể truy cập được, khiến các giao dịch khó bị đảo ngược và khó bị

làm giả Đó là do thiết kế: cốt lõi của bản chat phi tập trung của chúng, Bitcoin khôngđược hỗ trợ bởi chính phủ hoặc bắt kỳ tổ chức phát hành nào và không có gì để đảmbảo giá trị của chúng ngoài bằng chứng được đúc kết trong lòng hệ thống

Bitcoin được tạo ra duy nhất bằng việc khai thác Bitcoin thông qua các thiết bị chuyên

dụng cho việc dao Bitcoin Bitcoin được cung cấp đến các máy đào như một phan

thưởng công việc cho người thực hiện việc xác minh giao dịch Bitcoin và ghi chúng

vào cuôn sô cái trong mạng ngang hàng.

12

Trang 23

2.2.2 Bitcoin hoạt động như thé nào

Mỗi Bitcoin là một tệp được lưu trữ trong ví kỹ thuật số trên máy tính hoặc điện thoại

thông minh Dé hiểu cách hoạt động của tiền điện tử, bạn cần hiểu các thuật ngữ này

và một chút ngữ cảnh:

Blockchain: Bitcoin được cung cấp bởi mã nguồn mở được gọi là blockchain ,tạo ra một lịch sử giao dịch công khai được chia sẻ, được tổ chức thành các "khối"

Các giao dịch xếp hàng đợi và được nhập vào khối, khối được đóng và blockchain

tạo ra băm Mỗi khối chứa thông tin từ các khối trước đó, vì vậy không thé thayđối blockchain vì mỗi khối được "xích" với khối trước nó, việc này giúp ngănchặn sự giả mạo Các khối được xác nhận và mở bởi một quá trình được gọi là

khai thác Công nghệ này tạo ra một bản ghi vĩnh viễn của mỗi giao dịch và nó

cung cấp một cách dé mọi người dùng Bitcoin hoạt động với sự hiéu biết giống

nhau về việc ai sở hữu những gi (xem chỉ tiết hon ở phần 2.1)

Khóa riêng tw và khóa công khai: Ví Bitcoin chứa khóa công khai và khóa riêng

tư, chúng hoạt động cùng nhau để cho phép chủ sở hữu bắt đầu và ký điện tử cácgiao dịch Điều này mở khóa chức năng trung tâm của Bitcoin - chuyển quyền sở

hữu một cách an toàn từ người dùng này sang người dùng khác.

Khai thác Bitcoin: Người dùng trên mạng Bitcoin xác minh các giao dich thông

qua một quy trình được gọi là khai thác, được thiết kế dé xác nhận rằng các giao

dịch mới nhất quán với các giao dịch khác đã được hoàn thành trong quá khứ

Điều này đảm bảo rằng bạn không thể tiêu một Bitcoin mà bạn không có hoặc bạn

đã tiêu trước đó Quá trình khai thác bitcoin được mô tả chi tiết hơn trong phan2.3.

2.2.3 Giao dịch Bitcoin

Giao dịch Bitcoin xảy ra khi một các nhân gửi hoặc nhận Bitcoin Dé gửi, người dùng

nhập địa chỉ của người nhận vào ứng dụng ví, nhập khóa cá nhân và đông ý với phí

giao dịch và nhân nút đê yêu câu thực hiện giao dịch Giao dịch được yêu câu xác

13

Trang 24

minh và người nhận phải đợi giao dịch được xác minh bởi mạng khai thác, có thé mat

tới 30 phút vì các giao dịch chờ trong hàng đợi khai thác được gọi là mempool.

Mempool là nơi các giao dịch đang chờ được xác minh Trung bình, mạng lưới xác

nhận một khối giao dịch khoảng mười phút một lần, nhưng không phải tất cả các giao

dịch mới đều đi vào khối mới được tạo Điều này là do các khối chỉ chứa một lượng

thông tin nhất định và mỗi giao dịch đều đi kèm với phí khai thác

Các giao dịch phải đáp ứng ngưỡng phí giao dịch tối thiêu dé được xử lý và các giaodịch có phí cao nhất sẽ được xử lý trước Khi khoản phí được đáp ứng, giao dịch sẽđược chuyền sang một khối, nơi nó được xử lý Sau khi thông tin giao dịch trong khốiđược các thợ đào xác thực, khối sẽ bị đóng vả tất cả người nhận đều thu thập bitcoincủa họ Cả hai ví đều hiển thị số dư phù hợp của chúng và các giao dịch tiếp theo sẽ

được xử lý.

2.3 Bitcoin Mining

2.3.1 Giai thuật Bitcoin Mining

Khai thác Bitcoin là quá trình liên quan đến việc xác minh các giao dich mới đối vớimạng Bitcoin, dẫn đến việc sản xuất, tạo ra Bitcoin mới Khai thác Bitcoin là quátrình các giao dịch Bitcoin được xác thực kỹ thuật số trên mang Bitcoin và được thêm

vào số cái blockchain Khai thác Bitcoin tốn nhiều năng lượng do yêu cầu về

“Proof-of-Work” của Bitcoin va sự điều chỉnh độ khó Độ khó khai thác của mạng bitcoin

được thay đổi bằng cách thêm hoặc giảm các số không ở phía trước của hàm bămmục tiêu (target hash).

Khai thác là một trong hai thành phần cốt lõi đảm bảo an toàn và duy trì cho chuỗikhối Bitcoin Theo một cách đơn giản, nó có thé được coi là quá trình thực sự xâydựng chuỗi khối bằng cách khám phá các khối mới và kết hợp chúng với các khối

trước đó.

Khối chỉ có thể trở thành một phần của chuỗi khi một trong những người khai thác

giải quyết một nhiệm vụ tìm thấy một giá trị thỏa mãn một điều kiện xác định trước.

14

Trang 25

Tiêu đề của mỗi khối chứa giá tri target dé xác định độ khó của việc khai thác một

khối Người khai thác sử dụng một phương pháp “thử và sai” dé phát hiện ra một giá

trị nonce (number only used once) kết hợp với một block header thỏa một điều kiện

xác định với target.

Giá trị này là một số có giá trị trong phạm vi 0 đến 2255 và van dé khai thác là tìm ramột giá tri nhỏ hơn giá tri target, HashFunction (block header, nonce) < target Giải

thuật cơ bản cho quá trình khai thác Bitcoin được mô tả như bên dưới:

Giải thuật 1: Giải thuật khai thác Bitcoin Input block header = (version, Prev_ Hash, Merkle root, Timestamp, nBits)

Input Nonce =0 // start from 0

Start MiningBlock:

Repeat Nonce ++

Until SHA256(SHA256(block header, Nonce) < target end

Trong giải thuật trên, đầu vào của hệ thống khai thác Bitcoin là một block header

gồm 6 trường được mô tả như bảng dưới

Bang 2 1: Các trường trong một Block Header

Truong Byte | Kiểu dit M6 ta

liéu

Version 4 int32_t | Phién ban xac thuc duoc str dung trong khối

Previous 32 | Char [32] | Hàm băm của khối trước đó Đảm bảo tính

Hash chất của Block chain

15

Trang 26

Merkle Root 32 | Char [32] | Hàm băm của tat cả các giao dịch bên trong

khối

Time stamp 4 | uint32 t | Thời gian bắt đầu băm Block Header Phải lớn

hơn thời gian trung bình của 11 khối trước đó

nBits 4 uint32_t | Giá tri target đã được mã hóa thành một giá tri

số Chính xác hơn được gọi là "compact" hoạtđộng giống như phiên bản cơ sở 256 của ký

hiệu khoa học.

Nonce 4 uint32_t | Một số thay đôi tùy ý dé sửa đôi block header

nhằm tạo ra một hàm băm nhỏ hơn hoặc bằng

target

Luu ý rang tat ca dữ liệu này trong tiêu dé khối được nén thành 80 byte bằng cách sửdụng ký hiệu được gọi là little-endian Hau hết các dữ liệu trong block header là cốđịnh ngoại trừ giá tri nonce Giá tri nonce được tạo ra từ 0 va tăng dần cho đến khi

giá trị băm mới thỏa mãn điều kiện đã xác định, tức là cho đến khi thấp hơn giá trị

target Nonce là một số 2? bit, vì vậy số lần lặp lại cho quá trình hash có thé lên đến23?, nghĩa là một giải pháp cho van đề có thê cần tới 4,3 tỷ lần thử

Nếu sau hơn 4 tỷ giá trị thử của nonce đã xảy ra nhưng vẫn không tìm thấy giải pháp,

thì một trường gọi là ExtraNonce sẽ được thêm vào và tăng lên Coinbase (nội dunggiao dịch của một khối, được lưu trữ dưới dạng cây merkle) Một gốc merkle mớiđược tạo ra và sau đó là tiêu đề khối mới được tính toán và nonce được lặp lại một

lần nữa Quá trình này được lặp lại cho đến khi tìm thấy một hàm băm đủ

Tốt nhất là tránh thêm extraNonce cho đến khi hết nonce , vì bat kỳ thay đổi nào đốivới extraNonce sẽ thay đổi cây merkle Điều này đòi hỏi phải tính toán thêm đề truyềnthay đôi lên trên cho đến khi tính được gốc mới của cây merkle

16

Trang 27

2.3.2 Target nBits

Target sẽ là bang chứng trong PoW va các Miner phải tuân theo dé xác định ngưỡng

băm mục tiêu cho khối đang được khai thác Điều này là cơ sở dé các khối mới được

khai thác sẽ được mạng Bitcoin chấp nhận

Ngưỡng mục tiêu là một số nguyên không dấu 256-bit dùng dé xác định giá trị băm

hợp lệ của block header Một Block header được xác định khi giá trị băm của block

đó phải bằng hoặc thấp hơn dé tiêu dé đó là một phần hợp lệ của chuỗi khối Tuynhiên, trường tiêu đề nBits chỉ cung cấp 32 Bit không gian, vì vậy target sử dụng địnhdạng kém chính xác hơn được gọi là "compact" hoạt động giống như phiên bản cơ sở

256 của ký hiệu khoa học.

Mục tiêu cho các khối mới sẽ được nén thành 32 Bit và lưu trong trường “nBits”trong Block header và sự chuyền đôi từ “nBits” thành target sẽ tuân theo công thức

dưới đây [14]:

T= nBitsMantissa x 28 x (exponent -3) (2.1) [14]

Trong đó T là giá trị băm mục tiêu (target), nBitsMa%% là gid trị của 24 Bit thấp trongtrường”nBits” va exponent là giá trị của 8 Bit cao của “nBits” Dé dễ dàng hình dung,quá trình chuyên đổi được hién thị thông qua một ví dụ như hình 2.6

0x18 1bc330 ——» Oxlbc330 *# 256 * (0x18 - 3)

nBits in Significand base exponent Bytes in

Big-endian (mantissa) Significand

order

Result: 0x 1bc330000000000000000000000000000000000000000000

Example Converting “nBits” a Target threshold

Hinh 2 6: Chuyén đổi trường “nBits ” thành target [13],[14]

Nguồn: “Bitcoin developer guide” [13], “Survey on Blockchain for Internet of

Things” [14]

Hình 2.6 là một ví dụ chuyền đổi trường “nBits” trong Block header thành target Từ

trường “nBits” có kích thước 32 Bit ở dạng Big-endian gồm 2 phần, trong đó 24 Bit

17

Trang 28

thấp là tiền tố đích (target prefix) và 8 Bit cao thé hiện số byte (chiều đài) trong một

mục tiêu Với ví dụ trong hình 2.6, sỐ byte trong mục tiêu là 0x18 (decimal: 24 byte)

byte và điều này sẽ dễ hiểu hơn thông qua vi dụ chuyển đổi nhanh chóng “nBits”

thành target qua ví dụ trong hình 2.7 dưới đây.

1b c3 30<———Most significant bytes

Quickly converting “nBits” 0x181bc330 into the targer threshold 0x1bc330000000000000000000000000000000000000000000

Hình 2 7: Chuyển đổi nhanh chóng “nBits” thành target [13]

Nguôn: “Bitcoin developer guide ” [13]

2.4 Giải thuật SHA-256 [1]

2.4.1 Giới thiệu SHA-256

SHA-256 là một giải thuật băm nằm trong nhóm SHA-2 thuộc họ MD, được pháttriển bởi cục an ninh quốc gia Mỹ (NSA) Hàm băm tiêu chuẩn SHA-256 được cung

cấp với mục đích mã hóa bat kỳ một thông điệp nào Thuật toán này sử dụng trongchứng chỉ SSL (Secure Sockets Layer) cho các trang Web và cho Email trong tiêu

chuẩn ky thư DKIM (DomainKeys Identified Mail) Với đầu vào của thuật toán làmột chuỗi dữ liệu có độ dài bat kỳ sẽ được chia thành các khối 512 Bit và xử lý theo

thuật toán, đầu ra sẽ là một chuỗi 256 bit Thực tế, SHA-256 là hàm một chiều, vậy

nên kết quả được tao ra từ giải thuật băm không thé băm ngược lại dé cho ra thông

điệp ban đầu, điều này sẽ giúp bảo mật cho dữ liệu SHA-256 được ứng dụng trong

việc kiểm tra tính toàn vẹn của dữ liệu, tạo chữ ký SỐ, ngoài ra còn được ứng dụngmạnh mẽ trong Bitcoin cũng như nhiều dự án Blockchain khác

2.4.2 Các thành phan có trong SHA-256

% Các thuộc tính và chuẩn quy ước

18

Trang 29

Dựa theo chuẩn NIST [1] (National Institute of Standards and Technology) cung cấp,

dưới đây là bảng thuộc tính kích thước các khối, các từ dữ liệu được sử dụng trong

quá trình tính toán và kích thước đầu ra của hàm băm SHA-256

Bảng 2 2: Thành phần kích thước chuẩn của hàm băm SHA-256

Thành phần Kích thước (bit)

Message Size < 2%

Block Size 512

Word Size 32 Message Digest Size 256

Các tham số được sử dụng trong các đặc tả thuật toán băm SHA-256 theo tiêu chuẩnNIST [1]:

a, b,c, ,h Lacac biến lam việc có kích thước 32 bit, được sử dụng lưu trữ giá

trị băm trong quá trình tính toán tạo ra gia tri băm

Giá trị băm băm thứ i ứng với khối đầu vào tương ứng Trong đó H®

là giá trị băm ban đầu được sử dung cho mọi khối thông điệp đầu vào.Một giá trị băm chứa 8 word 32bit H; dùng dé biểu diễn thứ tự wordtrong giá tri băm thứ i.

Hang số không đôi được sử dụng trong giải thuật tính toán của thuậttoán SHA-256 Đối với SHA-256 có 64 hang số (t = 64)

Số lượng số 0 thêm ở bước PaddingKhối thông điệp đầu vào thứ ¡ với kích thước mỗi khối thông điệp là

512 bit

Word thứ i của lịch trình trình tin nhắn

Word thứ j trong khối thông điệp thứ i Kích thước 32 bit

Đối với thuật toán SHA-256, Các ký hiệu được sử dụng đều được thực hiện trên các

Word có kích thước 32 bit.

19

Trang 30

A Phép toán thao tác bit AND

Vv Phép toán thao tác bit OR

® Phép toán thao tác bit XOR

¬ NOT

+ Cộng modulo 22

<< Thao tác dịch trái

>> Thao tác dịch phải

+ Các chức năng trong giải thuật SHA-256

Hai hoạt động được sử dụng được dùng trong thuật toán này bao gồm ROTR (Rotate

Right) va SHR (Shift Right):

RORT® (x)

SHR? (x)

Theo chuan NIST [1] cung cap, giai thuat SHA-256 va SHA-224 déu sir dungchung sáu hàm logic Trong đó mỗi chức năng đều hoạt động trên các từ có kíchthước 32 bit là đầu vào và được biểu diễn dưới dạng ký hiệu: x, y, z Kết quả của mỗi

Hoạt động xoay tròn phải được định nghĩa như sau RORT" (x) =

(x>n) V(x«32-n), với đầu vào la x có kích thước 32 bit va n vị trí

bên phải cần xoay thỏa 0 <n < 32

Hoạt động dịch phải được định nghĩa như sau SHR® (x) = (x>n),

với đâu vao là x có kích thước 32 bit và n vi trí bên phải can dich

chuyền thỏa 0 <n< 32

hàm là một từ 32 bit mới.

Ch(x, y, Z) = Maj(x, y, z)

Sp1256) (x) S256) (x)

00 {256} (x)

ơi 1759) (x)

(x A y) 8 (AX AZ) (XA y)OB(KAzZ) OV Az)

ROTR? (x) ® ROTR!*(x) ® ROTR”(x) ROTR* (x) ® ROTR!!(x) ® ROTR*(x)

20

Trang 31

+ Hãng số và giá trị băm ban dau

Ngoài các hang số [1-4.2.2] thi SHA-256 còn có thêm giá trị băm ban đầu như trongbảng 2.3 Giá trị này được sử dụng làm giá trị băm khởi tạo ban đầu cho thông điệpđầu vào đầu tiên (xem thêm tại mục 5.3.3 [1])

Bảng 2 3: Giá trị Hash khởi tạo ban đâu

Thanh ghi Giá tri

cho thiết kế SHA-256 tính toán ra giá trị băm

Mục đích chính của phần padding này muốn đảm bảo răng thông điệp được đệm làbội số của 512 Quá trình này diễn ra khi nhận được đầu vào là một tin nhắn Tin nhắn

này được chuyên đôi thành các bit 0 và 1 tương ứng và một bit 1 được nối vào cuối

tin nhắn Sau đó nối thêm k bit 0 vào sao cho L+1+k =448 mod 512, với L là chiềudài tính bằng bit của tin nhắn đầu vào Cuối cùng là 64 Bit được nối vào dé biểu diễn

độ dài của thông báo Lưu ý mọi thông báo luôn được đệm ngay cả khi độ dài banđầu đã là bội số của 512 Hình 2.8 cho thấy tổng quát của quá trình padding của một

message.

21

Trang 32

N x 512 bits

L bits k bit 0 64 bit,

Hình 2 8: Quá trình đệm dau vào cho thông điệp

2.4.4 Giải thuật SHA-256

Sau khi tiến hành xong quá trình đệm tin nhắn Giả sử, kết quả sau quá trình đệm tinnhắn tạo ra được N khối thông điệp, mỗi khối có kích thước 512 Bit Mỗi khối này

sẽ được thực hiện với thuật toán SHA-256 qua vòng lặp với 4 bước như sau:

Vòng lặp ¡ = 1 đến N:

{

Bước 1: Message Schedule

Lich trình băm một khối thông điệp có kích thước 512 Bit cần 64 Word 32 bit Ngoài

việc sử dụng 16 Word được lấy từ chính khối thông điệp đầu vào, chúng ta cần tạo ra

48 Word còn lại thông qua các từ trước đó Chính vì thế, đây được xem như bước mởrộng dữ liệu cho quá trình băm một khối thông điệp Và nó sẽ được tuân theo quy tắcdưới đây dé tạo ra một word tương ứng (phan 6.2.2 [1]):

MẸ 0<t<15 (1)

W: =

of (We) + Vy ; + 9 (Wiis) + Wi-16 16 < t < 63 (2)

Có thé thấy, với đầu vào là 512 bit, thực hiện vòng lặp 64 lần dé tạo ra được 64 Word

tương ứng Điều này sẽ tạo ra 64 Word cho việc tính toán băm và các word này hoàn

toàn khác nhau Đối với 16 lần lap đầu tiên sử dụng phương trình (1), theo đó 16

Word đầu tiên này được lấy từ đầu vào 512 bit Đối với 48 lần lặp tiếp theo sẽ được

sử dụng theo phương trình (2) dé tạo ra 48 Word tương ứng cho lịch trình băm thông

22

Trang 33

qua các hàm chức năng ((2.4.5), (2.4.6)) Sau khi kết thúc 64 lần lặp sẽ thu được một

lịch trình băm có 64 Word có kích thước 32 Bit để phục vụ cho cho việc tính toán

băm trong bước 3.

Bước 2: Giá trị băm ban đầu

Tiếp theo, dé tiến hành tính toán băm trước tiên chúng ta sẽ tiền hành khởi tao giá tri

băm ban đầu cho 8 biến làm việc a, b, c, d, e, f, g vah bang các giá tri băm được tao

ra từ các khối trước đó Nếu là khối thông điệp đầu tiên thì các giá trị được khởi tạotrong 8 biến này sẽ là các giá trị băm ban dau tại bang 2.3 Trước khi bắt đầu bămmột block mới, các giá trị trong 8 biến làm việc đều sẽ được khởi tạo lại dé làm giá

tri ban dau cho việc tính toán.

a= Hol) beste

Sau khi tạo ra lịch trình băm ở bước 1 và khởi tạo giá trị băm trong 8 biến làm việc

bằng các hằng số 32 Bit được xác định trước, chúng ta sẽ tiến hành nén dữ liệu sau

64 lần lặp nhăm tìm ra giá tri đầu ra mới cho các biến làm việc Quá trình nén được

diễn ra 64 lần lặp theo thứ tự dưới đây (xem thêm tai 6.2.2 [1]):

Vòng lặp t = 0 đến 63:

{

Ti =h+ di(e) + Chee, f, g) + Ki + Wi T›= do (a) + Maj(a, b, c)

h=g

23

Trang 34

g=ff=e e=d+T

d=c

c=b b=a

}

Ở chức năng nén, quá trình nén và tính toán được diễn ra chủ yếu trên 2 thanh ghitạm T¡ và T› Các hàm Ch, Maj, 3¡ và Xo (phan 2.4.2.2) được sử dụng cho quá trìnhnày, không phụ thuộc vào số vòng lặp Bên cạnh đó các hằng số Ki ({1]-4.2.2) là đạidiện cho một hằng số và W; đại diện cho một word tương ứng trong 64 Word đượctạo ra từ bước 1, là các giá tri phụ thuộc vào số vòng lặp

Bước 4: Tính toán giá trị băm trung gian mới

Sau khi quá trình nén thực hiện xong, giá tri dau ra của 8 biên làm việc sẽ cộng

modulo 2” với giá tri băm trung gian trước đó dé tạo ra giá tri băm trung gian mới.

Quá trình này diễn ra như dưới đây:

Trang 35

Quá trình nay được tính toán và lặp lại N lần, tức là sau khi toàn bộ khối thông báo

đầu vào đều đã được tính toán Kết quả cuối cùng trong 8 thanh ghi Họ đến H; sẽ là

giá trị băm của tin nhắn đầu vào Kết quả bản tóm tắt của tin nhắn M được biểu diễn

dưới dang 1 chuỗi có độ dai 256 Bit như bên dưới:

HoTM II H¡£) II AeTM IAs II H¿£) II Hạ?) I Hạ?) | Hrạ£@®

2.5 Unfolding transformation [12]

Unfolding là một kỹ thuật biến đổi được ứng dụng trong một chương trình xử lý tínhiệu số dé tạo nên một chương trình thực thi được nhiều công việc hơn trong một lầnlặp Cụ thé hơn, unfolding là một chương trình DSP (Digital Signal Processors) với

số lần chuyền đổi mở rộng (unfolding factor) J sẽ tạo một chương trình thực hiện Jlần lặp liên tiếp so với chương trình gốc

Unfolding có các ứng dụng trong thiết kế các kiến trúc VLSI tốc độ cao và năng lượng

thấp Một ứng dụng được unfold sẽ có thể thực thi được các luồng di liệu đồng thời,

qua đó sẽ giảm đi số lần lặp của chương trình, tăng thông lượng của thiết kế

Ví dụ một chương trình DSP có công thức như sau:

y(n) = ay (n— 9) + x (n) (2.5.1)

Với n= 0 ø Áp dụng unfolding factor 2, thay thế biến n thành (2k) và (2k + 1) sẽ

có được kêt quả như sau:

y(2k) = ay(2k-9) + x(2k)

(2.5.2) y(2k + 1) = ay(2k — 8) + x(2k + 1)

Với k = 0 > œ, mô tả công thức giống với (2.5.1) (2.5.2) mô tả 2 lần lặp liên tiếpcủa một chương trình ở phan (2.5.1) Với k = 7, biéu thức của 2.5.2 sẽ là y (14) = ay(5) + x (14) và y (15) = ay (6) + x (15) Công thức (2.5.2) là phiên bản mở rộng hệ số

2 của công thức (2.5.1).

Dưới day là một ví dụ hình ảnh minh hoa về Unfolding factor 2 cho biéu thức (2.5.2)

25

Trang 36

Trong hệ thống unfold, mỗi delay được xem như một J-s/ow Nếu input cho một phan

tử delay là tín hiệu x(kJ + m) thi output của phần tử delay là x((k — 1 )J + m)) = x(kJ

+m —J) Hình 2.9 ở trên là một ví du minh họa về Unfolding factor 2 ứng với việc

chuyền đổi công thức (2.5.1) thành (2.5.2) Sử dụng J-slow vào trong hình 2.9 và

thông qua biểu thức (2.5.2) ta sẽ được các biéu thức tương ứng như sau:

y(2k) = ay(2(k-5) + 1) + x(2k)

y(2k + 1) = ay(2(k-4) + 0) + x(2k + 1).

Giai thuat cua unfolding [12]:

1 Với mỗi node U trong DFG gốc, vẽ J node Us, Ui, , Us

2 zdelay với1=0, 1, J-1.

Đề mô ta rõ hon cho thuật toán công thức (2.5.1) sẽ được chuyên thành DFG ở hình2.10 (a) Trong biêu đồ DFG gốc ở hình 2.10 (a) thì các Node A và B lần lượt là input

va output, các node C và D là các phép tính cộng và nhân với a tương ứng Dé unfold

biểu đồ này với hệ số chuyền đổi là 2, 8 node Ai, Bi, Ci, và Dj với i = 0, 1 được vẽ vào

tương ứng với bước đầu tiên của giải thuật Đến với bước thứ 2, với các cạnh từ U >

V không có delay, bước này sẽ được rút gọn thành vẽ J cạnh Ui > Vi với ¡= 0, 1,

26

Trang 37

J—1 Ví dụ từ D > C không có delay trong hình 2.10 (a) tương ứng sẽ là các cạnh

từ Do > Co, Dị > Ci không có delay trong hình 2.10 (b) (là DFG unfold hình 2.10

(a) với hệ số chuyên đổi là 2) Với cạnh C->D có a delays là 9, ta vẽ Co D,o+o42

với delay là |“ |, vẽ C¡ > Do + nwa với delay là |“ |, tương ứng với kết quả Co >

Di với delay là 4 và C1 > Do với delay là 5 Sau khi thực hiện các bước Unfold với

hệ số chuyên đồi 2, DFG từ hình 2.10 (a) sẽ cho kết quả DFG như hình 2.10 (b)

A, } wel

Hình 2 10: (a) DFG gốc và (b) DFG áp dung giải thuật unfolding factor 2

27

Trang 38

Chương 3 THIẾT KE DE XUẤT

Trong phần này nhóm sẽ đề xuất và đưa kiến trúc cho thiết kế máy đào đa lõi(Multicore Miner) kèm với những mô tả cho từng phan trong thiết kế Nội dungchương này sẽ gồm 3 phần xuyên suốt từ kiến trúc thiết kế mức đa lõi đến kiến trúc

lõi đơn và cuối cùng là kiến trúc SHA 256 sử dụng phương pháp mở rộng hệ số 2

(SHA 256 Unfolding factor 2).

3.1 Thiết kế chỉ tiết khối Multicore Miner

Multicore SHA 256 được xây dựng bằng cách ghép nối nhiều khối Miner core (được

mô tả chỉ tiết trong phần 3.2) lại với nhau Kiến trúc đa lõi được xây dựng dựa theokiến trúc Duo-core [2] được thé hiện như trong hình 3.1 dưới đây

ASIC Boost Duo-core

2 colliding work Message

Double SHA

Match (output)

SHA schedule 2

Hinh 3 1: Duo-core [2]

Nguồn: “AsicBoost - A Speedup for Bitcoin Mining” [2]

Dựa theo kiến trúc từ hình 3.1 ở trên trên có thé tổng quát hóa từ Duo-core thành

Multicore Dưới đây, hình 3.2 là kiến trúc multicore nhóm đã phát triển và xây dựng

dựa theo mô hình Duo-core [2].

28

Trang 39

message[255:0] Ị counter ° hạnh comet !

| ready inst_2 Comparator ———+Y.ˆ,”"—> Nonce Gold

Ị Miner Core —— i

Ị Nonce valido_min '

Ị counter † | Nonce hash_const icky |

| counter Nonce hash_const Ị

h block in Double SHA > Ị

resetn Tin hiệu reset mạch, tích cực mức thap

Block_in Dữ liệu đầu vào dé thực hiện tính toán băm

Valid_in Tín hiệu cho biết dữ liệu đầu vào là hợp lê Tích cực mức

cao

Hash_previous_

block_message

Gia tri hash khởi tao cho mô dun SHA 256 (hình 3.5,

inst1) trong khối Double Hash (xem thêm mô tả chi tiếtmục 3.3.3).

29

Trang 40

nBits I | Trường “nBits” trong block header Giá trị này dùng dé

giai nén tim target hash.

Valid_target_new | I | Tín hiệu cho biết có giá tri target mới Tích cực mức cao,

mô đun tiến hành nạp giá trị target mới

Valid_nonce O | Tin hiệu cho biết có giá tri nonce hợp lệ, thỏa yêu cau

Nonce_ gold O | Giá trị nonce thỏa yêu cầu bài toán tìm giá trị hash nhỏ

hơn target

Với thiết kế Multicore Bitcoin Mining như hình 3.2 ở trên bao gồm 32 lõi đơn MinerCore thực hiện hàm băm kép và hoạt động theo hình thức song song, đồng thời trêntừng hạng mục công việc riêng của chúng Ở đây nhóm thiết kế 32 khối Miner core

sẽ thực hiện, tính toán trên từng đoạn giá trị nonce khác nhau Với mỗi đầu vào nhậnđược từ Block header và được chia sẻ giữa 32 lõi, mỗi khối chỉ thực hiện, tính toántrên một khoảng giá trị nonce nhất định Việc này có thể giúp tăng hiệu suất mongđợi thông qua mô ta trong [2] Giá tri target sẽ được giải mã từ giá tri “nBits” để thựchiện so sánh với kết quả băm nhỏ nhất trong 32 core và tìm ra giá trị băm hợp lệ Nếugiá trị hash thỏa nhỏ hơn target thì giá trị nonce ứng với giá trị hash đó được lấy ra

và lưu vào thanh ghi và đọc lên PC Khối “Hash initial Const” chứa các giá tri hang

số như trong bang 2.1 (chương 2)

Đầu vào của thiết kế phần cứng sẽ là chuỗi có kích thước 352 Bit, trong đó 256 Bitcao là kết quả băm của 512 Bit đầu trong block header sẽ được nạp vào thanh ghikhởi tao hash init cho lõi SHA 256 bên trong Miner Core (xem thêm tai phần 3.2) và

96 Bit còn lại là phần còn lại của Block Header 96 Bit này được ghép nối với giá trịnonce và phần Padding dé tạo thành block 512 bit, đầu vào cho khối Miner Core thực

hiện tính toán băm kép Tùy thuộc vào mỗi lõi mà giá trị nonce sẽ khác nhau và dẫn

đến các block 512 Bit đầu vào cũng khác nhau cho mỗi khối Miner Core Dữ liệu đầu

ra của các khối Miner Core sẽ được so sánh với nhau và tìm ra giá trị thấp nhất trướckhi so sánh với giá trị target Giá trị target sẽ được tính toán và chuyền đổi từ đầu vào

30

Ngày đăng: 08/11/2024, 16:59

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] National Institute of Standards and Technology (NIST), "Secure Hash Standard", Federal Information Processing Standards (FIPS) Publication 180-4, August 2015 Sách, tạp chí
Tiêu đề: Secure Hash Standard
[3] Shamsiah Suhaili*, Norhuzaimin Julai, “FPGA-based Implementation of SHA- 256 with Improvement of Throughput using Unfolding Transformation,” Pertanika Journal of Science &amp; Technology, Volume 30, Issue 1, January 2022 Sách, tạp chí
Tiêu đề: FPGA-based Implementation of SHA-256 with Improvement of Throughput using Unfolding Transformation
[7] CHAGAS, Edgar Thiago de Oliveira, “Blockcham: the technological revolution and impacts to the economy”, Multidisciplinary Core scientific journal of knowledge, 04-year, Ed. 03, vol. 07, pp. 110-144. March 2019. ISSN: 2448-0959 Sách, tạp chí
Tiêu đề: Blockcham: the technological revolutionand impacts to the economy
[9] SHOAB AHMED KHAN, “DIGITAL DESIGN KHAN OF SIGNAL PROCESSING SYSTEMS A Practical Approach”, National University of Sciences and Technology (NUST), Pakistan, This edition first published 2011, © 2011 John Wiley &amp; Sons, Ltd Sách, tạp chí
Tiêu đề: DIGITAL DESIGN KHAN OF SIGNALPROCESSING SYSTEMS A Practical Approach
[10] Manoj Kumar, Karni Ram, “Implementation of Word Level Parallel Processing Unfolding Algorithm using VHDL”, International Journal of Engineering and Advanced Technology, (IJEAT) ISSN: 2249 — 8958, Volume-8 Issue-6, August 2019 [11] Akash Raj Khettry, Karthik R.Patil, Abhilash C.Basavaraju, “A Detailed Review on Blockchain and Its Applications”, SN Computer Science, February 2021 Sách, tạp chí
Tiêu đề: Implementation of Word Level Parallel ProcessingUnfolding Algorithm using VHDL”, International Journal of Engineering andAdvanced Technology, (IJEAT) ISSN: 2249 — 8958, Volume-8 Issue-6, August 2019[11] Akash Raj Khettry, Karthik R.Patil, Abhilash C.Basavaraju, “A Detailed Reviewon Blockchain and Its Applications
[12] K. K. Parhi, “VLSI Digital Signal Processing Systems—Design and Implementation”, New York: Wiley, 1999 Sách, tạp chí
Tiêu đề: VLSI Digital Signal Processing Systems—Design andImplementation
[14] Xu Wang, Xuan Zha, Wei Ni, , Ren Ping Liu, “Survey on Blockchain for Internet of Things”, Computer Communications, January 2019 Sách, tạp chí
Tiêu đề: Survey on Blockchain for Internetof Things
[6-online] https://csrc.nist.gov/CSRC/media/Projects/Cryptographic-Standards-and-Guidelines/documents/examples/SHA256.pdf Link
[8] Yusuke Aoki, Kai Otsuki, Takeshi Kaneko, “SimBlock: A Blockchain Network Simulator’, IEEE INFOCOM 2019 - IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS), 23 September 2019 Khác

HÌNH ẢNH LIÊN QUAN

Hình 2. 1: Mô hình Fonte Blockchain đâu tiên theo Satoshi Nakamoto[7] - 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 SHA-256 sử dụng chuyển đổi mở rộng trên FPGA
Hình 2. 1: Mô hình Fonte Blockchain đâu tiên theo Satoshi Nakamoto[7] (Trang 16)
Hình 2. 2: Các node trong mạng Blockchain tạo thành một mạng ngang hang [6Š] - 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 SHA-256 sử dụng chuyển đổi mở rộng trên FPGA
Hình 2. 2: Các node trong mạng Blockchain tạo thành một mạng ngang hang [6Š] (Trang 19)
Hình 2. 3: Ví dụ mô hình Public Blockchain [11] - 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 SHA-256 sử dụng chuyển đổi mở rộng trên FPGA
Hình 2. 3: Ví dụ mô hình Public Blockchain [11] (Trang 20)
Hình 2. 8: Quá trình đệm dau vào cho thông điệp - 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 SHA-256 sử dụng chuyển đổi mở rộng trên FPGA
Hình 2. 8: Quá trình đệm dau vào cho thông điệp (Trang 32)
Hình 2. 9: Ví dụ về Unfolding factor 2 Nguồn: “VLSI Digital Signal Processing Systems—Design and Implementation” - 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 SHA-256 sử dụng chuyển đổi mở rộng trên FPGA
Hình 2. 9: Ví dụ về Unfolding factor 2 Nguồn: “VLSI Digital Signal Processing Systems—Design and Implementation” (Trang 36)
Hình 3. 2: Sơ đô khối thiết kế Multicore Miner Bảng 3. 1: Mô tả các tín hiệu trong khối Multicore Miner - 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 SHA-256 sử dụng chuyển đổi mở rộng trên FPGA
Hình 3. 2: Sơ đô khối thiết kế Multicore Miner Bảng 3. 1: Mô tả các tín hiệu trong khối Multicore Miner (Trang 39)
Hình 3.4 dưới đây - 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 SHA-256 sử dụng chuyển đổi mở rộng trên FPGA
Hình 3.4 dưới đây (Trang 42)
Bang 3. 3: Bảng mô tả các tín hiệu thiết kế SHA 256 Unfolding factor 2 - 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 SHA-256 sử dụng chuyển đổi mở rộng trên FPGA
ang 3. 3: Bảng mô tả các tín hiệu thiết kế SHA 256 Unfolding factor 2 (Trang 45)
Hình 3. 6: Khối Message Expander sử dụng phương pháp unfolding factor 2 - 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 SHA-256 sử dụng chuyển đổi mở rộng trên FPGA
Hình 3. 6: Khối Message Expander sử dụng phương pháp unfolding factor 2 (Trang 48)
Hình 3. 11: : Thiết kế chỉ tiết summation 0 (0) với dau vào mới được áp dung. - 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 SHA-256 sử dụng chuyển đổi mở rộng trên FPGA
Hình 3. 11: : Thiết kế chỉ tiết summation 0 (0) với dau vào mới được áp dung (Trang 50)
Hình 3. 12: Thiết kế chỉ tiết summation 1 (%1) với dau vào mới được áp dung. - 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 SHA-256 sử dụng chuyển đổi mở rộng trên FPGA
Hình 3. 12: Thiết kế chỉ tiết summation 1 (%1) với dau vào mới được áp dung (Trang 51)
Hình 4. 2: Kết quả mô phỏng khối SHA 256 Unfolding factor 2 thời điểm có output - 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 SHA-256 sử dụng chuyển đổi mở rộng trên FPGA
Hình 4. 2: Kết quả mô phỏng khối SHA 256 Unfolding factor 2 thời điểm có output (Trang 52)
Hình 4. 3: Mô hình kiểm tra thiết kế trên phan mém vivado - 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 SHA-256 sử dụng chuyển đổi mở rộng trên FPGA
Hình 4. 3: Mô hình kiểm tra thiết kế trên phan mém vivado (Trang 54)
Hình 4. 4: Giá trị nonce cua block test đầu tiên trong bảng 4.2 - 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 SHA-256 sử dụng chuyển đổi mở rộng trên FPGA
Hình 4. 4: Giá trị nonce cua block test đầu tiên trong bảng 4.2 (Trang 56)
Hình 4. 6: Kết quả in trên console của 5 block header dau tiên trong bảng 4.2 - 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 SHA-256 sử dụng chuyển đổi mở rộng trên FPGA
Hình 4. 6: Kết quả in trên console của 5 block header dau tiên trong bảng 4.2 (Trang 57)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN