start	end	text
9070	13130	So I'm fortunate enough to have met a lot of physicians who are interested in bridging
13130	18210	that gap between their world and ours. And I've had the opportunity to work with them
18210	23530	in the past. We did some research in the past, DEF CON 22, I think, on 9-1-1 security, presented
23530	27590	on that, and continue to work through things like I Am the Cavalry to talk about health
27590	32410	care and information security. And that's been awesome. Ryan and I have a shared background
32410	36450	in that we both went to the Air Force Academy, we both did space and missiles and some other
36450	41010	stuff, and he came to me with the idea of this application and this concept, and we
41010	45590	said, heck, let's run with it. So we did this part.
49100	54710	Okay, I already covered most of this, I was just trying to feel like I was going to make a
54710	65590	microphone. This is annoying. If I don't face the camera, is that okay? Okay, so, just to
65590	68130	reiterate, it seems like we're all familiar with this technology, so let's press, let's get
68130	77010	right into it. Slide. Oh, no, I'll take this. So over the last, I mean, these are pretty
77010	81990	current, 6 months, 7 months, we've just seen hack after hack. So this is something we were
81990	87990	trying to address with this sort of relatively simple system for protecting our health care
87990	93890	records, our health care transactions, our health care communication. This is going to
93890	98090	happen again, this is going to continue happening, and one of these days it's going to hit a
98090	101990	system that everyone uses, like Epic or Cerner. Anyone familiar with Epic or Cerner in here?
101990	106990	Okay, good, very good. Okay. And when that happens, I mean, it's going to be a shit
106990	111250	storm. I mean, there's really nothing you can do because there's no redundant comm built
111250	118250	in, there's no, there's no plan B. This system, TriGraph, what we're building now is not
118250	122150	going to be that plan B yet, but we hope that in the future this or something like it will
122150	129030	be. So this is just the scare tactics to keep you engaged. Next slide. Alright, so, yes,
129030	132650	this is the obligatory legal language that we have to provide that was developed by
132650	138450	trained ninja JD monkeys. Here, this is just to reflect that this is not necessarily the
138450	144450	opinions or the language, verbage, opinions, commentary associated with our employers.
145290	150750	His, whether it be the medicine field, yeah, he's still technically in the Air Force and
150750	155210	he's in the medicine field, he's not going to provide any medical advice here, anyhow. Oh,
155210	159730	and patent pending, the work we've done here. Alright, so this is objective.
165210	171170	We did ask for a second microphone. Do we have enough cable to do this or what? Okay. Alright,
171170	174410	so long term we want to improve access to physician care. I mean, that's, that's the big
174410	178190	takeaway here. And finally, we think that going forward medicine is going to have to become
178190	184290	more collaborative. Raise your hand if you've been on WebMD. I know, I know you all have.
184290	188510	You've all had some weird sore, yeah. I know you all have. Something a little itchy?
188510	197670	You're, you're gross. Um, yeah. So, we think that it'll be helpful to be able to speak over a
198490	201510	secure anonymous platform and say, hey man, I got this thing going on. Kind of like what you
201510	205150	have on WebMD right now, except with someone that you know is a physician because they've
205750	210870	been credentialed through the blockchain, through a token, uh, to, to know that. Uh, next
210870	214990	slide. Longer term, and this is what I alluded to earlier, um, right now we have a functional
214990	219550	POC. We're going to show you that today. Um, it's sped up though, so don't think we're
219550	224410	cheating. It takes longer than a minute to do this. It takes like 6 minutes to do this, which
224410	229630	is still pretty good, we thought. Um, so these are the, the key tenets I want you to keep in
229630	235250	mind as we go through this. Uh, the one I didn't mention was auditability. So, for anything
235250	241250	medical records, you have to be able to know who looked at what, what they saw, you know, if
241250	246630	they had a reason for doing this. Um, a blockchain will keep track of the externals, so
246630	252890	you'll know that physician X talked to patient Y, maybe some sort of content, I guess with the
252890	258470	contract on Ethereum you'll know that it was something about, uh, I think I maybe broke this
258470	263750	bone or something. Um, but you won't have the internals, so there's still privacy, uh, we, we
263750	267290	hope, we think at play, although we're, we are looking to you guys to help pick this apart.
267290	274630	Uh, next slide. So why Ethereum? Um, you know, it's kind of a, a, you know, a poor man's
274630	278070	crypto. We can do a lot of stuff with this, with the blockchain. It'll cost a little bit of
278070	283450	money, but even more importantly, what we're up against is, is frankly way too expensive to
283450	287970	begin with. I mean, a PAC system is millions a year and it's proprietary. Oh, and there's a
287970	291870	talk on Sunday, I don't know who's giving it, but, uh, I think they're going to discuss the
291870	296370	security, any chance he or she's in here? No? Okay, well they're going to hopefully talk
296370	302570	about all the, the vulnerabilities in PAC systems that already exist. Um, additionally,
303230	307230	healthcare, the, the costs have become just non-transparent. I mean, we, we think we're
307230	311470	over a hundred dollars to read a, an x-ray, an MRI is probably more, probably a couple
311470	317090	hundred dollars. Um, but frankly that's, that's already too expensive and, uh, we think we
317090	320970	can do better. We know we can do better. Uh, the, the payment system is already built in,
320970	324090	as long as your physician is willing to accept Ethereum. Who here, who in here takes
324090	329590	Ethereum? I think I took a nose dive the last few weeks. Who lost thousands? Yeah, yeah,
329590	334550	sorry buddy. Um, and then, uh, identity management, this is where we really think this
334550	340970	could catch on, um, because how do you know who you're talking to? How do you know this is a
340970	344770	physician? Um, especially if you can de-identify it enough to know that, well, I don't know
344770	348430	the physician's name, but I know that he's credentialed to this level, even if he or she is
348430	353070	living in India or even if he or she is living, uh, you know, in Chile or something, uh, which
353070	357650	can also help for 24-7 access to these kinds of, uh, medical services. And finally,
357650	361250	reputation management. We're not here yet, but we envision something along the lines of an
361250	366010	Uber-type rating system, which is difficult because you might not like what you hear from
366010	373530	the physician. Yes, you do have herpes, I'm sorry. Um, but, uh, you know, we're, we're
373530	376690	hoping that someday we can put together something that allows us to know that this
376690	381710	physician who is credentialed and operating on this, this particular system is not full of
381710	384790	shit. Um, that's kind of where we, what we want to get to.
386810	390470	So, when you're getting feedback from a physician on an image that you're providing to
390470	394290	them, you want to make sure you're getting timely feedback, you're getting cost effective
394290	398610	feedback, and that it's detailed enough that you can take it and provide it to maybe your
398610	403310	primary care provider, or you get enough input on it to say, yes, this is a broken, or,
403310	405770	yeah, that probably is what you think it is, that's sore.
406610	413190	Slide. Slide. All right. So, this is me. So, this is the, the architecture, what we
413190	417570	designed, um, to get this done. And on the left-hand side, you've got the patient, and on
417570	421030	the right-hand side, you've got a physician. And originally, when we were talking about
421030	425810	this and designing it in our heads, trigraph was the concept of the patient, the
425810	429810	blockchain, and the doctor. And then we got to the point where we said, hey, you know
429810	433390	what, we probably don't want to store imagery on the blockchain. That would be annoying for
433390	440750	everybody. So, we didn't. We ended up using an external data store. And the external data
440750	444350	store is depicted on the top. We've implemented that in the proof of concept using
444350	450790	Django. And that's just basically an API that's sending information back and forth. In
450790	454010	the design phase, when we were looking at this, it was very important to us that we
454010	458490	implement it such that if the data store were compromised, none of the patient
458490	463910	information, specifically imagery, would be recoverable. So, what is passed up there is
463910	469590	public keys and encrypted image data, and that's it. As far as the patient interaction
469590	473130	with the blockchain, that's something where they're sending the payment. They're paying
473130	477190	the physician for that imagery. They're paying the physician for that opinion. They're
477190	481110	starting the contract, and they're pushing state changes. The physician is also pushing
481110	484870	state changes, which we'll get to here in a moment. And then the payment at the end goes to
484870	490890	that happy physician in the lower right to say, yeah, that doesn't look good. All right, so
490890	495850	when we designed the proof of concept, this is what we actually implemented in our network
495850	501910	for testing. You can see basically it's a summary of it all, and this is truly a mesh
501910	507350	network with the geth or the Go-based Ethereum clients talking to each other. But here what
507350	511210	you've got is you've got at the top the dedicated blockchain nodes that are operating the
511210	514730	blockchain. They're the ones that are doing the mining, and the mining is required so that
514730	519650	we can keep the transactions moving along. On the lower hand side, this was our implementation
519650	523690	in the proof of concept to say we have an arbitrary patient client, we have an arbitrary
523690	527510	doctor client, and we have the data store. And the data store was the implementation of
527510	533110	that Django app that we were talking about. All of those three are interfacing through
533790	542990	Web 3, a Python library, into the Go Ethereum client via RPC to the Go Ethereum client and
542990	547570	talks on the blockchain. So this is how we implemented our proof of concept. And we'll go
547570	553050	over that and actually have some video on that later. Any questions? Okay. I'm going to
553050	556590	speed through this. All right. So one of the things that was important to us was
556590	561430	authentication. How do we know who's talking, right? How do we know who's conversing? So for
561430	567030	authentication on the blockchain, we're relying on the Ethereum authentication, right? You're
567030	571030	unlocking your wallet. You're using those secrets that are within that wallet, that private
571030	577030	key, to send data, to send money, to send Ethereum. If you can unlock that, then you have
577030	581390	authenticated yourself to the blockchain. And for our purposes, we said that's going to be
581390	586210	good enough, right? Because you're already doing that to send money back and forth. But for
586210	590850	the data store, we had to come up with something, right? How do we know who is talking to the
590850	595930	data store? So what we came up with was this is our prescription pad, right? You have a
595930	599790	prescription pad, you hand it to the physician and they sign it. That's what we're doing,
599790	605450	right? So the data store, when it is working with any one of the clients to it, whether it be a
605450	609870	patient or a physician, they're sending them challenges. It's a challenge response
609870	613910	authentication mechanism that's essentially saying, hey, here's something that's unique, a
613910	619610	unique token from the data store. We want you to sign it with your Ethereum private key. And
619610	623970	when it gets back, the data store looks at it and tries to verify that signature and if it can,
623970	628930	and that contract ‑‑ I'm sorry, that address verifies up against the contract that it's
628930	633630	looking for to say, yes, this is the patient, yes, this is the physician, you're good to go.
633630	637650	And it progresses forward. So that was used for authentication against the data store. The
637650	641350	other thing that was important to us was authorization. And authorization was handled at
641350	647450	two levels. Authorization in the contract on the blockchain was baked into the contract using
647450	651530	solidity. So you can see here we've got some modifiers that say only the patient can do
651530	655430	certain things, only the doctor can do certain things. And then we've got the in‑state
655430	660630	aspects. And you've got some examples on the right‑hand side. In‑state just depicts the
660630	664830	fact that we've got this kind of positioned out in different states where the contract is
664830	669210	initiated by the patient and then it waits for it to be ready for the doctor and then the
669210	672490	doctor picks it up and reviews it and then it gives it back to the patient and the patient
672490	677310	gets it and says, yes, you reviewed my image, here's your money. So that's basically how
677310	682110	we're doing that authorization. As far as authorization within the data store, that was
682110	687850	based on your authentication. So it's, again, based on patient or physician. If you have
687850	692490	identified yourself using the authentication mechanism we referenced in the last slide as
692490	695170	the patient and you're trying to do something a patient should be able to do with that
695170	702550	contract, you're authorized to do it. All right. So how did we keep those images secure on
702550	707130	the data store? This is basically a summary of what we did. This is a specific
707130	713550	implementation of elliptic curve integrated encryption scheme or ECIES. What we're doing is
713550	717250	we're taking that Ethereum private key data on the left-hand side for the patient and the
717250	722830	doctor and we're creating elliptic curve keys, basically saying let's create pubs from the
722830	728190	private key data that you have and we're going to share the public keys via the data store.
728190	732290	Again, that's authenticated back to say, are you the patient? Okay, then you get the
732290	736210	doctor's public key. Are you the doctor? Okay, then you get the patient's public key.
736210	741510	Specifically for that contract. The public keys are exchanged via the data store and then
741510	745790	those are used for ECDH or elliptic curve Diffie-Hellman key exchange, right? So we're
745790	751190	going to take that and we're going to generate a shared secret that now the patient and the
751190	756910	doctor have. That shared secret is used as output from the ECDH or elliptic curve Diffie-Hellman
756910	763190	blocks to throw into an AES key derivation function and the salt that we're using to make it
763190	769750	unique for each exchange is the contract address from Ethereum. That then will result in
769750	775470	equal AES keys on each side. So the doctor has an AES key, the patient has an AES key, they're
775470	780970	the same but they never exchange it in the first place. So these are the stages that the
780970	785790	contract will go through. The patient will initiate it, the patient will stage everything,
785790	790450	put the data out there, say it's ready for the doctor, the doctor can then accept the
790450	795530	contract and get everything ready to be able to, you know, exchange those public keys. Once
795530	801630	the public keys are exchanged, then the patient can upload the file and in the encrypted
801630	808250	format and then it can be downloaded by the doctor, reviewed, put back up there and then the
808250	813850	patient can say, yes, this is completed, I got back the advice from the doctor. There's also a
813850	819290	stage for abortion. If we get to a point where the patient has put a contract out there and it
819290	823830	has not been accepted, for example, if I put something out there and I didn't mean to or I put it
823830	827910	out there and the value is too high or I want to decrease it, you can just nix the contract
827910	833170	altogether. But it has to be a non-accepted state and it has to be done by the patient. We've
833170	837470	got some details in this for everything I just said that I'm just going to skip past because I
837470	840070	said it already. All right. Challenges?
843370	850970	Okay, so it's changing quickly. That could wreck all the code that Peter has already written.
850970	859030	Sorry. There are privacy concerns. Just like any system, the end users can still take a picture of
859030	862850	something and put it on the Internet. We don't know how to fix that, so we can't really solve
862850	870750	that problem. Additionally, de-identifying some of this data may prove impossible. Moral and
870750	876130	ethical as well. This is something that Peter and I discussed at length for about 10 minutes
876130	884690	over a few beers. This same construct could be used to share some really bad stuff and it would
884690	891830	be completely anonymous and it would be completely secure. So you could do murders for
891830	897650	hire. I'll let you speculate on everything else you could do over that. Finally, how do I
897650	901070	know you're a real doctor? If you lose your token once it's been issued or if it's stolen from
901070	908990	you, well, we don't know that you're talking to a real doctor anymore. And then finally, two
908990	913370	more things. So you do, we're not sure what's going to happen with this. The gas when we
913370	916570	priced it a few days ago was just a few cents. The physician would pay a few cents to get
916570	921490	into the network, which is no big deal. But we don't know what the future is going to hold
921490	925690	with that. So if Vitalik Buterin is around, does anyone know if he's around? I'd like to talk to
925690	931950	him. I'm totally serious. I'd love to sit down and, you know, is he 21 yet? And finally,
931950	935570	speed kills. If the network isn't fast enough, your average radiologist is going to move
935570	940930	through a scan in about two minutes. If they can't do that in that sort of time with this
940930	947670	network, it's pointless. They'll just go back to a pack system. Slide. Next step. So what we
947670	956130	want to do, um, we, we need to automate more of this. It needs to be, um, I'm not sure what
956130	962610	you meant by checks and balances. So right now, so right now we don't have some of the checks
962610	967310	that I'd like to do. I'd like to do some of those things to say, okay, um, you know, where is
967310	972030	the state of the contract with respect to what you're doing at the data store? Right? So if
972030	976810	you're trying to download an image and it isn't actually at that state on the, the data or on
976810	983890	the blockchain, it'll all error out, but I'd like to tighten that up. Yeah. Thanks Pedro. Um,
983890	987290	so we need to also credential physicians. How much time do we have? A minute or two? Okay,
987290	991370	cool. Um, so this is the hard part. If anyone knows any companies that can do this for us,
991370	995230	we'd love to know. Um, because once they're credentialed, I mean, that's it. We don't have
995230	998570	any way to sort of police them. We need to know that they are who they say they are, that
998570	1003070	they have gone to this residency or have had this medical training. Uh, user friendly
1003070	1006930	interface right now. Um, there's maybe three people in this room who would know how to do
1006930	1013090	this, uh, in this system. Um, so we're going to need to make this interface with a browser
1013090	1018170	of some sort or an app. Uh, if anyone can do that, let us know afterwards. Uh,
1018170	1022070	monetization. Uh, we do, we would like to monetize it. I mean, I don't, I don't think we're
1022070	1026470	looking to make crazy profits on this, but there's a few different ways we could do it, but
1026470	1030410	we want to do it in a way that we're not a third party. It would have to be the sort of thing
1030410	1034910	where the contract is already fulfilled and everyone's happy and then somehow in some sort
1034910	1039850	of, you know, subcontract or something, we're paid afterwards. We're not exactly sure how
1039850	1043390	we're going to do that yet. Um, the rating system, already discussed. Go live on Ethereum.
1043390	1047670	We haven't done this yet. Uh, so we still technically don't know if this will work and end
1047670	1053270	because it hasn't been done, uh, on the live network. Okay, uh, I hope we left time for
1053270	1072330	questions. Let's get the demo going. Uh, and wow, this is really terrible, terrible
1072330	1079950	graphics. I'm so, so sorry about this. Let's see if we can zoom in. How do you max zoom in?
1081170	1101070	Max zoom in. Yeah. And we can make this available afterwards. This is just a video. It's
1101070	1105730	unfortunately grainy. Um, what this is and was, we sped this up. This is a video of the
1105730	1110470	interaction on the top of an end to end script. The problem with, uh, actually doing this,
1110470	1114450	you know, in person is it's something where I would do something as a patient, doctor would do
1114450	1117290	something. I would do something as a patient, doctor would do something. And that's
1117290	1121110	actually going to take hours and hours. Plus the blockchain has to mine everything to
1121110	1125850	verify all the transactions. So, so my question is, have you felt of running, uh, instead of
1125850	1131110	using public blockchain, you can use a private blockchain, let's say based off on a proof of
1131110	1138030	authority consensus or similar to oracles.org project that they're trying to do. Um, have you
1138030	1142410	thought of this approach? Because it's a green mining, nobody has to, it's like a simplified
1142410	1150210	proof of stake. Yeah. So what he said was right now we're using a private blockchain and it's
1150210	1154730	working. Um, we do want to push it out to a public blockchain just to make it so that it's
1154730	1161090	readily available. It's monetized right there. It's money, right? People pay, right. People pay
1161090	1166410	in the money. Yeah. We can do very bad things with this blockchain. So we want to make sure
1166410	1170230	that it's verified by other people. We want to make sure that it's money that people can get,
1170230	1173530	that they, you know, radiologists can do this thing. They get their Ethereum and they get it
1173530	1180970	out of Coinbase or whatever they need to do. All right. Last question. Okay. Um, so I see you
1180970	1186710	guys aren't really storing, um, patient information, but you are storing encrypted image
1186710	1194050	data. Yes. Maybe certain what patient information, um, would HIPAA apply here? Are you
1194050	1198530	taking that into consideration that you'd be legally required to do certain things
1198530	1206990	according to HIPAA? Yeah, why don't you take this one? No. Okay. Enjoy. No, because,
1206990	1210990	because this is, this, in this case, in all the scenarios we, we are putting up here, it's
1210990	1216050	the patient uploading this. With your medical records, you can do whatever you want. Um, now
1216750	1221050	going forward, we would need to get some sort of HIPAA certification for this. I don't know
1221050	1227570	that it would be a huge problem because once this stuff is encrypted, it, it's there in the
1227570	1231670	data store and it's just there. HIPAA has very strict regulations of how you store it and how
1231670	1235430	you audit the server and how you do everything. I violated it a few times. I'm familiar with
1235430	1241410	it. Um, yeah, enjoy the fines. Um, yes, there are, there are heavy fines. Um, so no, we, we
1241410	1246190	see this starting off as a poor man's second opinion to begin with. Um, that would be
1246190	1249530	outside the bounds of HIPAA. But you're right, going forward, that, that would be a problem
1249530	1253290	and a concern. And not one we're really that worried about because when you start talking
1253290	1257470	about auditability, this is the public ledger, right? This is the blockchain. So now we kind
1257470	1261370	of know where everything's transiting. It's your data store. So the data store also supports
1261370	1265270	all kinds of logging that we can do with that. It's something that we could achieve. I'm not
1265270	1269150	that concerned about it. But to get to the point where we were proof of concept and it was
1269150	1272670	actually moving data back and forth in an encrypted fashion, we did not achieve HIPAA
1272670	1279350	compliance today. All right, cool. Thanks guys. Oh!
1279410	1281790	>>[applause from audience, no audio for the rest of the presentation.
