Hashing là gì

Mở đầu

Blockchain là gì

Blockchain (hay cuốn sổ cái) là khối hệ thống cơ sở dữ liệu được cho phép lưu trữ và truyền tải những khối tin tức (block). Chúng được liên kết với nhau nhờ vào mã hóa.

Bạn đang xem: Hashing là gì

Các khối tin tức này hoạt động tự do và có thể mở rộng theo thời gian. Chúng được quản lý bởi những người tham gia hệ thống chứ không trải qua đơn vị trung gian.

Nghĩa là khi một khối tin tức được ghi vào khối hệ thống Blockchain thì không có cách nào thay đổi được. Chỉ bao gồm thể bổ sung thêm khi có được sự đồng thuận của toàn bộ mọi người.

Khối tin tức mà họ đang nhắc tới là rất nhiều cuộc trao đổi, thanh toán trong thực tế.

Công nghệ Blockchain hoạt động như cố gắng nào?

Để một block – khối thông tin được tiếp tế Blockchain, phải bao gồm 4 yếu ớt tố:

=> công nghệ Blockchain chất nhận được trao thay đổi tài sản/thực hiện giao dịch mà không cần có sự tận mắt chứng kiến của fan thứ cha hoặc không cần dựa trên sự tin tưởng. Hay nói biện pháp khác, Blockchain là nền tảng gốc rễ cho sự thành lập của các hợp đồng thông minh.

Hashing vào Blockchain

Hashing là gì

Hashing là quá trình biến đầu vào là 1 nội dung gồm kích thước, độ dài bất kỳ rồi sử dụng những thuật toán, công thức toán học để biến thành đầu ra tiêu chuẩn chỉnh có độ dài nhất định. Quá trình đó thực hiện những Hàm băm.

Ví dụ: trong bitcoin, các transactions lưu tin tức giao dịch được đánh giá như dữ liệu đầu vào. Tài liệu này được chuyển qua thuật toán xử lý, ví dụ là sha-256 vẫn trả về đầu ra là một trong chuỗi cùng với độ dài một mực là 256 kí tự. Tức là việc tài liệu đầu vào gồm to hay bé dại thế nào, một quãng text "Hello World!" tốt dữ liệu là một trong những file, 1 ảnh thì công dụng cuối thuộc ta thừa nhận được là một trong chuỗi với 256 kí tự

Cryptographic hash function

Cryptographic hash function là một trong những hàm băm với một số tính chất bảo mật thông tin nhất định để cân xứng việc sử dụng trong vô số ứng dụng bảo mật thông tin đa dạng, chẳng hạn như xác nhận và kiểm tra tính vẹn toàn của dữ liệu đưa vào. Đó là một trong những hàm băm thừa nhận đầu vào là 1 xâu cam kết tự dài có độ dài tùy ý và sản xuất ra hiệu quả là một xâu cam kết tự bao gồm độ dài cụ định.

Xem thêm: Tất Tần Tật Về Flow Là Gì ? Định Nghĩa, Ví Dụ, Giải Thích

Và nhằm 1 hàm hash được xem như là 1 hàm cryptographic hash, nó buộc phải đạt tối thiểu 5 tiêu chí sau đây:

Deterministic

Nó có nghĩa là khi bạn đưa 1 dữ liệu đầu vào trải qua hàm hash, các bạn sẽ luôn luôn luôn nhận về 1 chuổi cổng output giống nhau

*

Điều này rất đặc trưng vì trường hợp với những lần chạy hàm hash ta nhận được một output khác nhau thì sẽ là bất khả thi để ta rất có thể theo dõi giá trị đầu vào

Quick Computation

Hàm hash phải có chức năng trả về kết quả với tốc độ nhanh nhất có thể. Cũng chính vì trong thực tế, dữ liệu đầu vào không phải lúc nào cũng là một chuỗi string, 1 quý giá int mà có thể là 1 file hình ảnh rất mập và ta đề nghị chạy hàm hash cho từng dữ liệu ta chuyển vào. Bởi vì vậy nếu quá trình băm đủng đỉnh sẽ dẫn đến hệ thống sẽ ko thể vận hành tốt được.

Pre-Image Resistance

Pre-Image Resistance hiểu đơn giản nghĩa là bài toán ta biết 1 hàm hash với 1 output, với ta khó có thể quay ngược lại xác định đầu vào là gì. Mặc dù nhiên, việc đào bới tìm kiếm ra input đầu vào không phải là 1 trong điều bất khả thi. Xét 1 lấy một ví dụ sau.

Giả sử bạn tung 1 nhỏ xúc xắc với ta sẽ sở hữu được output là quý giá băm của con số xuất hiện thêm từ xúc xắc. Làm cho thể nào để xác định được con số xuất hiện thêm là số nào? tất cả những gì bọn họ cần làm đơn giản dễ dàng đó là tìm ra quý giá băm của những số từ 1 đến 6 với so sánh, giá bán trị nguồn vào giống nhau với 1 thuật toán sẽ đến ra tác dụng giống nhau. Và ta chỉ cần so sánh hiệu quả để biết được con số mở ra trên xúc xắc

Tuy nhiên điều này chỉ chuyển động khi lượng dữ liệu đã chỉ ra rằng rất ít và trong các trường hợp thực tiễn thì dữ liệu sẽ to hơn rất nhiều. Mang sử ta có mức giá trị băm gồm độ lâu năm 128 bit. Các được áp dụng để ta rất có thể xác định vị trị nguồn vào đó là thực hiện 1 phương thức gọi là “brute-force". Phương thức này tất cả nghĩa là các bạn sẽ chọn 1 đầu vào ngẫu nhiên, mang lại nó trải qua hàm hash và đối chiếu đầu ra với giá trị băm mang đến trước cùng lặp lại cho đến khi tìm ra đầu vào của dữ liệu.

Tình huống tốt nhất: các bạn nhận được đúng chuẩn output trùng với mức giá trị băm ngay giữa những lần thử đầu. Tuy vậy ta đang không dựa vào may mắn để thực hiện giải vấn đề ở đâyTình huống xấu nhất: chúng ta phải thực hiện việc lặp vấn đề 2^128 lần. Nghĩa là nhằm tìm ra được câu trả lời ở lần cuối cùng của quy trình lặp lạiTình huống trung bình: bạn sẽ tìm được lời giải đâu đó trọng tâm trước lúc tới lần lặp đồ vật 2^128.

-> mặc dù nhiên, đấy là 1 nhỏ số lớn tưởng và nếu bạn có nhu cầu tìm ra input đầu vào của bài toán này, bạn sẽ mất rất nhiều thời gian để lặp đi lặp lại quy trình hash. đưa sử như thời hạn bạn thực hiện 1 lần đối chiếu là 1s và bạn không ngủ thì bạn cũng có thể sẽ mất cả đời nhằm tìm ra được input và thỉnh thoảng là không tìm thấy

Small Changes In The input đầu vào Changes the Hash.

Ngay cả khi chúng ta thực hiện nay 1 vắt đổi bé dại trong dữ liệu đầu vào, sự đổi khác này sẽ tác động rất bự đến cực hiếm băm. Lấy một ví dụ kiểm tra điều này với hàm băm SHA-256

*

Ngay cả lúc trong ngôi trường hợp các bạn chỉ đổi khác chữ cái thứ nhất của input như là chuyển chữ cái in hoa thành vần âm in thường, cục bộ các kí trường đoản cú trong cực hiếm băm nỗ lực đổi

Collision Resistant

Collision Resistant có nghĩa là trong trường vừa lòng ta bao gồm 2 đầu vào là A và B, với hàm hash A cùng hàm hash B tương ứng. Sẽ tương đối khó để giá trị output của nhì hàm hash trên sẽ trùng nhau. Điều đó nghĩa là đối với phần nhiều các khả năng, mỗi nguồn vào sẽ có 1 hàm băm tuyệt nhất của riêng nó. Để làm rõ hơn điều này, ta đã ví dụ bởi Birthday Paradox

Birthday Paradox là gì ? nếu bạn gặp bất kì tín đồ lạ tự nhiên nào trên đường phố thì tài năng cả hai có cùng ngày sinh là vô cùng thấp. Trên thực tế, mang sử rằng tất cả các ngày trong năm đều phải có số người dân có ngày sinh nhật vào ngày đó là như nhau, thì năng lực 1 tín đồ khác ngày sinh với các bạn là 1/356 khoảng chừng 0.27%. Nói bí quyết khác, nó thực thụ thấp

*

Tuy nhiên, nghịch lý tại chỗ này là, nếu bạn tập thích hợp 20-30 người trong 1 phòng thì tỉ lệ hai người có cùng ngày sinh nhật sẽ tăng lên nhanh chóng. Trên thực tế thì có cơ hội 50-50 cho 2 người có cùng ngày sinh trong kịch bản này!

Tại sao lại xẩy ra nghịch lý như vậy, bởi vì đó là một trong quy tắc đơn giản và dễ dàng trong xác suất diễn ra như sau. Trả sử bạn có N kĩ năng khác nhau của một sự kiện xảy ra, thì các bạn sẽ cần căn bậc hai của N những vật được chọn tự nhiên của bọn chúng để có một nửa xảy ra va chạm

Áp dụng lí thuyết trong trường hợp này, chúng ta có 365 khả năng khác nhau về ngày sinh nhật, do vậy bạn chỉ cần căn bậc 2 của 365 tức là khoảng 23 bạn được chọn đột nhiên để có 1/2 cơ hội mang lại 2 người dân có cùng ngày sinh nhật

Ứng dụng điều đó trong hàm băm như thế nào? trả sử bạn có 1 giá trị băm 128 bit thì gồm 2^128 khả năng khác nhau. Bằng cách sử dụng nghịch lý trên, các bạn có 50% cơ hội xảy ra sự giống nhau ở lần máy 2^64

*

Vì vậy, không tồn tại hàm băm nào gồm thể bảo đảm an toàn rằng việc giá trị output của chính nó sẽ không trở nên trùng với cái giá trị băm của một hàm bởi khác, tuy nhiên tốn rất nhiều thời gian nhằm sự va va này xảy ra. Và nếu như khách hàng sử dụng một hàm như SHA-256 thì thời hạn này còn kéo dài thêm hơn nữa rất nhiều, cùng ta có thể đảm bởi nếu giá trị băm của A và B trùng nhau, có nghĩa là A trùng cùng với B

Kết luận

Hashing vẫn thực sự là căn cơ trong việc tạo ra technology blockchain. Nếu một người ao ước hiểu blockchain là gì, họ chắc chắn phải đọc băm tức là gì. Và ngoài ra còn 1 tiêu chuẩn nữa cho Cryptographic hash function nó call là "Puzzle Friendly", chúng ta có thể tìm hiểu thêm về nó trong con đường link tại vị trí tham khảo.

Xin cảm ơn chúng ta đã thân thiết đến nội dung bài viết này, chúc các bạn sẽ có được những kỹ năng cơ bạn dạng về hasing trong blockchain là gì? tất cả những điểm lưu ý như nỗ lực nào. Phần tiếp theo, tôi hoàn toàn có thể viết thêm về Public key cryptography và Digital signatures, mời các bạn đón đọc!