1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập lớn mô tả về gia thức đồng thuận trong blockchain

15 0 0

Đ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 đề Bài tập lớn mô tả về gia thức đồng thuận trong blockchain
Tác giả Vũ Thành Long, Nguyễn Thị B
Người hướng dẫn Tràn Đăng Hoan, Giảng viên
Trường học Trường Đại học Phenikaa
Chuyên ngành Công nghệ thông tin
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 15
Dung lượng 629,73 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Untitled TRƯỜNG ĐẠI HỌC PHENIKAA BÁO CÁO BÀI TẬP LỚN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 20010874 Vũ Thành Long sssssssssssssssssssssssssssss20010874st phenikaa uni edu vn 20010010 Nguyễn Thị B nguyenvanabcst phenikaa uni edu vn Giảng vi.

Trang 1

TRƯỜNG ĐẠI HỌC PHENIKAA

BÁO CÁO BÀI TẬP LỚN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Giảng viên hướng dẫn: Tràn Đăng Hoan

Khoa: Công nghệ thông tin

HÀ NỘI, 06/2022

Trang 2

Khái niệm blockchain, được biết đến rộng rãi là tiền tệ ảo, đã chứng kiến sự phổ biến rộng rãi trong thời gian gần đây Về tính bảo mật của chuỗi khối, các thuật toán đồng thuận đóng một vai trò quan trọng trong chuỗi khối Nghiên cứu đã được thực hiện riêng biệt, hoặc so sánh giữa một vài trong số chúng đã được trình bày trước đây Trong bài báo này, chúng tôi đã thảo luận về các thuật toán đồng thuận được sử dụng rộng rãi trong blockchain Các giao thức đồng thuận được đề cập trong bài báo này bao gồm PoW (Bằng chứng công việc), PoS (Bằng chứng cổ phần), DPoS (Bằng chứng được ủy quyền về cổ phần), PoET (Bằng chứng về thời gian đã trôi qua), PBFT (Khả năng chịu lỗi Byzantine thực tế) và PoA (Bằng chứng của Cơ quan) Đối với mỗi sự đồng thuận, chúng tôi đã xem xét các thuộc tính, ứng dụng và hiệu suất trong chuỗi khối

Tóm tắt iii

Mục lục iv

Chương 1 Giới thiệu đề tài 1

1.1 Đặt vấn đề 1

1.2 Mục tiêu và phạm vi đề tài 2

Chương 2 phân tích các giao thức

4 2.1 Các loại giao thức đồng thuận 5

2.2 Proof of Work 2.3 Proof of Stake Chương 3 Mô Tả Code 6

Chương 4 triển khai ứng dụng 7

Tóm tắt Mục lục

Trang 4

Con người đã tham gia buôn bán từ đầu công nguyên Một hình thức thương mại ban đầu, hệ thống hàng đổi hàng, đã thấy sự trao đổi hàng hóa và dịch vụ trực tiếp lấy hàng hóa và dịch vụ khác giữa người với người Theo thời gian phát triển, việc phát minh ra tiền tệ vật chất đã đơn giản hóa và thúc đẩy thương mại rất nhiều, nhưng những loại tiền này có những thách thức riêng liên quan đến nhiều hoạt động gian lận như trao đổi tiền giả Do đó, nền kinh

tế toàn cầu chắc chắn bắt đầu hướng tới hệ sinh thái kỹ thuật số liên quan đến giao dịch điện tử và chuyển tiền thông qua ngân hàng, nhưng ngay cả sự tiến

bộ này cũng có những thiếu sót riêng của nó Sự tham gia của bên thứ ba chẳng hạn như ngân hàng trong các giao dịch này phát sinh một khoản phí nhỏ đối với người dùng và vẫn có cơ hội cho các hoạt động gian dối Vì vậy, mọi người trên toàn cầu bắt đầu nỗ lực phân cấp hoàn toàn quá trình trao đổi giá trị Một bước đột phá lớn đã được thực hiện, Bitcoin, một loại tiền điện tử, trong bài báo của ông có tiêu đề “Bitcoin: Hệ thống tiền mặt điện tử ngang hàng” Là một phần trong quá trình triển khai, Nakamoto đã nghĩ ra ý tưởng

về blockchain để đạt được sự phân quyền cho việc chuyển bitcoin ngang hàng

và sử dụng các giao thức đồng thuận để đạt được thỏa thuận về các quyết định khác nhau giữa các thực thể của mạng blockchain bitcoin

1.1 Đặt vấn đề

Mặc dù ý tưởng về blockchain đã được đề xuất vào năm 2008 để triển khai bitcoin, nhưng các giao thức đồng thuận đã tồn tại từ những năm 1970 Vào những năm 1970, một nhóm các nhà khoa học máy tính bao gồm Leslie Lamport và Barbara Liskov bắt đầu suy nghĩ về giải pháp cho vấn đề:

"Liệu một bộ máy có thể đi đến thống nhất hay không và bằng cách nào?"

Câu hỏi đơn giản này đã làm nảy sinh một vấn đề dài và phức tạp được gọi là

“sự đồng thuận” và trở thành nền tảng cho việc nghiên cứu các hệ thống phi tập trung Trong nhiều năm sau phát minh của họ, chỉ có một họ các giao thức đồng thuận được biết đến, đó là “các giao thức đồng thuận cổ điển” Các giao thức thuộc họ này có thể dễ dàng được xác định do một thuộc tính: bỏ phiếu tất cả cho tất cả Vào năm 2008, Satoshi đã giới thiệu họ thứ hai của các giao thức này, được gọi là Nakamoto, hoặc các giao thức đồng thuận chuỗi dài nhất Sau đó, một số biến thể trong các giao thức chuỗi cổ điển và dài nhất đã được đề xuất trong nhiều năm Vào năm 2018, một gia đình giao thức đồng

Chương 1 Giới thiệu đề tài

Trang 5

thuận khác đã ra đời, được gọi là gia đình Snow Các thuật toán này sử dụng một cơ chế mới để đạt được thỏa thuận: thay vì bỏ phiếu tất cả, các giao thức này chọn ngẫu nhiên những người tham gia và hỏi về trạng thái của mạng Họ kết hợp những gì tốt nhất của cả cổ điển và Nakamoto: họ xác nhận giao dịch trong vài giây và hoạt động với tốc độ hàng nghìn giao dịch mỗi giây, đồng thời cho phép hàng nghìn đến hàng triệu người tham gia vào mạng lưới Một chuỗi khối, trong thuật ngữ đơn giản là một chuỗi các khối, là một danh sách ngày càng tăng các bản ghi được gọi là các khối, được nối với nhau bằng các

kỹ thuật mật mã Blockchain, còn được gọi là DLT (công nghệ sổ cái phân tán), thông qua việc sử dụng phân quyền và kỹ thuật băm mật mã làm cho

lịch sử của tài sản kỹ thuật số không thể thay đổi và minh bạch Nó chủ yếu được phát minh để làm sổ cái giao dịch công khai cho tiền điện tử bitcoin Các giao dịch bitcoin được thực hiện và lưu bằng cách sử dụng sổ cái phân tán này trên một mạng chia sẻ và công khai, ẩn danh và đôi khi là công khai Nhưng trong những năm qua, công nghệ này đã được tìm thấy những ứng dụng đa dạng trong các lĩnh vực khác nhau

Các khối của một blockchain cụ thể bao gồm hai phần: thông tin khối và tiêu

đề khối Thông tin khối bao gồm danh sách các giao dịch, tức là bản ghi các

sự kiện và cả thông tin liên quan đến các giao dịch này như giá trị được chuyển giao và thời gian giao dịch cùng với thông tin về những người đang tham gia vào các giao dịch này bằng cách sử dụng một “chữ ký điện tử” duy nhất không có tiết lộ danh tính thực tế của họ Tiêu đề khối về cơ bản bao gồm dấu thời gian khi khối hiện tại được tạo, nonceMerkle root Gốc

Merkle là một hàm băm của tất cả các nút của cây Merkle Merkle tree là sự kết hợp giữa cây nhị phân và cấu trúc dữ liệu danh sách được liên kết với một

số hàm băm để bảo mật, giúp xác minh hiệu quả và an toàn các giao dịch trong các khối của một chuỗi khối Tham chiếu đến khối trước mà khối hiện tại phải được thêm vào cũng được bao gồm trong tiêu đề khối trừ khi nó

khối gốc (Hình ) Khối genesis là khối khởi đầu trong bất kỳ mạng1 blockchain nào và được mã hóa cứng bởi những người tạo ra nó khi blockchain lần đầu tiên được bắt đầu

Trang 6

1.2 Định hướng giải pháp

Khối mới hoặc hoạt động như những người ký khối xác nhận và ký điện tử các giao dịch Khi một giao dịch mới được thực hiện hoặc các bản ghi được tạo, chúng phải được lưu trữ trong một khối và được thêm vào blockchain Tuy nhiên, để tạo và thêm một khối vào chuỗi khối, các bước sau

được sử dụng: Các nút hiện diện trong mạng blockchain hoạt động như những người khai thác và tạo ra các

(i) Một giao dịch phải xảy ra, tức là, một số thông tin phải được chuyển

từ bên này sang bên khác

(ii) Các giao dịch được thêm vào một khối phải được xác minh

Hoạt động thực tế của mạng blockchain khác nhau tùy thuộc vào ứng dụng

mà nó đã được phát triển Tuy nhiên, các bước cơ bản liên quan đến việc thêm một khối mới vào blockchain đã được giải thích chi tiết bằng cách lấy tham chiếu từ tiền điện tử bitcoin, mà nó được phát triển ban đầu, trong đoạn tiếp theo

Ngay sau khi một giao dịch xảy ra giữa hai người dùng blockchain, nó sẽ được thêm vào một nhóm các giao dịch chưa được xác minh Các giao dịch chưa được xác minh này sau đó sẽ được phát tới tất cả các nút xác thực tham gia trong mạng blockchain, nơi chúng được kiểm tra và xác thực dựa trên một

số quy tắc xác thực được thiết lập bởi những người tạo ra blockchain đó Tuy nhiên, trong blockchain bitcoin, quá trình xác minh giao dịch chỉ được thực hiện bởi các nút khai thác Sau đó, các nút khai thác sẽ đặt các giao dịch đã xác minh vào một khối, sau đó được niêm phong bằng cách sử dụng hàm băm Bitcoin băm dữ liệu khối thành một số 256 bit bằng cách sử dụng thuật toán băm mật mã SHA-256 ) Tuy nhiên, một người khai thác bitcoin không2 thể chỉ tạo bất kỳ hàm băm nào cho khối và thêm nó vào mạng blockchain; tức là, hàm băm phải đáp ứng các điều kiện nhất định để khối được mạng chấp nhận Một quyết định quan trọng mà mọi mạng blockchain phải thực hiện là tìm ra nút nào sẽ cam kết khối tiếp theo cho

blockchain Quyết định này được đưa ra bằng cách sử dụng cơ chế đồng thuận Để có thể thêm khối tiếp theo vào chuỗi khối bitcoin, người khai thác phải giành chiến thắng trong cuộc thi để tìm ra một hàm băm chính xácbằng

cách giải quyết một vấn đề toán học phức tạp Bài toán yêu cầu các thợ đào tạo ra một hàm băm với một lượng nhất định các số 0 đứng đầu Người khai thác đầu tiên đạt được điều này cho khối sẽ là người chiến thắng và có thể thêm khối đã tạo vào chuỗi khối hiện có Vì dữ liệu giao dịch và mã băm của khối trước đó bên trong khối là không thể thay đổi được, để có được hàm băm mong muốn, các thợ đào cần thêm một số biến vào khối mà thợ đào có thể thay đổi liên tục cho đến khi họ tìm thấy một biến giải quyết được vấn đề toán học nêu trên Số biến này được gọi là số không Sau khi người khai thác tạo

Trang 7

một băm khối thành công, người khai thác sẽ phát khối đó tới tất cả các nút ngang hàng của nó, những nút này sẽ nhận và xác nhận khối mới Sau đó, khối này được thêm vào blockchain và được gửi qua mạng nơi mỗi nút mạng

sẽ thêm khối này vào bản sao blockchain của chúng, mở rộng chiều cao của blockchain thêm 1 Khi các nút khai thác nhận và xác thực khối từ một số nút khác, họ ngừng nỗ lực tìm một khối ở cùng độ cao và ngay lập tức bắt đầu tính toán khối bitcoin tiếp theo trong chuỗi khối

1.3 Các loại giao thức đồng thuận

Proof of work (POW) : Được biết đến nhiều trong Bitcoin

Proof of Stake (POS) : Được biến đến trong Peercoin

1.4 Proof of Work

Proof of Work (PoW) là một cơ chế để đạt được sự đồng thuận trong một mạng lưới blockchain và là mô hình đồng thuận cơ bản của các loại tiền điện

tử khác nhau như bitcoin và Ethereum Nó mô tả một hệ thống đòi hỏi nỗ lực đáng kể để khai thác một khối mới nhằm ngăn chặn việc sử dụng độc hại sức mạnh tính toán và các cuộc tấn công có thể xảy ra khác vào hệ thống như tấn công từ chối dịch vụ và các hành vi lạm dụng dịch vụ khác như gửi thư rác bằng cách làm cho người yêu cầu dịch vụ làm một số công việc đòi hỏi khắt khe Trong mạng blockchain, cơ chế đồng thuận PoW yêu cầu các nút khai thác mạng phải chứng minh rằng công việc do họ thực hiện và đệ trình đủ điều kiện để họ nhận được quyền thêm các giao dịch mới có chứa các khối vào blockchain Trong Proof of Work, các nút sẽ thêm khối tiếp theo vào blockchain được chọn tương ứng với sức mạnh tính toán của chúng; tức là, các nút cạnh tranh với nhau bằng khả năng tính toán của chúng

Như đã thảo luận trước đó, các thợ đào trong mạng blockchain tạo ra các khối bằng cách tính toán lời giải cho một vấn đề toán học phức tạp và cách duy

nhất để giải quyết vấn đề này là thông qua phỏng đoán tốn kém, tức là Proof

of Work; do đó, vấn đề này còn được gọi là thử thách Proof of Work Vì

những người khai thác tự do vào và rời khỏi mạng, trong một chuỗi khối bitcoin, độ khó trong thử thách này được điều chỉnh sau mỗi 2.016 khối để giữ khoảng cách 10 phút giữa việc khai thác hai khối bởi cùng một người khai

Trang 8

thác để đảm bảo sự phân cấp trong quá trình xác minh toàn bộ mạng Việc điều chỉnh này được thực hiện tự động bởi giao thức bằng cách tăng hoặc giảm hàm băm mục tiêu dựa trên số lượng thợ đào Do đó, trong một sự đồng thuận phân tán, dựa trên Proof of Work, các thợ đào đòi hỏi rất nhiều năng lượng và họ phải chịu một lượng chi phí đáng kể về phần cứng và điện để thực hiện các phép tính nặng nề như vậy

2.2.1 Cách thợ đào nhận được phần thưởng

Để Blockchain của mạng lưới có thể hoạt động thì sự ra đời liên tục của Block mới chứa cá thông tin giao dịch Việc này được đảm bảo bới các Miner đóng vai trò là các Node trong mạng lưới

Họ sẽ phải giải các bài toán phức tạp trong từng Block

Trang 9

Họ sẽ phải gửi đáp án nhanh nhất tới mạng lưới và nhận thưởng

2.2.2 Nhược Điểm

Cần nhiều năng lượng để tính toán gây lãng phí năng lượng, làm

ô nhiễm môi trường Nguy cơ chiếm hữu 51% Điều này xảy ra khi có người hoặc tổ chức có siêu máy tính để tính toán lúc này họ sẽ tính toán nhanh hơn có để nhân đôi giao dịch để không cho Miner khác tham gia vào mạng lưới

1.5 Proof of Stake

Proof of Stake (PoS) là một giải pháp thay thế cho PoW vì nó tiết kiệm năng lượng hơn Mục tiêu của cả hai đều giống nhau, tức là đạt được sự đồng thuận trong blockchain, phương pháp đạt được nó là hoàn toàn khác nhau Thuật toán đồng thuận Proof of Stake sử dụng quy trình lựa chọn có bản chất là giả ngẫu nhiên để chọn trình xác nhận của khối tiếp theo từ các nút hiện có Quá

Trang 10

trình này dựa trên sự kết hợp của một số yếu tố bao gồm ngẫu nhiên hóa và xác định độ tuổi cùng với sự giàu có của nút Trong cơ chế đồng thuận Proof

of Stake, các khối được cho là "giả mạo" thay vì được gọi là được khai thác [ 19] Khi ở trong PoW, khối đầu tiên giải quyết vấn đề phức tạp sẽ khai thác khối tiếp theo và nhận phần thưởng; trong PoS, nút riêng lẻ tạo khối tiếp theo được chọn dựa trên số tiền họ đã “đặt cược” so với các nút đối thủ cạnh tranh khác [ 20] Tiền đặt cược thường dựa trên số lượng tiền mà nút mạng có cho chuỗi khối cụ thể mà nó đang cố gắng khai thác Trong các hệ thống này, phí giao dịch nói chung là phần thưởng và người dùng muốn trở thành một trong

số những người tham gia quá trình giả mạo cần phải khóa tiền đặt cược của

họ (một lượng tiền nhất định) trong mạng Cơ hội của một nút được chọn để tạo ra khối tiếp theo làm trình xác thực phụ thuộc vào kích thước tiền đặt cược của họ, có nghĩa là cơ hội của nút đó giành được khối tiếp theo tăng lên khi số tiền đặt cược của nó tăng lên Nhưng các tiêu chí lựa chọn này là thiên lệch, vì mạng sẽ bị chi phối bởi một nút duy nhất với số tiền đặt cược tối

đa Để khắc phục vấn đề này, nhiều phương pháp được thêm vào quá trình lựa chọn, hai trong số đó là “lựa chọn khối ngẫu nhiên”“chọn tuổi đồng xu”.

(i) Trong phương pháp chọn khối ngẫu nhiên, trình giả mạo tiếp theo được chọn dựa trên sự kết hợp của giá trị băm và tiền đặt cược, và nút có sự kết hợp của cổ phần cao nhất và giá trị băm thấp nhất được chọn Nhưng trong trường hợp này, nói chung, các nút có thể dự đoán lần giả mạo tiếp theo, lý do là quy mô cổ phần do các nút mạng nắm giữ là công khai

(ii) Trong kỹ thuật chọn tuổi của đồng xu , người giả mạo tiếp theo được chọn dựa trên thời gian người đó đã giữ cổ phần cùng với kích thước của tiền đặt cược, được gọi là tuổi của đồng

xu Nó được tính bằng cách thực hiện phép nhân số lượng tiền đặt cọc với số ngày chúng được giữ Khi một khối đã được giả mạo bởi nút, tuổi tiền xu của nó một lần nữa được đặt thành

0 Và để ngăn chặn việc blockchain bị chi phối bởi các nút cổ phần lớn, sau khi giả mạo một

Trang 11

khối, nút đó phải đợi một khoảng thời gian cụ thể trước khi có thể giả mạo một khối khác

Khi một nút được chọn để tạo ra khối tiếp theo, nó sẽ kiểm tra xem các giao dịch có trong khối có hợp lệ hay không và nếu các giao dịch hợp lệ, khối được ký bởi nút và cuối cùng được nút cam kết với chuỗi khối (có thể hình dung tương tự, như thể hiện trong bước thứ 4 và thứ 5 của Hình ) Và phí4 giao dịch liên quan đến các giao dịch này (có trong khối) được nút nhận như một phần thưởng (có thể hình dung giống nhau, như thể hiện trong bước thứ 6 của Hình ) Nếu một nút không muốn trở thành kẻ giả mạo nữa, tiền đặt4 cược của nó và phần thưởng kiếm được sẽ được giải phóng sau một khoảng thời gian nhất định, giúp mạng có thời gian xác minh rằng nút đó không thêm bất kỳ khối gian lận nào vào chuỗi khối Hơn nữa, nút giả mạo vẫn có động

cơ không xác thực hoặc tạo giao dịch gian lận vì nếu mạng lưới phát hiện giao dịch gian lận, thì trong tương lai, nút giả mạo sẽ không thể tham gia với tư cách là người giả mạo và cũng sẽ mất một phần cổ phần của nó Vì vậy, cho đến thời điểm tiền đặt cược nhiều hơn phần thưởng, trong trường hợp thực hiện bất kỳ hoạt động gian lận nào, người xác nhận sẽ chịu lỗ, vì anh ta sẽ mất nhiều xu hơn là kiếm được Trong một kịch bản lý tưởng, hoạt động của cơ chế đồng thuận PoS như đã thảo luận ở trên có thể được hình dung như Hình .4

Ngày đăng: 02/12/2022, 02:15

🧩 Sản phẩm bạn có thể quan tâm

w