ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT – HÀN
KHOA KHOA HỌC MÁY TÍNH
ĐỒ ÁN CHUYÊN NGÀNH 2
ĐỀ TÀI: TÌM HIỂU NGHIÊN CỨU CƠNG NGHỆ
BLOCKCHAIN VÀ XÂY DỰNG HỢP ĐỒNG THÔNG MINH
TRÊN MOBILE
Sinh viên thực hiện
: Võ Đăng Lâm
Lê Phước Phúc
Giảng viên hướng dẫn: ThS. Nguyễn Văn Bình
Lớp
: 17IT2
Đà Nẵng, tháng 5 năm 2021
MỞ ĐẦU
Sự xuất hiện của hệ thống web dùng trên Internet đã hiện thực hóa việc trao đổi
thơng tin trên tồn thế giới. Trong khi đó, hệ thống blockchain lại giúp thực hiện các
giao dịch trao đổi giá trị toàn cầu trên Internet. Bởi vậy, hai hệ thống này tuy song
song tồn tại nhưng lại khác nhau về bản chất. Sau khi Satoshi Nakamoto công bố
luận văn về đồng tiền ảo bitcoin vào năm 2009, nền tảng công nghệ của bitcoin –
blockchain – đã trở thành tâm điểm chú ý.
Với khởi đầu như vậy nên hiển nhiên giá trị tiền tệ của blockchain, tức là chức
năng trao đổi và tích lũy giá trị, sẽ được chú ý nhiều nhất. Nhưng từ khoảng năm
2012-2013, không chỉ tiền kỹ thuật số, công nghệ blockchain bắt đầu được kỳ vọng
có thể mạng lại thay đổi lớn trong cách vận hành kinh doanh (không chỉ trong ngành
tài chính) cũng như ứng dụng trong lĩnh vực hành chính cơng.
Trong xu thế đó, các ứng dụng sử dụng công nghệ blockchain được phát triển ngày
càng nhiều. Các ứng dụng này không được sử dụng trên hệ thống blockchain mà
cịn có khả năng tích hợp vào các ứng dụng hiện có trên web.
Điều này có nghĩa
là blockchain không chỉ đơn thuần là một công nghệ mới mà nó cịn có thể bổ trợ
hoặc thay thế các cơng nghệ hiện hữu.
Trong đó, hợp đồng thơng minh của blockchain là công nghệ đã được ứng dụng
rất nhiều vào cuộc sống hàng ngày, trong các lĩnh vực khác nhau như y tế, bầu cử,
quản lý doanh nghiệp. Vì vậy em muốn tìm hiểu về nó và ứng dụng nó vào việc xây
dựng các ứng dụng trên mobile.
LỜI CẢM ƠN
Trong thời gian làm đồ án, em đã nhận được nhiều sự giúp đỡ, đóng góp ý kiến và chỉ
bảo nhiệt tình của thầy cơ và bạn bè.
Em xin gửi lời cảm ơn chân thành đến ThS. Nguyễn Văn Bình, người đã tận tình
hướng dẫn, trực tiếp chỉ bảo và tạo mọi điều kiện giúp đỡ em trong suốt quá trình làm đồ
án.
Em cũng xin chân thành cảm ơn các thầy cô trong trường đại học Công Nghệ Thông
Tin Và Truyền Thông Việt Hàn, những người đã dạy dỗ và trang bị cho em kiến thức để
hoàn thành đề tài đồ án này.
Mặc dù trong quá trình nghiên cứu đề tài, bản thân em có những cố gắng nhất định
song do trình độ và thời gian có hạn nên đề tài khơng tránh khỏi những thiếu sót. Vậy
kính mong các thầy cơ và các bạn đóng góp ý kiến để em được hoàn thiện hơn.
NHẬN XÉT
(Của giảng viên hướng dẫn)
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
MỤC LỤC
Chương 1
Giới thiệu.......................................................................................................1
1.1
Tổng quan.............................................................................................................1
1.2
Khảo sát các ứng dụng tương tự...........................................................................1
1.2.1
Tiền điện tử Bitcoin.......................................................................................1
1.2.2
Ứng dụng Medicalcahin.................................................................................2
1.2.3
Kết luận..........................................................................................................3
1.3
Phương pháp, kết quả...........................................................................................3
1.4
Cấu trúc đồ án.......................................................................................................4
Chương 2
2.1
Các công nghệ hỗ trợ cho phát triển hệ thống.......................................................5
2.1.1
2.2
Nghiên cứu tổng quan....................................................................................5
Công nghệ blockchain....................................................................................5
Hợp đồng thông minh (Smart Contracts)............................................................10
2.2.1
Hợp đồng thơng minh là gì..........................................................................10
2.2.2
Ngun lý hoạt động....................................................................................11
2.2.3
Ứng dụng của hợp đồng thơng minh............................................................12
2.2.4
Các lợi ích của hợp đồng thông minh...........................................................13
2.2.5
Ưu nhược điểm của hợp đồng thông minh...................................................14
2.3
Ganache Etherum là gì?......................................................................................14
Chương 3
3.1
Triển khai xây dựng hệ thống.......................................................................16
Mơ tả hệ thống....................................................................................................16
3.1.1
Bài toán về ứng dụng Todo..........................................................................16
3.1.2
Nguyên lý hoạt động....................................................................................16
3.2
Xây dựng hợp đồng thông minh và kết nối vào mobile......................................16
3.3
Xây dựng hoạt động trên mobile.........................................................................18
3.4
Kết quả...............................................................................................................21
Chương 4
Kết luận và hướng phát triển........................................................................25
4.1
Kết luận..............................................................................................................25
4.2
Hướng phát triển.................................................................................................25
DANH MỤC HÌNH
Hình 1-1: Tiền điện tử Bitcoin...........................................................................................1
Hình 1-2: Ứng dụng Medicalchain trong lĩnh vực y tế.......................................................2
Hình 2-1: Cơng nghệ trong blockchain..............................................................................6
Hình 2-2: Cách hoạt động của chữ ký số............................................................................8
Hình 2-3: Cấu trúc block của blockchain...........................................................................8
Hình 2-4: Hợp đồng thơng minh......................................................................................10
Hình 2-5: Ví dụ mua bán xe bằng hợp đồng thơng minh..................................................11
Hình 2-6: Lợi ích của hợp đồng thơng minh....................................................................13
Hình 2-7: Một mạng lưới blockchain cá nhân trong Ganache..........................................15
Hình 3-1: Hợp đồng thơng minh được viết bằng Solidity.................................................17
Hình 3-2: Cấu hình kết nối giữa mobile và flutter............................................................18
Hình 3-3: Lây dữ liệu kết nối, dữ liệu hợp đồng và chạy hợp đồng.................................19
Hình 3-4: Khởi tạo và chạy một hợp đồng mới................................................................19
Hình 3-5: kết quả trên ứng dụng......................................................................................20
Hình 3-6: Các block của ứng dụng...................................................................................21
Hình 3-7: Các hợp đồng đã thực hiện...............................................................................21
Hình 3-8: Thơng tin dữ liệu và hợp đồng trong block......................................................22
Hình 3-9: Thơng tin cơ bản của hợp đồng........................................................................22
Hình 3-10: Các giao dịch của hợp đồng...........................................................................22
Hình 3-11: Các sự kiện có trong một hợp đồng................................................................23
DANH MỤC CỤM TỪ VIẾT TẮT
STT
Cụm từ
Viết tắt
1
Bitcoin
BTC
Chương 1
Giới thiệu
1.1 Tổng quan
Internet xuất hiện không chỉ phục vụ cho việc gửi email hay tải phần mềm mà nó cịn
là động lực để phát triển nền kinh tế tồn cầu. Trong thực tế, Internet đã trở thành trình
điều khiển của nền kinh tế. Sự xuất hiện của Internet và các mạng cục bộ đã giúp cho
việc trao đổi thơng tin trở nên nhanh chóng, dễ dàng hơn. Email cho phép chúng ta nhận
hay gửi thư ngay trên máy tính của mình, Ebusiness cho phép thực hiện giao dịch, buôn
bán trên mạng… Cũng giống như Internet, blockchain xuất phát như một trào lưu với
đồng tiền ảo Bitcoin. Nhưng sau đó, nó được đưa vào rộng rãi trong các ứng dụng thực
thế thông qua các công nghệ như hợp đồng thơng minh, các thuật tốn.
Các ứng dụng về hợp đồng thông minh đã được sử dụng một cách rộng rãi trong các
lĩnh vực như bầu cử, y tế hay quản lý doanh nghiệp. Vì vậy em muốn tìm hiểu về cơng
nghệ này để nâng cao về khả năng của mình và để biết thêm các kiến thức mới. Vì vậy
em chọn đề tài tìm hiểu cơng nghệ blockchain và ứng dụng hợp đồng thông minh và ứng
dụng mobile.
1.2 Khảo sát các ứng dụng tương tự
1.2.1 Tiền điện tử Bitcoin.
Bitcoin được phát hành năm 2009 bởi một nhân vật bí ẩn có biệt danh Satoshi
Nakamoto. Đồng tiền ảo này có thể được trao đổi trực tiếp bằng thiết bị kết nối
Internet mà khơng cần thơng qua một tổ chức tài chính trung gian nào. Với những đặc
tính quan trọng như ẩn danh, giao dịch khơng cần lệ phí, càng ngày, nó càng được nhiều
người tin tưởng và chấp nhận.
Hình Giới thiệu-1: Tiền điện tử Bitcoin.
1
Bitcoin có độ bảo mật cao, xuất hiện và được phân chia hồn tồn tự động dựa trên
các thuật tốn và ai cũng có thể sở hữu thơng qua việc giải mã các phương trình tốn học
và đưa ra đáp án, hay còn gọi là "đào"
Khác với các đồng coin còn lại, bitcoin bị giới hạn về số lượng khai thác. Dù muốn
hay khơng, người ta tổng cộng chỉ có thể đào được 21 triệu bitcoin. Càng về sau, mức độ
khai thác bitcoin càng khó hơn.
Theo tính tốn, Bitcoin sẽ vẫn còn đủ để đào đến năm 2040. Sau thời điểm đó, nó có
thể tiếp tục được tạo ra theo hình thức hiện tại hoặc dưới dạng phiên bản mới. Giá trị của
tiền ảo Bitcoin dựa trên sự tin tưởng của mọi người vào nó làm cơng cụ thanh tốn. Khi
có càng nhiều người chấp nhận, giá trị của Bitcoin càng tăng lên.
1.2.2 Ứng dụng Medicalcahin.
Medicalchain là một công ty có trụ sở tại Ln Đơn đã tạo ra một nền tảng blockchain
phi tập trung cho phép lưu trữ an toàn và chia sẻ hồ sơ sức khỏe với các thực thể khác
nhau từ lĩnh vực y tế, chẳng hạn như bác sĩ, bệnh viện và dược sĩ.
Hình Giới thiệu-2: Ứng dụng Medicalchain trong lĩnh vực y tế.
2
Ngoài ra, nền tảng này cũng cho phép bệnh nhân giao tiếp thông qua các phiên video
trực tuyến với bác sĩ của họ và thảo luận về các vấn đề sức khỏe và như vậy
Medicalchain sẽ cho phép các nhà phát triển bên thứ ba phát triển các ứng dụng bằng
cách sử dụng hệ thống của họ, điều này có thể dẫn đến các giải pháp quản lý thuốc và
ứng dụng cho thiết bị đeo tay tư vấn từ xa, theo dõi sức khỏe.
ICO của dự án đã huy động được số tiền 24 triệu đô la bằng cách bán token MTN cho
những người đóng góp.
Medicalchain sử dụng một cơ sở hạ tầng blockchain kép sử dụng Hyperledger Fabric
và token dựa trên ERC-20 được xây dựng trên blockchain của Ethereum. Tất cả hồ sơ sức
khỏe đều có mã hóa mật mã khóa đối xứng, đảm bảo tính bảo mật của chúng.
Ngoài một nền tảng cho phép giao tiếp giữa bác sĩ và bệnh nhân, công ty đã phát hành
một ứng dụng cho cùng một mục đích. Kết nối đã được thành lập với các bệnh viện châu
Âu, cũng như các nhà nghiên cứu và các tổ chức bảo hiểm mà bây giờ họ có thể đưa ra
các hợp đồng thơng minh. Nền tảng này có kế hoạch chuyển sang các hiệu thuốc và thực
hành bác sĩ.
Nhóm nghiên cứu sao lưu dự án có trình độ cao, và các đại diện CEO cũng có một
kinh nghiệm tuyệt vời trong ngành y tế. Nhóm phát triển kinh doanh cũng góp phần vào
nhiều dự án thành cơng khác trong q khứ.
Cơng ty có gần 80 bác sĩ từ hơn 40 cơ sở y tế trong hệ sinh thái của nó cho đến
nay. Hiện nay, nền tảng này được sử dụng bởi hơn 250 bệnh nhân. Cơng ty đã hợp tác với
Tập đồn y tế Groves, với hơn 30.000 bệnh nhân đã đăng ký và cũng đã trình bày dự án
của mình với Tổ chức Y tế Thế giới.
1.2.3 Kết luận
Qua hai ứng dụng trên, ta thấy được công nghệ blockchain đã được ứng dụng rộng rãi
trên rất nhiều lĩnh từ. Từ giáo dục, y tế cho đến nông nghiệp, thương mại hay các dự án
của chính phủ. Vì vậy, để xây dựng được ứng dúng mobile sử dụng cơng nghệ blockchain
thì phải tìm hiểu kỹ và định hướng cho ứng dụng của mình.
1.3 Phương pháp, kết quả
Phương pháp xây dựng ứng dụng sẽ bao gồm các bước sau:
3
- Ôn lại các kiến thức cơ bản về các học phần đã học như cơ sở dữ liệu, lập trình
di động …
- Tìm hiểu framework flutter và các API phục vụ cho các sản phẩm.
- Tìm hiểu cơng nghệ blockchain và công nghệ hợp đồng thông minh.
- Phác thảo sơ bộ giao diện cho sản phẩm và tiến hành xây lập trình giao diện cho
sản phẩm.
- Tiến hành xây dựng backend cho sản phẩm.
- Chạy sản phẩm và tiến hành kiểm thử độ ổn định của sản phẩm trong thực tế.
- Tiến hành viết báo cáo word và chuẩn bị slide powerpoint phục vụ cho việc bảo
vệ khi thi kết thúc học phần.
1.4 Cấu trúc đồ án
Phần tiếp theo của báo cáo bao gồm:
Chương 2: Nghiên cứu tổng quan
Trong chương này, em sẽ tiến hành tìm hiểu các cơng nghệ, kiến thức áp dụng vào
trong quá trình thực hiện đồ án. Báo cáo về nguyên lý hoạt động của hệ thống.
Chương 3: Triển khai xây dựng
Trong chương này, em sẽ trình bày về mơ hình tổng quan của ứng dụng và giới
thiệu về nó.
Chương 4: Kết luận và hướng phát triển
Trong chương này, em sẽ chia thành 2 phần. Phần 1 kết luận sẽ giới thiệu về những gì
mà ứng dụng đã được và hạn chế của nó. Phần 2 hướng phát triển sẽ đưa ra những hướng
đi sau này của ứng dụng.
4
Chương 2
Nghiên cứu tổng quan
2.1 Các công nghệ hỗ trợ cho phát triển hệ thống
2.1.1 Công nghệ blockchain.
Blockchain (chuỗi khối), tên ban đầu block chain là một cơ sở dữ liệu phân cấp lưu
trữ thông tin trong các khối thông tin được liên kết với nhau bằng mã hóa và mở rộng
theo thời gian. Mỗi khối thông tin đều chứa thông tin về thời gian khởi tạo và được liên
kết tới khối trước đó, kèm theo thơng tin về dữ liệu giao dịch. [3] Blockchain được thiết
kế để chống lại việc thay đổi của dữ liệu: Một khi dữ liệu đã được cập nhật trong mạng
thì sẽ khó có thể thay đổi được nó. Nếu một phần của hệ thống blockchain sụp đổ, những
máy tính và nút khác sẽ tiếp tục hoạt động để bảo vệ thông tin. Công nghệ Blockchain là
một loại chương trình để lưu, xác nhận, vận chuyển và truyền thông dữ liệu trong mạng
thông qua các nút phân phối của riêng nó mà khơng phụ thuộc vào bên thứ ba.
Một số trích dẫn đáng chú ý về công nghệ này được liệt kê dưới đây: - “Thế hệ đầu
tiên của cuộc cách mạng kỹ thuật số mang lại cho chúng ta thông tin của Internet. Thế hệ
thứ hai - được hỗ trợ bởi công nghệ blockchain - mang lại cho chúng ta giá trị của
Internet: một nền tảng mới để định hình lại thế giới kinh doanh và biến đổi thứ tự công
việc của con người trở nên tốt hơn.
“Blockchain là một kho lưu trữ, cơ sở dữ liệu phân tán toàn cầu, chạy trên hàng triệu
thiết bị và mở cho mọi người, không chỉ đơn thuần là thơng tin mà cịn cả những thứ có
giá trị, cả danh hiệu, hành vi, danh tính, thậm chí cả phiếu bầu - có thể được di chuyển,
lưu trữ và quản lý một cách an toàn và tư nhân. Sự tin tưởng được thiết lập thông qua hợp
tác giữa số đông và mã thông minh chứ không phải bởi các nhà trung gian mạnh mẽ như
các chính phủ và ngân hàng.”
Không lâu sau khi Bitcoin được phát hành trên thế giới, nhiều người nhanh chóng
nhận ra cơng nghệ đằng sau Bitcoin – Blockchain – có thể làm được nhiều hơn là xử lý
các giao dịch tiền tệ. Nhà phân phối lớn nhất thế giới cho những hợp đồng tài chính cho
rằng có thể làm cho các hợp đồng trở nên an toàn hơn bằng cách xây dựng một hệ thống
dựa trên công nghệ Blockchain vào năm 2018. Nếu kế hoạch này đi vào hoạt động, mỗi
năm sẽ có 11 nghìn tỷ USD được giao dịch qua hệ thống này.
5
Hình Nghiên cứu tổng quan-3: Cơng nghệ trong blockchain.
Blockchain được phát triển dựa trên hai nền tảng kỹ thuật chính là hàm băm và chữ ký
số. Công nghệ Blockchain được phát triển dựa trên hai nền tảng kỹ thuật chính là hàm
băm và chữ ký số. Mỗi người dùng sẽ sở hữu một cặp khóa gồm khóa bí mật và khóa
cơng khai. Khóa bí mật được lưu trữ bí mật và sử dụng để ký kết các giao dịch. Các giao
dịch đã ký dùng chữ ký số được phát đi trên toàn bộ mạng. Chữ ký số liên quan đến hai
giai đoạn: giai đoạn ký kết và giai đoạn xác minh. Ví dụ: người dùng A muốn gửi một
thơng báo cho người dùng B, trong giai đoạn ký, A mã hóa dữ liệu của mình bằng khóa bí
mật và gửi cho B kết quả đã được mã hóa và dữ liệu gốc. Trong giai đoạn xác minh, B
xác nhận giao dịch bằng khóa cơng khai của A. Bằng cách đó, B có thể dễ dàng kiểm tra
xem dữ liệu có bị giả mạo hay khơng.
a. Hàm băm là gì
Hàm băm dùng để chuyển đổi từ một thông tin sang một đoạn mã. Bất kỳ nỗ lực gian
lận nào để thay đổi bất kỳ phần nào của blockchain sẽ bị phát hiện ngay lập tức vì giá trị
băm mới sẽ khơng phù hợp với thông tin cũ trên blockchain. Bằng cách này, ngành khoa
học bảo mật thông tin (cần thiết cho việc mã hóa thơng tin và mua sắm trực tuyến, ngân
hàng) đã trở thành một công cụ hiệu quả để giao dịch mở.
Hàm băm là hàm một chiều, theo nghĩa giá trị của hàm băm là duy nhất, và từ giá trị
băm này, “khó” có thể suy ngược lại được nội dung hay độ dài ban đầu của thông điệp
gốc. Các hàm băm dòng MD: MD2, MD4, MD5 được Rivest đưa ra có kết quả đầu ra với
độ dài là 128 bit. Hàm băm MD4 đưa ra vào năm 1990. Một năm sau phiên bản mạnh
6
MD5 cũng được đưa ra. Chuẩn hàm băm an toàn: SHA, phức tạp hơn nhiều cũng dựa
trên các phương pháp tương tự, được công bố trong Hồ sơ Liên bang năm 1992 và được
chấp nhận làm tiêu chuẩn vào năm 1993 do Viện Tiêu Chuẩn và Công Nghệ Quốc Gia
(NIST), kết quả đầu ra có độ dài 160 bit.
Hàm băm được sử dụng trong nhiều ứng dụng thực tế, dưới đây là một số ứng dụng
nổi bật của hàm băm được sử dụng phổ biến:
• Đảm bảo dữ liệu khơng bị sửa đổi: Khi An muốn gửi tài liệu X cho Bình, An gửi cả
giá trị băm của X và thuật tốn băm. Khi nhận được tài liệu X, Bình dùng thuật tốn băm
đó băm lại X và so sánh với giá trị băm An đã gửi, nếu kết quả không trùng khớp chứng
tỏ tài liệu X đã bị chỉnh sửa.
• Hỗ trợ các thuật tốn chữ ký số: Hàm băm giúp tạo ra đại diện tài liệu, các thuật
toán ký số thay ví ký trên tài liệu ban đầu có dung lượng lớn, sẽ ký lên đại diện của tài
liệu đó. Thời gian thực hiện của thuật tốn ký sẽ nhanh hơn nhiều lần.
• Xây dựng cấu trúc dữ liệu bảng băm: Bảng băm là một cấu trúc dữ liệu cho phép tổ
chức lưu trữ và tìm kiếm dữ liệu một cách nhanh chóng và thuận tiện.
b. Chữ ký số.
Về mặt công nghệ, chữ ký số [1] là một thơng điệp dữ liệu đã được mã hóa gắn
kèm theo một thông điệp dữ liệu khác nhằm xác thực người gửi thơng điệp đó.
Q trình ký và xác nhận chữ ký như sau: Người gửi muốn gửi thông điệp cho bên
khác thì sẽ dùng một hàm băm, băm thơng điệp gốc thành một “thơng điệp tóm
tắt” (Message Digest), thuật tốn này được gọi là thuật toán băm (hash function)
đã được trình bày trong mục 1.2.1. Người gửi mã hố bản tóm tắt thơng điệp bằng
khóa bí mật của mình (sử dụng phần mềm bí mật được cơ quan 6 chứng thực cấp)
để tạo thành một chữ ký số. Sau đó, người gửi tiếp tục gắn kèm chữ ký số này với
thông điệp dữ liệu ban đầu và gửi thông điệp đã gắn kèm với chữ ký một cách an
toàn qua mạng cho người nhận. Sau khi nhận được, người nhận sẽ dùng khố cơng
khai của người gửi để giải mã chữ ký số thành bản tóm tắt thơng điệp. Người nhận
cũng dùng hàm băm giống hệt như người gửi đã làm đối với thông điệp nhận được
để biến đổi thông điệp nhận được thành một bản tóm tắt thơng điệp. Người nhận
so sánh hai bản tóm tắt thơng điệp này, nếu chúng giống nhau tức là chữ ký số đó
là xác thực và thông điệp đã không bị thay đổi trên đường truyền đi. Ngồi ra, chữ
ký số có thể được gắn thêm một “nhãn” thời gian: sau một thời gian nhất định quy
7
định bởi nhãn đó, chữ ký gốc sẽ khơng cịn hiệu lực, đồng thời nhãn thời gian
cũng là công cụ để xác định thời điểm ký.
Hình Nghiên cứu tổng quan-4: Cách hoạt động của chữ ký số.
c. Cấu trúc phi tập chung
Cơ chế này ngược lại với mơ hình truyền thống – cơ sở dữ liệu được tập trung và
được dùng để quản lý và xác thực giao dịch. Công nghệ Blockchain không dựa vào các tổ
chức thứ ba để quản lý và xác thực, khơng có kiểm sốt trung tâm, tất cả các nút nhận
được thông tin tự kiểm tra, truyền tải, và quản lý, 8 đặt sự tin tưởng vào các nút, cho phép
các nút lưu trữ các giao dịch trong một khối (block). Các block được ghép nối với nhau
tạo nên một chuỗi khối (blockchain). Cấu trúc của một block được mơ tả như hình 2-3.
Cấu trúc phi tập chung là đặc điểm nổi bật và quan trọng nhất của Blockchain.
Hình Nghiên cứu tổng quan-5: Cấu trúc block của blockchain.
d. Tính tốn tin cậy.
8
Mỗi nút trong mạng có một bản sao lưu trữ toàn bộ blockchain, chất lượng của dữ
liệu phụ thuộc vào sự đồng bộ liên tục theo thời gian giữa các nút. Các nút trong mạng
đều có độ tin cậy như nhau, khơng có nút nào đáng tin cậy 10 hơn nút nào. Trao đổi dữ
liệu trong hệ thống không yêu cầu các nút tin tưởng lẫn nhau. Quy chế hoạt động của
toàn bộ hệ thống và tất cả các nội dung dữ liệu đều cơng khai và minh bạch. Vì vậy, các
nút không thể giả mạo các quy tắc và thời gian do hệ thống chỉ định.
e. Bằng chứng công việc.
Bằng chứng công việc (proof of work) trong một mạng blockchain được hiểu là một
thử thách cho các nút trong mạng. Cụ thể là các nút cần tìm ra các block mới của
blockchain bằng cách tìm ra giá trị băm thỏa mãn điều kiện cho trước.
f. Tính chất của blockchain.
Cơ chế đồng thuận phân quyền (decentralized consensus): Cơ chế này ngược lại
với mơ hình cổ điển về cơ chế đồng thuận tập trung – nghĩa là khi một cơ sở dữ
liệu tập trung được dùng để quản lý việc xác thực giao dịch. Một sơ đồ phi tập
trung chuyển giao quyền lực và sự tin tưởng cho một mạng lưới ảo phi tập trung
và cho phép các nút của mạng lưới đó liên tục lưu trữ các giao dịch trên một khối
(block) công khai, tạo nên một chuỗi (chain) độc nhất: chuỗi khối (blockchain).
Mỗi khối kế tiếp chưa một giá trị băm của khối trước nó; vì thế, mã hóa (thơng
qua hàm băm) được sử dụng để bảo đảm tính xác thực của nguồn giao dịch và loại
bỏ sự cần thiết phải có một bên trung gian. Sự kết hợp của mã hóa và cơng nghệ
blockchain lại đảm bảo rằng sẽ không bao giờ một giao dịch được thực hiện hai
lần.
Bảo trì tập thể (collective maintainance): Khối dữ liệu (block) trong hệ thống được
duy trì bởi tất cả các nút với chức năng bảo trì trong tồn bộ hệ thống. Bất kỳ nút
nào cũng có khả năng ghi block vào blockchain. Hơn nữa, các nút trong hệ thống
có thể được tham gia bởi bất cứ ai.
Tính bảo mật và độ tin cậy: Khi không nắm được 51% số nút trong mạng, dữ liệu
mạng không thể bị kiểm sốt và sửa đổi. Do đó, bản thân Blockchain đã trở nên
tương đối an tồn và có thể tránh việc sửa đổi dữ liệu. Vì thế, nếu một số lượng
lớn các nút có khả năng tính tốn mạnh được tham gia vào hệ thống thì dữ liệu
trong hệ thống này sẽ có độ bảo mật cao hơn.
9
Mã nguồn mở: Công nghệ blockchain được phát hành theo mã nguồn mở. Ngồi
thơng tin cá nhân được mã hóa bởi các bên kinh doanh, dữ liệu Blockchain có thể
truy cập được bởi tất cả mọi người. Bất cứ ai cũng có thể tìm kiếm dữ liệu
Blockchain thơng qua giao diện công khai, cũng như phát triển các ứng dụng có
liên quan. Tồn bộ hệ thống rất minh bạch.
2.2 Hợp đồng thông minh (Smart Contracts).
2.2.1 Hợp đồng thông minh là gì.
Smart Contract (Hợp Đồng Thơng Minh) là một thuật ngữ mơ tả một bộ giao thức đặc
biệt có chức năng tự động hóa thực hiện các điều khoản, các thoả thuận giữa các bên
trong hợp đồng (ở đây là các hệ thống máy tính) nhờ sự hỗ trợ của cơng nghệ
Blockchain.
Xét về khía cạnh Computer programs (Chương trình máy tính) thì hợp đồng thơng
minh đơn giản là các chương trình máy tính, từ “hợp đồng” khơng có ý nghĩa pháp lý
trong ngữ cảnh này. Một khi hợp đồng được triển khai, mã của hợp đồng không thể được
thay đổi, khơng giống như các phần mềm máy tính truyền thống. Cách duy nhất để sửa
đổi một hợp đồng là hủy bỏ nó và triển khai một hợp đồng mới.
Hình Nghiên cứu tổng quan-6: Hợp đồng thông minh.
Smart contract được coi như một bộ giao thức đặc biệt với mục tiêu là để ghi nhận,
xác định hay tiến hành quá trình đàm phán và thực hiện hợp đồng. Smart contract cho
phép người dùng triển khai giao dịch mà không cần thông qua các bên trung gian.
10
2.2.2 Nguyên lý hoạt động.
Smart contract có thể đem so sánh được với một chiếc máy bán hàng tự động hóa. Nó
chỉ tự động thực hiện những lệnh mà đã được lập trình sẵn từ trước. Đầu tiên, tài sản và
điều khoản hợp đồng đều được mã hóa và chuyển vào một block thuộc Blockchain.
Smart contract này tiếp đó sẽ được phân phối và copy lại bởi các node làm việc trên nền
tảng đó. Sau khi có nhận lệnh triển khai thì hợp đồng sẽ được triển khai theo đúng như
điều khoản định sẵn. Đồng thời, smart contract cũng sẽ tự động kiểm tra quá trình thực
thi những cam kết nêu trong hợp đồng.
Hình Nghiên cứu tổng quan-7: Ví dụ mua bán xe bằng hợp đồng thông minh.
2.2.3 Ứng dụng của hợp đồng thông minh.
Bầu cử: Kết quả bỏ phiếu sẽ được chuyển vào Blockchain và phân phối về các
node trong mạng lưới. Toàn bộ dữ liệu sẽ được mã hóa và hồn tồn ẩn danh.
Phương pháp này có thể loại bỏ âm mưu thao túng cuộc bầu cử.
Logistics: Như chúng ta đều biết, chuỗi cung ứng mà một hệ thống kéo dài và gồm
nhiều liên kết khác nhau. Mỗi liên kết cần phải nhận được xác nhận bởi cái ở trước
để đủ điều kiện thực hiện phần việc của mình theo như hợp đồng. Đây là một quá
11
trình dài hơi và kém năng suất, nhưng với smart contract thì mỗi bộ phận tham gia
đều có thể theo dõi tiến trình cơng việc để từ đó hồn thành nhiệm vụ đúng hạn.
Smart contract bảo đảm tính minh bạch trong điều khoản hợp đồng, chống gian
lận. Nó cịn có thể cung cấp cho ta khả năng giám sát quá trình cung ứng nếu như
được tích hợp chung với Mạng lưới vạn vật kết nối Internet (Internet of Things).
Ứng dụng trong hệ thống y tế: Hệ thống y tế sử dụng hợp đồng thông minh để ghi
và chuyển dữ liệu một cách an tồn. Chúng ta có thể thấy ví dụ về các hợp đồng
thơng minh đang được sử dụng trong ngành y tế như Encrypgen. Đây là một ứng
dụng sử dụng hợp đồng thông minh để chuyển dữ liệu bệnh nhân một cách an
tồn, khơng cho phép quyền truy cập từ bên thứ ba. Bằng cách này, bệnh nhân
kiểm sốt dữ liệu của chính họ. Nếu các nhà nghiên cứu muốn sử dụng dữ liệu
bệnh nhân, họ phải trả tiền cho nó. Khơng chỉ vậy, mà bệnh nhân phải chọn xem
họ có muốn bán nó cho các nhà nghiên cứu hay không.
Ứng dụng trong quản lý doanh nghiệp: Các doanh nghiệp có thể được hưởng lợi từ
các hợp đồng thơng minh. Thay vì trả lương cho nhân viên để kiểm sốt bảng
lương, họ có thể sử dụng hợp đồng thông minh. Các doanh nghiệp chỉ cần cài đặt
một hợp đồng thơng minh, sau đó nó sẽ tự trả lương cho nhân viên đúng hạn và
đúng số tiền. Ví dụ như Smart contract được tạo lập: “ngày 11/11/.2020, doanh
nghiệp gửi ông Nguyễn Văn A số tiền là 2 ETH”. Điều này có nghĩa ơng Nguyễn
Văn A sẽ ln nhận tiền đúng hạn, và nhân viên này sẽ không bao giờ bị trả lương
thiếu. Lợi ích kinh doanh đến từ việc tất cả đều tự động, tiết kiệm rất nhiều thời
gian và tiền bạc.
Bên cạnh đó hợp đồng thơng minh cịn có vơ vàn ứng dụng khác, ví dụ như trong
quản lý, dịch vụ ngân hàng, bảo hiểm, bất động sản, ...
2.2.4 Các lợi ích của hợp đồng thơng minh.
- Tự động hóa: Hoạt động như một chương trình tự thực hiện các loại tác vụ. - Tự động
hóa: Hoạt động như một chương trình tự thực hiện các loại tác vụ. Nếu khơng được kích
hoạt, hợp đồng thông minh sẽ ở trạng thái “Không hoạt động” và không thực hiện hành
động nào.
- Phân tán: Hợp đồng thông minh sẽ được sao chép và phân phối trong tất cả các nút của
mạng Ethereum thay vì các máy chủ tập trung.
12
Hình Nghiên cứu tổng quan-8: Lợi ích của hợp đồng thông minh.
- Không thể sửa đổi: Sau khi triển khai, hợp đồng khơng thể sửa đổi. Có thể xóa hợp
đồng nếu chức năng này được thêm từ trước khi triển khai. Bên cạnh đó, hợp đồng cũng
chỉ thực hiện các điều khoản đã được nêu trong hợp đồng. Điều này giúp ngăn chặn
việc làm giả mạo hợp đồng.
- Có thể tùy chỉnh: Trước khi triển khai, việc lựa chọn hình thức mã hóa sẽ giúp hợp đồng
tạo ra nhiều loại ứng dụng phi tập trung.
- Không cần dựa trên sự tin tưởng: Hợp đồng thơng minh hồn tồn có thể được thực
hiện bởi hai người xa lạ và không cần gặp mặt trực tiếp. Công nghệ Blockchain sẽ đảm
bảo sự an tồn và chính xác của dữ liệu hợp đồng.
- Minh bạch và không bị thất lạc: Dù ai cũng có thể xem và tải về nhưng khơng thể thay
đổi mã nguồn vì Smart Contract dựa trên Blockchain cơng khai.
- Chính xác: Hạn chế được các lỗi thường gặp khi soạn thảo trên giấy tờ.
- Tiết kiệm: Vì sử dụng ngơn ngữ lập trình trên máy tính nên tiết kiệm thời gian. Ngồi ra
cịn tiết kiệm chi phí vào các khâu trung gian khác.
2.2.5 Ưu nhược điểm của hợp đồng thông minh.
Điểm mạnh:
13
Tiết kiệm chi phí: Chỉ cần trả một khoản phí rất nhỏ cho mạng lưới blockchain, tiết
kiệm các khoản phí để cho
Tính linh hoạt: Các quy định trong hợp đồng được xử lý linh hoạt và hiệu quả cho
người tận dụng.
Tính minh bạch, rõ ràng: có thể truy dấu ra nguồn gốc của tất tần tật các thanh toán
giao dịch, nhưng đầy đủ không được đảo nghịch giao dịch thanh toán và mọi giao dịch
đều sẽ được ghi nhận trên blockchain cực kỳ rõ ràng.
Độ tin cậy cao: Sau khi hợp đồng hồn tất, khơng một ai hoặc một bên nào có thể
can thiệp vào q trình thực thi cũng tựa như những thương lượng của hợp đồng.
Nhanh gọn và tiện lợi: có thể thiết lập và thực thi 1 hợp đồng chỉ trong vài giây, cài
đặt cho nhiều người cùng 1 lúc và dùng đi tận dụng lại nhiều lần.
Điểm yếu:
Tính pháp lý: Smart Contract chưa được Pháp luật công nhận để quản lý nên khi xảy
ra lỗi phát sinh, chúng ta sẽ không được bảo vệ quyền lợi.
Hiểm họa từ internet: Nếu bạn để lộ một số thơng tin “bí mật” hoặc bị các hacker để
ý thì hồn tồn có thể sẽ gặp những trường hợp rắc rối.
Nhân tố con người: Mã được nhà lập trình soạn thảo nên có thể mắc lỗi, và khi đã
được tải lên Blockchain thì khơng thay đổi được.
Chi phí: Do là cơng nghệ mới, địi hỏi đội ngũ sáng chi phí vận tạo lập và hành cao
2.3 Ganache Etherum là gì?
Ganache là một blockchain cá nhân để phát triển ứng dụng phân tán Ethereum và
Corda nhanh chóng. Bạn có thể sử dụng Ganache trong toàn bộ chu kỳ phát triển; cho
phép bạn phát triển, triển khai và thử nghiệm các dApp của mình trong một mơi trường
an tồn và xác định.
Ganache có hai phiên bản: UI và CLI. Ganache UI là một ứng dụng dành cho máy
tính để bàn hỗ trợ cả cơng nghệ Ethereum và Corda. Cơng cụ dịng lệnh, ganachecli (trước đây gọi là TestRPC), có sẵn để phát triển Ethereum.
14
Hình Nghiên cứu tổng quan-9: Một mạng lưới blockchain cá nhân trong Ganache.
15
Chương 3
Triển khai xây dựng hệ thống
3.1 Mô tả hệ thống.
3.1.1 Bài toán về ứng dụng Todo.
Ứng dụng Todo là một hệ thống lưu trữ thông tin về các danh sách cơng việc phải
hồn thành. Nếu như một ứng dụng thơng thường thì tất cả dữ liệu về danh sách việc cần
làm sẽ được lưu trữ ở trên một máy chủ. Còn ứng dụng sẽ kết nối tới máy chủ để lấy
danh sách việc cần làm thơng qua Internet. Vì vậy chỉ cần ai có thể tấn cơng để có quyền
truy cập vào máy chủ thì người đó có thể lấy và chỉnh sữa dữ liệu trên máy chủ đó.
Nhưng ứng dụng blockchain hoạt động khá đặt biệt, tất cả mã và dữ liệu trong danh
sách việc cần làm không nằm trên cùng một máy chủ tập trung. Thay vào đó, nó được
phân phối trên blockchain. Tất cả mã được chia sẽ và không thể thay đổi trên blockchain.
3.1.2 Nguyên lý hoạt động.
Ứng dụng sẽ hoạt động dựa trên một khóa cơng khai và một hợp đồng đã được triển
khai trên mạng blockchain. Khi ta vào ứng dụng và nhấn tạo một task (việc cần làm), thì
ứng dụng sẽ kích hoạt một sự kiện createTask được viết trong hợp đồng. Khi sự kiện này
được kích hoạt thì nó sẽ lấy thông tin của task mà ta đưa vào để tạo nên một cấu trúc dữ
liệu và mặt định trạng thái là chưa hoàn thành. Cấu trúc dữ liệu sẽ được ánh xạ và lưu trữ
lên một khối trên mạng blockchain dựa theo hợp động thơng minh có sẵn và khóa cơng
khai ban đầu. Tiếp theo thì ta chỉ cần đọc dữ liệu từ mạng blockchain và hiển thị lên ứng
dụng, dữ liệu này khơng thể sửa đổi.
Sau khi hồn thành công việc cần làm, ta chỉ cần nhấp chọn đã hồn thành cơng việc
thì ứng dụng tự động kích hoạt sự kiện taskCompleted nằm trong hợp đồng thông minh.
Sự kiện này sẽ tự động ánh xạ task mà chúng ta chọn đến hợp đồng thơng minh chứa task
đó trên blockchain và thay đổi trạng thái của task thành đã hoàn thành.
3.2 Xây dựng hợp đồng thông minh và kết nối vào mobile.
Nhìn vào hình 3.1, có thể thấy được hợp đồng được viết bằng ngơn ngữ lập trình
(Solidity). Đây là một hợp đồng cơ bản về TodoList.
16
Hình Triển khai xây dựng hệ thống-10: Hợp đồng thơng minh được viết bằng Solidity.
Ở hợp đồng thông minh trên, ta có thể thấy được một hợp đồng thơng minh sẽ cần có
một số thứ. Đầu tiên là một số thuộc tính của hợp đồng như taskCount, taskName,
isCompleted. Trong hợp đồng cịn có một số sự kiện hay chức năng của một hợp đồng
được thực hiện khi hợp đồng được sử dụng.
Phần hình bên dưới là khi chúng ta bắt đầu triển khai hợp đồng lên mạng blockchain
cá nhân. Phần này yêu cầu một số thông số như về địa chỉ thông tin để kết nối đến mạng
blockchain và một số thông tin cơ bản.
17
Hình Triển khai xây dựng hệ thống-11: Cấu hình kết nối giữa mobile và flutter.
3.3 Xây dựng hoạt động trên mobile.
Tiếp theo ta thực hiện chạy hợp đồng trên ứng dụng. Đầu tiên ta thực hiện hàm
getAbi() để lấy địa chỉ và thơng tin kết nối của hợp đồng. Cịn hàm getCredentials() được
dùng để lấy thông tin người sử dụng hợp đồng và tạo chữ ký điện tử. Còn hàm
getDeployedConstract() là hàm được sử dụng để lấy hết các thông tin cơ bản của hợp
đồng như các thuộc tính, sự kiện, chức năng của hợp đồng.
18