FPT Edu - Tin tức chung

Sinh viên FPTU ĐN sôi nổi tìm hiểu về Công nghệ Blockchain tại MOD 2021

22/04/2021
Nguyễn Huệ Anh
116

Tham gia Ngày hội Toán học mở 2021, PGS.TS Đức (David) Trần đã mang tới bài giảng “Giới thiệu Công nghệ Blockchain: Lý Thuyết Và Ứng Dụng” dành cho sinh viên CNTT cũng như các bạn trẻ quan tâm tới lĩnh vực Blockchain.

PGS.TS Đức (David) Trần giới thiệu ngắn gọn về công nghệ Blockchain, nó xuất phát từ đâu, hoạt động như thế nào, có thể ứng dụng ra sao và các kiến thức cơ bản gói gọn cần phải biết để có thể bắt đầu phát triển một dự án về Blockchain

Bài toán tung đồng xu và bài toán giao dịch trong thực tế

PGS.TS Đức (David) Trần mở đầu bài giảng “Giới thiệu Công nghệ Blockchain: Lý Thuyết Và Ứng Dụng” bằng một trò chơi tung đồng xu. Cụ thể, 2 nhân vật Alice và Bob mỗi người đặt cược 100 đô. Alice sẽ dự đoán kết quả, Bob tung đồng xu và nếu Alice thắng sẽ được nhận 200 đô. Nhưng đó là trong trường hợp Alice và Bob ở cạnh nhau, còn nếu hai người ở xa nhau thì có thể xảy ra hai trường hợp: Một, Bob có thể nói dối kết quả để mình thắng. Hai, Alice thua có thể chạy mất và không đưa tiền cho Bob.

Đây là ví dụ minh họa cho một bài toán lớn trong thực tế: “Làm thế nào để nhanh chóng thực hiện giao dịch cho tất cả đối tượng trong môi trường có thể không trung thực và mọi người có thể chưa tin nhau?”. Để giải quyết bài toán này, PGS.TS Đức (David) Trần giới thiệu 2 giải pháp cũng như ưu, nhược điểm của chúng. 

Thứ nhất, giải pháp truyền thống (qua trung gian). Ví dụ như sử dụng ngân hàng với vai trò quản lý tập trung, server lý tập trung. Tuy nhiên, độ tin cậy, an toàn và bảo mật đạt của mô hình này không đạt 100% bởi nó dễ bị phá hoại, sai sót do con người cũng như chi phí cao, khó mở rộng quy mô.

Thứ hai, giải pháp blockchain thì dữ liệu được lưu trữ ở nhiều máy tính, tự động phối hợp để xử lý giao dịch ngay cả khi có nhiều máy tính không hợp tác, giống như internet chung phục vụ các ứng dụng.

 

Blockchain được giới thiệu một cách ngắn gọn, dễ hiểu qua bài giảng

Giới thiệu chung về Blockchain

Blockchain là một công nghệ tính toán giúp lưu trữ và giao dịch với thông tin một cách an toàn (không sợ mất hay bị sửa đổi), minh bạch (dễ dàng xác minh, truy xuất), tin cậy tuyệt đối 100% (người dùng yên tâm giao dịch, không cần một trung gian thứ 3 đứng ra đảm bảo)

Khi so sánh Blockchain với AI, có thể thấy AI hướng đến “trí thông minh” còn Blockchain là “nền tảng thực hiện, xử lý, lưu trữ các giao dịch”. Như vậy, AI phải dùng data và data lưu trữ bằng Blockchain. Nếu phát triển Blockchain thì phải phát triển cả AI.

Blockchain được sử dụng khi đáp ứng 4 trong 6 điều sau: Nhiều người chia sẻ dữ liệu, Nhiều người cập nhật dữ liệu, Cần tính năng xác thực, Giải pháp xác thực phức tạp, Giao dịch cần nhanh chóng, Giao dịch liên quan nhiều người.

Đa số mọi người chỉ biết đến Blockchain như là nền tảng tạo dựng ra Bitcoin, Ethereum và các đồng tiền số khác nhưng giá trị lớn nhất của công nghệ này là cho phép hiện thực hóa một xã hội được trợ giúp bởi kỹ thuật số, nơi mọi người đều có thể tham gia đóng góp, cộng tác và giao dịch mà không cần phải hoài nghi về sự tin cậy và minh bạch. Vì thế, Blockchain đã và đang cách mạng hóa cách mà các ứng dụng được phát triển để phục vụ con người với ảnh hưởng trong hầu hết mọi lĩnh vực, bao gồm: Dịch vụ tài chính, Sản xuất công nghiệp, Năng lượng, Y tế, Chính phủ điện tử, Bán lẻ và tiêu dùng, Truyền thông và giải trí.

PGS.TS Đức (David) Trần chỉ ra áp dụng Blockchain vào các ứng dụng thì đến năm 2020 đã mang tới giá trị 1760 tỷ USD, bằng 6 lần GDP Việt Nam hiện tại. Qua phân tích các con số, PGS.TS Đức (David) Trần cho rằng nhu cầu sử dụng kỹ sư Blockchain trên thị trường hiện nay rất cao, mức lương của 1 kỹ sư Blockchain tại Silicon Valley là 156.000 USD/năm, khuyến khích sinh viên tham gia vào lĩnh vực này để nghiên cứu và phát triển.

 

Những thuật toán được sử dụng trong Blockchain được các bạn sinh viên đặc biệt quan tâm

Trong bài giảng của mình, PGS.TS Đức (David) Trần giới thiệu về cấu trúc dữ liệu Blockchain gồm 3 phần: Data (chứa thông tin về bản thân block này), Hash (giá trị hàm băm của toàn bộ block), Liên kết (giá trị hàm băm của block đứng ngay trước nó)

Hàm băm mật mã là một hàm băm với 2 tính chất chính: Không va chạm (không thể tìm được 2 giá trị x, y khác nhau: x! = y sao cho H(x) = H(y). Khi giải ngược có độ khó như các game tìm kiếm. Hàm băm mật mã dùng để tạo tóm tắt mật mã cho thông tin (sau này muốn so sánh 2 thông tin chỉ cần so sánh digest của chúng) vì nhanh hơn, không cần biết nội dung gốc.

Bài giảng này chỉ ra Blockchain được lưu trữ theo 2 cách: Thứ nhất, cách truyền thống là đặt ở 1 server trung tâm với nhược điểm là không an toàn, có thể bị sai sót. Thứ hai, cách phi tập trung (Blockchain Vision) cho phép nhiều máy tính cùng tham gia, tự động kết nối, phối hợp để xử lý giao dịch; Mô hình ngang hàng: tránh tập trung nguồn lực ảnh hưởng dẫn tới lợi ích riêng; Giải pháp: mỗi máy tính lưu trữ full copy của toàn bộ dữ liệu Blockchain.

Như vậy, Blockchain sẽ hoạt động theo 6 bước: Người dùng tạo 1 giao dịch, Giao dịch được đặt vào trong 1 block mới, Block được broadcast tới mọi nodes, Mỗi node xác nhận block là tốt, Node add block đó vào blockchain, Giao dịch đã được xác thực và thực thi.

Theo PGS.TS Đức (David) Trần, Blockchain có nhiều bài toán cần giải như: Mỗi 1 giao dịch được broadcast tới tất cả các nodes, mỗi node cần xác thực từng giao dịch/block rồi lại broadcast block đó tới tất cả các nodes Mỗi node cần giữ 1 full copy của toàn bộ dữ liệu Blockchain.

Điều này diễn tới các bài toán: Consensus (đồng thuận khi có nhiều thông tin khác nhau), Scalability (vẫn hiệu quả khi phải xử lý nhiều giao dịch hơn), Spamming (hạn chế tham gia phá hoại), Incentive (khuyến khích tham gia đóng góp).

 

Các khái niệm được trình bày ngắn gọn, trực quan qua ví dụ thực tiễn

Blockchain: Một nền kinh tế chia sẻ mới

PGS.TS Đức (David) Trần nhắc tới khái niệm máy tính để tính toán xử lý các ứng dụng. Nếu ngày xưa là Desktop với các ứng dụng chạy trên 1 máy tính được đặt ở 1 chỗ, ngày nay là Cloud computing – chạy trên máy tính server trong điện toán đám mây do một tổ chức cung cấp và mai sau là Blockchain computing – chạy trên 1 máy tính Blockchain (kết hợp rất nhiều máy tính không trong 1 đám mây nào cả, ai cũng có thể tham gia đóng góp). Đó chính là “Nền kinh tế chia sẻ tính toán”.

Đặc biệt, PGS.TS Đức (David) Trần nhắc tới khái niệm Bitcoin khiến nhiều sinh viên Công nghệ thông tin ồ lên thích thú. Được biết, Bitcoin Blockchain ra đời năm 2008 là một dạng Blockchain cung cấp giải pháp tiền số, ai cũng có thể tự quản lý tiền của mình, có thể thực hiện các giao dịch trao đổi không cần qua trung gian (ngân hàng).

Đồng tiền Bitcoin là đơn vị dữ liệu đại diện cho giá trị đồng tiền trong ứng dụng này. Mã nguồn (mở) của Bitcoin có thể dùng để xây dựng các ứng dụng Bitcoin khác, không nhất thiết liên quan đến tiền. 1 đồng coin chứa 1 chuỗi các chữ ký điện tử, đại diện cho chủ sở hữu của các giao dịch quá khứ của đồng bitcoin này. Chữ ký cuối cùng bằng chủ sở hữu cuối cùng. Chẳng hạn, để người A gửi bitcoin cho người nhận B, chỉ có B mới có thể là ng nhận và người nhận B có thể xác minh được người gửi là A. Để xác nhận là người nhận B là người nhận đúng thì ta dùng phương pháp public key crypto (mật mã khóa công khai). Thông tin đến đúng người nhận, chỉ người nhận mới đọc được.

 

Mức lương của kỹ sư Blockchain mở ra hướng đi mới cho sinh viên CNTT

Timestamp (dùng anagram – đảo chữ) là phương pháp để người sáng tạo ra ý tưởng muốn giấu kín thông tin nhưng vẫn có bằng chứng để sau này xác thực mình là người nghĩ ra sáng kiến đó. Trong trường hợp của bitcoin, khi chúng ta muốn ghi khối dữ liệu vào Blockchain thì phải dùng đến biện pháp timestamping: Ai cũng có thể là người timestamp và gọi là miner (thợ đào bitcoin), Chỉ cần 1 máy tính chạy phần mềm bitcoin client, Khuyến khích tham gia bằng cách tặng 6.25 BTC (hiện nay) cho mỗi block được tạo.

Tuy nhiên, điều này lại đặt ra câu hỏi: Ai cũng muốn tạo block mới, vậy chọn ai? Làm sao để hạn chế phá hoại? Lúc này, người ta sử dụng nghi thức Proof of work làm giải pháp. Các Miner node giải 1 bài toán tìm kiếm khó “computational puzzle”, ai giải xong trước thì tạo được block và làm xong timestamp.

PGS.TS Đức (David) Trần cho rằng, để giải cần mất nhiều thời gian sẽ hạn chế các nodes muốn phá. Đồng thời, máy tính càng mạnh thì timestamp càng nhanh, khuyến khích người dùng đóng góp.

Bài toán PoW của Bitcoin

Tìm 1 số nonce (32-bit) sao cho Hash (block) < 2^d. Độ khó d đc tự động điều chỉnh sao cho chỉ 1 block được tạo trong 1 phút. Để giải, cách duy nhất là tăng nonce = 0, 1, 2... cho đến khi thỏa mãn. Từ đó có khái niệm nâng cấp hardware để “đào” bitcoin. Nó bị mọi người phê bình vì tiêu tốn quá nhiều năng lượng do đầu tư dàn máy quá lớn, tốn điện, sinh nhiều khí carbon.

Làm thế nào để biết Blockchain copy nào là đúng? Theo PGS.TS Đức (David) Trần, mỗi node có 1 bản local copy của BC, cập nhật ở các thời điểm khác nhau; Các nodes hoạt động không có ai giám sát nên có thể không trung thực (gửi block sai đến các node khác, từ chối xử lý block), Cơ chế đồng thuận (luôn coi bản Blockchain dài nhất là bản đúng).

Chúng ta có thể chống lại “longest chain” attack được không? Node không trung thực sẽ cố làm cho Blockchain copy của mình dài nhất với mục đích phá hoại hoặc tạo các giao dịch double-spending tự chuyển tiền về mình. Giải pháp là mỗi khi nhận chúng ta được 1 giao dịch, đợi đến khi có thêm z blocks được add thêm vào sau block của giao dịch này, lúc đó mới là an toàn để công nhận giao dịch là tốt.

Trước khi Bitcoin ra đời đã có các giải pháp tương tự hoặc liên quan như Hascash: giới thiệu PoW, bMoney: PoW + Peer to Peer (tương tự Bitcoin), Bitgold.

 

Có rất nhiều câu hỏi thú vị đến từ sinh viên ĐH FPT Đà Nẵng

Có một câu hỏi rất thú vị được đặt ra khiến cả hội trường xôn xao: Vậy ai có thể là Satoshi Nakamoto – nhân vật đầu tiên sáng tạo ra đồng tiền Bitcoin?

PGS.TS Đức (David) Trần giới thiệu các giả thuyết như Weidai và Adam Back là 2 người đầu tiên được Nakamoto liên hệ khi đang phát triển bitcoin (2008); Bài báo b-money (wei dai) đc tham chiếu trong bài báo bitcoin #2 (theo gợi ý của adam back); Hal finney: người nhận bitcoin đầu tiên từ Nakamoto…

Hiện tại, Blockchain được ứng dụng trong nhiều công ty lớn trên thế giới như Boeing, Honeywell, Visa, Metlife… với vai trò là: Giao dịch hợp đồng không qua trung gian; Chuyển tiền; Theo dõi hệ thống giám sát; định danh cá nhân, tăng tính an toàn và bảo mật; Ứng dụng trong chuỗi cung ứng, giám sát của logistic; Ứng dụng của chính phủ.

Phát triển dự án Blockchain

PGS.TS Đức (David) Trần cũng cung cấp kiến thức cơ bản gói gọn cần phải biết để có thể bắt đầu phát triển một dự án về Blockchain. Đầu tiên là Networking (kết nối P2P các nodes tham gia), Consensus (cơ chế đồng thuận giữa các nodes), Logic (Ứng dụng với mục đích cụ thể).

Blockchain được coi là 1 bước tiến công nghệ to lớn chỉ sau internet. Nếu như internet giúp con người giao tiếp dễ dàng, vượt qua mọi khoảng cách vật lý thì Blockchain giúp con người thực hiện giao dịch, vượt qua mọi khoảng cách về độ tin cậy. Đồng thời, Blockchain giúp hình thành 1 xã hội số hóa mà mọi người có thể đóng góp, cộng tác và giao dịch mà không cần lo lắng về sự an toàn và trung thực của hệ thống.

PGS.TS Đức (David) Trần nhấn mạnh Toán học rất quan trọng để phát triển một dự án Blockchain. Dùng software tools để phát triển 1 Blockchain đơn giản thì dễ nhưng xây dựng 1 giải pháp Blockchain tốt cần kiến thức Toán học bởi vì nền tảng của Blockchain dựa trên các kết quả của Toán. Hiện tại, Blockchain vẫn còn đang mới mẻ, có nhiều không gian nghiên cứu và phát triển nên chọn Blockchain là hướng đi tốt cho bạn nào có thế mạnh về Toán.

 

Huệ Anh (tường thuật)

Tổ chức Giáo dục FPT – fpt.edu.vn

116

Nhân vật