Blogs
Blockchain thực sự hoạt động như thế nào?
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:
1
2
3
4
|
$ npm install blockchain - cli - g
$ blockchain
|
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
1
2
3
|
CryptoJS . SHA256 ( index + previousHash + timestamp + data + nonce )
|
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.
1
2
3
4
5
6
7
8
9
10
|
function isValidHashDifficulty ( hash , difficulty ) {
for ( var i = 0 , b = hash . length ; i < b ; i ++ ) {
if ( hash [ i ] !== '0' ) {
break ;
}
}
return i >= 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ệ
1
2
3
4
5
6
7
8
9
10
|
let nonce = 0 ;
let hash ;
let input ;
while ( ! isValidHashDifficulty ( hash ) ) {
nonce = nonce + 1 ;
input = index + previousHash + timestamp + data + nonce ;
hash = CryptoJS . SHA256 ( input )
}
|
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:
- Dữ liệu thay đổi trên block A
- Thay đổi hask của Block A vì dữ liệu được sử dụng để tính toán hask.
- 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.
- 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.
- 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.
- 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.
- 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/
Via medium
Có thể bạn chưa biết:
- Nhóm các ngân hàng thương mại Hàn Quốc sẽ triển khai nền tảng xác minh ID dựa trên công nghệ Blockchain
- Blockchain – Khởi nguồn của một nền kinh tế mới: Chương 3 – Blockchain 3.0 (Phần 6)
- Tạo Blockchain và BitCoin bằng HTML và Javascript (Phần 3): Tự tạo ra một đồng Bitcoin của mình
- Chàng trai gốc Việt kiếm hàng triệu USD khởi nghiệp từ tiền điện tử
- Willy Woo: “mua Altcoin để đa dạng hóa danh mục đầu tư chỉ làm...
- Tìm hiểu về Công nghệ Blockchain
- Blockchain – Khởi nguồn của một nền kinh tế mới: Chương 5 – Các khái niệm nâng cao (Phần 1)
- Blockchain – Khởi nguồn của một nền kinh tế mới: Phụ lục B – Danh sách làm chủ công nghệ Blockchain của Ledra Capital
- Bakkt giao dịch 71 hợp đồng tương lai Bitcoin trong 24 giờ đầu tiên
- Tạo Blockchain và BitCoin bằng HTML và Javascript (Phần 2): Tạo ra công nghệ đào tiền điện tử
- Blockchain – Khởi nguồn của một nền kinh tế mới: Chương 3 – Blockchain 3.0 (Phần 1)
- Tangle có thực sự là đối thủ đáng gờm của Blockchain hay không? So sánh Tangle và Blockchain!
DVMS chuyên:
- Tư vấn, xây dựng, chuyển giao công nghệ Blockchain, mạng xã hội,...
- Tư vấn ứng dụng cho smartphone và máy tính bảng, tư vấn ứng dụng vận tải thông minh, thực tế ảo, game mobile,...
- Tư vấn các hệ thống theo mô hình kinh tế chia sẻ như Uber, Grab, ứng dụng giúp việc,...
- Xây dựng các giải pháp quản lý vận tải, quản lý xe công vụ, quản lý xe doanh nghiệp, phần mềm và ứng dụng logistics, kho vận, vé xe điện tử,...
- Tư vấn và xây dựng mạng xã hội, tư vấn giải pháp CNTT cho doanh nghiệp, startup,...
Vì sao chọn DVMS?
- DVMS nắm vững nhiều công nghệ phần mềm, mạng và viễn thông. Như Payment gateway, SMS gateway, GIS, VOIP, iOS, Android, Blackberry, Windows Phone, cloud computing,…
- DVMS có kinh nghiệm triển khai các hệ thống trên các nền tảng điện toán đám mây nổi tiếng như Google, Amazon, Microsoft,…
- DVMS có kinh nghiệm thực tế tư vấn, xây dựng, triển khai, chuyển giao, gia công các giải pháp phần mềm cho khách hàng Việt Nam, USA, Singapore, Germany, France, các tập đoàn của nước ngoài tại Việt Nam,…
Quý khách xem Hồ sơ năng lực của DVMS tại đây >>
Quý khách gửi yêu cầu tư vấn và báo giá tại đây >>