GIẢI THÍCH: HASHING TRONG BLOCKCHAIN LÀ GÌ?
Hashing hoặc (hàm băm) là một thuật ngữ phổ biến khi thảo luận về công nghệ blockchain. Hashing đề cập đến việc chuyển đổi và tạo dữ liệu đầu vào có độ dài bất kỳ thành một chuỗi có kích thước cố định, được thực hiện bởi một thuật toán cụ thể. Cụ thể, thuật toán hàm băm Bitcoin là SHA-256 hoặc Thuật toán hàm băm bảo mật 256 bit. Thuật toán này là một hàm mật mã một chiều vì dữ liệu gốc có thể được truy xuất thông qua giải mã.
Việc triển khai hàm băm mật mã có lợi để ngăn chặn các giao dịch gian lận, chi tiêu gấp đôi trong chuỗi khối và lưu trữ mật khẩu. Nhưng, hàm băm Bitcoin là gì và nó phải làm gì khi đặt trong bối cảnh này? Tóm lại, đây là số duy nhất không trùng lặp theo thuật toán. Do đó, nó thường được sử dụng để xác minh tính xác thực của tệp. Để đặt nó trong ngữ cảnh, khi có sự thay đổi trong một tệp được băm, hàm băm của nó cũng sẽ tự động thay đổi. Và mỗi hàm băm tiếp theo được gắn với hàm băm trước đó, do đó đảm bảo tính nhất quán của tất cả các khối.
HASHING HOẠT ĐỘNG NHƯ THẾ NÀO TRONG BLOCKCHAIN?
Vậy thuật toán hàm băm trong blockchain là gì và nó hoạt động như thế nào? Tóm lại, một thuật toán hàm băm lấy vô số bit, thực hiện các phép tính trên chúng và xuất ra một số bit cố định. Bất kể độ dài của dữ liệu đầu vào là bao nhiêu, đầu ra sẽ luôn được điều chỉnh. Kết quả là, dữ liệu ban đầu được gọi là đầu vào, và phép biến đổi cuối cùng được gọi là hàm băm. Ngày nay, nhiều thuật toán hàm băm chỉ khác nhau về cách xử lý thông tin.
Để hiểu đầy đủ về hàm băm, điều cần thiết trước tiên là phải hiểu cấu trúc dữ liệu. Cấu trúc dữ liệu là một cách cụ thể để lưu trữ dữ liệu bao gồm hai yếu tố chính: con trỏ và danh sách được liên kết. Con trỏ là các biến tham chiếu đến các biến khác, vì vậy chúng hoạt động như các chỉ báo chỉ đường đến đúng vị trí. Bên cạnh đó, nó cung cấp địa chỉ của khối tiếp theo trong chuỗi. Mặt khác, danh sách được liên kết tạo nên một chuỗi các nút được kết nối với sự trợ giúp của con trỏ.
Nhờ hàm băm trong blockchain, mỗi khối được gán một mã định danh ban đầu, điều này sẽ kéo theo những hậu quả không thể đảo ngược khi thay đổi blockchain. Khối được xác định bằng thông tin có trong tiêu đề của khối. Nó bao gồm các chi tiết như:
- Số phiên bản của blockchain
- Dấu thời gian UNIX
- Con trỏ hàm băm
- Nonce, đó là giá trị mà người khai thác cần để tạo một khối
- Một hàm băm của một gốc Merkle
Tất cả những yếu tố này là cần thiết để tạo khối. Vì vậy, khi một hàm băm xảy ra với blockchain, dữ liệu sẽ được chuyển đổi thành một chuỗi duy nhất trong một khối.
LÀM THẾ NÀO ĐỂ GIẢI QUYẾT MỘT BĂM?
Để giải một hàm băm, nó bắt đầu bằng việc giải các bài toán phức tạp có chứa dữ liệu trong tiêu đề khối. Nhưng trước khi người khai thác bắt đầu quy trình, họ sẽ cần thực hiện quy trình thử và sai để quyết định chuỗi nào sẽ sử dụng làm nonce. Khi một nonce được xác định, những người khai thác sẽ tập trung vào nonce (một số chuỗi) có liên quan đến nội dung được băm của khối trước đó. Để một hàm băm được coi là thành công, hàm băm mới cần nhỏ hơn hoặc bằng hàm băm mục tiêu. Và đổi lại, người khai thác sẽ nhận được phần thưởng để thêm khối vào blockchain.
Mối quan hệ của bằng chứng công việc trong băm
Thuật toán Proof of Work (PoW) có tương quan với hàm băm blockchain vì thuật toán này rất hữu ích để xác nhận các giao dịch và tạo ra các khối mới cho chuỗi.
Minh họa về Bằng chứng Công việc bằng Bitcoin. Hình ảnh CC: IEEE Spectrum
PoW hoạt động như thế nào?
Phi tập trung là một thuộc tính quan trọng của blockchain, nhưng nó có khả năng bị tổn thương. Nếu một người tham gia muốn tải xuống một bản sao của chuỗi khối, thì làm thế nào người dùng khác có thể biết rằng chuỗi khối đó là chính xác? Giả sử có hàng nghìn máy tính trên mạng; Điều gì ngăn họ âm mưu với một người dùng mới bằng dữ liệu mà họ đã cùng nhau giả mạo?
Đó là khi thuật toán PoW ra đời. Nó cho phép những người tham gia mạng blockchain biết thông tin có thực sự là miễn phí hay không.
Lịch sử là tất cả mọi thứ trên web, nơi bạn cần biết ai chi tiền và ai nhận tiền. Trước đây, không thể đạt được sự đồng thuận hoàn toàn trong một mạng lưới phi tập trung mà không có sự kiểm soát của bên thứ ba. Hàm băm đã làm cho nó trở nên khả thi vì nó cung cấp một dấu vân tay kỹ thuật số duy nhất của một phần dữ liệu.
PoW trong thế giới tiền điện tử
Khái niệm PoW được thiết kế để chống lại các cuộc tấn công DDoS có thể làm đóng băng hệ thống và từ chối xử lý các yêu cầu của người dùng. PoW cũng chống lại thư rác và bảo vệ toàn bộ mạng một cách hiệu quả. Mặc dù đây không phải là một giải pháp lý tưởng cho vấn đề, nhưng khái niệm này vẫn tương đối hiệu quả.
Trong thế giới tiền điện tử, PoW bảo vệ tiền điện tử vì nó hỗ trợ các mạng phi tập trung. Một ví dụ đơn giản: người đó tạo một ví kỹ thuật số không được đồng bộ hóa với phần còn lại của mạng. Ngay sau khi anh ấy được kết nối, ví sẽ thay đổi trạng thái của nó thành ‘đồng bộ hóa’ khi nó bắt đầu truy cập vào chuỗi khối.
Tại sao việc lừa dối mạng là không có lợi cho người khai thác?
Hash có ích để điều chỉnh hệ thống tốt hơn, nhưng nó đi kèm với một cái giá. Vì vậy, khi các thợ đào tạo một khối mới cho blockchain, họ phải cung cấp hai hàm băm cho mạng:
- Một hàm băm của tất cả các giao dịch trong khối.
- Một hàm băm chứng tỏ rằng những người khai thác đã dành một lượng năng lượng đáng kể để tạo ra khối.
Mặc dù hệ thống đang hoạt động tốt, nhưng khoản bồi thường cho các thợ đào là rất ít. Việc xem xét các nguồn lực dành cho việc tìm kiếm các hàm băm làm cho việc biến dạng dữ liệu trở nên không có lợi. Nhưng để làm được điều này, các thợ đào cần phải hoạt động trong một hệ thống giống như xổ số, nơi chỉ có thể có một người chiến thắng. Và không có gì đảm bảo để tìm thấy một hàm băm.
Bên cạnh đó, sẽ mất nhiều thời gian để thực thi quá trình nếu sức mạnh GPU và CPU yếu, trong khi chỉ những máy tính có thiết bị đắt tiền mới có thể xử lý được sức mạnh xử lý. Mặc dù vậy, những máy tính này có thể tiêu thụ rất nhiều điện, điều này làm cho toàn bộ quá trình không có lợi cho người khai thác tìm thấy một hàm băm hợp lệ cho một khối giao dịch không hợp lệ. Cuối cùng, không có ý nghĩa gì khi xác nhận khối “sai”, tuyên bố rằng tất cả các giao dịch đều hợp lệ và tiến hành băm. Phần còn lại của các máy tính trong mạng sẽ từ chối khối không hợp lệ, có nghĩa là thợ đào sẽ không nhận được phần thưởng.
Bằng chứng giao dịch
Khi gửi tiền điện tử, người dùng phải xác nhận hành động ví của họ, hành động này sẽ truyền các giao dịch tới chuỗi khối. Sau đó, các giao dịch sẽ được đưa vào nhóm giao dịch đang chờ xử lý, nơi chúng sẽ ở lại cho đến khi được người khai thác chọn.
Các giao dịch kiểu này có thể được tích lũy trong một nhóm lớn hoặc các nhóm cục bộ nhỏ tách biệt. Các thợ đào chọn giao dịch từ các nhóm khai thác và xử lý chúng thành các khối mới. Khối này bao gồm các giao dịch đang chờ xác nhận với siêu dữ liệu bổ sung. Cuối cùng, mỗi người khai thác tạo thành một khối riêng biệt. Và các giao dịch giống nhau có thể nhập vào các khối của các thợ đào khác nhau.
Người khai thác phải đảm bảo rằng mọi giao dịch nhất định đều đáp ứng các yêu cầu thực hiện. Trong trường hợp người gửi có đủ tài nguyên trên số dư, giao dịch sẽ trở nên hợp lệ và có thể được thêm vào khối. Để xử lý nhanh hơn, người gửi có thể tăng phí khai thác. Thông thường, các thợ đào tận dụng giá trị giao dịch cao hơn để chọn các giao dịch có lợi nhất; do đó, thời gian xử lý trở nên thấp hơn.
Mỗi giao dịch có hàm băm của nó được lưu trữ trong một cấu trúc giống như cây. Các hàm băm này cũng được băm để tạo thành gốc Merkle. Công nghệ này chứa thông tin về tất cả các giao dịch.
CÁC CHỨC NĂNG HÀM BĂM MẬT MÃ LÀ GÌ?
Các hàm băm mật mã được đặc trưng bởi một số thuộc tính khiến chúng rất hữu ích khi được sử dụng trong lĩnh vực mật mã.
- Kết quả của một hàm băm luôn giống nhau. Đặc tính này được gọi là tính xác định. Bất kể số lần bạn nhập cùng một thông báo, kết quả đầu ra sẽ giống nhau sau khi hàm băm được áp dụng. Tuy nhiên, sự thay đổi nhỏ nhất trong dữ liệu đầu vào (‘Article’ thay vì ‘article’) sẽ thay đổi hoàn toàn kết quả.
- Nó có tính năng tính toán nhanh vì tốc độ thấp sẽ làm cho hệ thống hoạt động kém hiệu quả.
- Tính năng kháng hình ảnh trước trong các hàm băm làm cho việc xác định đầu vào từ giá trị hàm băm không khả thi về mặt tính toán. Do đó, thợ đào chỉ có thể so sánh kết quả cho đến khi tìm thấy kết quả phù hợp.
ĐƠN VỊ TỶ LỆ HÀM BĂM
Hashrate đề cập đến tổng sức mạnh tính toán của thiết bị khai thác liên quan đến việc khai thác tiền điện tử. Các đơn vị đo bao gồm:
- Băm / giây (H / s)
- Kilohash / giây (KH / s)
- Megahash / giây (MH / s)
- Gigahash / giây (GH / s)
- Terahash / giây (TH / s)
- Petahash / giây (PH / s)
- Exahash / giây (EH / s)
Vì quá trình khai thác liên tục trở nên phức tạp hơn, nên hầu như không thể nhìn thấy các đơn vị ‘băm trên giây’ trong các mạng blockchain hiện đại. Ngày nay, các thiết bị có công suất lớn hơn là cần thiết để giải quyết các vấn đề như vậy, từ hàng chục megahashes mỗi giây.
Ví dụ: sức mạnh của bộ xử lý là 10 MH / s có nghĩa là nó có thể tạo ra 10 triệu tổ hợp số khác nhau trong một giây để tìm hàm băm phù hợp với tất cả các thông số do mạng thiết lập.
Tuy nhiên, có các yếu tố khác nhau để xác định tỷ lệ hàm băm. Ngay cả việc lựa chọn một thuật toán khai thác cũng ảnh hưởng đến tham số. Cũng cần biết cách các thiết bị khác phản ứng với các thuật toán khác nhau. Mặc dù một số trong số chúng cung cấp dung lượng tối đa với các mạng có thuật toán SHA (Bitcoin, Peercoin, v.v.), kết quả có thể kém hơn khi cùng một mạng sử dụng thuật toán Script.
DỮ LIỆU HÀM BĂM ĐƯỢC BẢO MẬT NHƯ THẾ NÀO?
Mọi khối đều chứa một hàm băm của khối trước đó (khối mẹ) ngoại trừ khối Genesis. Hãy tưởng tượng một chuỗi các khối với các băm của các khối cha. Nếu thông tin trong một trong các khối này bị thay đổi, nó sẽ ảnh hưởng đến tất cả các khối chuỗi khác. Tuy nhiên, khi mạng phát triển, việc thay đổi hàm băm trên tất cả các khối trở nên thực tế là không thể. Do đó, quá trình băm là cần thiết cho blockchain, đảm bảo tính duy nhất và độc đáo của từng phần tử của hệ thống.
Dữ liệu bất biến và đáng tin cậy là một trong những thuộc tính cốt lõi của blockchain, làm cho nó có giá trị và mang lại tiềm năng to lớn cho blockchain. Thông tin luôn xác thực, do đó xác định tính toàn vẹn của blockchain.
LÀM THẾ NÀO ĐỂ ĐO LƯỜNG HASHRATE CỦA MẠNG BITCOIN?
Tỷ lệ hàm băm Bitcoin đại diện cho sức mạnh tính toán tổng thể của tất cả các nút trên toàn thế giới, góp phần vào việc khai thác Bitcoin. Tuy nhiên, có vấn đề khi xác định nó là do các máy khai thác góp phần vào mạng thiếu nhận dạng và chúng chỉ giao tiếp với mạng sau khi tìm thấy một khối.
Tuy nhiên, tỷ lệ hàm băm được ước tính hàng ngày bằng cách so sánh các khối được tìm thấy trong 24 giờ qua với số 144, là tỷ lệ tìm thấy khối dự kiến. Theo thuật toán, tốc độ khai thác phải giữ nguyên (600 giây). Theo cách này, công thức của sức mạnh băm Bitcoin như sau:
Hashpower = ((khối tìm thấy trong 24 giờ / số khối dự kiến) x hoạt động) / 600
Tỷ lệ băm Bitcoin càng cao, tham số khai thác càng khó. Vì nó luôn được điều chỉnh để giữ cho nó phù hợp với công việc băm tổng thể. Việc điều chỉnh độ khó là điều cần thiết để bảo mật. Vì vậy, điều tự nhiên là giao thức tránh độc quyền. Cần phải duy trì tốc độ khai thác tiền điện tử giống nhau để tránh lạm phát. Nếu không, các thợ đào sẽ tạo ra nhiều Bitcoin nhanh hơn và tiền điện tử sẽ mất giá trị.
HÀM BĂM ẢNH HƯỞNG ĐẾN VIỆC KHAI THÁC BITCOIN NHƯ THẾ NÀO?
Việc khai thác vẫn được phân cấp bởi vì hai người khai thác đơn giản là không thể băm các khối giống nhau. Người khai thác nhận các giao dịch qua mạng theo một thứ tự khác. Bởi vì điều này và sở thích cá nhân về hoa hồng, mỗi người khai thác xử lý khối khác nhau một chút.
Mặc dù tất cả các khối có thể đã được xác thực chính xác, nhưng chỉ một khối có thể tham gia vào chuỗi khối tại một thời điểm. Tất cả các thợ đào sẽ phải tiếp tục băm cho đến khi họ tìm thấy một số tạo ra kết quả mà mạng đồng ý chấp nhận là hợp lệ khi được thêm vào khối của họ trong chuỗi khối.
Bên cạnh đó, mạng phải đảm bảo tạo ra một khối mới cứ sau mười phút để duy trì chính sách tài chính của Bitcoin. Mạng thực hiện điều này bằng cách điều chỉnh độ khó khai thác hai tuần một lần. Do đó, nếu các khối được xác thực quá nhanh do số lượng người khai thác mới tăng lên, mạng lưới sẽ tăng độ phức tạp để giảm lạm phát.
Vì hàm băm chuỗi khối tự hào về tính ngẫu nhiên, ngay cả một người khai thác với máy tính mạnh nhất không phải lúc nào cũng giành chiến thắng. Khái niệm này tương tự như một trò chơi xổ số. Ngay cả khi người dùng có số lượng vé lớn nhất cũng có thể kiếm được nhiều cơ hội giành chiến thắng hơn, nhưng không có gì đảm bảo sẽ giành chiến thắng mọi lúc.
Nói chung, một người khai thác tạo ra một khối các giao dịch hợp lệ và sau đó chạy Proof of Work trên khối đó, với hy vọng tìm thấy hàm băm được đặt bởi các quy tắc mạng trước những người khai thác khác. Nếu quá trình thành công, khối này sẽ đi vào chuỗi khối và người khai thác sẽ nhận được phần thưởng. Thông số kỹ thuật phần cứng cũng quan trọng, vì vậy yếu tố này cũng cần được xem xét khi mua thiết bị khai thác.
CÓ PHẢI HÀM BĂM CHỈ ÁP DỤNG CHO BITCOIN KHÔNG?
Hashing là phần trung tâm và không thể thiếu của một blockchain khác. Nhiều loại tiền điện tử được hỗ trợ bởi khai thác, chẳng hạn như Litecoin hoặc Bitcoin Cash. Các blockchain khác vẫn sử dụng các thuật toán khai thác khác nhau. Tuy nhiên, ngày nay, nhiều thuật toán hàm băm chỉ khác nhau về cách xử lý dữ liệu.
TIÊU THỤ NĂNG LƯỢNG BITCOIN SO VỚI ETHEREUM
Bitcoin vẫn là tiền điện tử cạn kiệt năng lượng nhất. Khi so sánh Ethereum và Bitcoin, sự đồng thuận Proof of Stake của Ethereum nhằm mục đích giảm 99% mức tiêu thụ năng lượng của nó. Trong khi đó, PoW của Bitcoin tiếp tục tăng, vượt quá tổng năng lượng tiêu thụ trên toàn Thụy Sĩ. Với việc chuyển sang ETH 2.0, mạng được hỗ trợ bởi trình xác thực thay vì thợ đào. Do đó, nó bền vững hơn và để lại ít khí thải carbon hơn cho môi trường.
ĐIỂM MẤU CHỐT
Công nghệ chuỗi khối đã trở thành những đổi mới có ảnh hưởng nhất trong thế kỷ qua, quyết định sự phát triển trong tương lai của công nghệ. Hashing là một chức năng mật mã đã hỗ trợ công nghệ này. Điều cần thiết là phải hiểu băm là gì và bản chất của công nghệ để khai thác trong chuỗi khối và kiếm tiền từ đó.
Đường link: https://learn.bybit.com/blockchain/what-is-hashing-in-blockchain/