analyzing blockchain and bitcoin transaction data as graphs ·...

27
!"#$%&'() + ,-./0 1%2345 2678"% &)9 2::&4&2)59; <44 %&'()9 %595%=57; > <624$?&6' @4"3A3(2&6 267 @&)3"&6 B%26923)&"6 C2)2 29 D%2#(9 !"#$%&$ '()* EF4&2 G&67549H5%'5% 267 I269 J&5(K266 1%2345 !"%#"%2)&"6 13)"H5% ,L0 ,-./ MN#2)&24(26659

Upload: others

Post on 17-Apr-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0 1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

<624$?&6'*@4"3A3(2&6*267*@&)3"&6*B%26923)&"6*C2)2*29*D%2#(9!"#$%&$ '()*

EF4&2*G&67549H5%'5%267*I269*J&5(K266

1%2345*!"%#"%2)&"613)"H5%*,L0*,-./

MN#2)&24(26659

Page 2: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|

SafeHarborStatementThefollowingisintendedtooutlineourgeneralproductdirection.Itisintendedforinformationpurposesonly,andmaynotbeincorporatedintoanycontract.Itisnotacommitmenttodeliveranymaterial,code,orfunctionality,andshouldnotberelieduponinmakingpurchasingdecisions.Thedevelopment,release,timing,andpricingofanyfeaturesorfunctionalitydescribedforOracle’sproductsmaychangeandremainsatthesolediscretionofOracleCorporation.

2

Page 3: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|

Agenda

Introductiontoblockchainsandgraphtechnologies

UsingOracle‘sgraphtechnologiestoworkwithgraphs

Performingcomputationalgraphanalysis

Patternmatchingingraphs

Demo:AnalyzingBitcointransactions

1

2

3

4

5

3

Page 4: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.| 4

Blockchainisanincorruptible,distributedledgerthatenablestrusted&transparentbusinesstransactionswithsinglesourceoftruthamongpartieswhomaynotfullytrusteachother,withoutoverheadof

intermediaries

Essentially,Blockchainprovidestrustasaserviceatalowercost

BLOCKCHAIN

Page 5: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**> L

!(2%23)5%&9)&39*":*@4"3A3(2&6

./01$2312""45#/6/

! \53"%79*O%&))56*)"*)(5*H4"3A3(2&6 7/&&"65$/89:;5<$57=/&>$#5"%*7545)57

! ?&=/&7$8 62@865&6*75356)%24&?57*9&6'45*9"F%35*":*)%F)(

A=/2$#5B5.2/&81/2$&6

! C&9)%&HF)57*457'5%*562H459*89&>:$58=/2$#58"@27$5"4562@6=57&9)%&HF)57*23%"99*244*6"759

! ?&/<:$8562/&81/2$&7;C52$#@7$##$:/;8 B57"865":*V%7 #2%)$*&6)5%K57&2%&59

!"&8$&8@85D/8$#

! E1#/6$856"5#98629<@6$#5:$#>$252%5*K275*2:)5% 3"69569F9*2K"6'*65)O"%A*#55%9

! F2"6$7685/>/9&86542/@#52K"6'*#2%)&3&#26)90*267*K2&6)2&69*62@86 &6*)(5*457'5%

./01$2 12""45#/6/ A$7@296;5B5F29G/7;

! 164$*)("95*/@6="29H$# O&)(*A5$9*326*=&5O*)(5*72)2

! @4"3A3(2&6*9)"%59*/@#96/<:$5=986"29752$7"2#85)(2)*326*H5*563%$#)57*:"%*#%&=23$

?&/<:$85.2@86

Page 6: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

1%2345*@4"3A3(2&6 N)%2)5'$

! T%5]2995KH4570*56)5%#%&95]'%275*K262'57*T22N" \2#&70*'4"H24*#%"=&9&"6&6'*X*9&K#4&:&57*"#5%2)&"69" N53F%5*267*3"6:&756)&24*#5%K&99&"657*H4"3A3(2&6" @F&4)]&6*K"6&)"%&6'0*P7^0*I<0*2F)"6"K"F9*%53"=5%$

! Y_)567&6'*56)5%#%&95*H"F672%&59" T4F']6]T42$*&6)5'%2)&"6*O&)(*1%2345*N22N*267*T22N0**********267*3F9)"K8V%7*#2%)$*34"F7*267*"6*#%5K&959*2##9

" 1F)]":])(5]H"_*<TP*233599*&6*[5)9F&)5 Y\T0*`45_3FH53"%5*H26A&6'0*1#56*@26A&6'*<TP*T42):"%K

! NF##"%)&6'*N22N*@4"3A3(2&6*2##4&32)&"69

A$7@2$:;C52$:9/<:;5$I6$&#5<@89&$88512"7$88$85/&#5/77$:$2/6$5D'D562/&8/769"&8

CPNB\P@RBYC*ZYCDY\

!1[NY[NRN

N^<\B*!1[B\<!BN

T\PJ<!a

Page 7: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|

WhatdoesaBlockchainTransaction looklike?• Atransactionhasinput(s)andoutput(s)

–Aninputcomesfromanoutputofa(nother)transaction

TX9

TX1

TX8

TX3

Addr X

Addr K

Addr LAddr Y

Addr Z

Page 8: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|

WhatdoesaGraph looklike?• Agraphhasvertices(entities),edges(relationships),andproperties

–Alsoknownaslinkeddata

TX9

TX1

TX8

TX3

Addr X

Addr K

Addr LAddr Y

Addr Z

Page 9: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

B(5*T%"#5%)$*D%2#(*C2)2*^"754

! <*95)*":*=5%)&359*d"%*6"759e*" 523(*=5%)5_*(29*2*F6&iF5*&756)&:&5%;" 523(*=5%)5_*(29*2*95)*":*&68"F)*57'59;" 523(*=5%)5_*(29*2*3"4453)&"6*":*J$;3G/:@$

#%"#5%)&59;

! <*95)*":*57'59*d"%*4&6A9e*" 523(*57'5*(29*2*F6&iF5*&756)&:&5%;" 523(*57'5*(29*2*(5278)2&4*=5%)5_;" 523(*57'5*(29*2*42H54*756")&6'*)$#5*":*

%542)&"69(&#*H5)O556*)O"*=5%)&359;" 523(*57'5*(29*2*3"4453)&"6*":*J$;3G/:@$

#%"#5%)&59;())#9U88'&)(FH;3"K8)&6A5%#"#8H4F5#%&6)98O&A&8T%"#5%)$]D%2#(]^"754

!

!

())#9U88'&)(FH;3"K8)&6A5%#"#8H4F5#%&6)98O&A&8T%"#5%)$]D%2#(]^"754

Page 10: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

! BO"*K2j"%*2##%"23(59*" !"K#F)2)&"624*'%2#(*2624$)&39

! P)5%2)5*)(5*'%2#(*267*3"K#F)5*#%"#5%)&59*8*9)2)9

" D%2#(*#2))5%6*K2)3(&6'! kF5%$*)(5*'%2#(*)"*:&67*9FH]'%2#(9*)(2)*K2)3(*2*#2))5%6

! 1%2345*9F##"%)9*H")(*2##%"23(59" P6]K5K"%$*2624$)&39*56'&65

! T%5]HF&4)*'%2#(*24'"%&)(K9! TDkZ*dT%"#5%)$*D%2#(*kF5%$*Z26'F2'5e

T%"#5%)$*D%2#(*<624$9&9*N)%2)5'&59

-0#1-2

:%&567:%&567

:%&567

Page 11: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|

OracleBigDataSpatialandGraph

• AvailableforBigDataplatform– Hadoop,HBase,OracleNoSQL

• SupportedbothonBDAandcommodityhardware– CDHandHortonworks

• DatabaseconnectivitythroughBigDataConnectorsorBigDataSQL

• PartofBigDataCloudService

OracleSpatialandGraph(DBoption)

• AvailablewithOracle12.2/18c(EE)• Usingtablesforgraphpersistence• In-databasegraphanalytics

– Sparsification,shortestpath,pagerank,trianglecounting,WCC,subgraphgeneration…

• SQLandPGQLqueriespossible• IncludedinDatabaseCloudServices

11

OracleProductsSupportingPropertyGraphs

Page 12: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

1%2345*D%2#(*<624$)&39*<%3(&)53)F%5

N3242H45*267*T5%9&9)56)*N)"%2'5

D%2#(*N)"%2'5*^262'5K56)

D%2#(*<624$)&39*P6]K5K"%$*<624$)&3*Y6'&65

@4F5#%&6)9*X*N"4%!4"F7 8*ZF3565

T%"#5%)$*D%2#(*NF##"%)*"6******************************************<#23(5*I@2950*1%2345*["NkZ "%*1%2345*.,;,

\YNB*b5H*N5%=&35

T$)("60*T5%40*TIT0*\FH$0E2=293%&#)0*l

E2=2*<TP9

E2=2*<TP98EC@!8NkZ8TZNkZ

.,

O"6

$<""

J8\*P6)5'%2)&"6*d1<<

'%2#

(eN#2%A*&6)5'%2)&"6

Page 13: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

! \5iF&%5K56)U" P756)&:$*56)&)&59*:%"K*2*'%2#(*72)295)*)(2)*2%5*%542)&=54$*K"%5*&K#"%)26)*)(26*")(5%9*d:%"K*)"#"4"'$e

! <##%"23(59U" C5)5%K&65*356)%24&)$*":*56)&)&59*d3"635#)*H2957*"6*'%2#(*)(5"%$e

Y_2K#45U*P6:4F5635%*P756)&:&32)&"6*&6*N"3&24*[5)O"%A

.V

Page 14: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|

• Centralityismeasureofrelativeimportanceofverticesinagraph

• Manyvariationsofcentralityingraphtheory– Betweenness Centrality– ClosenessCentrality– EigenvectorCentrality– Pagerank– HITS(Hyperlink-InducedTopicSearch)– …

ComputationalGraphAnalysis:InfluencerIdentification

Betweenness centrality Eigenvectorcentrality

(imagesfromWikipedia)

Eachalgorithmsuggestsdifferentdefinitionofimportance

14

Page 15: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|

• MeasuringimportanceusingPageRank

• OriginalalgorithmdevelopedbyLarryPageforrankinginGoogle

• Makinganodeconnectedtobyimportantnodesalso important

• Canbemeasureoftrustorprominence

15

ComputationalGraphAnalysis:InfluencerIdentification

FriendVIPCustomer

Son

Page 16: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

! `&67&6'**2*'&=56*#2))5%6*&6*'%2#(" `%2F7*75)53)&"6" <6"K24$*75)53)&"6" NFH'%2#(*5_)%23)&"6" ;;;

! NkZ]4&A5*9$6)2_*HF)*O&)(*'%2#(*#2))5%6*7593%&#)&"6*267*#%"#5%)$*233599" P6)5%23)&=5*d%524])&K5e*2624$9&9" NF##"%)&6'*2''%5'2)590*3"K#2%&9"60*9F3(*29*K2_0*K&60*"%75%*H$0*'%"F#*H$

! T%"#"957*:"%*9)2672%7&?2)&"6*H$*1%2345" N#53&:&32)&"6*2=2&42H45*"6]4&65"1#56]9"F%357*:%"6)]567*d&;5;*#2%95%e

T2))5%6*K2)3(&6'*&6*T%"#5%)$*D%2#(9*F9&6'*TDkZ

())#9U88'&)(FH;3"K8"%23458#'i4]426'

.m

Page 17: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|

Basicgraphpatternmatching

SELECT v3.name, v3.ageFROM socialNetworkGraphMATCH (v1:Person) –[:friendOf]-> (v2:Person) –[:knows]-> (v3:Person)WHERE v1.name = ‘Amber’

Query:Findallpeoplewhoareknownbyfriendsof‘Amber’.

socialNetworkGraph

100:Personname=‘Amber’age=25

200:Personname=‘Paul’age=30

300

:Personname=‘Heather’age=27

777:Companyname=‘Oracle’location=‘RedwoodCity’

:worksAt{1831}startDate =’09/01/2015’

:friendOf{1173}

:knows{2200}

:friendOf {2513}since=’08/01/2014’

17

• Findallinstancesofagivenpattern/templateinthedatagraph

Page 18: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

@&)3"&6*B%26923)&"69*29*2*D%2#(U*b"%A:4"O

D%2#(*D565%2)&"6*X*Z"27&6'

C2)2**T%5#2%2)&"6

D%2#(*kF5%$&6'*X*<624$9&9*

D%2#(*J&9F24&?2)&"6

\5)%&5=&6'X*T2%9&6'**C2)2

K$0"

Page 19: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

R9&6'*@&)3"&6*B%26923)&"6*C2)2*29*26*Y_2K#45

Page 20: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

! W"#$:5)" J5%)&359U*B%26923)&"60*<77%599" Y7'59U*B%26923)&"6*%5:5%56359dBf*! Bf0*Bf*! <77%e

! W"#$:5'" J5%)&359U*B%26923)&"60*<77%599" Y7'59U*B%26923)&"6S9*&67&%53)*%5:5%5635*)"*<77%599d<77%*! Bf*! <77%e

! W"#$:5+" J5%)&359U*<77%599" Y7'59U*<77%599*)"*<77%599*#2$K56)*d<77%*! <77%e

^"754&6'*@&)3"&6*B%26923)&"69*29*2*D%2#(

MA#2)56'5*M2426?OF*MN#2)&24I26659

<CC

Bf BfBf<CC <CC <CC <CC

Bf

<CC

Page 21: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

P6)5%59)&6'*T2))5%69*&6*@&)3"&6*B%26923)&"6*C2)2

@&)3"&6*277%59959*O&)(*)%26923)&"69*)"*)(5K954=59

BO"*("#9*)%26923)&"69

!&%3F42%*)%26923)&"69

Page 22: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

Page 23: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

C5K"

Page 24: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

NFKK2%$L2/1=57/1/<9:969$859&5%2/7:$5.$7=&":">9$8

! D%2#(*72)2H2959*2%5*#"O5%:F4*)""490*3"K#45K56)&6'*%542)&"624*72)2H2959" Y9#53&244$*9)%"6'*:"%*2624$9&9*":*'%2#(*)"#"4"'$*267*KF4)&]("#*%542)&"69(&#9

! D%2#(*2624$)&39*"::5%*65O*&69&'()" Y9#53&244$*%542)&"69(&#90*75#567563&59*267*H5(2=&"F%24*#2))5%69

! 1%2345*T%"#5%)$*D%2#(*)53(6"4"'$*"::5%9" !"K#%5(569&=5*2624$)&39*)(%"F'(*=2%&"F9*<TP90*&6)5'%2)&"6*O&)(*%542)&"624*72)2H295" N32452H450*#2%24454*&6]K5K"%$*#%"3599&6'" N53F%5*267*932452H45*'%2#(*9)"%2'5*F9&6'*1%2345*["NkZ0*I@295*"%*1%2345*C2)2H295

! <=2&42H45*H")(*"6]#%5K&95*"%*&6*)(5*!4"F7

,W

Page 25: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

! N#"69"%57*H$*1%2345*O&)(*P6:"9$90*B!N0*GT^D0*Tb!0*267*!"'6&?26)

! mL*@4"3A3(2&6*9599&"690*75K"90*(2679]"6*42H90*267*")(5%*5=56)9*2)*1#56b"%47*267*!"75165 29*4&9)57*&6*`"3F9*"6*@4"3A3(2&6*!4"F7*N5%=&35*267*3"6)59)*%F459

! T%&?59*2O2%757*)"*)"#*L*45275%*H"2%7*56)%26)9*2)*WUV-#K*"6*^"672$0*BF5972$0*267****V#K*b5765972$*523(*2)*1%2345*<TC]<-g*267*P6:"9$90*B!N0*Tb!0*267*!"'6&?26)*H"")(

@4"3A3(2&6*<))56755*!"6)59)

<44*75)2&49*2)*())#9U88H4"'9;"%2345;3"K834"F7]#42):"%K8H4"3A3(2&6]2))56755]3"6)59)]2)]""O./

Page 26: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

!"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*<44*%&'()9*%595%=57;**>

!"#$%&'()'*$+$,-'&"$%.,$/0#-$123345)(6#$%&'$%&%()*'&+,%-.//0+),1%.2%-03,./$'3%&+4%5&',+$'3%,6&,%-.++$-,3%&+4%$7-6&+8$3%9+.:;$48$%.+;)+$<%&+4%&,%-.+2$'$+-$3%&+4%$($+,3=

72)5$408$()564-*9:23;2-':*#0&'()'*:23345)(6

>)+9$4?+ @..8;$A ?BC@%D?@

E.'&35&,)&;3)8

.'&-;$35&,)&;3)8E8/&);=-./

Page 27: Analyzing Blockchain and Bitcoin Transaction Data as Graphs · !"#$%&'()*+*,-./0*1%2345*2678"%*&)9*2::&4&2)59;*

Copyright©2018,Oracleand/oritsaffiliates.Allrightsreserved.|

Analytics and Data SummitAll Analytics. All Data. No Nonsense.

March 12 – 14, 2019

Formerly called the BIWA Summit with the Spatial and Graph SummitSame great technical content…new name!

www.AnalyticsandDataSummit.org

CallforSpeakersnowopen!Submitanabstracttoshareyourusecaseortechnicalsession