Trang chủ Kiến Thức Crypto Hashcash là gì? Hàm băm là gì? Ứng dụng của nó như...

Hashcash là gì? Hàm băm là gì? Ứng dụng của nó như thế nào?

Trong White Paper của Satoshi Nakamoto nói đã sử dụng ý tưởng Merkle Tree và Hashcash được phát triển trước đó ít nhất 10 năm. Merkle Tree ứng dụng đặc tính của các hash function (hàm băm) để nối các đoạn thông tin có độ lớn bất kỳ vào một chuỗi số có độ dài cố định. Vì các “hàm băm” đó có tính chất một chiều nên thông tin không thể thay đổi được sau khi bị “băm” và đó là cơ sở của Blockchain mà Nakamoto phát minh ra sau này.

Hashcash là gì? 

hash-cash

Hashcash là nguyên lý proof-of-work đầu tiên cũng dựa trên tính chất một chiều của hash function. Nhưng Hashcash có một ứng dụng thú vị là để chống spam mails. Một hệ thống email nếu được tích hợp Hashcash sẽ chỉ cho phép gửi email đến một địa chỉ nhất định sau khi người gửi chứng minh mình đã giải bài toán proof-of-work thành công, tương tự như sau này Nakamoto bắt miner (thợ đào) chứng minh để được thưởng Bitcoin. Nói nôm na Hashcash là một dạng tem điện tử mà người gửi email phải “dán” vào thì email mới được gửi đi. Chi phí dán tem, nghĩa là giải bài toán hashing, cho một email rất nhỏ (<1 giây) nhưng spammer khi gửi hàng chục nghìn email đi sẽ rất mất công.

Tóm lại Kai Stinchcombe không hẳn đã đúng khi cho rằng công nghệ blockchain chưa có ứng dụng gì. Có điều vì cơn sốt bitcoin và các thể loại ICO quá nóng nên không còn ai để ý đến Merkle Tree và Hashcash nữa thôi.

Hàm băm là gì?

hash-function

Hàm băm (hash function) là giải thuật nhằm sinh ra các giá trị băm tương ứng với mỗi khối dữ liệu (có thể là một chuỗi ký tự, một đối tượng trong lập trình hướng đối tượng, v.v…). Giá trị băm đóng vai gần như một khóa để phân biệt các khối dữ liệu, tuy nhiên, người ta chấp hiện tượng trùng khóa hay còn gọi là đụng độ và cố gắng cải thiện giải thuật để giảm thiểu sự đụng độ đó. Hàm băm thường được dùng trong bảng băm nhằm giảm chi phí tính toán khi tìm một khối dữ liệu trong một tập hợp (nhờ việc so sánh các giá trị băm nhanh hơn việc so sánh những khối dữ liệu có kích thước lớn).

Vì tính thông dụng của bảng băm, ngày nay, đa số ngôn ngữ lập trình đều cung cấp thư viện ứng dụng bảng băm, thường gọi là thư viện collection trong đó có các vấn đề như: tập hợp (collection), danh sách (list), bảng(table), ánh xạ (mapping), từ điển (dictionary)). Thông thường, các lập trình viên chỉ cần viết hàm băm cho các đối tượng nhằm tích hợp với thư viện bảng băm đã được xây dựng sẵn.

Một hàm băm tốt phải thỏa mãn các điều kiện sau:

Tính toán nhanh.
Các khoá được phân bố đều trong bảng.
Ít xảy ra đụng độ.
Xử lý được các loại khóa có kiểu dữ liệu khác nhau.

Ứng dụng của Hàm băm

Các hàm băm được ứng dụng trong nhiều lĩnh vực, chúng thường được thiết kế phù hợp với từng ứng dụng. Ví dụ, các hàm băm mật mã học giả thiết sự tồn tại của một đối phương – người có thể cố tình tìm các dữ liệu vào với cùng một giá trị băm. Một hàm băm tốt là một phép biến đổi “một chiều”, nghĩa là không có một phương pháp thực tiễn để tính toán được dữ liệu vào nào đó tương ứng với giá trị băm mong muốn, khi đó việc giả mạo sẽ rất khó khăn. Một hàm một chiều mật mã học điển hình không có tính chất hàm đơn ánh và tạo nên một hàm băm hiệu quả; một hàm trapdoor mật mã học điển hình là hàm đơn ánh và tạo nên một hàm ngẫu nhiên hiệu quả.

Bảng băm, một ứng dụng quan trọng của các hàm băm, cho phép tra cứu nhanh một bản ghi dữ liệu nếu cho trước khóa của bản ghi đó (Lưu ý: các khóa này thường không bí mật như trong mật mã học, nhưng cả hai đều được dùng để “mở khóa” hoặc để truy nhập thông tin.) Ví dụ, các khóa trong một từ điển điện tử Anh-Anh có thể là các từ tiếng Anh, các bản ghi tương ứng với chúng chứa các định nghĩa. Trong trường hợp này, hàm băm phải ánh xạ các xâu chữ cái tới các chỉ mục của mảng nội bộ của bảng băm.

Các hàm băm dành cho việc phát hiện và sửa lỗi tập trung phân biệt các trường hợp mà dữ liệu đã bị làm nhiễu bởi các quá trình ngẫu nhiên. Khi các hàm băm được dùng cho các giá trị tổng kiểm, giá trị băm tương đối nhỏ có thể được dùng để kiểm chứng rằng một file dữ liệu có kích thước tùy ý chưa bị sửa đổi. Hàm băm được dùng để phát hiện lỗi truyền dữ liệu. Tại nơi gửi, hàm băm được tính cho dữ liệu được gửi, giá trị băm này được gửi cùng dữ liệu. Tại đầu nhận, hàm băm lại được tính lần nữa, nếu các giá trị băm không trùng nhau thì lỗi đã xảy ra ở đâu đó trong quá trình truyền. Việc này được gọi là kiểm tra dư (redundancy check).

Các hàm băm còn được ứng dụng trong việc nhận dạng âm thanh, chẳng hạn như xác định xem một file MP3 có khớp với một file trong danh sách một loại các file khác hay không.

Thuật toán tìm kiếm xâu Rabin-Karp là một thuật toán tìm kiếm xâu ký tự tương đối nhanh, với thời gian chạy trung bình O(n). Thuật toán này dựa trên việc sử dụng băm để so sánh xâu.

Nour

Theo Tapchibitcoin

MỚI CẬP NHẬT

Giá Coin hôm nay 27/07: Bitcoin tiến sát $ 68.000, altcoin phục hồi khi...

Bitcoin tiến sát $68.000, phục hồi gần như toàn bộ khoản lỗ trong tuần vừa qua. Biểu đồ giá BTC - 1 ngày | Nguồn:...

BitFlyer hoàn tất mua lại FTX Japan, đặt cược vào ETF tiền điện tử...

Vào thứ Sáu, sàn giao dịch tiền điện tử BitFlyer có trụ sở tại Nhật Bản đã tuyên bố hoàn tất việc mua lại...

CEO VanEck có hơn 30% danh mục đầu tư của mình trong Bitcoin

Trên sân khấu tại Hội nghị Bitcoin 2024 hôm nay, Jan van Eck đã thông báo rằng hơn 30% danh mục đầu tư của...

SEC phê duyệt Grayscale Bitcoin Mini Trust, chờ tuyên bố đăng ký được bật...

Ủy ban Chứng khoán và Giao dịch Hoa Kỳ (SEC) đã phê duyệt phiên bản mini của Grayscale Bitcoin Trust (GBTC) vào thứ Sáu. Cơ...
ngay-27-7-phan-tich

Phân tích kỹ thuật ngày 27 tháng 7: BTC, ETH, BNB, SOL, XRP, DOGE,...

Sau một đợt pullback ngắn, Bitcoin (BTC) đã tiếp tục tiến tới mức kháng cự tâm lý $70.000. Điều này cho thấy rằng mỗi...
PancakeSwap (CAKE) là gì?

PancakeSwap (CAKE) là gì? Một nền tảng giao dịch phi tập trung chạy trên...

Một giao thức DeFi theo chủ đề thực phẩm khác? Bạn biết điều đó. PancakeSwap là một DEX dựa trên BNB Chain (trước đây...
Terra Luna Classic (LUNC) là gì?

Terra Luna Classic (LUNC) là gì? Đống tro tàn sau sự sụp đổ của...

Terra LUNA Classic (LUNC) là gì? LUNA Classic (LUNC) là đồng coin gốc của Terra LUNA còn lại sau sự sụp đổ của UST/Luna và...
XDC (Network) là gì?

XDC (Network) là gì? Blockchain lai có chức năng cải thiện thương mại và...

Các blockchain hợp đồng thông minh từ lâu đã được ca ngợi là công nghệ đột phá cho ngành tài chính nhờ khả năng...

Bitcoin tăng 4,3% khi lạm phát của Hoa Kỳ tiến gần hơn đến mục...

Thị trường tiền điện tử có dấu hiệu tăng trưởng hôm nay, với nhiều token lớn tăng giá, một quỹ đạo phản ánh động...
khong co danh sach etf

Sẽ không cửa cho các quỹ ETF tiền điện tử khác ngoài Bitcoin và...

Robert Mitchnick - người đứng đầu bộ phận tài sản kỹ thuật số tại công ty quản lý tài sản BlackRock - cho biết...
CZ ra tu

Khi nào Changpeng Zhao ra tù?

Tuần này, một số người hâm mộ Binance đã lên X để chia sẻ sự phấn khích của họ khi nhà sáng lập Bianance...

[QC] Chương trình presale của WienerAI sẽ kết thúc trong vòng 5 ngày. Cơ...

 Cánh cửa đưa nhà đầu tư đến gần hơn với WienerAI (WAI) đang dần khép lại khi chỉ còn 5 ngày nữa là chương...
Ethereum ETF

Tại sao Ethereum ETF không thể khơi dậy sự nhiệt tình của thị trường?

Bất chấp tâm lý phấn khích ban đầu về các quỹ hoán đổi danh mục Ethereum (ETF) giao ngay mới ra mắt tại Hoa...
Phân tích kỹ thuật

Phân tích kỹ thuật ngày 26 tháng 7: ETH, XRP, ADA, BNB và SHIB

Phân tích kỹ thuật ETH Mặc dù một số quỹ Ethereum ETF đã ra mắt trong tuần, nhưng giá lại có sự khác biệt đối...

Thượng nghị sĩ Hoa Kỳ rút lại sự ủng hộ dự luật chống tiền...

Thượng nghị sĩ đảng Cộng hòa Hoa Kỳ Roger Marshall đã rút lại sự ủng hộ của mình đối với Đạo luật chống rửa...

Tin vắn Crypto 26/07: Bitcoin có khả năng đạt đỉnh ở mức $ 180.000...

Từ nhận định Bitcoin có thể đạt đỉnh ở mức 180.000 USD trong chu kỳ hiện tại đến Bybit tiến hành hủy niêm yết...