This article has been translated from English to Vietnamese.

Trước khi đào sâu vào vấn đề khai thác Bitcoin, chúng ta cần đi ngang qua một khái niệm cơ bản của tiền điện tử.

Để thực sự hiểu cách Bitcoin và các loại tiền điện tử khác hoạt động, điều quan trọng là phải hiểu khái niệm về “hashing“ trước đã.

Khi bạn nghe từ “hash”, một số người có thể nghĩ đến món khoai tây chiên băm, một món ăn sáng phổ biến ở Mỹ, trong khi những người khác như Snoop Dogg, có thể nghĩ đến sản phẩm cô đặc từ cần sa. 🌿

Sai loại hash

Trong bài học này, tôi sẽ nói về một loại hash khác!

Đây là một khái niệm kỹ thuật, nhưng một khi nắm được thì sẽ rất hữu ích, nên tôi sẽ giải thích dễ hiểu nhất có thể.

Hiểu về khái niệm hashing cũng cần thiết để hiểu cách khai thác Bitcoin hoạt động (đó sẽ là hướng dẫn tiếp theo), nên đừng bỏ qua những bài học này. 👁️

Hashing là gì?

Hashing là một phương pháp mật mã học biến đổi bất kỳ dạng dữ liệu nào thành một chuỗi văn bản độc nhất có độ dài cố định.

Mật mã học là thực hành và nghiên cứu các kỹ thuật để giao tiếp an toàn trước các quan sát từ bên ngoài. Trong kỷ nguyên internet, mật mã học được sử dụng để bảo vệ thông tin máy tính hoặc “dữ liệu”.

Nếu chưa rõ, “crypto” trong tiền điện tử có nghĩa là mật mã học.

Hashing là một phần quan trọng của mật mã học. Và đóng vai trò lớn trong việc tạo nên “crypto” trong tiền điện tử.

Nói một cách đơn giản, hashing có nghĩa là nhập văn bản có ĐỘ DÀI bất kỳ qua một hàm hash để tạo ra một đầu ra có độ dài CỐ ĐỊNH.

Hàm Hash

Bất kỳ mảnh dữ liệu nào cũng có thể được “hash”, không phụ thuộc vào kích thước, loại, hay độ dài của nó.

Hash được tạo ra luôn có độ dài như nhau.

Trong các ví dụ dưới đây, sử dụng hàm hash SHA-1, bất kể độ dài của “đầu vào”, “đầu ra” luôn có 40 ký tự.

Ví dụ Hashing - Hello

Ví dụ Hashing - BabyPips.com

Ví dụ Hashing - i

Đây là so sánh nhanh ba ví dụ:

Đầu vào Hash
Hello f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0
BabyPips.com 8c8780d0b70c5ef42a534846cc042629cf07a440
I ca73ab65568cd125c2d27a22bbd9e863c10b675d

Chú ý rằng dù “đầu vào” khác nhau, tất cả các hash đều có 40 ký tự.

Trong ví dụ cụ thể này, độ dài cố định là 40 ký tự, được xác định bởi hàm hash cụ thể sử dụng (“SHA-1”), sẽ được giải thích sau.

Hiện tại, chỉ cần biết rằng các hàm hash khác có thể cho ra độ dài cố định khác. Phần lớn có độ dài cố định dài hơn 40 ký tự.

Một hash hoạt động như một dấu vân tay số.

Một mẩu dữ liệu độc nhất sẽ luôn tạo ra cùng một hash.

Ví dụ, nếu bạn chạy “Hello” một triệu lần qua hàm hash, hash ở trên sẽ xuất hiện một triệu lần.

Đối với từ “Hello”, hash SHA-1 của nó sẽ luôn là:

f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0

Và chỉ “Hello” mới tạo ra hash đó.

Bất kỳ thay đổi nào đối với “Hello” thậm chí chỉ là đổi thành “hello” thì hàm hash sẽ tạo ra một giá trị hash hoàn toàn khác.

Đây là lý do hashes được biết đến như là “dấu vân tay” số.

Giống như dấu vân tay của bạn là độc nhất với bạn, một hash là độc nhất với một đầu vào dữ liệu cụ thể.

Hash giống như dấu vân tay

Một hash không thể đảo ngược.

ĐẦU VÀO vào một hàm hash được gọi là “tiền ảnh” Nhưng để đơn giản, tôi chỉ gọi là “đầu vào”.

ĐẦU RA của hàm hash được gọi là “giá trị hash” hoặc “digest” hoặc đơn giản là “hash”.

Một hàm hash được thiết kế để hoạt động một cách một chiều.

Hàm Hash là Một Chiều

Vì hàm hash là một hàm một chiều, đầu ra, “hash”, không thể được sử dụng để tiết lộ đầu vào, “tiền ảnh”.

Điều này có nghĩa là nếu bạn chỉ thấy hash, bạn sẽ KHÔNG thể giải mã dữ liệu gốc (tiền ảnh) mà hash đại diện.

Hàm hash tạo ra hashes không thể đảo ngược.

Không thể đảo ngược nghĩa là nếu bạn chỉ có hash thì không thể sử dụng nó để tìm ra dữ liệu gốc là gì. Điều này cho phép dữ liệu gốc vẫn an toàn và không bị tiết lộ.

Hàm hash là gì?

Một hàm hash là một phép toán toán học chuyển đổi dữ liệu đầu vào có độ dài tùy ý thành đầu ra có độ dài cố định được thực hiện bằng một thuật toán nhất định.

Một thuật toán chỉ là một chuỗi các bước hướng dẫn từng bước để thực hiện các phép tính được thực hiện bởi một chương trình phần mềm.

Bất kể đầu vào là một chữ cái, một từ, một câu đầy đủ, một trang sách, hay cả một cuốn sách, Đó là phần tùy ý.

Mỗi đầu vào sẽ tạo ra một đầu ra duy nhất được biểu diễn dưới dạng chuỗi ký tự chữ và số có độ dài cố định.

Chữ số chỉ có nghĩa là cái gì đó bao gồm cả chữ cái và số.

Một hàm hash hữu ích che giấu mọi manh mối về hình dạng của đầu vào.

Ví dụ, cần phải không thể xác định được liệu đầu vào là dài hay ngắn hoặc có chứa số hoặc chữ cái không. Ngoài ra, chỉ cần thay đổi một ký tự trong đầu vào sẽ dẫn đến một đầu ra hoàn toàn khác.

Các Hàm Hash Phổ Biến

Tất cả các hàm hash hoạt động theo cùng một cách. Bạn nhập dữ liệu, và hàm hash “xáo trộn” dữ liệu và xuất ra một hash.

Các hàm hash phổ biến bao gồm:

  • MD-5: Message Digest 5 (MD5) là một hàm hash phổ biến. Trước đây, nó được coi là an toàn, nhưng ngày nay, hacker đã phát hiện cách giải mã thuật toán và có thể làm điều đó trong vài giây.
  • SHA: Secure Hash Algorithm (SHA) là một loại hàm hash khác. Có một số biến thể của SHA được nhóm thành bốn họ: SHA-0, SHA-1, SHA-2, và SHA-3: Nói chung, số càng cao, phát hành càng gần đây và thuật toán càng an toàn.

Đối với mục đích của chúng ta, hàm hash duy nhất bạn cần biết ngay bây giờ là Secure Hash Algorithm (SHA). Cụ thể hơn, họ SHA-2 vì nó có một thành viên đặc biệt trong gia đình tên là SHA-256.

SHA-256 là một hàm hash chuyển đổi một chuỗi văn bản thành một chuỗi khác luôn cùng độ dài: 64 ký tự chữ số. Điều này tương đương với 256 bit, đó là lý do có “256” trong tên của nó.

Nó đặc biệt vì nó là hàm hash được sử dụng trong một số phần của hệ thống Bitcoin, mà bạn sẽ tìm hiểu trong các bài học sau. Hiện tại, điều quan trọng là chỉ cần biết rằng SHA-256 là một loại hàm hash và là hàm được Bitcoin sử dụng.

Dù đầu vào là một trang từ sách Harry Potter hay toàn bộ bộ sách Harry Potter, đầu ra của hàm hash SHA-256 luôn sẽ có ĐỘ DÀI như nhau được hiển thị dưới dạng 64 ký tự chữ số.

Hãy cùng xem cách hashing hoạt động trong crypto.