Blockchain làm việc như thế nào? Được quản lý ra sao?

blockchain-lam-viec-nhu-the-nao-6

Blockchain là gì?

Điều đầu tiên bạn cần biết blockchain thực sự là một chuỗi (chain) các block (block). Nó là một chuỗi kỹ thuật số của các block, và các block được hình thành từ dữ liệu. Do đó, về cơ bản nó là một chuỗi dữ liệu. Lấy ví dụ từ blockchain của Bitcoin, blockchain lâu đời nhất. Các dữ liệu tồn tại trong một Block có kích thước 1 MB. Bitcoin hiện có khoảng 525 block, nghĩa là khoảng 525 MB dữ liệu hiện được lưu trữ trong blockchain. Vì vậy, một blockchain là một bản ghi dữ liệu, nhưng dữ liệu này được coi là không thay đổi. Khi một block dữ liệu được thêm vào blockchain, nó không bao giờ có thể được thay đổi một lần nữa (ngoại lệ nhỏ được thảo luận sau). Nó sẽ luôn luôn là một phần của dữ liệu và công khai cho bất cứ ai muốn nhìn thấy nó.

blockchain-lam-viec-nhu-the-nao-6

Dữ liệu của block được tạo thành từ bản ghi dữ liệu giao dịch. Blockchain có thể lưu trữ bất kỳ loại dữ liệu nào theo nghĩa đen, nhưng bây giờ điều này không quan trọng. Hãy tưởng tượng chuyển $100 cho một người. Giao dịch này được xử lý bởi ngân hàng. Số dư của bạn được giảm $100 và số dư bạn bè của bạn được tăng thêm một $100. Để theo dõi tất cả số dư và giao dịch trước đó, ngân hàng cần có hồ sơ dữ liệu giao dịch. Khi các bản ghi này được lưu trữ trên một blockchain, dữ liệu giao dịch sẽ tạo thành các block. Giao dịch đầu tiên là block 1, sau đó các giao dịch khác tạo thành block 2, sau block 2 các giao dịch khác tạo thành block 3….. Hãy bắt đầu từ đây. Bây giờ chúng ta có một block dữ liệu giao dịch (hình ảnh 1). Trên blockchain của bitcoin, dữ liệu giao dịch này đề cập đến Bitcoin. Những block này được xích lại với nhau.

blockchain-lam-viec-nhu-the-nao-3

Các block được "nối" với nhau như thế nào?

Điều gì tạo nên cuộc cách mạng blockchain, đó là các block dữ liệu được xích (chain) lại với nhau. Điều này có nghĩa là block 1 được xích với block 2, tiếp theo block 2 được xích với block 3 và cứ tiếp tục như vậy. Bởi vì các block được xích lại với nhau, nếu muốn thay đổi một block chúng ta phải thay đổi hoàn toàn các block tiếp theo.

Các chuỗi blockchain hình thành bằng cách cho mỗi block một chữ ký số (digital signature) duy nhất tương ứng với nó và chỉ chính xác với chuỗi dữ liệu từ block đó. Nếu chuỗi dữ liệu một block thay đổi, chữ ký của block đó cũng thay đổi. Điều này xảy ra một cách chính xác là nhờ thuật toán hash  (hashing algorithm) sẽ được giải thích trong phần sau. Bây giờ, mọi chuỗi dữ liệu duy nhất (có nghĩa là mọi block) có một chữ ký số duy nhất liên kết với nó.

Giả sử có một block ghi lại các giao dịch, block 1. Chuỗi dữ liệu từ block 1 (bao gồm một số dữ liệu meta và dữ liệu giao dịch) tương ứng với chữ ký số 'X32'. Chữ ký này được thêm vào block tiếp theo - block 2. Làm cho nó trở thành một phần của chuỗi dữ liệu từ block 2. Chuỗi dữ liệu từ block 2 (bao gồm chữ ký X32 từ block 1) có chữ ký duy nhất của riêng nó, giả sử '9BZ'. Đây là những gì xảy ra:

blockchain-lam-viec-nhu-the-nao-8

Đây là cách các block bị xích. Chữ ký liên kết tất cả với nhau. Hãy tưởng tượng thêm một block khác vào chuỗi block này, block 3. Đây là những gì xảy ra:

blockchain-lam-viec-nhu-the-nao-5

Hiện có 3 block xích với nhau. Bây giờ nếu ai đó thay đổi dữ liệu giao dịch trong block 1. Nếu dữ liệu này bị thay đổi, điều đó có nghĩa là chuỗi dữ liệu từ block 1 cũng thay đổi, có nghĩa là block sẽ nhận được một chữ ký ‘duy nhất’ mới. Giả sử chữ ký duy nhất cho chuỗi dữ liệu mới này là 'W10' thay vì X32. Đây là những gì xảy ra; chữ ký của block 1 không còn tương ứng với chữ ký đã được thêm vào trước đó ở block 2.

blockchain-lam-viec-nhu-the-nao-3

Những người tham gia khác (miner, nhưng không quan trọng bây giờ ) trên mạng blockchain bây giờ thấy rằng các block này không còn bị xích vào nhau, và họ sẽ biết rằng ai đó đã thay đổi một số dữ liệu ở đó. Vì vậy, họ từ chối nó (họ làm điều này tự động) và chỉ cần làm theo phiên bản cũ của blockchain mà họ đã lưu, nơi các block này vẫn còn xích lại với nhau, có nghĩa là thay đổi không được chấp nhận với phần còn lại của mạng.

Vì vậy, nếu ai đó muốn thay đổi giao dịch và đảm bảo rằng giao dịch được chấp nhận với phần còn lại của mạng, người này sẽ phải đảm bảo rằng tất cả các block đều bị xích với nhau để không bị phát hiện . Tuy nhiên, vấn đề ở đây là để liên kết block 1 với block 2 một lần nữa, chữ ký W10 bây giờ phải được thêm vào block 2 thay vì chữ ký X32 trước đó. Khi điều này xảy ra, chuỗi dữ liệu của block 2 thay đổi, nghĩa là block 2 giờ cũng có chữ ký khác. Chữ ký của block 2 không còn là 9BZ, vì nó đã tương ứng với chuỗi dữ liệu trước đó bao gồm chữ ký X32. Giả sử chữ ký của block 2 giờ là 'PP4'. Bây giờ block 2 và block 3 không còn bị xích lại với nhau nữa

blockchain-lam-viec-nhu-the-nao-8

Điều này xảy ra với mọi block khác xuất hiện sau nó, có nghĩa là để giữ cho sự thay đổi không bị phát hiện bởi phần còn lại của mạng, tất cả các chữ ký của mỗi block xuất hiện sau block bị thay đổi cần được điều chỉnh. Điều này được coi là cực kỳ khó nếu không phải nói là không thể.

Chữ ký được tạo ra sao?

Như bạn biết, mỗi block chứa dữ liệu giao dịch lên tới 1 MB (ở đây vẫn đang nói đến Bitcoin blockchain). Mỗi chuỗi dữ liệu có một chữ ký duy nhất. Ví dụ: Thomas gửi 100 Bitcoin cho David. Dữ liệu giao dịch trong block 1 giờ trông giống như sau:

blockchain-lam-viec-nhu-the-nao-6

Giả sử dữ liệu này chiếm tới 1 MB. Trong thực tế, một block có thể chứa nhiều giao dịch hơn nhưng ngay bây giờ quên điều đó đi. Bây giờ dữ liệu này nhận được chữ ký cho chuỗi dữ liệu cụ thể của block đó. Trong Blockchain, một hàm hash (cryptographic hash function) được sử dụng để tạo ra điều này. Nó tạo ra một công thức, một công thức rất phức tạp. cryptographic hash function có thể được sử dụng để tạo một chuỗi ký tự và chữ số, 64 chữ số liên tiếp duy nhất, trong bất kỳ đầu vào nào.  Bitcoin blockchain sử dụng  SHA 256-bit hashing algorithm’. Nếu một chuỗi dữ liệu ngẫu nhiên được chèn vào hàm hash này, ví dụ 'Xin chào, hãy hash cho văn bản này ra block ', nó sẽ tạo ra chuỗi ký tự tương ứng của chuỗi dữ liệu đó, đó là:

A8725463B986994DEBB8ACBB5B904B1B1CB410CF45C6CD9A9BD8FFB77698B78C

Hãy tiếp tục thử, chúng ta nhập 'Jingebells'. Điều này cho ra:

761A7DD9CAFE34C7CDE6C1270E17F773025A61E511A56F700D415F0D3E199868

Điều gì sẽ xảy ra nếu một chữ số được thêm vào? Hãy thử nhập vào 'Jinglebells7', Bây giờ bạn sẽ thấy chuỗi này hoàn toàn khác với cái ban đầu:

B9B324E2F987CDE8819C051327966DD4071ED72D998E0019981040958FEC291B

Như bạn có thể thấy, một sự thay đổi chữ số duy nhất, thậm chí là một chữ cái viết hoa hoặc một khoảng trắng, sẽ dẫn đến một kết quả hoàn toàn khác. Hashing function này được sử dụng bởi Bitcoin blockchain để tạo chữ ký cho các block. Dữ liệu đầu vào của hash function là chuỗi dữ liệu từ một block. Đầu ra là chữ ký tương ứng. Cùng một đầu vào sẽ luôn cung cấp cho cùng một đầu ra. Bây giờ hãy xem lại block 1:

blockchain-lam-viec-nhu-the-nao-8

Hãy tưởng tượng rằng chuỗi dữ liệu từ block này trông giống như sau:

block 1 Thomas -100 David +100

Khi đưa nội dung này vào trong hashing algorithm, nó sẽ xuất ra:

BAB5924FC47BBA57F4615230DDBC5675A81AB29E2E0FF85D0C0AD1C1ACA05BFF

Chữ ký này hiện được thêm vào block 2. Hãy hình dung rằng David hiện chuyển 100 Bitcoin sang Jimi. Blockchain bây giờ trông như thế này:

blockchain-lam-viec-nhu-the-nao-1

Lưu ý rằng chữ ký của block 1 đang được bao gồm trong chuỗi dữ liệu của block 2. Đây là tổng số chuỗi dữ liệu từ block 2 bây giờ trông giống như sau:

block 2 David -100 Jimi +100 BAB5924FC47BBA57F4615230DDBC5675A81AB29E2E0FF85D0C0AD1C1ACA05BFF

Khi điều này được chèn vào hash function, nó sẽ cung cấp cho đầu ra hash sau (như bạn có thể thấy, nó tương ứng với đầu ra của block 2):

blockchain-lam-viec-nhu-the-nao-2

Đây là cách một chữ ký số duy nhất được tạo ra cho mỗi chuỗi dữ liệu cụ thể. Nhưng làm thế nào mà ngăn ai đó che dấu sự thay đổi bằng cách thay đổi tất cả chữ ký của các block trên nó? Vâng, chỉ các block có chữ ký đáp ứng các yêu cầu nhất định mới có thể được thêm vào blockchain.

Tìn hiểu thêm: Blockchain là gì?

Khi nào chữ ký đủ điều kiện và ai ký tên vào block?

Khi một block nhận được một chữ ký, nó chỉ có thể được thêm vào blockchain nếu chữ ký đó bắt đầu với một số số liên tiếp nhất định của số không. Ví dụ: chỉ chữ ký bắt đầu bằng mười số 0 liên tiếp đủ điều kiện một block được thêm vào blockchain. Vấn đề là chuỗi dữ liệu từ một block chỉ có một chữ ký duy nhất. Điều gì sẽ xảy ra nếu chữ ký đó không bắt đầu với mười số không? Vâng, để cung cấp cho một block chữ ký đáp ứng các yêu cầu, chuỗi dữ liệu từ một block cần được thay đổi nhiều lần cho đến khi một chuỗi dữ liệu được tìm thấy có chữ ký đáp ứng các yêu cầu. Bởi vì dữ liệu giao dịch cần giữ nguyên cách thức, nên có một phần nhỏ dữ liệu cụ thể được thêm vào mọi block nhằm tăng thêm các chữ số ngẫu nhiên vào chuỗi dữ liệu để tìm chữ ký phù hợp. Đoạn dữ liệu này được gọi là 'nonce' và nó có thể là bất kỳ thứ gì. Các nonce được thay đổi nhiều lần để tạo ra chữ ký mới của block, cho đến khi chữ ký phù hợp với các nguyên tắc. Nó là một dạng thử cho đến khi tìm ra đáp án. Đây là những gì miner làm. Miner sử dụng điện dưới dạng công suất tính toán để thêm các nonce khác vào chuỗi dữ liệu của họ nhiều lần để tìm chữ ký đủ điều kiện. Sức mạnh tính toán càng cao, họ càng có thể thử nonce được nhiều lần và càng có nhiều khả năng họ sẽ tìm được chữ ký phù hợp nhanh hơn. Bất kỳ người dùng nào trên mạng đều có thể tham gia vào quá trình khai thác. Bạn có thể hình dung nó như thế này:

blockchain-lam-viec-nhu-the-nao-3

Đây là một ví dụ về một block của Bitcoin đã được thêm vào Bitcoin blockchain (block 521,477):

blockchain-lam-viec-nhu-the-nao-8

 

Như bạn có thể thấy, hash của block này là:

blockchain-lam-viec-nhu-the-nao-3

Và chữ ký của block trước đó là:

blockchain-lam-viec-nhu-the-nao-3

Cả hai chữ ký (hash) bắt đầu bằng một số số 0 nhất định. Bạn có thể tưởng tượng rằng ai đó đã phải mất rất nhiều sức mạnh tính toán cố gắng tìm nonce để tìm thấy chữ ký. Đây là những gì làm cho nó trở nên khó khăn hơn để tạo ra chữ ký phù hợp cho một block.

Tại sao chuỗi các block làm cho blockchain không thay đổi?

Điều này cho bạn biết lý do tại sao rất khó để thay đổi dữ liệu trong một blockchain mà không bị phát hiện bởi phần còn lại của mạng. Cách duy nhất để thực hiện thay đổi không bị phát hiện đối với dữ liệu là cung cấp cho mỗi block xuất hiện sau block đã thay đổi một chữ ký đủ điều kiện mới. Đây là điều tốn kém và tốn thời gian nhưng dường như không thể. Tuy nhiên, vẫn có thể xảy ra:

Giả sử miner xấu muốn thay đổi một block giao dịch, block 4. Các miner xấu bây giờ đã bắt đầu tính toán một chữ ký mới cho block 4, và sau đó một chữ ký mới cho mỗi block khác sau block 4. Trong khi đó, tất cả các miner khác trên mạng đều kết hợp sức mạnh tính toán của họ để tính chữ ký cho một block mới, block 7, và sau đó block 8 ….. Phần còn lại của mạng kết hợp dự kiến ​​sẽ có sức mạnh tính toán nhiều hơn, do đó chúng tính toán chữ ký với nhau nhanh hơn nhiều. Vì vậy, phần còn lại của mạng là thêm các block mới nhanh hơn nhiều so với các miner xấu có thể điều chỉnh chữ ký của họ. Miner xấu không bao giờ có thể bắt kịp với phần còn lại của mạng, trừ khi họ kiểm soát sức mạnh tính toán nhiều hơn phần còn lại của mạng. Mặc dù về mặt lý thuyết điều này là có thể ( được gọi là một cuộc tấn công 51%), trong thực tế điều này được coi là gần như không thể. Đây là lý do tại sao dữ liệu trên blockchain được coi là không thay đổi.

blockchain-lam-viec-nhu-the-nao-9

Blockchain được quản lý như thế nào?

Bitcoin blockchain có một mô hình quản trị dân chủ. blockchain protocol (Giao thức blockchain) thực hiện điều này tự động bằng cách luôn theo dõi bản ghi block dài nhất mà nó có, bởi vì nó giả định rằng chuỗi này được đại diện bởi đa số, sau tất cả, nó đòi hỏi phần lớn sức mạnh tính toán để xây dựng phiên bản dài nhất của blockchain. Đây cũng là cách một block bị thay đổi tự động bị từ chối bởi phần lớn mạng. Phần lớn mạng từ chối một block bị thay đổi bởi vì nó không còn bị xích vào chuỗi dài nhất. Nó chỉ có thể trở thành một phần của chuỗi dài nhất nếu tất cả các chữ ký đến block mới nhất được xích lại vào block bị thay đổi một lần nữa. Điều này được coi là không thể, và do đó dữ liệu trên một blockchain không bao giờ có thể thay đổi.

Trên Bitcoin blockchain, tất cả lịch sử giao dịch và số dư ví là công khai (blockchain.info). Bất kỳ ai cũng có thể tra cứu bất kỳ ví hoặc giao dịch nào đã từng xảy ra giao dịch (từ ngày 3 tháng 1 năm 2009). Mặc dù số dư ví có thể được kiểm tra bởi bất kỳ ai. Nhưng chủ sở hữu của những ví đó vẫn chưa được biết rõ. Đây là một ví dụ về một chiếc ví vẫn chứa 69.000 Bitcoin, tại thời điểm viết trị giá khoảng 500 triệu đô la . Nó được sử dụng lần cuối vào tháng 4 năm 2015, chỉ để hiển thị và không hoạt động kể từ ngày đó.

Tiền mã hoá (cryptocurrencies)?

Cryptocurrencies về cơ bản là một dạng thay đổi của Bitcoin. Hầu hết các tiền mã hoá được xây dựng dựa trên giao thức blockchain của riêng chúng, có thể có các quy tắc khác nhau từ Bitcoin blockchain. Bitcoin được cho là một loại tiền tệ, nghĩa là nó được cho là hoạt động như tiền. Monero là tiền mã hoá có cùng chức năng, nhưng giao thức blockchain của nó đã triển khai một số quy tắc bổ sung khiến cho nó trở thành một loại tiền tệ riêng tư hơn (các giao dịch khó theo dõi hơn nhiều). Tuy nhiên, tiền mã hoá có thể được cung cấp bất kỳ loại giá trị nào, tùy thuộc vào nhà phát hành của chúng. Chúng có thể được gọi là 'token'. Những token này có thể cung cấp cho chủ sở hữu quyền 'gì đó', thay đổi từ giấy phép chơi game hoặc quyền truy cập vào phương tiện truyền thông xã hội đến điện hoặc nước…... Bất kỳ loại giá trị nào cũng có thể được gắn vào ‘cryptocurrency’ token. Tất cả các giao dịch tiền mã hoá này đều được đăng ký trên các blockchains khác nhau và có thể được trao đổi trực tuyến thông qua các sàn giao dịch tiền mã hoá như Binance. Đây là tiền mới của internet. Một ví dụ điển hình về một ngành có thể bị gián đoạn sớm là ngành thị trường chứng khoán. Có một cơ hội tốt mà cổ phiếu của công ty và các quyền sở hữu khác sẽ được đăng ký như các token trên một blockchain trong tương lai gần. Nhưng blockchain không chỉ giới hạn trong việc đăng ký giá trị vật chất ở dạng token. Blockchain cũng có tiềm năng để đăng ký một cách an toàn dữ liệu dưới dạng hồ sơ y tế, danh tính, hồ sơ lịch sử, hồ sơ thuế ….. Đây là lý do tại sao công nghệ này rất lớn.

Nguồn: medium.com

Đánh giá

Để lại ý kiến của bạn:

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *