Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 2 Dӳ liӋu Bitcoin tính tӟLQJj\WKiQJQăP theo blockchain.com [14]: Tәng sӕ Oѭӧng giao dӏch transaction ~ 416m transactions Sӕ Oѭӧng giao dӏch trung bì
Trang 2i
&Ð1*75Î1+ĈѬӦC HOÀN THÀNH TҤI 75ѬӠ1*ĈҤI HӐC BÁCH KHOA ± Ĉ+4*- HCM
Cán bӝ Kѭӟng dүn khoa hӑc: PGS TS HuǤQK7ѭӡng Nguyên
Cán bӝ chҩm nhұn xét 1: PGS TS HuǤnh Trung HiӃu
2 TS NguyӉn Lê Duy Lai
3 PGS TS HuǤnh Trung HiӃu
Trang 3Xây dӵng P{LWUѭӡng mӣ hӛ trӧ khҧo sát dӳ liӋu trên nӅn tҧng blockchain
II. NHIӊM VӨ VÀ NӜI DUNG:
1KLӋPYөFӫDÿӅWjLOj[k\GӵQJP{LWUѭӡQJPӣÿӇKӛWUӧNKҧRViWGӳOLӋXWUrQQӅQWҧQJ EORFNFKDLQWURQJSKҥPYLÿӅWjL VӁ WLӃQ KjQK[k\ GӵQJGӵD WUrQGӳOLӋX FӫD
%LWFRLQ EORFNFKDLQWӯÿy KѭӟQJÿӃQ PӣUӝQJUDÿӕLYӟLFiFEORFNFKDLQkhác
1ӝLGXQJ
;k\GӵQJFѫVӣGӳOLӋXÿӇWUӵFTXDQKyD GӳOLӋXFӫD%LWFRLQEORFNFKDLQ
;k\GӵQJF{QJFөKӛWUӧÿӇNKҧRViWSKkQWtFKÿӕLYӟLFѫVӣGӳOLӋXWKXÿѭӧF
Trang 4iii
LӠI CҦ0Ѫ1 Ĉҫu tiên, tôi xin gӱi lӡi cҧPѫQVkXVҳFÿӃn PGS TS HuǤQK7ѭӡng Nguyên, Thҫy
ÿmWұQWuQKKѭӟng dүn, cung cҩp tài liӋXFNJQJQKѭÿӝng viên, khích lӋJL~Sÿӥ và cho tôi nhӳng ý kiӃQÿyQJJySKӃt sӭc quý báu trong suӕt thӡi gian tôi thӵc hiӋQÿӅ tài này
T{LFNJQJ[LQ gӱi lӡi cҧPѫQFKkQWKjQKWӟi ThS Hӗ Quang Chi BҧR7K6/ѭX4XDQJHuân, ThS NguyӉn Quӕc Thӏnh, các bҥn trong nhóm Bách Khoa Blockchain Labs cùng quý Thҫ\&{ÿDQJF{QJWiFWҥi Khoa Khoa hӑc và Kӻ thuұW0i\ WtQK7Uѭӡng Ĉҥi hӑF%iFK.KRD73+&0 ÿmFyQKӳng góp ý tích cӵFÿӇ tôi hoàn thành luұQYăQ Cuӕi cùng, tôi xin gӱi lӡi cҧPѫQWӟLJLDÿuQKYjEҥQEqÿmÿӝQJYLrQJL~Sÿӥ tôi rҩt nhiӅu trong quá trình thӵc hiӋQÿӅ tài này
TP.HCM, ngày 02 WKiQJQăP
Lê Công
Trang 5iv
TÓM TҲT LUҰ19Ă1
HiӋn nay, công nghӋ EORFNFKDLQÿDQJÿѭӧc nghiên cӭu và áp dөng rӝng rãi vào nhiӅu OƭQKYӵFNKiFQKDXQKѭNLQKWӃ, tài chính, y tӃ, giáo dөc« vì nhӳQJÿһFÿLӇPѭXviӋt cӫa nó Có rҩt nhiӅu blockchain khác nhau ӣ thӡL ÿLӇm hiӋn tҥi và dӳ liӋu cӫa mӛi blockchain QKѭYұy ÿDQJngày mӝWWăQJOrQ KhҧRViWÿiQKJLiSKkQWtFKWKӕng Nrÿӕi vӟi nhӳng dӳ liӋu Qj\ÿDQJWUӣ thành mӝWKѭӟng nghiên cӭXÿѭӧc cӝQJÿӗng khoa hӑc chú ý 7X\QKLrQÿLӅXNKyNKăQNKLEѭӟFÿҫu tiӃp cұn là dӳ liӋu trên các EORFNFKDLQÿӅXÿѭӧFOѭXWUӳ Gѭӟi dҥng thô trên các tұp tin nhӏ SKkQĈLӅu này sӁ gây NKyNKăQFKRYLӋc khҧRViWÿiQKJLiSKkQWtFKYjWKӕng kê dӳ liӋXÿһc biӋWOjÿӕi vӟi các nhà nghiên cӭu chӍ chuyên vӅ dӳ liӋu và không chuyên sâu kӻ thuұt vӅ công nghӋ blockchain
7URQJÿӅ tài này, chúng tôi sӁ ÿӅ xuҩt xây dӵng mӝWP{LWUѭӡng mӣ hӛ trӧ khҧo sát
dӳ liӋu trên nӅn tҧng blockchain bҵng cách trӵc quan hóa dӳ liӋu cӫa blockchain, chuyӇQÿәi dӳ liӋu thô tӯ các tұp tin nhӏ phân sang mӝWFѫVӣ dӳ liӋu khác trӵc quan KѫQ Bên cҥQKÿyFK~QJW{L sӁ phát triӇn mӝt công cө hӛ trӧ khҧo sátÿiQKJLiSKkQtích và thӕng kê dӳ liӋu dӵa trên FѫVӣ dӳ liӋu mӟi
Trang 6v
ABSTRACT
Currently, blockchain technology is being studied and widely applied in various
fields, such as: economy, finance, healthcare, education, because of its preeminent
features There are many different blockchains at present and the data of each
blockchain is increasing continuously over time Surveying, evaluating, analyzing
and statistics on these data are becoming a research direction that has been noticed
by the scientific community However, the data on the blockchain is normally stored
as raw on binary files This will make it difficult to survey, evaluate, analyze and
statistics data, especially for researchers who specialize only in data and
non-technical blockchain technology
In this thesis, we will propose to build an open framework that supports surveying
data on the blockchain platform by visualizing the blockchain's data, converting raw
data from binary files into a new database In addition, we will develop a tool to
support data survey, evaluation, analysis and statistics based on new database
Trang 7vi
LӠ,&$0Ĉ2$1
T{L[LQFDPÿRDQUҵQJÿӅ tài luұQYăQWӕt nghiӋS³Xây dӵng P{LWUѭӡng mӣ hӛ trӧ khҧo sát dӳ liӋu trên nӅn tҧng blockchain´ Oj F{QJ WUuQK QJKLrQ Fӭu cӫa chúng tôi
Gѭӟi sӵ Kѭӟng dүn cӫa PGS TS HuǤQK7ѭӡng Nguyên
Nhӳng tài liӋu tham khҧRWURQJ ÿӅ WjL ÿѭӧc trích dүn hӃt sӭF U} UjQJ ÿ~QJ WKHRnguyên tҳc khoa hӑc KӃt quҧ cӫDÿӅ WjL FKѭDWӯQJ ÿѭӧc công bӕ WUѭӟFÿk\ Gѭӟi bҩt
cӭ hình thӭc nào
TP.HCM, ngày 02 WKiQJQăP
Lê Công
Trang 8vii
MӨC LӨC
&KѭѫQJ7ӘNG QUAN 1
1.1 Giӟi thiӋXÿӅ tài 1
1.2 MөFWLrXÿӕLWѭӧng và phҥm vi nghiên cӭu 4
1.2.1 Mөc tiêu 4
ĈӕLWѭӧng 4
1.2.3 Phҥm vi 4
éQJKƭDNKRDKӑc, thӵc tiӉn 4
1.éQJKƭDNKRDKӑc 4
éQJKƭDWKӵc tiӉn 4
1.4 Cҩu trúc báo cáo 5
&KѭѫQJ1+ӲNG CÔNG TRÌNH NGHIÊN CӬU LIÊN QUAN 6
&KѭѫQJ&Ѫ6Ӣ LÝ THUYӂT 10
3.1 Tәng quan vӅ blockchain 10
3.2 Tәng quan vӅ Bitcoin 11
3.2.1 Bitcoin là gì? 11
3.2.2 Cách vұn hành cӫa Bitcoin 11
3.2.3 Cҩu trúc dӳ liӋu cӫa Bitcoin 13
3.2.4 Cách xây dӵng mӝWQRGHÿӇ ÿӗng bӝ dӳ liӋu 16
&KѭѫQJ0Ð7Ҧ BÀI TOÁN 18
4.1 Mô hình hiӋn tҥi 18
0{KuQKÿӅ xuҩt 21
&KѭѫQJ3+ѬѪ1*3+È3+,ӊN THӴC 24
Trang 9viii
5.1 Xây dӵQJFѫVӣ dӳ liӋu 24
/ѭXOҥi lӏch sӱ giao dӏch cӫDÿӏa chӍ 24
5.1.2 ThiӃt kӃ các bҧng dӳ liӋu 29
5.1.3 Xây dӵQJPRGXOH7UDQVIRUP'DWDÿӇ chuyӇQÿәi dӳ liӋu 31
5.1.4 Sӱ dөQJSJ$GPLQÿӇ thao tác vӟi PostgreSQL 32
5.2 Xây dӵng công cө hӛ trӧ phân tích, khҧo sát dӳ liӋu 35
5.2.1 Nhu cҫu khҧo sát dӳ liӋu 35
&iFWtQKQăQJFӫa công cө 37
&KѭѫQJ.ӂT QUҦ HIӊN THӴ&9¬ĈÈ1+*,È 38
&ѫVӣ dӳ liӋu 38
6.1.1 Bҧng dӳ liӋu khӕi 38
6.1.2 Bҧng dӳ liӋu giao dӏch 38
6.1.3 Bҧng dӳ liӋXÿӏa chӍ 39
7LrXFKtÿiQKJLi 39
ĈiQKJLiWtQKÿ~QJÿҳn cӫa dӳ liӋu 39
ĈiQKJLiWӕFÿӝ truy vҩn dӳ liӋu 42
ĈiQKJLiGXQJOѭӧng dӳ liӋu 46
6.3 Công cө hӛ trӧ 47
&KѭѫQJ.ӂT LUҰN 49
7.1 Tәng kӃt 49
+ѭӟng phát triӇn 49
TÀI LIӊU THAM KHҦO 50
PHҪN LÝ LӎCH TRÍCH NGANG 52
Trang 10ix
MӨC LӨC BҦNG
Bҧng 1.1 Mӝt sӕ thông tin thӕng kê vӅ Bitcoin blockchain 2
Bҧng 1.2 Mӝt sӕ thông tin thӕng kê vӅ các blockchain khác 2
Bҧng 2.1 KӃt quҧ thӕng kê khoҧng 440.000 khӕi dӳ liӋu [7] 7
Bҧng 6.1 So sánh dӳ liӋu khӕi giӳa RPC và PostgreSQL 40
Bҧng 6.2 So sánh dӳ liӋu giao dӏch giӳa RPC và PostgreSQL 41
Bҧng 6.3 So sánh thӡLJLDQWuPNtFKWKѭӟc trung bình khӕi 42
Bҧng 6.4 So sánh thӡi gian tìm sӕ Oѭӧng khӕi trӕng 43
Bҧng 6.5 So sánh thӡi gian tìm nhӳng khӕi có trên 50 giao dӏch 43
Bҧng 6.6 So sánh thӡi gian tìm sӕ Oѭӧng giao dӏch dҥng (1-n) 44
Bҧng 6.7 So sánh thӡi gian tìm các giao dӏch có giá trӏ chuyӇn lӟQKѫQ%7& 44
Bҧng 6.8 So sánh thӡi gian tìm sӕ Oѭӧng giao dӏch có phí giao dӏch bҵng 0 BTC 45
Bҧng 6.9 So sánh thӡLJLDQWuPFiFÿӏa chӍ FyKѫQJLDRGӏch 45
BҧQJ6RViQKGXQJOѭӧng dӳ liӋu khӕi giӳa fullnode và PostgreSQL 46
BҧQJ6RViQKGXQJOѭӧng dӳ liӋu giao dӏch giӳa fullnode và PostgreSQL 46
BҧQJ6RViQKGXQJOѭӧng dӳ liӋXÿӏa chӍ giӳa fullnode và PostgreSQL 47
Trang 11x
MӨC LӨC HÌNH
Hình 1.1 Dӳ liӋX%LWFRLQEORFNFKDLQÿѭӧFOѭXWUӳ Gѭӟi dҥng các tұp tin nhӏ phân 3
Hình 2.1 NhӳQJWLrXFKtÿѭӧFÿӅ xuҩt ÿӇ ÿiQKJLiPӝt public blockchain [9] 8
Hình 3.1 Mô hình các node dӳ liӋu liên kӃt vӟi nhau trong blockchain 10
Hình 3.2 Cách vұn hành cӫa Bitcoin blockchain [3] 12
Hình 3.3 Cҩu trúc cӫa mӝt khӕi dӳ liӋu [3] 13
Hình 3.4 Cҩu trúc cӫa mӝt block header [3] 13
Hình 3.5 Cҩu trúc cӫa mӝt giao dӏch [3] 14
Hình 3.6 Chi tiӃt cӫa mӝt giao dӏch [3] 15
+uQK4XiWUuQK%LWFRLQÿѭӧFOѭXFKX\Ӈn trong hӋ thӕng [3] 15
Hình 3.8 Truy xuҩt dӳ liӋu khӕLWK{QJTXDSKѭѫQJWKӭc RPC 17
Hình 3.9 Truy xuҩt thông tin giao dӏFKWK{QJTXDSKѭѫQJWKӭc RPC 17
Hình 4.1 KiӃn trúc hӋ thӕQJÿӇ truy xuҩt dӳ liӋu Bitcoin blockchain 18
Hình 4.2 Mӝt ví dө vӅ thông tin các khӕi dӳ liӋu cӫa Bitcoin blockchain 20
Hình 4.3 Mô hình mӟLÿѭӧFÿӅ xuҩWÿӇ cҧi thiӋn tӕFÿӝ truy xuҩt dӳ liӋu 21
Hình 5.1 Quá trình xӱ lý dӳ liӋu sӁ OѭXWUӳ cҧ thông tin khӕi, giao dӏFKYjÿӏa chӍ 24 Hình 5.2 Thông tin cӫa mӝt khӕi dӳ liӋu 25
Hình 5.3 Thông tin cӫa mӝt giao dӏch 26
Hình 5.4 Mô tҧ thông tin cӫa mӝt giao dӏch trong mӝt khӕi dӳ liӋu 27
Hình 5.5 Thông tin lӏch sӱ giao dӏch cӫa mӝWÿӏa chӍ 28
Hình 5.6 Mô tҧ thông tin cӫa các khӕi dӳ liӋu có liên kӃt vӟi nhau 30
Hình 5.7 Module Transform Data và quá trình kӃt hӧp vӟi các thành phҫn khác 31
Trang 12xi
Hình 5.8 Giao diӋn tҥRFѫVӣ dӳ liӋu mӟi cӫa pgAdmin4 32
Hình 5.9 ThiӃt kӃ bҧng dӳ liӋu khӕi sӱ dөng công cө pgAdmin4 33
Hình 5.10 ThiӃt kӃ bҧng dӳ liӋu giao dӏch sӱ dөng công cө pgAdmin4 33
Hình 5.11 ThiӃt kӃ bҧng dӳ liӋXÿӏa chӍ sӱ dөng công cө pgAdmin4 34
Hình 5.12 ChӭFQăQJLPSRUWWұp tin csv vào PostgreSQL cӫa công cө pgAdmin4 34 Hình 5.13 Công cө hӛ trӧ khҧo sát dӳ liӋXWѭѫQJWiFYӟi PostgreSQL 37
Hình 6.1 Bҧng dӳ liӋu khӕLÿѭӧFOѭXWURQJ3RVWJUH64/ 38
Hình 6.2 Bҧng dӳ liӋu giao dӏFKÿѭӧFOѭXWURQJ3RVWJUH64/ 38
Hình 6.3 Bҧng dӳ liӋXÿӏa chӍ ÿѭӧFOѭXWURQJ3RVWJUH64/ 39
+uQK7tQKQăQJWUX\Yҩn dӳ liӋu khӕi cӫa công cө 47
+uQK7tQKQăQJWUX\Yҩn thông tin giao dӏch cӫa công cө 47
+uQK7tQKQăQJNKҧo sát, thӕng kê dӳ liӋu cӫa công cө 48
Trang 13Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 1
&KѭѫQJ TӘNG QUAN 1.1 Giӟi thiӋu ÿӅ tài
Blockchain là công nghӋ OѭXWUӳ và truyӅn tҧi thông tin bҵng các khӕLÿѭӧc liên kӃt vӟi nhau và mӣ rӝng theo thӡL JLDQ WKѭӡng ÿѭӧc gӑi là chuӛi khӕi [1] Mӛi khӕi chӭDÿӵng thông tin vӅ các giao dӏch, thӡi gian khӣi tҥRYjÿѭӧc liên kӃt vӟi các khӕi WUѭӟFÿy%ORFNFKDLQÿѭӧc thiӃt kӃ ÿӇ chӕng lҥi sӵ WKD\ÿәi dӳ liӋu Thông tin trong blockchain không thӇ bӏ thay ÿәi và chӍ ÿѭӧc bә VXQJWKrPĈһc biӋt, blockchain có khҧ QăQJWUX\Ӆn tҧi dӳ liӋX Pj NK{QJÿzLKӓi sӵ phө thuӝc vào mӝt bên thӭ EDÿӇ xác nhұn thông tin HӋ thӕng blockchain bao gӗm nhiӅXQ~Wÿӝc lұp có khҧ QăQJ[iFthӵFWK{QJWLQYjGX\WUuÿӝ tin cұy cӫa hӋ thӕng
HiӋn nay, công nghӋ bORFNFKDLQÿDQJÿѭӧc tích cӵc nghiên cӭu và áp dөng rӝng rãi
ӣ nhiӅXOƭQKYӵc khác nhau, bao gӗm: kinh tӃ, tài chính, y tӃ, giáo dөc, Trong lƭnh vӵc kinh tӃ, bORFNFKDLQÿDQJÿѭӧc nghiên cӭXÿӇ áp dөng vào vҩQÿӅ truy xuҩt nguӗn gӕc nông sҧQÿҧm bҧo thông tin trong quá trình sҧn xuҩW ÿѭӧc minh bҥch khi sҧn phҭPÿӃQWD\ QJѭӡi tiêu dùng 7URQJOƭQKYӵc giáo dөc, blockchain có thӇ ÿѭӧc áp dөQJÿӇ OѭXWUӳ các thông tin bҵng cҩp, chӭng chӍ nhҵm mөFÿtFKFKӕng giҧ mҥo các loҥi bҵng cҩp, chӭng chӍ 7URQJOƭQKYӵc y tӃ, bORFNFKDLQÿDQJÿѭӧc nghiên cӭXÿӇ OѭXWUӳ các hӗ VѫEӋnh án nhҵPWăQJWtQKEҧo mұt, thuұn tiӋn cho viӋc OѭXWUӳ và truy xuҩt thông tin Riêng vӅ OƭQKYӵc tài chính, công nghӋ blockchain chính là nӅn tҧng
ÿӇ tҥo ra nhӳQJÿӗng tiӅn mã hóa ӣ thӡLÿLӇm hiӋn tҥi QKѭ%itcoin, Bitcoin Cash, Litecoin (WKHUHXP «
Mӝt trong nhӳng triӃt lý quan trӑng cӫa công nghӋ blockchain là không thӇ WKD\ÿәi (xóa, sӱa) dӳ liӋX ÿmÿѭӧc ghi vào hӋ thӕng [1] nên nhӡ vұy, nó tҥR ÿѭӧc lòng tin FKRQJѭӡi sӱ dөng hӋ thӕng Bên cҥQKÿyQJѭӡi dùng không nhӳng an tâm vӅ tính minh bҥch cӫa dӳ liӋu mà các giao dӏFKFzQÿѭӧc thӵc hiӋn mӝt cách nhanh chóng Tҩt cҧ nhӳng yӃu tӕ này làm cho blockchain ÿѭӧF WLQ Wѭӣng, chính vì vұy, nhӳng giao dӏFKÿѭӧc tiӃn hành trên các EORFNFKDLQÿDQJWUӣ nên ngày mӝt nhiӅXKѫQ Bitcoin chính là mӝt trong nhӳng thӃ hӋ ÿҫu tiên cӫa blockchain, bҳWÿҫu vұn hành
tӯ QăP [3], trҧLTXD QăPKRҥWÿӝQJOѭӧng dӳ liӋXQj\ÿDQJQJj\FjQJWăQJOrQÿһc biӋt là trong khoҧng 1-QăPgҫn ÿk\
Trang 14Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 2
Dӳ liӋu Bitcoin tính tӟLQJj\WKiQJQăP theo blockchain.com [14]:
Tәng sӕ Oѭӧng giao dӏch (transaction) ~ 416m transactions
Sӕ Oѭӧng giao dӏch trung bình trong mӝt khӕi ~ 2.4k transactions
Sӕ Oѭӧng giao dӏch trung bình trong mӝt ngày ~ 373k transactions
Tәng sӕ OѭӧQJÿӏa chӍ (address) ~ 593k addresses
Bҧng 1.1 Mӝt sӕ thông tin thӕng kê vӅ Bitcoin blockchain
Bên cҥQKÿyFzQFyUҩt nhiӅu nhӳng blockchain khác FNJQJFyOѭӧng giao dӏch lӟn ÿѭӧc thӵc hiӋn mӛi ngj\QKѭ%LWFRLQ &DVK/LWHFRLQ (WKHUHXP« Dӳ liӋu thӕng
kê theo bitinfocharts.com [15] ngày 24 tháng 05 QăP
Blockchain Sӕ Oѭӧng khӕi Sӕ Oѭӧng giao dӏch mӛi giӡ
Trang 15Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 3
Mӝt sӕ câu hӓi có thӇ ÿѭӧc quan tâm QKѭ>]:
+ ThӡLJLDQWUXQJEuQKÿӇ sinh ra mӝt khӕi dӳ liӋu mӟi là bao lâu?
+ Có trung bình bao nhiêu giao dӏch trong mӝt khӕi?
+ Sӕ Oѭӧng và kích cӥ cӫa các giao dӏFKWKD\ÿәLQKѭWKӃ nào theo thӡi gian?
+ Phí cӫa mӝt giao dӏch là khoҧng bao nhiêu?
Xuҩt phát tӯ vҩQÿӅ Qj\ÿӅ tài muӕn tұp trung vào viӋc trӵc quan hóa dӳ liӋu cӫa blockchain bҵng cách chuyӇQÿәi dӳ liӋu tӯ dҥng các tұp tin nhӏ phân sang mӝWFѫVӣ
dӳ liӋu khác Bên cҥQK ÿyÿӅ WjL FNJQJ VӁ phát triӇn mӝt công cө hӛ trӧ thӕng kê, phân tích dӳ liӋu dӵDWUrQFѫVӣ dӳ liӋXÿm[k\ GӵQJÿѭӧc
ViӋF Fyÿѭӧc mӝWFѫ sӣ dӳ liӋu mӟi trӵc quan KѫQ và mӝt công cө phân tích, thӕng
kê FKtQKOjP{LWUѭӡng mӣ ÿӇ hӛ trӧ khҧo sát dӳ liӋu cӫa blockchain
Hình 1.1 Dӳ liӋX%LWFRLQ EORFNFKDLQÿѭӧFOѭXWUӳ Gѭӟi dҥng các tұp tin nhӏ phân
Trang 16Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 4
1.2 Mөc tiêuÿӕLWѭӧng và phҥm vi nghiên cӭu
1.2.1 Mөc tiêu
ĈӅ tài này sӁ KѭӟQJÿӃn mӝt mөc tiêu chung là xây dӵng mӝt bӝ các công cө, mӝt P{LWUѭӡng mӣ hӛ trӧ cho viӋc khҧo sát, phân tích dӳ liӋXEORFNFKDLQĈӅ tài cҫQÿiSӭng mӝt sӕ mөFWLrXQKѭVDX
+ Xây dӵng FѫVӣ dӳ liӋu dӵa trên các giao dӏch cӫa mӝt blockchain cө thӇ, trӵc quan hóa dӳ liӋu cӫa blockchain tӯ dӳ liӋu thô (các tұp tin nhӏ phân)
+ Xây dӵng công cө hӛ trӧ khҧo sát, phân tích ÿӕi vӟLFѫVӣ dӳ liӋXWKXÿѭӧc, tӯ ÿytҥo mӝWP{LWUѭӡng mӣ hӛ trӧ khҧo sát dӳ liӋu cӫa blockchain
KӃt quҧ nghiên cӭu cӫDÿӅ tài là công cө hӛ trӧ ÿҳc lӵc cho viӋc phân tích, khҧo sát, ÿiQKJLiYà thӕQJNrÿӕi vӟi dӳ liӋu cӫa blockchain nói chung và Bitcoin blockchain
Trang 17Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 5
nói riêng Các ÿӅ tài nghiên cӭu liên quan có thӇ sӱ dөng nhӳng kӃt quҧ này ÿӇ tiӃp tөc nghiên cӭu, phát triӇn
1.4 Cҩu trúc báo cáo
&KѭѫQJ Giӟi thiӋu tәng quan vӅ ÿӅ tài, mөFWLrXÿӕLWѭӧQJSKѭѫQJSKiSQJKLrQcӭXêQJKƭDNKRDKӑFYjêQJKƭDWKӵc tiӉn cӫDÿӅ tài
&KѭѫQJ Trình bày vӅ nhӳng công trình nghiên cӭXOLrQTXDQÿӃn blockchain và Bitcoin blockchain mà cӝQJÿӗng khoa hӑFÿmF{Qg bӕ
&KѭѫQJ Giӟi thiӋXFѫVӣ lý thuyӃt vӅ EORFNFKDLQFiFÿһFÿLӇm cӫa blockchain; giӟi thiӋu vӅ Bitcoin blockchain, cҩu trúc dӳ liӋX FNJQJ QKѭ FiFK Yұn hành cӫa blockchain này
&KѭѫQJ Mô tҧ EjLWRiQPjÿӅ tài muӕn giҧi quyӃt, kiӃn trúc hӋ thӕng hiӋn tҥi, nhӳQJQKѭӧFÿLӇm cҫn khҳc phөc, tӯ ÿyÿӅ xuҩt mô hình mӟi
&KѭѫQJ Trình bày vӅ SKѭѫQJSKiSKLӋn thӵFFiFEѭӟFÿӇ trӵc quan hóa dӳ liӋu cӫa Bitcoin blockchain và xây dӵng công cө hӛ trӧ khҧo sát, phân tích dӳ liӋu
&KѭѫQJ Trình bày vӅ kӃt quҧ ÿҥWÿѭӧc, bao gӗPFѫVӣ dӳ liӋu mӟi và công cө
hӛ trӧ; ÿiQKJLiFѫVӣ dӳ liӋu mӟi dӵa trên các tiêu chí vӅ WtQKÿ~QJÿҳn cӫa dӳ liӋu, tӕFÿӝ truy vҩQYjGXQJOѭӧng dӳ liӋu cҫQOѭXWUӳ
&KѭѫQJ Tәng kӃWYjÿѭDUDKѭӟng phát triӇQFKRÿӅ tài
Trang 18Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 6
&KѭѫQJ NHӲNG CÔNG TRÌNH NGHIÊN CӬU
LIÊN QUAN
Mӝt nhóm tác giҧ QJѭӡi Israel QăP [5] ÿmWҧi vӅ mӝt tұp dӳ liӋu cӫa 180.000 khӕLEORFN ÿҫu tiên cӫa Bitcoin blockchain, tӯ website http://blockexplorer.com - Gѭӟi dҥng 180.000 tұp tin HTML Sau khi xӱ lý nhӳng tұp tin này thì hӑ ÿm[k\Gӵng ÿѭӧc mӝWÿӗ thӏ biӇu diӉn mӕi quan hӋ gӱi/nhұn Bitcoin giӳa các ÿӏa chӍ
ĈӅ tài này quan tâm tӟi hai vҩQÿӅ:
+ Thӭ nhҩt, hӑ giҧ ÿӏnh rҵng, mӝWQJѭӡi dùng (mӝt thӵc thӇ) có thӇ sӣ hӳu nhiӅXÿӏa chӍ Bitcoin khác nhau, dӵa vào tұp dӳ liӋXWKXÿѭӧc, hӑ sӁ sӱ dөng giҧi thuұt Union-Find [6@ÿӇ [iF ÿӏnh xem nhӳQJ ÿӏa chӍ nào có khҧ QăQJVӁ FQJÿѭӧc sӣ hӳu bӣi mӝWQJѭӡi dùng trên hӋ thӕng Bitcoin blockchain
+ Thӭ hai, nhóm tác giҧ này sӁ quan sát nhӳng giao dӏFK FyOѭӧng Bitcoin lӟQ 50.000 BLWFRLQ SKkQWtFK[HP OѭӧQJ %LWFRLQ Qj\ ÿӃn tӯ ÿkXYjVӁ ÿѭӧc chuyӇQÿLÿkX7ӯ ÿy hӑ phát hiӋn ra nhӳng giao dӏch này có nhӳQJÿLӇPWѭѫQJ ÿӗng nhau Hoһc là nhӳQJOѭӧng Bitcoin này sӁ ÿѭӧc chuyӇQÿLTXDKjQJWUăPQKӳng giao dӏch khác nhau trong thӡi gian ngҳQÿӃn mӝWÿӏa chӍ khác, hoһc là sӁ ÿѭӧc chuyӇn qua rҩt nhiӅu nhӳQJÿӏa chӍ trunJJLDQVDXÿyTXD\OҥLÿӏa chӍ EDQÿҫu,
KӃt quҧ thӵc nghiӋPÿӅ WjLWUrQÿm[k\GӵQJÿѭӧc mӝWÿӗ thӏ dӳ liӋu mô tҧ mӕi quan
hӋ giӳD FiFÿӏa chӍ, thӵc hiӋn truy vӃWÿӕi vӟi nhӳng giao dӏFKFyOѭӧng Bitcoin lӟn YjWuPUDÿѭӧFÿLӇm chung cӫa các giao dӏch này
Tuy nhiên, do lҩy dӳ liӋu thông tin giao dӏch tӯ mӝt website khác nên dӳ liӋXFKѭD
ÿӫ lӟQÿӅ tài chӍ tұp trung mô hình hóa dӳ liӋXWUrQJyFÿӝ mӕi quan hӋ giӳDFiFÿӏa chӍFKѭDFyGӳ liӋu mô tҧ vӅ các khӕi và các giao dӏch
Mӝt nghiên cӭu khác tӯ nhóm tác giҧ QJѭӡi Trung Quӕc QăP [7@ ÿm Wӵ xây dӵng mӝt node kӃt nӕi vӟi hӋ thӕng mҥQJ%LWFRLQ ÿӇ ÿӗng bӝ dӳ liӋu Hӑ ÿӗng bӝ ÿѭӧc khoҧQJKѫQ NKӕi dӳ liӋX6DXÿyWLӃn hành trích xuҩt dӳ liӋu theo khӕi
và theo các giao dӏFKÿӇ ÿѭDYjRFiFFѫVӣ dӳ liӋu quan hӋ6DXNKLÿmFyÿѭӧc nhӳng FѫVӣ dӳ liӋu này, hӑ tiӃn hành thӵc hiӋn mӝt sӕ thӕQJNrFѫEҧn và cho ra kӃt quҧ QKѭVDX:
Trang 19Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 7
Average num of transaction per block 405
Average num of input per transaction 2,56
Average num of output per transaction 2,80
Bҧng 2.1 KӃt quҧ thӕng kê khoҧng 440.000 khӕi dӳ liӋu [7]
KӃt quҧ thӵc nghiӋP ÿӅ WjL ÿm Wӵ xây dӵQJ ÿѭӧc mӝt node kӃt nӕi vӟi hӋ thӕng
%LWFRLQÿӇ ÿӗng bӝ dӳ liӋXÿҧm bҧo tính toàn vҽn cӫa tұp dӳ liӋXÿҫu vào Bên cҥnh ÿyÿӅ tài tұp trung khai thác nhӳng thông tin liên quan tӟi khӕi và giao dӏFKÿӇ Kѭӟng ÿӃn mӝt góc nhìn khác so vӟLÿӅ tài ӣ trên
Tuy nhiên, nhӳng thông tin thu thұSÿѭӧc vӅ khӕi, giao dӏFKFNJQJQKѭQKӳQJÿiQKgiá thӕQJNrFzQWѭѫQJÿӕLÿѫQJLҧn
HaL ÿӅ tài trên là nhӳQJ ÿӅ tài quan tâm tӟi dӳ liӋu ÿѭӧc vұn hành bên trong cӫa blockchain nói chung và Bitcoin blockchain nói riêng Mӝt sӕ ÿӅ WjL NKiF FNJQJFynhӳng nghiên cӭu vӅ EORFNFKDLQ Yj %LWFRLQ EORFNFKDLQ QKѭQJ WUrQ QKӳQJ JyF ÿӝ khác
Trang 20Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 8 Hình 2.1 NhӳQJ WLrXFKtÿѭӧFÿӅ xuҩWÿӇ ÿiQKJLiPӝt public blockchain [9]
<DQJ/XQăP019 [8] tұp trung vào viӋc giӟi thiӋu blockchain, mô tҧ FiFÿһFÿLӇm ѭXYLӋt FNJQJQKѭSKkQORҥi blockchain Bên cҥQKÿyÿӅ WjLFzQSKkQWtFKÿӅ xuҩt viӋc ӭng dөng blockchain kӃt hӧp vӟi các mҧng công nghӋ NKiFQKѭ,R76HFXULW\Data Management hoһc các OƭQKYӵFNKiFQKѭ+HDOWK &DUH'DWD3URYHQDQFH Huimin Tang và các cӝng sӵ QăP [9] tiӃQKjQKÿiQKJLiYj[Ӄp hҥng các public blockchain hiӋn tҥi dӵa trên mӝt sӕ WLrX FKtPjÿӅ WjL ÿѭDUD0өc tiêu cӫDÿӅ tài là xӃp hҥng các public blockchain giúp hӛ trӧ ra quyӃWÿӏnh cho các nhà nghiên cӭu nên chӑQSXEOLFEORFNFKDLQQjRÿӇ nghiên cӭu, phát triӇn
+uQKErQGѭӟi mô tҧ nhӳQJWLrXFKtPjÿӅ WjLÿmÿӅ xuҩt
Trang 21Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 9
KӃt quҧ SKkQWtFKÿiQKJLi FӫDÿӅ tài chӍ ra rҵng: Bitcoin, Ethereum và EOS chính
là 3 public blockchain tӕt nhҩt dӵDWKHRFiFWLrXFKtÿmÿӅ xuҩt
Mӝt nghiên cӭu thú vӏ cӫa Abdulla AlshDPVL Yj3URI3HWHU$QGUDVQăP [10] ÿLӅu tra nhұn thӭc và kinh nghiӋm cӫDQJѭӡi dùng vӅ hӋ thӕng thanh toán kӻ thuұt
sӕ ҭn danh (Bitcoin) và ҧQKKѭӣng cӫDQyÿӕi vӟLQJѭӡi dùng vӅ khҧ QăQJVӱ dөng, tính bҧo mұt so vӟi các hӋ thӕng thanh toán không ҭn GDQKNKiFQKѭWKҿ tín dөng/thҿ ghi nӧ KӃt quҧ cӫDÿӅ WjLOjÿDVӕ QJѭӡi dùng hiӋn nay vүn quen vӟi hӋ thӕng thanh toán không ҭQGDQKYjFKѭDbiӃWÿӃn hoһc không thӵc sӵ hiӇu rõ vӅ FiFѭXÿLӇm cӫa mӝt hӋ thӕng thanh toán kӻ thuұt sӕ ҭn danh
Xin Zhang và các cӝng sӵ QăP [11] tìm các nhân tӕ ҧQKKѭӣQJÿӃn giá Bitcoin
và phân tích mӕi quan hӋ WѭѫQJ TXDQJLӳa giá Bitcoin so vӟLJLi YjQJYjJLi ÿ{OD,
sӱ dөQJ SKѭѫQJ SKiS '0&$ detrending moving average cross-correlation analysis) Ĉk\OjPӝt trong sӕ rҩt nhiӅu nhӳQJÿӅ tài tұp trung vào viӋc phân tích giá Bitcoin
Giray Gozgor và các cӝng sӵ QăP [12] ÿmphân tích mӕi quan hӋ giӳa lӧi nhuұn cӫa Bitcoin và chӍ sӕ TPI (Trade Policy Uncertainty) ӣ Mӻ WURQJJLDL ÿRҥn tӯ tháng
ÿӃn tháng 08/2018 bҵng cách sӱ dөng các kӻ thuұt QKѭ: WPS (Wavelet Power Spectrum), WTC (Wavelet Coherency) và XWT (Cross-Wavelet)
Dionisis Philippas và các cӝng sӵ QăP [13] tìm hiӇu mӕi quan hӋ giӳa giá Bitcoin và các tín hiӋu thông tin tӯ Twitter và Google Trends Các kӃt quҧ thӵc nghiӋm cӫDÿӅ tài chӍ ra rҵng, JLi %LWFRLQ ÿѭӧFWK~Fÿҭy mӝt phҫn bӣLWiFÿӝng cӫa FiFSKѭѫQJWLӋn truyӅn thông
Trong phҥPYLÿӅ tài này, chúng tôi chӍ tұp trung vào nghiên cӭu nhӳng dӳ liӋu thӵc
sӵ ÿѭӧc vұn hành trong blockchain Chính vì vұy, xuҩt phát tӯ nhӳng hҥn chӃ cӫa ÿӅ tài [5] và [7]ÿӅ tài này sӁ tұp trung xây dӵng 3 bҧng dӳ liӋu chӭa toàn bӝ thông tin
có thӇ rút trích ra tӯ mӝt blockchain, bao gӗm: thông tin cӫa khӕi, giao dӏFKYjÿӏa chӍ Bên cҥQKÿyÿӅ WjL FNJQJVӁ xây dӵng mӝt công cө ÿӇ hӛ trӧ SKkQWtFKÿiQKJLinhӳng thông tin thu thұSÿѭӧc
Trang 22Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 10
Hình 3.1 Mô hình các node dӳ liӋu liên kӃt vӟi nhau trong blockchain
&KѭѫQJ &Ѫ6Ӣ LÝ THUYӂT 3.1 Tәng quan vӅ blockchain
Blockchain là công nghӋ OѭXWUӳ và truyӅn tҧi thông tin bҵng các khӕLÿѭӧc liên kӃt vӟi nhau và mӣ rӝng theo thӡLJLDQWKѭӡng ÿѭӧc gӑi là chuӛi khӕi [1]WѭѫQJWӵ cuӕn
sә cái kӃ toán cӫa mӝWF{QJW\7URQJWUѭӡng hӧp này, blockchain là mӝt cuӕn sә cái
kӃ toán hoҥWÿӝQJWURQJOƭQK Yӵc kӻ thuұt sӕ HӋ thӕng blockchain bao gӗm nhiӅu node dӳ liӋX ÿӝc lұp có khҧ QăQJ[iF WKӵc thông tin mà không cҫn thông qua mӝt bên trung gian nào khác Dӳ liӋu cӫa blockchain không thӇ bӏ WKD\ÿәi và chӍ ÿѭӧc
bә sung thêm khi có sӵ ÿӗng thuұn cӫa các node trong hӋ thӕng Blockchain có tính sҹn sàng cao vì ngay cҧ khi mӝt phҫn cӫa hӋ thӕng bӏ sөSÿә thì nhӳng node dӳ liӋu khác vүn có thӇ tiӃp tөc duy trì hoҥWÿӝng cӫa hӋ thӕng [2]
HӋ thӕng blockchain có thӇ chia thành 3 loҥi chính, bao gӗm [2]:
+ Public blockchain: bҩt kǤ DLFNJQJFyTX\ӅQÿӑc và ghi dӳ liӋu, quá trình xác thӵc giao dӏch trên blockchain này ÿѭӧc thӵc hiӋn bӣi các miner và bҩt cӭ node dӳ liӋu nào tham gia vào hӋ thӕQJFNJQJFyWKӇ trӣ thành miner nӃXQKѭVӭc mҥnh tính toán
ÿӫ lӟn
+ Private blockchain: chӍ nhӳng QJѭӡi dùng ÿѭӧc quyӅn tham gia vào hӋ thӕng mӟi
có thӇ ÿӑc dӳ liӋu, quyӅn ghi dӳ liӋu sӁ ÿѭӧc giao cho mӝt sӕ node dӳ liӋu nhҩWÿӏnh, các node dӳ liӋXÿѭӧc chӍ ÿӏnh sӁ quyӃWÿӏnh mӑi tha\ÿәi trên blockchain này
Trang 23Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 11
+ Consortium: là mӝt dҥng blockchain kӃt hӧSFiF ÿһFÿLӇm cӫa public và private blockchain, quyӅQÿӑc dӳ liӋu có thӇ dành cho bҩt kǤ ai hoһc chӍ giӟi hҥn cho mӝt
sӕ QJѭӡi dùng, quyӅn ghi dӳ liӋu thì luôn bӏ giӟi hҥn
3.2 Tәng quan vӅ Bitcoin
3.2.1 Bitcoin là gì?
Bitcoin là thӃ hӋ tiӅQ Pm KyD ÿҫX WLrQ ÿѭӧF SKiW PLQK QăP Eӣi Satoshi Nakamoto [3] thông qua mӝt bài báo khoa hӑFFy WrQ Oj ³%LWFRLQ $ 3HHU-to-Peer (OHFWURQLF &DVK6\VWHP´6DXÿy%LWFRLQÿѭӧc phát triӇQQKѭOjPӝt mã nguӗn mӣ
và bҳWÿҫu vұQKjQKYjRQăP 6DWRVKL1DNDPRWRFKӍ là bí danh cӫa mӝt tә chӭc hoһc mӝWFiQKkQQjRÿyÿӃn nay cái tên này vүn còn là mӝt bí ҭQ7KiQJ QăP
2011, Satoshi Nakamoto ngӯng phát triӇn mã nguӗn cӫD%LWFRLQ ÿӇ lҥi trách nhiӋm ÿyFKRFӝQJÿӗng [3]
Bitcoin có cách hoҥW ÿӝng khác hҷn so vӟi các loҥi tiӅn tӋ truyӅn thӕng, không có mӝt ngân hàng trunJѭѫQJQjRTXҧn lý và hӋ thӕng hoҥWÿӝng dӵa trên mӝt giao thӭc mҥng ngang hàng trên Internet [3] Bitcoin sӱ dөng công nghӋ EORFNFKDLQ ÿӇ vұn hành hӋ thӕng, ciF QJѭӡi dùng Bitcoin sӁ WUDRÿәi trӵc tiӃp vӟi nhau và không cҫn phҧi thông qua mӝt trung gian nào khác
Bên cҥQKÿyVRYӟi tiӅn tӋ truyӅn thӕQJWKu%LWFRLQ FNJQJFyQKLӅXÿһFÿLӇPѭXYLӋt KѫQYӅ ÿӝ tin cұy, tӕFÿӝ giao dӏch và chi phí giao dӏch MӛL QJѭӡi dùng trong hӋ thӕQJ%LWFRLQ ÿӅu có mӝt khóa bí mұW GRQJѭӡi dùng tӵ quҧn lý, không phө thuӝc vào bҩt cӭ mӝt tә chӭc, cá nhân nào 7URQJNKLÿyQӃu mӝt cá nhân sӱ dөng dӏch vө cӫa ngân hàng, sӁ luôn tӗn tҥi nhӳng rӫi ro nhҩWÿӏQKNKLFѫ Vӣ dӳ liӋu bӏ tҩn công hoһc ngân hàng phá sҧn Bên cҥQKÿyQӃXQKѭTXiWUuQKJӱi và nhұn tiӅn liên ngân KjQJ FNJQJ QKѭ OLrQ OөF ÿӏa mҩt rҩt nhiӅu thӡi gian YjFKL SKt FNJQJ WăQJ OrQ WKHRkhoҧQJFiFKÿӏa lý thì nhӳng giao dӏFKÿѭӧc tiӃn hành trên hӋ thӕng Bitcoin diӉn ra QKDQKKѫQFKLSKtJLDRGӏch chӍ phө thuӝc vào bҧn chҩt cӫa giao dӏch, tҥo nên sӵ EuQKÿҷng cho nhӳnJQJѭӡi tham gia hӋ thӕng và xóa bӓ mӑi rào cҧn vӅ ÿӏa lý 3.2.2 Cách vұn hành cӫa Bitcoin
+uQKErQGѭӟi mô tҧ mӝt bӭc tranh tәng quan vӅ cách mà Bitcoin blockchain ÿDQJvұn hành
Trang 24Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 12
Hình 3.2 Cách vұn hành cӫa Bitcoin blockchain [3]
Mӝt hӋ thӕng Bitcoin blockchain bao gӗm nhiӅu node dӳ liӋu, phân bӕ rӝng khҳp NhӳQJQJѭӡi dùng trong hӋ thӕng giӳ mӝt khóa bí mұt, khóa bí mұWQj\ÿѭӧc dùng
ÿӇ chӭng minh quyӅn sӣ hӳX%LWFRLQNKLQJѭӡi dùng muӕn tҥo mӝt giao dӏFKÿӇ gӱi
%LWFRLQÿӃn mӝWQJѭӡi dùng khác6DXÿyFiFJLDRGӏch sӁ ÿѭӧc gӱi lên hӋ thӕng và chӡ xác thӵc [3]
Trong hӋ thӕng, có nhӳng node dӳ liӋXÿyQJYDLWUzxác thӵc các giao dӏch và tham gia vào quá trình tҥo ra mӝt khӕi dӳ liӋu mӟi, ÿѭӧc gӑi là miner [3] Sau khi hoàn tҩt viӋc xác thӵc các giao dӏch và tҥo ra mӝt khӕi dӳ liӋu mӟi, miner sӁ nhұQÿѭӧc phҫn WKѭӣng tӯ hӋ thӕng và thông tin vӅ khӕi dӳ liӋu mӟi này sӁ ÿѭӧc truyӅn tҧLÿӃn toàn
bӝ các node dӳ liӋu còn lҥi trong hӋ thӕng [3] ĈyOjWRjQEӝ quá trình vұn hành cӫa Bitcoin blockchain
Tҥi thӡLÿLӇPWKiQJQăP phҫQWKѭӣng cho miner khi mӝt khӕi dӳ liӋu mӟi ÿѭӧc tҥo ra là 12,5 Bitcoin [15], thӡLJLDQWUXQJEuQKÿӇ tҥo ra mӝt khӕi dӳ liӋu mӟi
là 10 phút [4] Mһc dù Bitcoin sӁ ÿѭӧc sinh ra liên tөF ÿӇ WKѭӣng cho các miner QKѭQJVӕ Oѭӧng Bitcoin là có giӟi hҥQ7KHRTX\ÿӏnh cӫa hӋ thӕng, sӁ có tәng cӝng
21 triӋX ÿӗQJ%LWFRLQ ÿѭӧc sinh ra và dӵ kiӃn sӁ ÿҥW ÿӃn con sӕ này vào cuӕLQăP
2140 [3]
Trang 25Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 13
Hình 3.3 Cҩu trúc cӫa mӝt khӕi dӳ liӋu [3]
Hình 3.4 Cҩu trúc cӫa mӝt block header [3]
3.2.3 Cҩu trúc dӳ liӋu cӫa Bitcoin
Dӳ liӋu cӫa Bitcoin gӗm nhiӅu khӕi dӳ liӋu liên kӃt vӟi nhau, trong mӛi khӕi dӳ liӋu
có thông tin vӅ các giao dӏch và trong mӛi giao dӏch sӁ có thông tin cө thӇ vӅ ÿӏa chӍ QJѭӡi gӱLÿӏa chӍ QJѭӡi nhұn và sӕ OѭӧQJ%LWFRLQÿѭӧc giao dӏch
+uQKErQGѭӟi là cҩu trúc cӫa mӝt khӕi dӳ liӋu
Cҩu trúc cӫa mӝt khӕi dӳ liӋu bao gӗm các thành phҫn sau:
%ORFN6L]HNtFKWKѭӟc khӕLÿѭӧFWtQKWKHRÿѫQYӏ bytes
+ Block Header: phҫn thông tin gҳn vӟi mӛi khӕi dӳ liӋu, bao gӗm mӝt sӕ WUѭӡng thông tin sӁ ÿѭӧc trình bày ӣ phҫn tiӃp theo
+ Transaction Counter: sӕ Oѭӧng giao dӏch trong khӕi
+ Transactions: danh sách cө thӇ cӫa các giao dӏch trong khӕi
+uQKErQGѭӟi là cҩu trúc cӫa Block Header
Trang 26Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 14
Hình 3.5 Cҩu trúc cӫa mӝt giao dӏch [3]
Cҩu trúc cӫa mӝt Block Header bao gӗm các thành phҫn sau:
+ Version: con sӕ thӇ hiӋn phiên bҧn hiӋn tҥi cӫa Bitcoin blockchain
+ Previous Block Hash: giá trӏ hash cӫa khӕLWUѭӟFÿy
+ Merkle Root: giá trӏ hash ÿѭӧc hình thành tӯ các giao dӏch trong khӕi
+ Timestamp: thӡLÿLӇm (tính theo unix time) khӕi dӳ liӋXÿѭӧc sinh ra
+ Difficulty Target: ÿӝ NKyÿѭӧc sӱ dөQJÿӇ tҥo ra khӕi dӳ liӋu
+ Nonce: sӕ ngүXQKLrQÿѭӧc sӱ dөQJÿӇ tҥo ra khӕi dӳ liӋu
+uQKErQGѭӟi là cҩu trúc cӫa mӝt giao dӏch
Cҩu trúc cӫa mӝt giao dӏch bao gӗm các thành phҫn sau:
+ Version: phiên bҧn cӫa luұWÿӗng thuұn ӣ thӡLÿLӇm giao dӏFKÿѭӧc xác thӵc + Input Counter: sӕ OѭӧQJÿҫu vào cӫa giao dӏch
+ Inputs: thông tin cө thӇ vӅ GDQKViFKÿҫXYjRGDQKViFKQJѭӡi gӱi) cӫa giao dӏch + Output Counter: sӕ OѭӧQJÿҫu ra cӫa giao dӏch
+ Outputs: thông tin cө thӇ vӅ GDQKViFKÿҫXUDGDQKViFKQJѭӡi nhұn) cӫa giao dӏch + Locktime: sӕ thӭ tӵ cӫa khӕi dӳ liӋu chӭa giao dӏch hoһc thӡL ÿLӇm mà khӕi dӳ liӋXQj\ÿѭӧc sinh ra
Trang 27Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 15
Hình 3.6 Chi tiӃt cӫa mӝt giao dӏch [3]
Hình 3.7 4XiWUuQK%LWFRLQ ÿѭӧFOѭXFKX\Ӈn trong hӋ thӕng [3]
Mӝt ví dө trӵFTXDQKѫQYӅ thông tin cӫa mӝt giao dӏch
Giao dӏch trên có 4 ÿҫu vào, 3 ÿҫu ra, tәng giá trӏ gӱLÿLOj %7& (Bitcoin), tәng giá trӏ nhұQÿѭӧc là 0.5 BTC, phí giao dӏch là 0.05 BTC
Mӝt ví dө khác mô tҧ chi tiӃt quá trình %LWFRLQ ÿѭӧFOѭXFKX\Ӈn trong hӋ thӕng
Thông tin vӅ ÿҫu vào cӫa mӝt giao dӏch bao gӗm: giá trӏ hash cӫa giao dӏFKWUѭӟFÿy
và vӏ trí trong giao dӏFKPjÿӏa chӍ ÿmQKұQÿѭӧc tiӅn
Trang 28Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 16
Có thӇ chia giao dӏch thành 2 loҥi chính:
+ Giao dӏch coinbase [3]: giao dӏFKÿѭӧFGQJÿӇ WKѭӣng Bitcoin cho miner khi tham gia vào quá trình sinh ra khӕi dӳ liӋu mӟi, mӛi khӕi dӳ liӋu chӍ có mӝt giao dӏch FRLQEDVHÿҫXYjROjFRLQEDVHOѭӧQJ%LWFRLQ ÿѭӧc sinh ra tӯ hӋ thӕQJ Yjÿҫu ra là ÿӏa chӍ PLQHUĈӅ tài này không tұp trung quan sát nhӳng giao dӏch coinbase nên nhӳng giao dӏch này sӁ ÿѭӧc bӓ qua
+ Giao dӏch thông tKѭӡng [3]: giao dӏFK FyÿҫXYjRYjÿҫXUDOj ÿӏa chӍ cӫDQJѭӡi dùng trong hӋ thӕng Loҥi giao dӏch này có thӇ ÿѭӧc chia nhӓ thành nhiӅu loҥi khác nhau dӵa theo sӕ OѭӧQJÿҫXYjRYjÿҫu ra tham gia trong giao dӏch, bao gӗm:
- Loҥi giao dӏch 1 - 1: gӗPÿҫu YjRYjÿҫu ra
- Loҥi giao dӏch 1 - n: gӗPÿҫu vào và nhiӅXÿҫu ra
- Loҥi giao dӏch n - 1: gӗm nhiӅXÿҫXYjRYjÿҫu ra
- Loҥi giao dӏch n - n: gӗm nhiӅXÿҫu vào và nhiӅXÿҫu ra
3.2.4 Cách xây dӵng mӝWQRGHÿӇ ÿӗng bӝ dӳ liӋu
ĈӇ thu thұSÿѭӧc dӳ liӋu tӯ Bitcoin blockchain, chúng ta cҫn phҧi xây dӵng mӝt node dӳ liӋu kӃt nӕi vӟi hӋ thӕQJÿӇ ÿӗng bӝ dӳ liӋu
Quá trình xây dӵng mӝt node dӳ liӋXQKѭYұy gӗPFiFEѭӟc sau [4]:
+ Tҧi mã nguӗn cӫa Bitcoin tӯ trang github: https://github.com/bitcoin/bitcoin
+ Biên dӏch mã nguӗn Mã nguӗn cӫD %LWFRLQ ÿѭӧc viӃt bҵng ngôn ngӳ C++, quá trình biên dӏch sӁ ÿѭӧc thӵc hiӋQ WK{QJ TXD 0DNHILOH WKHR Kѭӟng dүn trên github [16]
+ Sau khi biên dӏch mã nguӗn, chúng ta sӁ Fyÿѭӧc 2 tұp tin thӵc thi là bitcoind và bitcoin-FOL ELWFRLQG ÿѭӧF GQJÿӇ thiӃt lұp mӝt node dӳ liӋu kӃt nӕi vӟi hӋ thӕng, bitcoin-FOL ÿѭӧF GQJÿӇ truy xuҩt các thông tin vӅ khӕi, giao dӏch bҵng cách truy cұp vào node dӳ liӋu vӯDÿѭӧc xây dӵQJWK{QJTXDFiFSKѭѫQJWKӭc RPC (Remote Procedure Call) [4] &y SKѭѫQJ WKӭF 53& ÿѭӧc dӵng sҹQ ÿӇ truy cұp thông tin khӕi và giao dӏch, ví dө vӅ KDLSKѭѫQJWKӭFQj\ÿѭӧc mô tҧ chi tiӃt ӣ KuQKErQGѭӟi
Trang 29Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 17
Hình 3.8 Truy xuҩt dӳ liӋu khӕLWK{QJTXDSKѭѫQJWKӭc RPC
Hình 3.9 Truy xuҩt thông tin giao dӏFKWK{QJTXDSKѭѫQJWKӭc RPC
Trang 30Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 18
&KѭѫQJ MÔ TҦ BÀI TOÁN 4.1 Mô hình hiӋn tҥi
Mô hình kiӃn trúc hӋ thӕng ӣ thӡL ÿLӇm hiӋn tҥi cӫa Bitcoin blockchain mô tҧ quá WUuQKÿӗng bӝ, xӱ lý, OѭXWUӳ dӳ liӋu YjFiFKWѭѫQJWiFYӟi dӳ liӋXÿӇ thӵc hiӋn nhӳng phân tích, thӕng kê
HӋ thӕng này bao gӗm các thành phҫn sau:
+ Fullnode A, B, C: là các node dӳ liӋu tham gia vào hoҥW ÿӝng cӫa Bitcoin blockchain
+ My Fullnode: là node dӳ liӋXÿѭӧFÿӅ tài xây dӵQJÿӇ ÿӗng bӝ dӳ liӋu tӯ Bitcoin blockchain
+ Process Data: là thành phҫn có chӭFQăQJ[ӱ lý thông tin cӫa các khӕi dӳ liӋu khi QRGHÿDQJÿӗng bӝ dӳ liӋX.KLÿӅ cұSÿӃn dӳ liӋu cӫa blockchain nói chung và cӫa Bitcoin blockchain nói riêng thì có 3 loҥLWK{QJWLQÿѭӧc quan tâm là: thông tin khӕi, thông tin giao dӏch và lӏch sӱ giao dӏch cӫa mӝWÿӏa chӍ &ѫFKӃ mһFÿӏnh cӫa Bitcoin blockchain trong quá trình xӱ lý dӳ liӋu chӍ quan tâm tӟi thông tin khӕi và thông tin
Hình 4.1 KiӃn trúc hӋ thӕQJÿӇ truy xuҩt dӳ liӋu Bitcoin blockchain
Trang 31Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 19
giao dӏch, nhiӋm vө cӫa quá trình xӱ lý dӳ liӋu là kiӇm tra tính hӧp lӋ cӫa tҩt cҧ các giao dӏch trong mӝt khӕi Tӭc là sau quá trình xӱ lý dӳ liӋu, chӍ có thӇ truy cұp thông tin cӫa khӕi và giao dӏch, không thӇ truy cұp lӏch sӱ giao dӏch cӫa tӯQJÿӏa chӍ
/HYHO'% OjFѫVӣ dӳ liӋXÿѭӧc Bitcoin blockchain chӑQÿӇ OѭXWUӳ dӳ liӋu Dӳ liӋu cӫa LevelDB ÿѭӧFOѭXGѭӟi dҥng các tұp tin nhӏ phân
+ Module Statistics: là mӝt công cө hӛ trӧ ÿѭӧFÿӅ tài xây dӵQJÿӇ phân tích, khҧo sát dӳ liӋu cӫa Bitcoin blockchain
Toàn bӝ hoҥWÿӝng cӫa hӋ thӕQJQj\ÿѭӧc mô tҧ qua các Eѭӟc sau:
(1) là quá trình ÿӗng bӝ dӳ liӋu, node dӳ liӋu cӫDÿӅ tài sӁ ÿѭӧc xây dӵng và kӃt nӕi vӟi các node dӳ liӋu khác cӫa mҥng Bitcoin blockchain, khi có mӝt khӕi dӳ liӋu mӟi ÿѭӧc sinh ra, node dӳ liӋu cӫDÿӅ tài sӁ tiӃp nhұQÿѭӧc thông tin cӫa khӕi dӳ liӋu mӟi nhӡ các node dӳ liӋu khác truyӅn tҧLÿӃn
(2) là quá trình kiӇm tra và xӱ lý dӳ liӋu, bҧn thân mӛi node dӳ liӋu khi tham gia vào mҥQJ%LWFRLQ EORFNFKDLQÿӅu có khҧ QăQJNLӇPWUDWtQKÿ~QJÿҳn cӫa dӳ liӋu do các node dӳ liӋu khác truyӅn tӟi Mӝt khӕi dӳ liӋXÿѭӧc truyӅn tӟi sӁ chӭa thông tin cӫa các giao dӏch, mӛi giao dӏch sӁ chӭDWK{QJWLQÿӏa chӍ QJѭӡi gӱLÿӏa chӍ QJѭӡi nhұn,
sӕ Oѭӧng BTC ÿѭӧc gӱL ÿL SKt JLDR GӏFK « 1RGH Gӳ liӋu có nhiӋm vө kiӇm tra nhӳng thông tin chӭa trong các giao dӏch có hӧp lӋ hay không Nhӳng dӳ liӋu sau NKLÿѭӧc kiӇm tra sӁ ÿѭӧc xӱ OêÿӇ OѭXWUӳ YjRFѫVӣ dӳ liӋu
(3) OjTXiWUuQKOѭXWUӳ dӳ liӋu, sau khi node dӳ liӋu kiӇPWUD WtQKÿ~QJÿҳn, hӧp lӋ cӫa dӳ liӋu, xӱ lý dӳ liӋu thì nhӳng dӳ liӋu này sӁ ÿѭӧFOѭXWUӳ lҥi
(4) là quá trình công cө phân tích, khҧo sát dӳ liӋu kӃt nӕLYjR Fѫ Vӣ dӳ liӋu cӫa
%LWFRLQ EORFNFKDLQÿӇ truy xuҩt dӳ liӋu thông qua các SKѭѫQJWKӭc RPC
HӋ thӕQJQj\ÿDQJWӗn tҥi mӝt sӕ hҥn chӃ sau:
Hҥn chӃ vӅ ÿӝ trӵc quan cӫa dӳ liӋu
Dӳ liӋXÿDQJÿѭӧc LeYHO'% OѭXWUӳ Gѭӟi dҥng các tұp tin nhӏ SKkQJk\NKyNKăQFKRquá trình thӕng kê, phân tích dӳ liӋu
Trang 32Hӑc Viên Thӵc HiӋn: Lê Công ± 1670214 20
Hҥn chӃ vӅ thông tin cӫa dӳ liӋu
ChӍ có thӇ truy xuҩt thông tin cӫa mӝt khӕi hoһc mӝt giao dӏch, không thӇ truy xuҩt thông tin lӏch sӱ giao dӏch cӫa mӝWÿӏa chӍ
Hҥn chӃ vӅ khҧ QăQJNKҧo sát, phân tích dӳ liӋu
%LWFRLQ EORFNFKDLQ FNJQJ QKѭ Pӝt sӕ blockchain khác, chҷng hҥn: Bitcoin Cash, /LWHFRLQ'RJHFRLQ(WKHUHXP«ÿӅu chӑQ/HYHO'% ÿӇ OѭXWUӳ dӳ liӋu Có mӝWÿLӇm ÿѭӧc nhҩn mҥnh ӣ ÿk\Oj/HYHO'% FKӍ hӛ trӧ SURFHVVÿӇ WKDRWiFÿӑc, ghi) dӳ liӋu tҥi mӝt thӡL ÿLӇm ĈLӅu này sӁ không ҧQK KѭӣQJ Ju ÿӃn quá trình vұn hành cӫa blockchain nói chung và Bitcoin blockchain nói riêng, vì dӳ liӋu cӫa blockchain là mӝt chuӛi khӕi nӕi tiӃp và liên kӃt vӟi nhau Khi mӝt khӕi dӳ liӋu tӟi, nó sӁ ÿѭӧc kiӇm tra tính hӧp lӋVDXÿyÿѭӧc xӱ lý và ghi nӕi vào chuӛi khӕi hiӋn tҥi Ӣ mӝt thӡi ÿLӇm, chӍ có mӝt phҫn dӳ liӋXÿѭӧFÿӑFOrQÿӇ kiӇm tra, sDXÿyGӳ liӋu ÿѭӧc xӱ lý
và ghi xuӕng VӟL FѫFKӃ này, blockchain vүn vұn hành WUѫQWUX
1KѭQJYӟi nhu cҫu khҧo sát, phân tích dӳ liӋu, giҧ sӱ chúng ta cҫn thӕng kê tӯ khӕi thӭ ÿӃn khӕi thӭ 100.000 sӁ có tәng cӝQJEDRQKLrX%LWFRLQ ÿѭӧc gӱLÿLTXiWUuQKnày sӁ mҩt rҩt nhiӅu thӡi gian Vì tҥi mӝt thӡLÿLӇm, công cө thӕng kê chӍ ÿѭӧc phép truy cұp vào mӝt khӕi dӳ liӋu thông qua SKѭѫQJWKӭc RPC, do LevelDB chӍ hӛ trӧ 1 process ÿӇ thao tác dӳ liӋu
Theo thӵc nghiӋm cӫD ÿӅ tài ÿѭӧc tiӃn hành trên máy tính hӋ ÿLӅu hành Ubuntu 18.04.2 LTS 64bit, CPU Intel Core i5-5300U@2.30GHz x 4, RAM 16GB), thӡi gian WUXQJEuQKÿӇ truy xuҩt thông tin cӫa mӝt khӕi dӳ liӋu, thông qua SKѭѫQJWKӭc RPC kӃt nӕi vӟi LevelDB mҩt khoҧng 200ms Có thӇ WtQK Vѫ Eӝ là thӡi gian truy xuҩt thông tin cӫa 100.000 khӕi dӳ liӋu sӁ mҩWV WѭѫQJÿѭѫQJYӟLKѫQKYjÿӇ có ÿѭӧc kӃt quҧ thӕng kê, cҫn thêm mӝt khoҧng thӡi gian nӳDÿӇ xӱ lý dӳ liӋu
Nhѭ Yұy, vӟL P{ KuQK QKѭ KLӋn tҥi, viӋc thӕng kê, phân tích dӳ liӋu cӫa Bitcoin blockchain là hoàn toàn không khҧ thi
Hình 4.2 Mӝt ví dө vӅ thông tin các khӕi dӳ liӋu cӫa Bitcoin blockchain