Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1
- 00:00:00,000 --> 00:00:02,350
- Hello, My name is Evan Duffield
- 2
- 00:00:02,350 --> 00:00:04,600
- and this is a video series about Dash
- 3
- 00:00:04,600 --> 00:00:06,760
- And, in this video we are talking about
- 4
- 00:00:06,760 --> 00:00:08,020
- Masternode services
- 5
- 00:00:08,020 --> 00:00:11,350
- Such as our decentralized oracle implimentation
- 6
- 00:00:11,350 --> 00:00:14,850
- instant transactions and our DarkSend implimentation
- 7
- 00:00:14,850 --> 00:00:18,840
- So how do you add value to the network
- 8
- 00:00:18,840 --> 00:00:21,920
- through a two tiered architecture?
- 9
- 00:00:21,920 --> 00:00:24,680
- On the first tier, we have just the
- 10
- 00:00:24,680 --> 00:00:26,320
- regular clients that are on the network
- 11
- 00:00:26,320 --> 00:00:28,830
- That can be any full node that's connected
- 12
- 00:00:28,830 --> 00:00:31,810
- any full node that's sending transactions around the
- 13
- 00:00:31,810 --> 00:00:33,940
- network or anything else like that.
- 14
- 00:00:33,940 --> 00:00:36,640
- And then we have a second tier network
- 15
- 00:00:36,640 --> 00:00:38,750
- which is the Masternode network
- 16
- 00:00:38,750 --> 00:00:42,550
- and by utilizing the second tier, we can actually
- 17
- 00:00:42,550 --> 00:00:44,630
- form decentralized oracles.
- 18
- 00:00:44,630 --> 00:00:47,680
- These are also known as sub-quorums
- 19
- 00:00:47,680 --> 00:00:49,570
- which allows us to do things like
- 20
- 00:00:49,570 --> 00:00:52,570
- instant transactions and decentralized masternode
- 21
- 00:00:52,570 --> 00:00:54,250
- payments on the network.
- 22
- 00:00:54,250 --> 00:00:57,500
- Besides that, you can also connect to the
- 23
- 00:00:57,500 --> 00:00:59,460
- second tier to do DarkSend mixing
- 24
- 00:00:59,460 --> 00:01:02,670
- for privacy and by utilizing the
- 25
- 00:01:02,670 --> 00:01:05,510
- second tier all at the same time
- 26
- 00:01:05,510 --> 00:01:08,100
- we can actually do full quorums
- 27
- 00:01:08,100 --> 00:01:10,390
- which basically lets everyone that
- 28
- 00:01:10,390 --> 00:01:12,790
- owns a masternode vote on something
- 29
- 00:01:12,790 --> 00:01:14,700
- to either fund a given project
- 30
- 00:01:14,700 --> 00:01:17,700
- or make a decision on behalf of the network.
- 31
- 00:01:17,700 --> 00:01:21,440
- The sub-quorum system or the decentralized
- 32
- 00:01:21,440 --> 00:01:24,980
- oracle implementation utilizes statistic
- 33
- 00:01:24,980 --> 00:01:27,850
- and probabilities to secure the network.
- 34
- 00:01:27,850 --> 00:01:30,610
- and this is done by using the 1000 dash
- 35
- 00:01:30,610 --> 00:01:33,850
- requirement. So there can only be a certain
- 36
- 00:01:33,850 --> 00:01:35,670
- amount of Masternodes on the network
- 37
- 00:01:35,670 --> 00:01:38,420
- at a given time because of this requirement.
- 38
- 00:01:38,420 --> 00:01:42,420
- And that means that to control a majority of the network,
- 39
- 00:01:42,420 --> 00:01:45,140
- you have to control millions of dollars of
- 40
- 00:01:45,140 --> 00:01:49,520
- infrastructure. And if you were in control of that much
- 41
- 00:01:49,520 --> 00:01:53,520
- infrastructure, you probably wouldn't want to attack the network.
- 42
- 00:01:53,520 --> 00:01:57,520
- And even if you wanted to attack the network,
- 43
- 00:01:57,520 --> 00:02:00,560
- the statistics say that it's nearly impossible
- 44
- 00:02:00,560 --> 00:02:04,560
- even if you control a majority of the network.
- 45
- 00:02:04,560 --> 00:02:07,720
- The decentralized oracle implementation
- 46
- 00:02:07,720 --> 00:02:11,090
- essentially just is the network asking
- 47
- 00:02:11,090 --> 00:02:14,310
- specific masternodes a question.
- 48
- 00:02:14,310 --> 00:02:16,640
- and to do this, you propagate a message around
- 49
- 00:02:16,640 --> 00:02:19,850
- the network and as the message propagates
- 50
- 00:02:19,850 --> 00:02:22,620
- it finds the Masternodes that the question
- 51
- 00:02:22,620 --> 00:02:26,080
- was intended for using a deterministic secure
- 52
- 00:02:26,080 --> 00:02:29,330
- algorithm and then those Masternodes
- 53
- 00:02:29,330 --> 00:02:32,160
- answer the message by signing another
- 54
- 00:02:32,160 --> 00:02:35,430
- message and then propagating that.
- 55
- 00:02:35,430 --> 00:02:39,430
- Once the network has significant messages
- 56
- 00:02:39,430 --> 00:02:42,380
- from the targeted Masternode. It can then
- 57
- 00:02:42,380 --> 00:02:44,940
- answer the question in such a way that is
- 58
- 00:02:44,940 --> 00:02:47,150
- completely secure
- 59
- 00:02:47,150 --> 00:02:50,930
- For example, lets say we have an Apple stock,
- 60
- 00:02:50,930 --> 00:02:54,350
- and we want to know what the answer is
- 61
- 00:02:54,350 --> 00:02:57,280
- for how much is Apple currently trading?
- 62
- 00:02:57,280 --> 00:03:00,260
- and so, someone on the network asks the network
- 63
- 00:03:00,260 --> 00:03:02,260
- "How much is Apple trading for right now?"
- 64
- 00:03:02,260 --> 00:03:05,170
- and then that network message propogates
- 65
- 00:03:05,170 --> 00:03:08,270
- and then the 10 masternodes that are intended
- 66
- 00:03:08,270 --> 00:03:11,070
- to find out the price of Apple
- 67
- 00:03:11,070 --> 00:03:14,060
- all reach out to external APIs, pull
- 68
- 00:03:14,060 --> 00:03:16,570
- down the price, and then they compare the
- 69
- 00:03:16,570 --> 00:03:19,350
- price that they got to the price that other people got.
- 70
- 00:03:19,350 --> 00:03:22,750
- If the price is close enough, then the network
- 71
- 00:03:22,750 --> 00:03:25,950
- would select a median price and then go with that
- 72
- 00:03:25,950 --> 00:03:28,770
- And so now we have a secure price for Apple.
- 73
- 00:03:28,770 --> 00:03:32,480
- And you can also do this for things like
- 74
- 00:03:32,480 --> 00:03:35,030
- instant transactions, where you ask
- 75
- 00:03:35,030 --> 00:03:37,160
- is this transaction valid, and can I lock it.
- 76
- 00:03:37,160 --> 00:03:40,170
- and if you can lock the transaction
- 77
- 00:03:40,170 --> 00:03:43,190
- then now we have a double spend proof
- 78
- 00:03:43,190 --> 00:03:47,840
- implementation of instant transactions.
- 79
- 00:03:47,840 --> 00:03:50,276
- At a lower level, the sub-quorum system
- 80
- 00:03:50,276 --> 00:03:53,666
- works by taking the mining proof of work from
- 81
- 00:03:53,666 --> 00:03:57,186
- a block, and the mining proof of work hash
- 82
- 00:03:57,186 --> 00:04:00,331
- is a very very large number that can not
- 83
- 00:04:00,331 --> 00:04:05,361
- be forged and it takes the entire network
- 84
- 00:04:05,361 --> 00:04:07,311
- a period of time to generate that
- 85
- 00:04:07,311 --> 00:04:10,471
- and they're generated continuously
- 86
- 00:04:10,471 --> 00:04:12,541
- and so using that secure number we then
- 87
- 00:04:12,541 --> 00:04:17,131
- select 10 Masternodes based off of their numbers.
- 88
- 00:04:17,131 --> 00:04:20,552
- And, Masternodes have a number which is the
- 89
- 00:04:20,552 --> 00:04:24,552
- thousandth dash input that created them originally.
- 90
- 00:04:24,552 --> 00:04:28,552
- And so by taking the distance between the two numbers
- 91
- 00:04:28,552 --> 00:04:31,518
- we can order them into a ranking
- 92
- 00:04:31,518 --> 00:04:34,268
- and then we could take the top 10 closest
- 93
- 00:04:34,268 --> 00:04:36,518
- numbers to the proof of work hash.
- 94
- 00:04:36,518 --> 00:04:40,038
- The process of instant transactions is
- 95
- 00:04:40,038 --> 00:04:43,688
- relatively simple. The network will select
- 96
- 00:04:43,688 --> 00:04:47,218
- Masternodes based off of the input of the
- 97
- 00:04:47,218 --> 00:04:50,068
- transaction in question and then
- 98
- 00:04:50,068 --> 00:04:52,778
- the transaction propagates around the network
- 99
- 00:04:52,778 --> 00:04:55,288
- finds it's target Masternodes, those Masternodes
- 100
- 00:04:55,288 --> 00:04:57,998
- look at their own memory pool to see if those inputs are valid
- 101
- 00:04:57,998 --> 00:05:00,218
- if the inputs are valid then they send a message
- 102
- 00:05:00,218 --> 00:05:02,388
- send it out back to the network again
- 103
- 00:05:02,388 --> 00:05:04,988
- signatures are collected, a threshold is met
- 104
- 00:05:04,988 --> 00:05:07,008
- and then rules are enforced on the
- 105
- 00:05:07,008 --> 00:05:08,628
- entire network after that.
- 106
- 00:05:08,628 --> 00:05:11,488
- After the enforcement is engaged
- 107
- 00:05:11,488 --> 00:05:15,158
- No peer on the network will accept a conflicting
- 108
- 00:05:15,158 --> 00:05:18,318
- transaction or any type of conflicting message
- 109
- 00:05:18,318 --> 00:05:20,398
- for whatever the given quorum was.
- 110
- 00:05:20,398 --> 00:05:25,048
- In this case, they would even reject blocks that were mined
- 111
- 00:05:25,048 --> 00:05:26,878
- with the conflicting transaction.
- 112
- 00:05:26,878 --> 00:05:30,428
- The DarkSend implementation, on the other hand
- 113
- 00:05:30,428 --> 00:05:33,198
- doesn't use quorum technology at all.
- 114
- 00:05:33,198 --> 00:05:35,978
- Masternodes just simply host mixing sessions
- 115
- 00:05:35,978 --> 00:05:39,978
- for users. And all this means is a user will
- 116
- 00:05:39,978 --> 00:05:42,968
- reach out to a Masternode, they will wait in que
- 117
- 00:05:42,968 --> 00:05:45,708
- once enough users have entered the que,
- 118
- 00:05:45,708 --> 00:05:49,708
- mixing starts and then the users send money
- 119
- 00:05:49,708 --> 00:05:52,528
- to themselves through that Masternode.
- 120
- 00:05:52,528 --> 00:05:55,118
- And this is why it remains trustless because
- 121
- 00:05:55,118 --> 00:05:59,228
- the user's money actually never leaves their own wallet.
- 122
- 00:05:59,228 --> 00:06:02,688
- The reason it's secure is because we use
- 123
- 00:06:02,688 --> 00:06:05,828
- denominations in all the transactions
- 124
- 00:06:05,828 --> 00:06:09,138
- So you would only pay yourself in 10s or
- 125
- 00:06:09,138 --> 00:06:11,558
- you would pay yourself in 50s or you'd
- 126
- 00:06:11,558 --> 00:06:14,108
- would only pay yourself in 100s.
- 127
- 00:06:14,108 --> 00:06:17,238
- And all other users in that mixing session
- 128
- 00:06:17,238 --> 00:06:20,268
- are required to do the same thing.
- 129
- 00:06:20,268 --> 00:06:23,818
- And this is called "anonymity through ambiguity"
- 130
- 00:06:23,818 --> 00:06:26,298
- meaning that you can't tell anything apart
- 131
- 00:06:26,298 --> 00:06:28,738
- in the transaction because there is no other
- 132
- 00:06:28,738 --> 00:06:31,858
- information other than the denominations
- 133
- 00:06:31,858 --> 00:06:36,658
- fees for utilizing the DarkSend service are actually charged
- 134
- 00:06:36,658 --> 00:06:41,058
- separately from the mixing transactions to increase the anonymity
- 135
- 00:06:41,058 --> 00:06:44,758
- that is on the network. This is something that would be
- 136
- 00:06:44,758 --> 00:06:48,148
- incredibly difficult and we have special rules in the client
- 137
- 00:06:48,148 --> 00:06:52,148
- to allow it. When using DarkSend, after you have
- 138
- 00:06:52,148 --> 00:06:54,928
- successfully anonymized coins, you'll end up with
- 139
- 00:06:54,928 --> 00:06:57,928
- a private and a public balance within your wallet.
- 140
- 00:06:57,928 --> 00:07:01,028
- And all this means is that you can spend your
- 141
- 00:07:01,028 --> 00:07:03,528
- private balance at any time in the future
- 142
- 00:07:03,528 --> 00:07:06,178
- And this is so that you can't execute
- 143
- 00:07:06,178 --> 00:07:08,008
- timing attacks on our system.
- 144
- 00:07:08,008 --> 00:07:11,338
- A timing attack is where you would
- 145
- 00:07:11,338 --> 00:07:13,118
- look at all the mixing sessions
- 146
- 00:07:13,118 --> 00:07:15,368
- and then you would try to correlate them
- 147
- 00:07:15,368 --> 00:07:17,118
- with users spending their money later on.
- 148
- 00:07:17,118 --> 00:07:20,628
- And if they happen too close because
- 149
- 00:07:20,628 --> 00:07:23,348
- one is required just before the other one happens
- 150
- 00:07:23,348 --> 00:07:25,758
- then you can break user's anonymity.
- 151
- 00:07:25,758 --> 00:07:29,488
- Here you see a Bitcoin example transaction
- 152
- 00:07:29,488 --> 00:07:32,228
- On the left, is where money came from
- 153
- 00:07:32,228 --> 00:07:34,288
- and on the right is where it went to.
- 154
- 00:07:34,288 --> 00:07:37,308
- One of those is the target person or
- 155
- 00:07:37,308 --> 00:07:39,948
- company that it was spent to and the other one is
- 156
- 00:07:39,948 --> 00:07:42,468
- the change address where the user is receiving
- 157
- 00:07:42,468 --> 00:07:44,908
- back change to their own wallet.
- 158
- 00:07:44,908 --> 00:07:46,958
- And so this is very easy to understand
- 159
- 00:07:46,958 --> 00:07:48,828
- and if any of these addresses are
- 160
- 00:07:48,828 --> 00:07:51,578
- deanonymized in the future, then it means that
- 161
- 00:07:51,578 --> 00:07:55,738
- everything after that in the blockchain is not anonymous as well.
- 162
- 00:07:55,738 --> 00:08:01,958
- So here you can see an example transaction for Dash.
- 163
- 00:08:01,958 --> 00:08:05,594
- And everything is denominated up until the point where
- 164
- 00:08:05,594 --> 00:08:09,244
- it's actually spent. and this is where the security comes
- 165
- 00:08:09,244 --> 00:08:11,684
- from. So how do you use DarkSend?
- 166
- 00:08:11,684 --> 00:08:14,064
- Well, it's as simple as clicking that button.
- 167
- 00:08:14,064 --> 00:08:16,034
- "Start Darksend Mixing".
- 168
- 00:08:16,034 --> 00:08:19,194
- And then when you actually want to spend
- 169
- 00:08:19,194 --> 00:08:22,144
- your DarkSend private balance, you can use
- 170
- 00:08:22,144 --> 00:08:25,114
- these check boxes in the send tab of the client,
- 171
- 00:08:25,114 --> 00:08:27,234
- and depending on which one you want,
- 172
- 00:08:27,234 --> 00:08:29,614
- you click the checkbox, fill out the form as
- 173
- 00:08:29,614 --> 00:08:31,984
- you normally would, and then click send.
- 174
- 00:08:31,984 --> 00:08:35,984
- So that's it for the Masternode Services Video.
- 175
- 00:08:35,984 --> 00:08:38,844
- In our next video, we're going to be exploring
- 176
- 00:08:38,844 --> 00:08:42,194
- our Decentralized Governance and Budgeting System
- 177
- 00:08:42,194 --> 00:08:44,704
- how it works, and how it benefits Dash.
- 178
- 00:08:42,512 --> 00:08:46,512
- Thanks for watching!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement