blockchain

Certificate work

Vì tất cả các giao dịch đều được đóng dấu thời gian, chúng tôi cần triển khai máy chủ dấu thời gian phân tán trên mạng ngang hàng. Điều này yêu cầu một số triển khai bổ sung và đó là Proof-of-Work mà tôi sẽ mô tả ngay bây giờ. Đối với mỗi khối, bây giờ chúng ta thêm một mục nữa được gọi là Nonce như thể hiện trong hình bên dưới

Bằng chứng công việc

Nonce là một số sao cho hàm băm của khối đáp ứng một tiêu chí nhất định. Tiêu chí này có thể là hàm băm được tạo phải có bốn chữ số đứng đầu là số không.

Do đó, hàm băm được tạo sẽ giống như 000010101010xxx. Nói chung, người khai thác bắt đầu với giá trị Nonce là 0 và tiếp tục tăng nó cho đến khi hàm băm được tạo đáp ứng tiêu chí đã chỉ định.

Lưu ý rằng quá trình tạo hàm băm hoạt động ngẫu nhiên và nằm ngoài tầm kiểm soát của bạn – nghĩa là bạn không thể buộc hàm băm tạo ra một hàm băm nhất định. Do đó, có thể mất vài lần lặp lại cho đến khi tạo được hàm băm mong muốn với bốn số 0 ở đầu. Thời gian dự kiến ​​để tạo một khối trong hệ thống bitcoin là 10 phút. Sau khi người khai thác khai thác thành công khối, anh ta giải phóng khối đó trong hệ thống khiến nó hiện là khối cuối cùng trong chuỗi. Lưu ý rằng có nhiều thợ đào cạnh tranh để tạo ra khối hợp pháp. Hệ thống Bitcoin trao thưởng cho người khai thác thành công đầu tiên bằng cách trao cho anh ta một số bitcoin nhất định. Nói chung, người khai thác có nhiều khả năng tính toán hơn có thể là người chiến thắng sớm. Điều này có thể gây ra các cuộc tấn công vào toàn bộ hệ thống bởi những kẻ sở hữu sức mạnh xử lý khổng lồ. Tôi sẽ mô tả các cuộc tấn công và cách chúng được giảm thiểu ở phần cuối của hướng dẫn này

Blockchain – Mạng & Khai thác

Bây giờ tôi sẽ tóm tắt các bước được mô tả ở trên; đây là những gì xảy ra trong mạng –

  • Bất kỳ ai muốn nhận dịch vụ từ bên thứ ba đã quảng cáo trên mạng trước tiên sẽ tạo một giao dịch (thông báo cho người nhận mong muốn).
  • Trong một khoảng thời gian nhất định, có thể có nhiều người gửi (người mua) và người nhận (người bán) tạo ra các giao dịch như vậy.
  • Tất cả các giao dịch được phát trên mạng tới tất cả các nút. Lưu ý rằng không nhất thiết một giao dịch nhất định phải tiếp cận từng nút khác trong mạng.
  • Mỗi nút tập hợp các giao dịch mới thành một khối. Lưu ý rằng tập hợp các giao dịch trong mỗi khối là độc lập với tập hợp trong các khối được tạo bởi những người khác và đương nhiên sẽ khác với những khối khác. Điều này không thành vấn đề; hệ thống đảm bảo rằng mọi giao dịch được phát trên mạng đều được đưa vào một số khối trong một khoảng thời gian hợp lý. Nói chung, người gửi sẽ khuyến khích nút bằng cách cung cấp một lượng bitcoin nhất định cho người khai thác vì những nỗ lực của nó. Người khai thác có thể chọn ưu tiên đưa vào khối cho những người có ưu đãi cao hơn.
  • Nút hiện đang hoạt động để tìm bằng chứng công việc cho khối đã lắp ráp của nó.
  • Khi nút tìm thấy bằng chứng công việc, nó sẽ phát khối đã lắp ráp trên mạng.
  • Các nút nhận được khối mới sẽ chỉ chấp nhận nó sau khi xác minh rằng tất cả các giao dịch trong khối là hợp lệ và chưa được chi tiêu.
  • Nếu khối được chấp nhận là hợp lệ, nút đang làm việc trên khối mới của chính nó sẽ phải tập hợp lại các giao dịch trong khối của nó để đảm bảo rằng các giao dịch không bị trùng lặp. Nút hiện đang hoạt động để tìm bằng chứng công việc trên khối mới được tạo của nó; trong khi làm như vậy nó sẽ lấy băm của khối được chấp nhận làm băm trước đó.
  • Tương tự như vậy, blockchain tiếp tục phát triển mãi mãi.

Bây giờ, như chúng ta đã thấy toàn bộ hệ thống hoạt động như thế nào, hãy để tôi mô tả một số tác dụng phụ và cách giải quyết chúng.

Blockchain – Ưu đãi cho người khai thác

Như chúng ta đã thấy trong chương Bitcoin – Khai thác, một người khai thác có thể bị ngập trong nhiều giao dịch tại bất kỳ khoảng thời gian nhất định nào. Kích thước tối đa cho một khối được xác định trước trong hệ thống, yêu cầu chỉ một số lượng giao dịch nhất định được đưa vào khối.

Số lượng giao dịch trong khối được xác định bởi kích thước khối được xác định trước và độ dài trung bình của mỗi khối. Một mẹo quan trọng ở đây là người gửi không nên đưa quá nhiều thông tin vào tin nhắn của mình để làm cho nó ngắn gọn và do đó khuyến khích người khai thác chấp nhận nó trước những tin nhắn dài khác.

Người gửi nói chung cũng sẽ thêm phí giao dịch đối với một số lượng bitcoin nhất định để khuyến khích người khai thác sớm đưa vào khối của mình. Hệ quả khác trong việc xây dựng blockchain là kích thước đơn thuần của nó. Trong một khoảng thời gian, toàn bộ blockchain có thể trở nên quá lớn để một nút có thể lưu trữ nó trên đĩa của nó. Điều này được giải quyết bằng cách sử dụng Merkle Tree được mô tả tiếp theo

Blockchain – Cây Merkle

Vấn đề về không gian đĩa trong một nút có thể dễ dàng khắc phục vì tất cả các giao dịch trong một khối được băm trong Cây Merkle như trong hình

Blockchain - Cây Merkle

Tiêu đề khối bây giờ chứa hàm băm của khối trước đó, Nonce và Root Hash của tất cả các giao dịch trong khối hiện tại trong Merkle Tree. Vì Root Hash này bao gồm các hàm băm của tất cả các giao dịch trong khối, các giao dịch này có thể được lược bớt để tiết kiệm dung lượng đĩa. Vì vậy, bây giờ blockchain của bạn sẽ giống như trong hình ảnh dưới đây

Blockchain - Cây Merkle

Điều này có thể dẫn đến tiết kiệm rất nhiều dung lượng ổ đĩa. Chiến lược này được sử dụng bởi một khách hàng bình thường, những người chỉ quan tâm đến việc nhận thanh toán từ người khác. Tuy nhiên, các thợ đào cần phải lưu toàn bộ chuỗi khối. Bây giờ câu hỏi được đặt ra, làm thế nào người nhận xác minh khoản thanh toán mà không có khả năng truy tìm nguồn gốc của đồng xu đã nhận. Điều này được giải thích tiếp theo

Blockchain – Xác minh thanh toán

Hãy xem xét một trường hợp, trong đó với tư cách là nhà cung cấp, bạn có thể muốn xác minh một khoản thanh toán nhất định đã thực hiện trong quá khứ. Vì blockchain bạn đang giữ trên máy của mình chỉ chứa các tiêu đề khối như được hiển thị trong hình trước đó, giao dịch mà bạn đang tìm kiếm bị thiếu trong bản sao blockchain của bạn. Giờ đây, bạn có thể tìm kiếm ngược lại trong bản sao chuỗi khối của mình cho đến khi bạn tìm thấy khối trong đó giao dịch mong muốn được đánh dấu thời gian. Bây giờ, hãy yêu cầu cây merkle của khối đã chọn và bạn sẽ có giao dịch mà bạn đang tìm kiếm. Điều này được minh họa trong Hình dưới đây

Ở đây, chúng tôi giả định rằng bạn đang tìm kiếm Tx103. Mặc dù bạn có thể không xem được nội dung của Tx103, nhưng bạn biết rằng điều này đã được chấp nhận bởi khối mà nó thuộc về và tất cả các khối tiếp theo trong chuỗi. Vì vậy, bạn có thể an tâm tin tưởng giao dịch này và tiến hành kinh doanh của bạn

Blockchain – Giải quyết xung đột

Như chúng ta đã thấy mạng Bitcoin chứa một số thợ đào. Có thể hai người khai thác khác nhau giải quyết Proof-of-Work cùng một lúc và do đó thêm các khối của họ vào khối cuối cùng đã biết trong chuỗi. Điều này được minh họa trong hình ảnh dưới đây

Blockchain - Giải quyết xung đột

Bây giờ, chúng ta có hai nhánh sau Khối 3. Cả hai nhánh đều hợp lệ. Vì vậy, khối được khai thác tiếp theo có thể được thêm vào một trong hai nhánh. Giả sử, người khai thác thêm khối mới được khai thác vào Khối 104-A, nhánh chứa Khối 104-A sẽ dài hơn nhánh chứa Khối 104-B. Điều này được minh họa trong hình ảnh dưới đây

Trong kiến ​​trúc Bitcoin, nhánh dài nhất luôn thắng và nhánh ngắn hơn sẽ bị loại bỏ. Vì vậy, Block 104-B phải được thanh lọc. Trước khi xóa khối này, tất cả các giao dịch trong khối này sẽ được trả lại cho nhóm giao dịch để chúng được khai thác và thêm vào một số khối trong tương lai. Đây là cách các xung đột được giải quyết và hệ thống chỉ duy trì một chuỗi khối duy nhất

Blockchain – Quyền riêng tư

Vì sổ cái ghi lại tất cả các giao dịch bitcoin được công khai thực sự, nên quyền riêng tư đang bị đe dọa. Bất kỳ ai trên thế giới sẽ có thể biết ai đã trả tiền cho ai? Hệ thống ngân hàng truyền thống có thể duy trì loại quyền riêng tư này bằng cách giữ bí mật hồ sơ của nó.

Quyền riêng tư trong hệ thống Bitcoin đạt được bằng một chiến lược khác. Lưu ý rằng chúng tôi đã nói rằng người gửi bitcoin cần biết người trả tiền. Vì vậy, anh ta yêu cầu khóa công khai của nhà cung cấp mà anh ta muốn thực hiện thanh toán. Khóa công khai này có thể được ẩn danh. Theo nghĩa, với tư cách là nhà cung cấp một số dịch vụ, khi ai đó hỏi bạn gửi thanh toán ở đâu, bạn chỉ cần gửi cho họ khóa công khai của mình. Mối liên kết của khóa công khai này với bạn không được ghi lại ở bất kỳ đâu trong sổ cái. Bằng cách đó, bất kỳ ai bên ngoài giao dịch này sẽ chỉ biết có bao nhiêu tiền được giao dịch và khóa công khai nào mà tiền được thanh toán

Để đạt được mức độ bảo mật cao hơn, đối với mọi giao dịch, bạn có thể tạo khóa riêng tư / công khai mới cho mỗi giao dịch để nhiều giao dịch do bạn thực hiện không thể bị nhóm lại với nhau bởi một bên thứ ba. Đối với người ngoài, điều này đơn giản có nghĩa là nhiều giao dịch có giá trị nhỏ hơn đã được thực hiện và chúng sẽ không bao giờ được liên kết với một nguồn chung. Cuối cùng, bất kỳ hệ thống dựa trên internet trực tuyến nào cũng dễ bị lạm dụng. Bây giờ tôi sẽ mô tả một số loại tấn công có thể xảy ra vào hệ thống Bitcoin và cách giảm thiểu những loại tấn công đó

Bitcoin – hạn chế các cuộc tấn công

Cuộc tấn công

Là một kẻ tấn công, bạn có thể nhanh chóng gửi cùng một đồng tiền đến các nhà cung cấp khác nhau, có thể bằng cách sử dụng hai máy khác nhau. Nếu các nhà cung cấp không đợi xác nhận khối trước khi giao hàng, họ sẽ rất sớm nhận ra rằng giao dịch đã bị từ chối trong quá trình khai thác. Giải pháp cho kiểu tấn công này là nhà cung cấp phải đợi ít nhất một xác nhận khối trước khi gửi hàng đi

Finney Attack

Trong trường hợp này, kẻ tấn công là thợ mỏ. Người khai thác khai thác một khối với giao dịch của mình và không giải phóng nó trong hệ thống. Giờ đây, anh ấy sử dụng cùng một đồng tiền trong giao dịch thứ hai và sau đó phát hành khối tiền khai thác. Rõ ràng, giao dịch thứ hai cuối cùng sẽ bị từ chối bởi các thợ đào khác, nhưng điều này sẽ mất một thời gian. Để giảm thiểu rủi ro này, người bán nên đợi ít nhất sáu xác nhận khối trước khi giải phóng hàng hóa

Tấn công 51%

Trong kiểu tấn công này, chúng tôi đưa ra một giả định không thực tế rằng ai đó sở hữu 51% sức mạnh tính toán của mạng. Kẻ tấn công trong kiểu tấn công này khai thác một blockchain riêng tư, nơi anh ta chi tiêu gấp đôi số tiền.

Vì anh ấy sở hữu phần lớn sức mạnh tính toán, anh ấy được đảm bảo rằng chuỗi khối riêng tư của anh ấy vào một thời điểm nào đó sẽ dài hơn chuỗi mạng “trung thực”. Sau đó, anh ấy phát hành chuỗi khối riêng tư của mình trong hệ thống khiến tất cả các giao dịch trước đó được ghi lại trong chuỗi khối trung thực trở thành không hợp lệ. Loại tấn công này là hư cấu vì rất tốn kém để có được sức mạnh tính toán bằng hoặc vượt quá 51% sức mạnh tính toán của toàn bộ mạng

Blockchain – Kết luận

Trong hướng dẫn ngắn này, bạn đã được giới thiệu một số khái niệm về Blockchain bằng cách lấy Bitcoin làm nghiên cứu điển hình. Bitcoin là sự triển khai thành công đầu tiên của blockchain. Ngày nay, thế giới đã tìm thấy các ứng dụng của công nghệ blockchain trong một số ngành công nghiệp, nơi mong muốn sự tin tưởng mà không có sự tham gia của cơ quan quản lý tập trung. Vì vậy, chào mừng bạn đến với thế giới của Blockchai

Trang web chính thức – Bitcoin.org

Để lại một bình luận