Dạo gần đây, mình thấy nhiều anh em quan tâm tới NFT quá. À không, thực ra anh em quan tâm tới việc kiếm tiền từ nó và một số khác là thần tượng crypto nên thần thánh hóa NFT lên để vẽ về tương lai của blockchain nói chung và crypto trong đó có NFT nói riêng.

Dạo một vòng group thấy nhiều anh em hiểu sai bản chất NFT quá, lại còn comment “tuyên truyền” không có gì đúng sất, nên mình quyết định viết bài này để giải thích cho anh em hiểu đúng về NFT.

Trước hết, bài viết này mình sẽ không đi quá sâu về kỹ thuật bên trong, mặc dù mình sẽ dùng một chút kỹ thuật để giải thích. Và hơn nữa, 3/4 bài viết sẽ không nói về NFT, mà chỉ nói về căn bản để anh em hiểu đúng NFT là gì.

Hàm băm (hash) là gì?

Hàm băm, hay còn gọi là hash (vừa là danh từ vừa là động từ), được định nghĩa là:
Hàm băm 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. Giá trị băm đóng vai gần như một khóa để phân biệt các khối dữ liệu.

Wikipedia

Ôi khó hiểu quá, đơn giản hơn thì anh em có thể hiểu vậy nè: mỗi một thứ bất kì trên thế giới máy tính (nó có thể là một đoạn văn bản, một file hình ảnh, âm nhạc, một file cài đặt, một file word… từ nặng 1-2Kb đến hàng GB hay TB => từ đây về sau mình gọi chung là dữ liệu nhé) đều có thể mã hóa thành một chuỗi có độ dài nhất định (rất ngắn). Nếu dùng hàm băm sha256 thì chuỗi sau khi hash có độ dài 256bit.

File ảnh Ngọc Trinh, tải ở đây: ngoc-trinh.png
File Word.docx, tải ở đây: word.docx

Như vậy có nghĩa là với một file nặng hàng tá GB có thể rút gọn thành 256bit?

Vâng, nhưng nó chỉ đúng một chiều, không đúng với chiều còn lại, vì hàm băm không thể giải ngược lại.

Và có một đặc biệt ở đây để câu trả lời trên là đúng và có rất nhiều công dụng sau này, đó chính là chuỗi ký tự sau khi hash đó được mọi người thừa nhận là duy nhất.

Nói như vậy có nghĩa là chuỗi sau khi hash có thể trùng nhau?

Đâu đó trên thế giới, sẽ có hai, ba hay hằng hà số files khác nhau nhưng có giá trị sau khi hash là giống nhau? Đúng luôn, nhưng như đã nói, độ dài chuỗi sau khi hash bằng hàm sha256 sẽ có độ dài 256bit, với mỗi bit có 2 giá trị 0 và 1. Nên tổng trường hợp có thể xảy ra là 2^256 = ~1.1579e+77 (bằng 1.1579 nhân với một số bắt đầu bằng 1 và có 77 số 0 phía sau) => đó là một con số quá khổng lồ, nên để xảy ra trường hợp cố tình làm trùng là (rất rất) x 3.14 khó. Vậy nên người ta chấp nhận chuỗi này là duy nhất.

Đó là lý do khi anh em tải app trên mạng thường sẽ được cung cấp 1 chuỗi sha-1 (hash bằng hàm sha-1) để xác minh tính toàn vẹn của app, vì nếu một ai đó tải file gốc về và gắn virus vào, thì khi hash file sau khi đã cài virus sẽ ra 1 chuỗi khác so với chuỗi ban đầu.
Hàm băm hiện nay có rất nhiều, có thể kể đến MD5, SHA-1, SH256. Nhưng trong blockchain SHA256 có vẻ phổ biến hơn, nên từ đoạn này về sau, mình sẽ dùng hàm hash SHA256 như là mặc định mỗi khi nói đến hash.

Ví dụ: Một trong những trang khá nổi tiếng về check virus online cũng sử dụng công cụ này đó là virustotal.com, khi các bạn tải 1 file lên để check virus, việc đầu tiên nó làm là đi hash cái file đó tạo thành một đoạn mã có độ dài chỉ 256bit. Nó sẽ check đoạn mã này với cơ sở dữ liệu của nó xem có file nào trùng mã hash này không. Nếu trùng, chứng tỏ có người từng upload file này lên hệ thống của họ để check virus, thì họ sẽ đưa ra kết quả luôn mà không cần check lại. Còn không, nó sẽ đi check virus cho file bạn mới tải lên, việc này tốn kha khá thời gian, sau đó nó sẽ lưu kết quả vừa check được tương ứng với đoạn mã hash để sau này nếu có ai đó tải file đó lên check virus một lần nữa (hoặc bạn rảnh bạn đi test hệ thống của nó), thì nó chỉ việc truy xuất dữ liệu kết quả trong database ra thôi. Khỏi check gì cho mất công.
Bạn có thắc mắc, lỡ may lúc đầu bạn check là file có kết quả an toàn, nhưng một thời gian sau, máy bạn dính virus hay ai đó cố tình chèn virus vào file đó, thì tại sao hệ thống virustotal không cần check lại không?
Nó làm được như vậy, vì vốn dĩ như đã nói, chuỗi hash được xem là duy nhất, một file không có thay đổi gì thì chuỗi hash sẽ không đổi, ngược lại, một thay đổi vô cùng tế vi cũng sẽ làm chuỗi hash thay đổi. Chỉ cần bạn mở file, chèn một dấu chấm, dấu phẩy hay chèn phần giải thích, không ảnh hưởng tới nội dung file. Thì khi hash file, kết quả sẽ khác hoàn toàn rồi.

Các bạn có thể thử với file hình Ngọc Trinh hoặc file word.docx ở trên.

Với file word.docx, vì trước đó có ai đó từng check trên trang này rồi, nên mình up lên là nó hiện check hash chứ không cần quét virus:

Còn với file ảnh Ngọc Trinh, vì chưa ai check trước đó cả, nên mình up lên và trang này sẽ quét, sau đó sẽ lưu kết quả với mã hash tương ứng, để người sau vào check nó không cần check lại nữa.

Như vậy ta có:

HASH ( dữ liệu ) = 1 chuỗi có độ dài 256bit //Hash bằng hàm SHA256

Cùng thử nhé, với hình ảnh logo của Góc Tìm Kiếm, các bạn tải về tại đây: logo.png

Và đây là một trang cung cấp công cụ hash một file bất kỳ bằng hàm SHA256:

https://emn178.github.io/online-tools/sha256_checksum.html

Cho dù bạn ở đâu, bạn dùng máy tính windows hay macos, thì khi thực hiện hash file logo này với hàm SHA256 thì luôn cho kết quả là 143897e943b3043d31cb08128354e6e4a495b865dad35fcddd24b8e43d9f0273

Tuy nhiên, nếu file logo này các bạn upload lên Facbook rồi tải về lại, hay mở ra crop đi 1 góc nhỏ, hay dùng paint vẽ thêm 1 nét nhỏ, hoặc thậm chí nếu bạn có thể edit bằng code editor, chỉnh sửa 1 ký tự duy nhất dù nó không ảnh hưởng tới hiển thị hình ảnh. Thì khi thực hiện hash nó sẽ trả về một kết quả khác hoàn toàn so với phía trên. Đó là tính toàn vẹn của nó.

Blockchain là gì?

Các bạn quan tâm tới NFT thì hầu hết đã quá quen thuộc với blockchain rồi. Nhưng mình vẫn muốn nói lại một chút, để anh em dễ hình dung hơn, tránh hiểu sai.

Blockchain có chức năng như một cuốn gia phả vậy đó. Từ bạn, có thể truy xuất ra bố bạn là ai, mẹ bạn là ai, từ bố mẹ, lại có thể truy xuất ra ông bà bạn là ai.

Nhưng blockchain là được lưu trữ dưới dạng chuỗi sau khi hash nên sẽ tránh được việc sửa đổi hay cố tình gian lận.

Tình viết giải thích về blockchain nữa mà dài quá. Qua NFT nha:

Cuối cùng, NFT là gì?

NFT – viết tắt của Non-Fungible Token chỉ là một dạng (ứng dụng) của blockchain. Mình sẽ không nói về định nghĩa mà sẽ nói cho các bạn hiểu nó là gì và cách thức nó hoạt động.

Quay lại ví dụ của virustotal, khi bạn check virus một tập tin bất kỳ, hệ thống sẽ hash và lưu thông tin (bao gồm: kết quả check, ngày check, dung lượng, tên file, định dạng….) vào cơ sở dữ liệu của hệ thống virustotal. Còn NFT, nó cũng sẽ làm điều tương tự, nhưng có hai điểm khác biệt cơ bản:

  • Một là, hệ thống (các chợ NFT hay NFT marketplace) sẽ không chỉ hash tập tin bạn tải lên, mà nó sẽ hash đồng thời tập tin bạn tải lên cộng với thông tin của bạn.
  • Hai là, thông tin sau khi hash, thay vì lưu trên cơ sở dữ liệu của các NFT Market thì nó sẽ còn được đẩy lên nền tảng blockchain để lưu trữ.

Khi đó, ta có:

HASH ( dữ liệu, thông tin của dữ liệu ) = 1 chuỗi có độ dài 256bit

Và cái các bạn đang mua bán là cái “Mã HASH” mới” chứa thông tin, hình ảnh, hash của hình ảnh, chứng nhận sở hữu của bạn và một số thông tin khác.

Mã HASH này sẽ được đẩy lên blockchain để có thể thực hiện các giao dịch mua bán, chuyển nhượng hay bán một phần sau này.
Còn tài liệu (ảnh, nhạc, video…) vẫn chỉ là được lưu trữ tập trung tại cơ sở dữ liệu của NFT market.

Có thể hiểu đơn giản rằng, việc mua bán sản phẩm thông qua NFT giống như việc bạn mua bán thông qua bìa đỏ (giấy chứng nhận quyền sử dụng đất). Có nghĩa là, ngôi nhà và bìa đỏ vẫn là hai thứ hoàn toàn riêng biệt, người khác vẫn có thể vào chiếm nhà bạn ở, đập phá hay copy, sửa chữa nhà của bạn dù rằng bạn đã mua nó.

Vậy điểm khác biệt ở đây là gì? Bìa đỏ thì được bảo trợ bởi một nhà nước pháp quyền, còn NFT thì hiện tại chưa có cơ chế bảo vệ. Cho nên vấn đề còn lại, chỉ là pháp lý.
Khi có một hành lang pháp lý phù hợp thì NFT sẽ rất là tuyệt vời.

Những hiểu lầm tai hại về NFT

NFT là một định dạng mới cho dữ liệu

Sai! Đó là lý do trong bài viết trên mình không hề dùng tới từ convert (hay chuyển đổi), bản chất định đạng dữ liệu không thay đổi. File ảnh PNG thì nó vẫn y vậy, chẳng có gì thay đổi cả. Nhiều anh chị thường nói, mang một bức ảnh lên NFT marketplace để convert qua định dạng NFT và bán, hay dễ thấy hơn là “một bức ảnh được bán dưới định dạng NFT lên tới hàng triệu đô”…

NFT có thể truy vết, chứng minh bản quyền, chống sử dụng lậu

Sai! NFT được lưu trữ trên nền tảng blockchain nên có thể truy vết là đúng. Nhưng anh chị đang hiểu nhầm rằng, nếu bạn bỏ tiền ra mua một bức ảnh trên chợ NFT, rồi có ai đó cũng lên đó copy xuống và sử dụng, thì có thể truy vết là sai. Một bức ảnh triệu đô, mình có thể tải về và sử dụng, chẳng thể nào truy vết cả.
Hay hiểu nhầm rằng, anh chị sở hữu bức ảnh, bài hát trên chợ NFT thì anh chị có thể đòi tiền bản quyền khi có ai đó sử dụng. Vấn đề ở đây là anh chị phải tìm được người đang sử dụng tài liệu trái phép của anh chị. Và quan trọng hơn nữa, như đã nói ở trên, một hành lang pháp lý phải được xây dựng để đảm bảo quyền lợi của người dùng NFT.

NFT cũng không thể chứng minh bản quyền cho anh chị, nó chỉ có thể chứng minh là anh chị là người đầu tiên mang tài liệu đó lên NFT market thôi.

Còn cũng kha khá cái hiểu nhầm nữa, mà hiện tại type mỏi tay quá, type bài viết 2-3 ngày mới xong, khi nào có hứng mình type tiếp.

Và cuối cùng, mình thành thật nói với bạn rằng, mình chưa hề tìm hiểu về NFT 😄 những thứ mình giải thích ở trên là mình dựa vào kiến thức nền tảng và “suy đoán” để nói ra, nhưng bạn cứ yên tâm, có thể cách dùng từ chuyên môn mình không chính xác, nhưng nó giải thích đúng được bản chất của NFT cho bạn dễ hiểu.

XEM THÊM

0 bình luận