Khối cũ và khối mồ côi

Một phần của tài liệu CÁC CUỘC TẤN CÔNG LÊN BLOCKCHAIN (Trang 32 - 34)

Hai dạng mâu thuẫn có thể xảy ra với quy trình đồng thuận có thể khiến các khối hợp lệ ra khỏi Blockchain. Dạng đầu tiên là “khối cũ”, là một khối đã được khai thác thành công nhưng không được chấp nhận trong Blockchain tốt nhất hiện tại (tức là chuỗi khó tái tạo nhất). Các khối cũ hầu hết xảy ra trong các Blockchains công khai do điều kiện chủng tộc. Trong điều kiện cuộc đua, những người khai thác tích cực cố gắng tìm ra khối tiếp theo và có thể hai hoặc nhiều người khai thác có thể đưa ra một giải pháp hợp lệ. Mạng cuối cùng chấp nhận một trong các khối chiến thắng và loại bỏ phần còn lại. Kết quả là, tất cả các khối hợp lệ khác không được chấp nhận sẽ trở thành các khối cũ vì chúng không được gắn vào

Blockchain chính. Chúng ta sẽ thấy trong phần VA rằng một hình thức tấn công

Blockchain được gọi là “khai thác ích kỷ” cũng có thể dẫn đến việc tạo ra các khối cũ trong mạng, tước đi phần thưởng của một người khai thác trung thực. Một dạng khác của sự không nhất quán là “khối mồ côi”: một khối có trường băm của khối mẹ trỏ đến một khối unauthen-tic được tách ra khỏi

Blockchain [92]. Những mâu thuẫn này có thể do kẻ tấn công đưa ra hoặc do điều

kiện chủng tộc trong công việc của thợ đào. Các khối cũ có thể được phần lớn mạng chấp nhận ban đầu, nhưng chúng có thể bị từ chối sau đó khi nhận được bằng chứng về một Blockchain dài hơn (tức là tốt nhất hiện tại) không bao gồm khối đó.

Hình 5 minh họa một chuỗi nơi có thể tìm thấy các khối cũ và không có. Khối mồ côi đầu tiên trong Bitcoin được tìm thấy vào ngày 18 tháng 3 năm 2015 và đó là sự khởi đầu của thời kỳ mà hầu hết các khối mồ côi được tạo ra. Xu hướng giảm trong năm 2016, và từ tháng 6 năm 2017 đến ngày của bài báo này, không

có khối mồ côi nào được thêm vào danh sách [93]. Các khối mồ côi được tìm

thấy thường xuyên hơn trong tiền điện tử nơi thời gian tính toán khối trung bình là nhỏ. Trong Hình 6, chúng em vẽ biểu đồ số khối mồ côi đã xảy ra trong Bitcoin và Ethereum từ tháng 7 năm 2016 đến tháng 5 năm 2018. Trong Ethereum, các khối mồ côi được gọi là khối Bác. Dữ liệu trong hình đã được chuẩn hóa bằng cách sử dụng chuẩn hóa tối đa để chia tỷ lệ dữ liệu trong phạm vi [0; 1]. Việc chia tỷ lệ tối thiểu-tối đa được thực hiện như

z = x tôi phút ( x ) . Có thể quan sát thấy từ hình rằng tối đa (x) tối thiểu (x) vào tháng 6 năm 2017, không có khối mồ côi nào được tìm thấy trong

Bitcoin. Mặt khác, trong Ethereum, các khối của Uncle đã tăng lên kể từ tháng 11 năm 2017.

Hình 5. Khối cũ so với khối mồ côi. Lưu ý rằng khối cũ (khối 2, khối dưới và khối 4) hợp lệ nhưng chúng không phải là một phần của Blockchain. Khối mồ côi (khối 5) không có khối mẹ của nó (khối 4) trong Blockchain.

Trong các loại tiền điện tử như Ethereum và Bitcoin, độ khó là thước đo thời gian để tính toán một khối, được xác định bởi giá trị mục tiêu do mạng đặt

ra [94]. Dựa trên sức mạnh băm, mục tiêu được điều chỉnh để giữ thời gian khối trong một phạm vi được xác định trước (10 phút đối với Bitcoin và 12 giây đối với Ethereum). Độ khó được tính lại dựa trên sức mạnh băm và thời gian thực

hiện của một loạt các khối trước đó: nếu sức mạnh băm tăng lên, xác suất tìm thấy khối trong thời gian dự kiến sẽ tăng lên.

Để điều chỉnh xác suất, độ khó được nâng lên bằng cách nhập thêm giá trị mục

tiêu. Trong (1), chúng em cho thấy thời gian dự kiến để tính khối E (T) thay đổi

như thế nào với độ khó D và tốc độ băm của mạng H r . Ở đây, E (T) được đo bằng giây, D là số băm cần thiết để giải quyết mục tiêu hiện tại và H r được đo bằng băm / giây mà thiết bị mục tiêu có thể tạo ra trên một chuỗi nhất định. H r là sức mạnh băm tổng hợp của tất cả các máy khai thác H i với i =

1; 2; :::; n. Trong (2), chúng em tính thời gian T b (giây), cần cho một người khai

thác đơn lẻ trong H i để tính toán một khối, với thời gian khối cố định được đặt bởi mạng T n . Đối với Bitcoin và Ethereum, thời gian tính toán khối trung bình T n lần lượt là 600 giây và 12 giây.

Từ (1), có thể nhận thấy rằng khi H r không đổi và độ khó D giảm, thời gian

khối kỳ vọng E (T) giảm. Theo trực giác, E (T) thấp hơn có nghĩa là trong một thời gian mạng xác định T n , nhiều khối hơn sẽ được tạo ra. Tuy nhiên, trong Blockchain, chỉ có một khối có thể được chấp nhận. Tình trạng như vậy sẽ dẫn

đến nhiều khối mồ côi hơn trong hệ thống. Trong Hình 7, chúng em vẽ biểu đồ độ

khó, tỷ lệ băm, thời gian khối và các khối mồ côi (còn gọi là khối chú) trong

Ethereum. Có thể lưu ý trong điều 7 (f) rằng khi thời gian khối dự kiến

(từ (2)) giảm xuống, số lượng khối mồ côi và chú tăng lên. Trong Ethereum, xu

hướng này cao do khoảng thời gian khối ngắn làm tăng khả năng xảy ra va chạm khối. Các khối mồ côi cũng có thể xảy ra do sự chậm trễ không thể đoán trước trong việc truyền khối. Một khối hợp lệ có thể không tiếp cận được với phần lớn các mạng ngang hàng do mạng bị gián đoạn và truyền chậm trễ. Ngược lại, một khối cạnh tranh có thể dễ dàng lan truyền qua mạng và được đa số chấp nhận. Do đó, hành vi mạng và sự phân phối chậm trễ cũng có thể ảnh hưởng đến số lượng các khối mồ côi trong hệ thống Blockchain [92].

BẢNG IV

E GIẢI PHÓNG PHẦN CỨNG KHAI

THÁC . S NĂM 2014, CHỈ ASIC CHIPS , CÓ PHIÊN BẢN NÂNG CẤP , ĐƯỢC SỬ DỤNG ĐỂ KHAI THÁC .

Kiểu Người mẫu

Tỷ lệ hỏng hóc

Năm (MH / s)

CPU Xeon E5530 7.14 2009

GPU Radeon 5890 245 2010 GPU Radeon 6990 800 2011 FPGA Xilinx 245 2012

Spartan FPGA Xilinx Spartan 850 2012 ASIC ASIC 130nm 12 nghìn 2013 ASIC ASIC 28nm 500k 2014 ASIC ASIC 20nm 750k 2014

Một phần của tài liệu CÁC CUỘC TẤN CÔNG LÊN BLOCKCHAIN (Trang 32 - 34)

w