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

token BUIDL của BlackRock làm tài sản hỗ trợ stablecoin Frax USD

Frax Finance cân nhắc dùng BUIDL của BlackRock để hỗ trợ stablecoin frxUSD

Frax Finance, một giao thức stablecoin phi tập trung, đang cân nhắc tích hợp token BUIDL của BlackRock làm tài sản dự trữ hỗ...
Thượng nghị sĩ Lummis đề xuất bán vàng của Fed để đầu tư dự trữ Bitcoin

Thượng nghị sĩ Hoa Kỳ đề xuất trao quyền sở hữu Bitcoin cho Fed

Thượng nghị sĩ Hoa Kỳ Cynthia Lummis gần đây đã tái khẳng định kế hoạch mở rộng phạm vi cho phép Cục Dự trữ...
SOL-giam

Việc rút 1,1 tỷ USD đẩy TVL của Solana (SOL) xuống mức thấp hàng...

Tổng giá trị bị khóa (TVL) của Solana đã giảm mạnh xuống mức thấp nhất trong tháng này, phản ánh sự suy giảm hoạt...
btt-giam

BitTorrent (BTT) phục hồi, nhưng đà tăng có thể không bền vững

BTT, token gốc vận hành nền tảng chia sẻ tệp ngang hàng (P2P) phi tập trung BitTorrent, đã trở thành tài sản có mức...
Cơn sốt Stablecoin: USDE gần đạt 6 tỷ đô la và USD0 vượt qua 1 tỷ đô la nguồn cung

Cơn sốt Stablecoin: USDE gần đạt 6 tỷ đô la và USD0 vượt 1...

Trong tháng qua, thị trường stablecoin đã chứng kiến sự tăng trưởng vượt bậc, đạt mức hơn 200 tỷ USD. Đáng chú ý, hai...
btc-phuc-hoi

2,25 tỷ USD Bitcoin rút khỏi sàn giao dịch: Tín hiệu cho đợt phục...

Tính đến thời điểm hiện tại, tiền điện tử hàng đầu đang giao dịch ở mức $93.893, thấp hơn ngưỡng quan trọng $100.000. Điều đáng...

Giá Coin hôm nay 23/12: Bitcoin trượt về dưới $94.000, altcoin đỏ lửa, Phố...

Bitcoin tiếp tục trượt về quanh $94.000, khép lại tuần qua trong sắc đỏ sau đợt phục hồi vào ngày cuối tuần. Chứng khoán Mỹ Hợp...

XRP có nguy cơ giảm xuống 1 đô la tương tự năm 2018

Sau một đợt tăng trưởng đột biến gần 500% trong những tuần qua, giá XRP có vẻ như đang tiếp cận mức trần cục...
4-altcoin-bitcoin-dieu-chinh

4 altcoin tiềm năng vượt mặt thị trường khi Bitcoin điều chỉnh

Bitcoin đã giảm khoảng 8% trong tuần qua, nhưng một dấu hiệu tích cực là phe bò đã mua vào mạnh mẽ ở các...

Trump bổ nhiệm cựu cầu thủ bóng đá Bo Hines làm người đứng đầu...

Vào Chủ nhật trên Truth Social, Donald Trump đã bổ nhiệm hai nhân vật mới làm cố vấn về các vấn đề kinh tế. Đáng...

Liệu Ethereum có cần “Michael Saylor” của riêng mình?

Nhà giáo dục và người ủng hộ Ethereum, Anthony Sassano đã đưa ra lập luận rằng một người nào đó sẽ thay mặt cho...

Stablecoin RLUSD của Ripple Labs là gì?

RLUSD là một loại stablecoin được phát triển bởi Ripple Labs, tổ chức đứng sau XRP. Với mục tiêu tạo ra một loại tiền...

Tâm lý xã hội về Bitcoin chạm đáy trong năm, báo hiệu giá sắp...

Tâm lý xã hội về Bitcoin đã chạm mức thấp nhất vào năm 2024, báo hiệu khả năng giá sắp phục hồi trên ngưỡng...
stablecoin

SpaceX của Elon Musk sử dụng stablecoin để phòng ngừa rủi ro ngoại hối

Theo nhà đầu tư mạo hiểm Chamath Palihapitiya đến từ Silicon Valley cho biết trong podcast All-In vào thứ 6, SpaceX đang sử dụng...

UAE hiện nắm giữ 40 ​​tỷ đô la Bitcoin

Các Tiểu vương quốc Ả Rập Thống nhất (UAE) hiện sở hữu 40 tỷ đô la Bitcoin sau nhiều năm đầu tư để xây...

4 sự kiện kinh tế quan trọng có thể định hình giá trị của...

Khi năm 2024 đang dần khép lại, cộng đồng đam mê Bitcoin không khỏi xôn xao suy đoán về tương lai của đồng tiền...