Lê Nguyên Thứ Năm, 30/1/2025, 11:44 (GMT+7)
Người theo dõi

Crypto thú vị hơn bạn tưởng (kỳ 2): Hàm băm (hash function) là gì? Vì sao hàm băm lại quan trọng trong blockchain đến thế?

Kỳ trước, người viết đã giới thiệu về sự ra đời của blockchian, cũng như cuộc cách mạng mà công nghệ này đã và đang thay đổi giới tài chính toàn cầu. Và một trong những "trụ cột" của blockchian là hàm băm (hash function).

Crypto thú vị hơn bạn tưởng (kỳ 1): Crypto là gì? Sự ra đời của Bitcoin

Hàm băm là gì?

Hàm băm không chỉ là một thuật toán mã hóa đơn thuần, nó còn là nền tảng giúp blockchain đảm bảo tính toàn vẹn, bảo mật và phi tập trung. Vậy hàm băm thực sự là gì? Tại sao nó lại đóng vai trò quan trọng đến vậy trong công nghệ blockchain?

Như đã đề cập ở kỳ trước, crypto được coi là sản phẩm của mật mã học. Đây là một phần tối quan trọng để giải mã cơ chế vận hành của crypto, hay cụ thể hơn là Bitcoin.

Bitcoin sử dụng mật mã học để bảo vệ tính an toàn và bảo mật của giao dịch, nhờ vào hàm băm (hash function) - thuật toán mã hóa nhận một đầu vào bất kỳ (một chuỗi dữ liệu bất kỳ như văn bản, số, hoặc dữ liệu phức tạp) và tạo ra một chuỗi ký tự với độ dài cố định, thường được gọi là "hash".

Về cơ bản, bạn sẽ dùng thuật toán để xào xáo dữ liệu đưa vào, biểu diễn chúng dưới dạng số nhị phân (một chuỗi các bit gồm các số 0 và 1), và sau đó đảo các số 0 và 1 này cực nhiều lần, trộn cho đến khi chúng lẫn với nhau và không thể nhận ra.

Hàm băm có tính một chiều, cung cấp các bước hướng dẫn để trộn các bit lại với nhau nhưng không hoạt động theo chiều ngược lại. Nó giống như trộn sữa vào cà phê vậy: dễ làm (khuấy tan sữa vào cà phê), khó đảo ngược (tách sữa khỏi cà phê).

Điều này có nghĩa bạn sẽ tạo mật mã một cách dễ dàng bằng hàm băm, nhưng việc giải mã hàm băm để có ngược lại thông tin ban đầu dường như là bất khả thi.

Vậy một mã bí mật thì dùng để làm gì? 

Blockchain hoạt động theo cơ chế đồng thuận (consensus), nghĩa là các nút (nodes) trong mạng lưới phải đồng ý về trạng thái của chuỗi. Nếu một kẻ tấn công cố gắng thay đổi một khối, chuỗi của kẻ tấn công sẽ có giá trị băm khác với bản sao được lưu ở các nút khác. Các nút trong mạng lưới sẽ từ chối chuỗi này vì không hợp lệ.

Do đó, hàm băm đóng vai trò như "dấu vân tay" của dữ liệu, giúp blockchain đảm bảo tính toàn vẹn, bảo mật và chống gian lận. Nó giúp mã hóa dữ liệu giao dịch trên blockchain. 

Giả sử bạn có một mật khẩu khi tạo tài khoản trên máy tính, rồi "băm" nó và lưu giữ kết quả trong một mảnh giấy. Nếu có ai nhặt được mảnh giấy, họ sẽ không thể giải mã ra mật khẩu và không thể đăng nhập được vào hệ thống hệ thống máy tính. 

Từ đây dẫn đến một số khái niệm khác, gồm khóa công khai (public key) và khóa riêng tư (private key) - hai thành phần quan trọng của mật mã học đối xứng, được sử dụng rộng rãi trong blockchain để bảo mật và xác thực giao dịch. 

Khóa công khai/Địa chỉ công khai giống như số tài khoản ngân hàng: Ai cũng có thể biết và dùng nó để gửi tiền (hoặc dữ liệu) cho bạn, nhưng họ không thể rút tiền từ đó. Còn khóa riêng tư được giữ bí mật tuyệt đối, chỉ chủ sở hữu mới biết, cho phép bạn truy cập và sử dụng tài sản của mình. 

Chẳng hạn như việc gửi và nhận tiền trong blockchain.  Người gửi cần khóa công khai của bạn để gửi tiền. Khi đó, khóa công khai được dùng để mã hóa thông tin (ví dụ: tạo chữ ký số hoặc địa chỉ ví).

Ngược lại, khi muốn chuyển tiền cho người khác, bạn sử dụng khóa riêng tư để ký giao dịch (chữ ký số). Người nhận (hoặc mạng lưới blockchain) dùng khóa công khai của bạn để kiểm tra chữ ký số. Nếu chữ ký số hợp lệ, giao dịch được xác nhận là hợp pháp.

Bitcoin bản chất là gì?

Hình thái đơn giản của Bitcoin sẽ như thế này: Có một danh sách công khai lớn gồm những địa chỉ, mỗi địa chỉ có một nhãn riêng biệt mà trông như một những số và ký tự ngẫu nhiên, và có một ít số dư Bitcoin trong đó.

Một địa chỉ có thể có nhãn “1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa” và có số dư 68,6 Bitcoin. Địa chỉ này hoạt đóng vai trò như một khóa công khai (public key). 

Khi tôi nói tôi “sở hữu” 68,6 Bitcoin này, điều đó có nghĩa là tôi sở hữu khóa riêng tư (private key) tương ứng với địa chỉ đó. Giống như bạn có mật khẩu và truy cập vào tài khoản vậy.

Sự kết hợp của địa chỉ công khai và khóa riêng tư (private key) là đủ để định nghĩa một coin. Tiền tệ được mã hóa được gọi như vậy là bởi nó là một loại tiền tệ có nguồn gốc từ việc mã hóa.

Có thể bạn sẽ nhận thấy tất cả những gì chúng ta bàn với nhau đều là việc “trao đổi thông điệp”, và gọi kết quả trên là một loại tiền tệ.

Tại sao lại nói như vậy? Thực chất hệ thống tài chính truyền thống cũng chẳng khác là bao, các ngân hàng không chuyển mấy “xấp giấy hình chữ nhật nhỏ” đi khắp nơi, tới tay từng khách hàng. Họ lưu trữ cơ sở dữ liệu và cập nhật nó.

Về cơ bản, khi tôi phát ra một thông điệp “chuyển 100 USD” cho bạn, ngân hàng của tôi sẽ gửi thông tin này đến cho ngân hàng của bạn để đầu bên kia cập nhật sổ cái (ledger).

Mạng lưới Bitcoin cũng hoạt động tương tự như vậy, khi ta truyền đi các thông điệp, sổ cái công khai sẽ được điều chỉnh số liệu, xem ai đang sở hữu cái gì.

Sổ cái trong tay ai?

Câu trả lời là mạng lưới Bitcoin - hàng ngàn người dùng trên khắp thế giới chạy phần mềm Bitcoin trên máy tính của họ. Người dùng sẽ duy trì sổ cái đồng bộ, như một cách để vừa cộng tác và vừa mang tính dự phòng.

Đồng nghĩa, mỗi node trong mạng lưới đều giữ một danh sách đầy đủ về số Bitcoin trong từng địa chỉ.

Đơn cử khi tôi chuyển bạn 1 Bitcoin, giao dịch này sẽ được đưa vào mạng lưới và toàn bộ người dùng sẽ cập nhật danh sách của họ. Đó không phải là 1 giao dịch riêng tư mà chỉ tôi và bạn biết.

Sau đó, khi chúng ta thực hiện một giao dịch - khi tôi gửi bạn một Bitcoin - chúng ta không chỉ làm việc đó một cách riêng tư mà phát thông tin đó lên toàn bộ mạng lưới để tất cả mọi người có thể cập nhật danh sách của họ.

Nếu tôi gửi bạn 1 Bitcoin từ địa chỉ của tôi, và “chữ ký” của tôi trên giao dịch là hợp lệ, tất cả mọi người sẽ cập nhật sổ cái của họ để +1 BTC vào địa chỉ của bạn và -1 BTC từ địa chỉ của tôi.

Như vậy nghĩa là tôi có thể gửi bạn một Bitcoin mà không cần bạn tin tôi, hoặc tôi tin bạn, hoặc một trong hai người tin một ngân hàng nào đó để họ xác nhận xem tôi có tiền không. 

“Chúng tôi định nghĩa một coin (đồng xu) điện tử là một chuỗi các chữ ký kỹ thuật số,” Satoshi viết. Sự kết hợp của địa chỉ công khai và khóa riêng tư là đủ để định nghĩa một coin. Tiền tệ được mã hóa được gọi như vậy là bởi nó là một loại tiền tệ có nguồn gốc từ việc mã hóa.   

Sự trung thực

Hãy để ý là có lợi ích tài chính cho tất cả mọi người nếu họ trung thực: Nếu mọi người đều trung thực thì đây là một hệ thống thanh toán có thể có giá trị. Nếu rất nhiều người không trung thực và đưa những giao dịch giả vào sổ cái của họ, thì không ai sẽ tin tưởng Bitcoin và nó sẽ trở thành vô giá trị. Ăn trộm Bitcoin để làm gì nếu trị giá của nó bằng không?

Đây là một cách tiếp cận cơ bản trong lĩnh vực crypto: Các hệ thống crypto cố gắng dùng các lợi ích kinh tế để khiến người ta cư xử trung thực, hơn là tin rằng họ sẽ cư xử trung thực.

Phần nhiều câu chuyện là thế, nhưng nó vẫn bỏ ngỏ một số vấn đề nhỏ. Toàn bộ số Bitcoin này đến từ đâu? 

Sẽ không vấn đề gì nếu nói tất cả mọi người trên mạng lưới đều giữ một cuốn sổ cái ghi toàn bộ các giao dịch Bitcoin đã từng được thực hiện, và số Bitcoin của bạn có thể được truy ngược qua một chuỗi những giao dịch trước đó. Nhưng truy ngược về cái gì? Bạn lập lên sổ cái như thế nào?

Một vấn đề khác là thứ tự của các giao dịch cũng quan trọng: Nếu tôi có một Bitcoin trong tài khoản và tôi gửi nó cho bạn, và sau đó tôi gửi nó cho ai đó khác, vậy ai sẽ là người thực sự nhận được Bitcoin đó? 

Điều này nghe có vẻ vụn vặt, nhưng nó rất khó nhằn. 

Bitcoin là một mạng phi tập trung hoạt động bởi việc truyền phát thông tin các giao dịch tới hàng nghìn nút mạng, và không có gì đảm bảo các giao dịch sẽ được truyền đi theo cùng thứ tự khi tới chỗ mọi người. 

Và nếu tất cả mọi người không đồng ý về thứ tự đó, những việc tệ – việc “lặp chi (double spending)”, tức là khi người ta gửi cùng một Bitcoin đến hai địa chỉ khác nhau – có thể xảy ra. “Các giao dịch phải được thông báo công khai,” Satoshi viết, “và chúng ta cần một hệ thống để những người tham gia nhất trí về một lịch sử thứ tự duy nhất mà họ đã nhận được”.

Hệ thống đó chính là blockchain./.

(còn tiếp)

Chia sẻ
Báo cáo
Lê Nguyên Người dùng
Nhà đất Chủ đề
Bình luận
Xem thêm

Trở thành người bình luận đầu tiên