Tìm hiểu công nghệ blockchain và schat

71 6 0
Tìm hiểu công nghệ blockchain và schat

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM 🙣🕮🙡 BÁO CÁO ĐỒ ÁN TÌM HIỂU CƠNG NGHỆ BLOCKCHAIN VÀ SCHAT Giảng viên hướng dẫn: Thầy Phan Trung Hiếu Sinh viên thực 19520976 – Đặng Hải Thịnh 19521399 – Nguyễn Văn Dũng Thành phố Hồ Chí Minh, tháng năm 2022 Mục Lục I II BÁO CÁO ĐỒ ÁN 1 Tổng quan đề tài Khảo sát trạng 1.1 Định hướng phần mềm 1.2 Nhu cầu thực tế đề tài 1.3 Hiện trạng đơn vị cần xây dựng 1.4 Nền tảng 1.5 Hiện trạng đề tài 1.6 Phạm vi sử dụng 1.7 Đối tượng sử dụng Blockchain 2.1 Nguồn gốc: 2.2 Khái niệm: 2.3 Đặc điểm công nghệ Blockchain 10 2.4 Ứng dụng Blockchain thực tế 12 Cơ sở lý thuyết 14 React Native 14 1.1 Nguồn gốc 14 1.2 Khái niệm 14 1.3 Một số khái niệm 14 1.4 Ưu nhược điểm 19 1.5 So sánh Native với Web Hybrid 20 Nest Js 21 III 2.1 Khái niệm 21 2.2 Tại lại dùng Nest: 21 2.3 Một số khái niệm 21 2.4 Uư nhược điểm 24 2.5 Next vs Nuxt vs Nest 24 Phân tích yêu cầu 30 Sơ đồ Usecase 30 Đặc tả usecase 30 2.1 Thành phần xác thực 30 2.2 Hệ thống chat 35 IV Thiết kế hệ thống 38 Thiết kế kiến trúc hệ thống: 38 Thiết kế mơ hình liệu: 39 2.1 Sơ đồ lớp 39 2.2 Đặc tả lớp liệu 40 2.3 Thiết kế luồng sử lí: 42 Thiết kế giao diện: 48 3.1 Màn hình chào mừng: 48 3.2 Màn hình đăng nhập 49 3.3 Trang đăng kí 50 3.4 Trang xác nhận OTP 51 3.5 Màn hình 53 3.6 Màn hình gọi điện thoại 54 3.7 Màn hình gọi điện thoại với video 56 3.8 Màn hình chat 57 3.9 Màn hình thơng tin nhóm chat 59 3.10 Màn hình phân cơng cơng tác 61 3.11 Màn hình chi tiết cơng việc 63 3.12 Màn hình cài đặt 65 Kết dự án V 67 Giới thiệu sản phẩm 67 Môi trường triển khai 68 2.1 Backends 68 2.2 Frontends 68 Chức sản phẩm phát triển IV Kết luận 68 68 1.1 Thuận lợi 69 1.2 Khó khăn 69 Ưu nhược điểm 69 Hướng phát triển 69 VI Phụ lục 70 Tài liệu tham khảo 70 Bảng phân công công việc 70 I Tổng quan đề tài Khảo sát trạng 1.1 Định hướng phần mềm • • Hỗ trợ chat hai hay nhiều người, hỗ trợ nhóm quản lí dự án, phân cơng cơng việc, giao tiếp thành viên Cung cấp chức quản lí bản, khơng tập trung q vào lĩnh vực cụ thể 1.2 Nhu cầu thực tế đề tài • Hiện nay, với phát triển vượt bật công nghệ thông tin, bảo mật ngày trọng Tiếp theo ngày có nhiều project triển khai toàn cầu, quy mô độ phức tạp project ngày lớn, việc quản lí trở nên ngày khó khăn 1.3 Hiện trạng đơn vị cần xây dựng • • Thành viên nhóm biết cách sử dụng điện thoại thơng minh Điện thoại phải có kết nối internet 1.4 Nền tảng • • Nền tảng phát triển: React Native, NestJS Nền tảng triển khai: Mobile app 1.5 Hiện trạng đề tài • • Có nhiều ứng dụng tương tự Hạn chế, vấn đề tồn tại: o Ứng dụng tồn nhiều quảng cáo o Phần quản lí, chưa có giao diện hợp lí o Vẫn cịn nhiều vụ đánh cắp thông tin 1.6 Phạm vi sử dụng • Sử dụng tất người, phù hợp nhóm phát triển dự án 1.7 Đối tượng sử dụng • Bất kỳ Blockchain 2.1 Nguồn gốc: Khái niệm Blockchain hai người đàn ông tên Stuart Haber W Scott Stornetta Họ xuất báo có tên “How to timestamp a digital document” vào năm 1991 Và báo này, khái niệm thứ mà ngày gọi Blockchain hầu hết đặc điểm ý tưởng đằng sau triển khai báo Tuy nhiên, họ người đưa khái niệm cụ thể Blockchain, mà thực chất khái niệm đưa báo Satoshi Nakamoto Một khối, ghi, đó, bên chứa liệu Ví dụ, chứa chuỗi ký tự giá trị số nguyên Tiếp theo, trường liệu khác chứa bên khối Previous Hash, giá trị băm khối trước đó, giá trị đóng vai trị quan trọng chuỗi khối, giúp liên kết khối lại với Đồng thời, khối có giá trị băm lưu trường tên Hash Và bạn coi giá trị băm giống dấu vân tay khối Nó thực lấy hai phần tử đầu tiên, liệu giá trị băm khối trước tìm giá trị số tương tự đại diện cho liệu lưu khối 2.2 Khái niệm: 2.2.1 Thuật tốn SHA-256: Mỗi người số có dấu vân tay, có khả có số người có dấu vân tay, điều khó xảy Theo cách đó, nói dấu vân tay dấu hiệu nhận dạng người Và khái niệm ứng dụng mạnh mẽ phận pháp y, đó, họ xác định tội phạm dấu vân tay lấy làm chứng trước tịa Vậy điều xảy áp dụng nguyên tắc tương tự vào tài liệu kỹ thuật số? kỹ thuật số, sử dụng "dấu vân tay" dạng mật mã băm, cụ thể thuật tốn SHA-256 có dạng sau: Thuật tốn SHA-256 phát triển NSA (Cơ quan An ninh quốc gia Mỹ) Thuật tốn an tồn nhiều nơi giới sử dụng để lưu trữ mật khẩu, kiểm tra tài liệu kỹ thuật số thực tế, Blockchain, áp dụng Đây điều cốt lõi chuỗi khối 2.2.2 Sổ bất biến Làm để bạn chứng minh với người khác nhà bạn? Tại bạn đến nhà phố nói nhà bạn? Thứ bạn nhận sau trả khoản tiền khổng lồ cho ngơi nhà tờ giấy chứng từ, đảm bảo ngơi nhà bạn Và có chứng từ chủ sở hữu ngơi nhà Tuy nhiên, điều xảy nhà bạn dưng bị sập nhà bên cạnh sửa nhà điều xảy lấy trộm sổ bạn? Đột nhiên bạn khơng cịn ngơi nhà Bạn sống ngơi nhà nghĩ Nhưng thực tế, sổ khơng có chứng từ để chứng minh bạn sở hữu ngơi nhà Vậy làm khắc phục tình trạng này? Giả sử có tất liệu lưu trữ chuỗi khối thay giấy tờ thơng thường Mỗi mua bán ngơi nhà, khối thêm vào chuỗi Chúng ta bị chúng Nếu kẻ hacker cố gắng giả mạo liệu khối, điều xảy làm thay đổi giá trị băm khối Và liên kết mật mã chuỗi khối không bị phá vỡ giá trị băm khối bị thay đổi, khác với giá trị băm ghi lại khối trước Và muốn khắc phục điều này, phải thay đổi toàn tất khối cho liên kết mật mã khôi phục kết nối chặt chẽ với Tuy nhiên, điều khó để xảy có nhiều khối việc tìm giá trị phù hợp cho khối điều khó (khơng phải khơng làm được) Và lý nói chuỗi khối sổ bất biến bạn khơng thể thay đổi liệu liệu giả mạo lưu khối 2.2.3 Mạng ngang hàng P2P Như vừa vừa nói việc thay đổi liệu khó, Tuy nhiên, câu hỏi hacker cố gắng công sổ thực số thay đổi liệu, điều ngăn cản kẻ xâm nhập? Nếu có đủ thời gian, thay đổi tồn khối chuỗi kết sao? Giả sử tài sản có trị giá vài trăm nghìn la, điều thực khiến cho hacker sẵn sàng đánh đổi để thay đổi liệu khối, thay tên bạn tên hắn, sau giá trị băm cập nhật kẻ hacker thực thay đổi giá trị băm khối tiếp tục cho khối khác Vậy điều ngăn cản làm điều đó? Trong hệ thống phân tán, có nhiều máy tính tất chúng kết nối với Chuỗi khối chép tất máy tính có mạng Giả sử có máy tính mạng, thực tế số hàng nghìn chí hàng triệu máy tính Sổ lưu trữ tất giao dịch nằm máy tính bạn, nằm máy tính tơi máy tính người khác Mọi thứ kết nối thông qua khóa mật mã Và thảo luận, kẻ hacker cần phải xem qua tất khối chuỗi thực thay đổi giá trị băm chúng, tính tốn lại giá trị băm cho khối màu đen Tuy nhiên, mạng ngang hàng phân tán, có điều đặc biệt tất chuỗi máy đồng hóa cách liên tục Đó cách mà hệ thống thiết kế, kiểm tra để xem liệu khối chuỗi máy có khớp với hay khơng Nếu có thay đổi khối chuỗi, máy tính ngang hàng phát có vấn đề, chuỗi khối chúng bị thay đổi liệu Và chúng hiệu cho chuỗi khối máy tính chuỗi khối bị cơng khơng khớp với chuỗi khối khác Những giá trị bị thay đổi sửa chữa đồng hóa lại với giá trị chuỗi lại Như vậy, tất giá trị chuỗi khác chép qua chuỗi khối khôi phục trở giá trị ban đầu Do vậy, xảy trường hợp bạn thấy, hacker khơng thể cơng máy tính, khơng thể cơng chuỗi khối thay đổi giá trị đó, mà phải công tất chuỗi khối máy tính lúc Bằng cách công này, kẻ hacker phải thực thao tác nhanh vài giây, tối đa vài phút, tùy thuộc vào cấu trúc tảng Blockchain 2.2.4 Giá trị Nonce Nếu đơn giản đến mức cần lấy số khối, liệu giá trị băm trước đưa vào thuật tốn băm nhằm tạo giá trị băm cho khối khoảng thời gian tính tốn nửa giây, tồn cách thức hoạt động Mining gì? Tại lại có nhiều, hàng trăm nghìn dàn máy đào khắp giới sử dụng để tính tốn giá trị băm này? Trong trường hợp này, trường Nonce giúp kiểm soát giá trị băm khối Chúng ta tự thay đổi giá trị Nonce Nonce giá trị số, điều cho phép thay đổi cách ngẫu nhiên giá trị băm Chúng ta sử dụng từ "ngẫu nhiên" thuật toán băm, khơng thể dự đốn trước đưa giá trị Chúng ta thay đổi Nonce thuật toán trả số ngẫu nhiên Cách hoạt động Mining Như vậy, mấu chốt tất điều mà máy đào làm thực lặp lại thao tác tính toán, thay đổi, thay đổi thay đổi Nonce để hy vọng có giá trị băm phù hợp Và đốn trước tiên phép thêm khối trình lặp lại cho khối Điều quan trọng giá trị băm hiệu ứng tuyết lở Các bạn nhớ hiệu ứng tuyết lở, thay đổi Nonce, giá trị băm thay đổi hồn tồn Trong ví dụ bên trên, bạn thấy với giá trị Nonce 23, giá trị băm nằm trên, sau giá trị băm ứng với Nonce 21 nằm dưới, điều cho phép máy đào dự đốn cách giảm giá trị Nonce, giá trị băm giảm xuống Trên thực tế, thứ hồn tồn khơng phải Giá trị băm hoàn toàn ngẫu nhiên 2.2.5 Khả kháng lỗi Byzantine Hệ thống kháng lỗi Byzantine (BFT) hệ thống giải vấn đề tốn vị tướng quân Byzantine Điều có nghĩa hệ thống BFT tiếp tục hoạt động số nút bị lỗi thực hành động gây hại Bây giờ, làm để điều áp dụng vào chuỗi khối giống hệ thống phân tán khác? Chúng ta có cố gắng cơng hệ thống cần đưa giao thức đồng thuận, giống chiến thuật mà vị tướng Byzantine nghĩ 2.2.6 Giao thức đồng thuận Có nhiều loại giao thức đồng thuận nêu tới loại phổ biến Proof of work, proof of stake Vấn đề cần nói điều xảy kẻ cơng cố gắng đặt khối vào cuối chuỗi, cố gắng thêm khối độc hại có liệu trái phép? Giả sử khối A khai thác máy tính A1 trước thơng tin đến với máy tính B1, máy tính B1 khai thác xong khối A Đối với chuỗi khối, vấn đề cần giải cần có đồng thuận cách tiếp tục phát triển lớn dần chuỗi, khơng, có tượng xảy trùng lặp khối đưa vào • Giải vấn đề Mỗi nút nằm trước khối thêm vào, trước khối truyền vào mạng, nút đơn lẻ tiến hành loạt kiểm tra nghiêm ngặt, chúng kiểm tra giá trị băm, kiểm tra khối trước trùng khớp với giá trị băm trước trường giá trị băm, kiểm tra timestamp để kiểm tra giao dịch nhiều thứ khác Và kết kiểm tra không chấp nhận, khối không chấp nhận Về bản, mạng không cho phép khối độc hại thêm vào chuỗi Và lý có khoản thưởng tài để người chơi theo quy tắc Đó cách giải tốn số • Vấn đề Những nút làm nút màu tím có khối màu tím Các nút màu cam có khối màu cam, chuỗi khối có hai dạng khác thời điểm Vì vậy, có chuỗi cạnh tranh Những làm chờ đợi khối khác thêm vào Và khối thêm vào, có chuỗi dài Về bản, chuỗi thêm khối trước chuỗi thắng, tức chuỗi dài chuỗi thắng Trong Blockchain, chuỗi dài thắng Chuỗi có nhiều khối cuối giành chiến thắng thay chuỗi lại Và điểm vùng mạng có sức mạnh băm cao cuối tạo chuỗi dài 2.3 Đặc điểm công nghệ Blockchain Công nghệ Blockchain đóng vai trị giống sổ ghi lại tất giao dịch xảy hệ thống nên đặc điểm blockchain bao gồm: 2.3.1 Phân loại: 10 STT Tên thuộc tính Loại thuộc tính Avatar Image VolumeButton Button VideoButton Button MicroButton Button 3.8 Màn hình chat 57 STT Tên thuộc tính Loại thuộc tính CallButton IconButton 58 CallVideoButton IconButton TextMessage Text VideoMessage Video ImageMessage Image FileMessage Icon and Text enterMessage TextInput ImageSelectButton IconButton IconSelectButton IconButton 10 VideoSelectButton IconButton 11 MicroButton IconButton 3.9 Màn hình thơng tin nhóm chat 59 STT Tên thuộc tính Loại thuộc tính Avatar Image 60 FileTab Navigation Tab changeInformationGroupChat Checkbox 3.10 Màn hình phân cơng cơng tác 61 STT Tên thuộc tính Loại thuộc tính SreachIcon IconButton 62 AssignmentDropdown Dropdown TeamDropdown Dropdown StatusDropdown Dropdown checkStatus CheckBox taskCard Card MenuIcon IconButton CategoryIcon TouchableOpacity MemberIcon TouchableOpacity 3.11 Màn hình chi tiết cơng việc 63 STT Tên thuộc tính Loại thuộc tính 64 SearchIcon Icon Progress Slider Field Dropdown Dropdown TeamDropdown Dropdown TaskName Text FileAttach TouchableOpacity 3.12 Màn hình cài đặt 65 STT Tên thuộc tính Loại thuộc tính AccountAndSecurity TouchableOpacity 66 Setting TouchableOpacity SystemManagement TouchableOpacity NewsManagement TouchableOpacity CheckListCard TouchableOpacity Assignment TouchableOpacity BussinessReport TouchableOpacity BussinessCalendar TouchableOpacity ChangeAccount TouchableOpacity 10 LogOutButton TouchableOpacity V Kết dự án Giới thiệu sản phẩm Như vậy, sau tháng thực đồ án, nhóm tìm hiểu cơng nghệ blockchain phần mềm Schat cách đầy đủ Ứng dụng Schat với tính năng: ● Chat ● Phân cơng cơng việc ● Quản lí cơng việc ● Quản lý tiến trình, nhom thực dự án Từ trình làm việc đồ án, nhóm phát triển rút nhiều kiến thức kinh nghiệm Bao gồm: ● Kinh nghiệm làm việc nhóm 67 ● Kinh nghiệm sử dụng react native nestjs với mongo DB để lưu trữ quản lí liệu app quản lí đăng nhập, thông báo ● Cách xây dựng hệ thống chat với blockchain ● Cách xây dựng hệ thống phân công công việc Môi trường triển khai 2.1 Backends - NesJS - Sự dụng Cơ sở liệu MongoDB 2.2 Frontends Môi trường frontend viết framework React Native Viết ngôn ngữ Javascript, chạy thử thiết bị ● Thiết bị vật lý: Samsung Galaxy A12 6GB RAM, 64GB nhớ flash, chạy Android 11 ● Thiết bị giả lập: 4GB RAM, chạy Android 11 Chức sản phẩm phát triển • Gửi tin nhắn, video, hình ảnh file • Chia sẻ thơng tin, hình ảnh file, video • Thêm, chỉnh sửa thành viên cơng việc • Thêm cơng việc • Tìm kiếm bạn bè IV Kết luận Sau trình tháng nghiên cứu dự án, nhóm học thêm nhiều kinh nghiệm, nhiều điểm bật từ công nghệ blockchain framework react native nestJs Được học hỏi thêm nhiều từ thầy,các anh cơng ty Từ mở lối cho hướng phát triển sau để thực tạo sản phẩm vào ứng dụng thực tế Đánh giá kết làm việc 68 1.1 Thuận lợi ● Nhóm phát triển có đam mê với ý tưởng dự án, có hứng thú với việc quản lí ● Giảng viên tận tình giúp đỡ, giải đáp thắc mắc trình thực đồ án ● Các cơng nghệ liên quan có cộng đồng phát triển tương đối ổn định, dễ dàng việc tìm kiếm giúp đỡ mặt kỹ thuật ● Vận dụng kiến thức, quy trình phát triển học 1.2 Khó khăn • Do lần đầu sử dụng số công nghệ, thư viện nên cịn có chút trục trặc • Tình hình dịch COVID-19 hạn chế khả gặp mặt trực tiếp giảng viên hướng dẫn giai đoạn đầu phát triển • Một số vấn đề khó giải quản lý ngữ cảnh, quản lý nhiều thực thể đặt tên loại văn Ưu nhược điểm - Ưu điểm o Dễ quản lí cơng việc tạo o Dễ quản lí dự án o Trực quan với người dùng - Nhược điểm o Performance chưa tốt o Sử dụng nhiều package, khởi động phải load tốn thời gian bình thường o Vẫn cịn vài phần chưa tích hợp giao diện Android IOS Hướng phát triển • Thêm tính quản lý cơng việc, giao nhiệm vụ cho nhóm • Thêm thơng báo, nhắc nhở việc hồn thành cơng việc • Áp dụng tính bảo mật blockchain • Cho phần dự án chứa nhiều thơng tin • Thêm tính gọi điện, cài đặt phần có liên quan tới cá nhân 69 VI Phụ lục Tài liệu tham khảo • ReactNative • NestJS • BlockChain-Wekia • Blockchain-tutorial Bảng phân cơng cơng việc STT Sinh viên Mô tả công việc Mức độ hoàn thành Nguyễn Văn Dũng Nghiên cứu blockchain Schat, 100% viết báo cáo đồ án Đặng Hải Thịnh Nghiên cứu blockchain Schat, 100% viết báo cáo đồ án 70 71 ... lại Và điểm vùng mạng có sức mạnh băm cao cuối tạo chuỗi dài 2.3 Đặc điểm công nghệ Blockchain Công nghệ Blockchain đóng vai trị giống sổ ghi lại tất giao dịch xảy hệ thống nên đặc điểm blockchain. .. đổi giá trị đó, mà phải công tất chuỗi khối máy tính lúc Bằng cách công này, kẻ hacker phải thực thao tác nhanh vài giây, tối đa vài phút, tùy thuộc vào cấu trúc tảng Blockchain 2.2.4 Giá trị... trạng đề tài 1.6 Phạm vi sử dụng 1.7 Đối tượng sử dụng Blockchain 2.1 Nguồn gốc: 2.2 Khái niệm: 2.3 Đặc điểm công nghệ Blockchain 10 2.4 Ứng dụng Blockchain thực tế 12 Cơ sở lý thuyết 14 React Native

Ngày đăng: 17/08/2022, 21:30

Tài liệu cùng người dùng

Tài liệu liên quan