Blockchain thực sự hoạt động như thế nào?

2101

Theo định nghĩa của Wikipedia Blockchain là :

Một cơ sở dữ liệu phân cấp, lưu trữ thông tin trong các khối thông tin đượ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 thông tin đều chứa thông tin về thời gian khởi tạo và được liên kết tới khối trước đó, kèm một mã thời gian và dữ liệu giao dịch. Blockchain được thiết kế để chống lại việc 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 thay đổi được nó. Nghe có vẻ thú vị, nhưng chính xác nó là cái gì ?

Để minh hoạ một blockchain, chúng ta sẽ sử dụng một giao diện command-line open source gọi là Blockchain CLI. Nếu bạn chưa cài đặt, hãy cài đặt Node.js. Và bắt đầu chạy các command-line sau:

Bạn sẽ thấy 👋 Welcome to Blockchain CLI! Và blockchain →prompt đã sẵn sàng để thực hiện lệnh. Block trông như thế nào? Để xem blockchain hiện tại của bạn, nhập blockchain hoặc bc vào command prompt. Bạn sẽ thấy một block như hình dưới.Index (Block #): Block nào là nó? (Khối Genesis có chỉ số 0)

Hash: Là block có giá trị?

Previous Hash: Là block trước đó hợp lệ?

Timestamp: Khi nào khối được thêm?

Data: Những thông tin nào được lưu trữ trên block?

Nonce: Có bao nhiêu lần được lặp lại trước khi chúng tôi tìm thấy một block hợp lệ?

Block Genesis Mỗi blockchain sẽ bắt đầu với Block Genesis. Như bạn biết, mỗi block trên blockchain phụ thuộc vào block trước đó. Vì vậy, block Genesis là cần thiết để thiết lập block đầu tiên của chúng ta.

Điều gì xảy ra khi một Block mới được khai thác?

Hãy bắt đầu block đầu tiên của chúng ta. Nhập mine freeCodeCamp ♥ ︎ vào prompt . Blockchain dựa vào khối mới nhất được thêm vào blockchain. Trong trường hợp này block Genesis là khối mới nhất.

Index: o+1 = 1

Previous Hash: 0000018035a828da0…

Timestamp: khi nào block được thêm vào

Data: freeCodeCamp❤

Hash: ??

Nonce: ??

Làm thế nào để tính hash? Giá trị hash là một trị số với độ dài cố định, giúp nhận diện dữ liệu. Các hash được tính bằng cách lấy trị số của block hash trước đó, timestamp, block data, and nonce như là giá trị đầu vào

Thuật toán SHA256 sẽ tính toán một hàm hash duy nhất, cho các giá trị input. Các input tương tự sẽ trả lại cùng một hash.

Bạn có nhận thấy bốn đầu 0 trong khối hash?

Bốn hàng đầu của 0 là một yêu cầu tối thiểu cho một hash hợp lệ. Số yêu cầu hàng đầu của 0 được gọi là difficulty.

Nó còn được gọi là hệ thống Proof of Work.

Một nonce là gì?

Một nonce là một số được sử dụng để tìm một hash hợp lệ

Các nonce iterates cho đến khi hash là hợp lệ. Trong trường hợp của chúng ta, một hash hợp lệ có ít nhất bốn hàng đầu của 0. Quá trình tìm một nonce tương ứng với một hash hợp lệ là mining.

Difficulty tăng lên, số lượng các hash hợp lệ giảm. Với hàm hash hợp lệ ít hơn có thể cần phải mất nhiều thời gian xử lý hơn để tìm một hash hợp lệ.

Tại sao điều này lại quan trọng?

Nó quan trọng vì nó giữ cho blockchain không thay đổi. Nếu chúng ta có blockchain A → B → C, và ai đó muốn thay đổi dữ liệu trên Block A. Điều này xảy ra:

  1. Dữ liệu thay đổi trên block A
  2. Thay đổi hask của Block A vì dữ liệu được sử dụng để tính toán hask.
  3. Block A trở nên không hợp lệ vì hash của nó không còn có bốn đầu của 0.
  4. Thay đổi hask của Block B vì hask của Block A được sử dụng để tính toán hask của Block B.
  5. Hask B trở nên không hợp lệ bởi vì hask của nó không còn có bốn hàng đầu của 0.
  6. Thay đổi hask của Block C vì sử dụng hask của Block B để tính toán hask của Block C.
  7. Block C trở nên không hợp lệ vì hash của nó không còn có bốn đầu của 0. Cách duy nhất để biến đổi một khối sẽ là xây dựng lại một blockchain khác. Vì các block mới luôn luôn được thêm vào, nên gần như không thể biến đổi blockchain này. Tôi hy vọng hướng dẫn này hữu ích cho bạn! Nếu bạn muốn kiểm tra phiên bản web của bản giới thiệu, hãy vàohttp://blockchaindemo.io/

Techtalk Via medium

CHIA SẺ