Advertisement
Guest User

#5 - Masternode Services - Decentralized Oracles / DS / IX

a guest
Sep 25th, 2015
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.00 KB | None | 0 0
  1. 1
  2. 00:00:00,000 --> 00:00:02,350
  3. Hello, My name is Evan Duffield
  4.  
  5. 2
  6. 00:00:02,350 --> 00:00:04,600
  7. and this is a video series about Dash
  8.  
  9. 3
  10. 00:00:04,600 --> 00:00:06,760
  11. And, in this video we are talking about
  12.  
  13. 4
  14. 00:00:06,760 --> 00:00:08,020
  15. Masternode services
  16.  
  17. 5
  18. 00:00:08,020 --> 00:00:11,350
  19. Such as our decentralized oracle implimentation
  20.  
  21. 6
  22. 00:00:11,350 --> 00:00:14,850
  23. instant transactions and our DarkSend implimentation
  24.  
  25. 7
  26. 00:00:14,850 --> 00:00:18,840
  27. So how do you add value to the network
  28.  
  29. 8
  30. 00:00:18,840 --> 00:00:21,920
  31. through a two tiered architecture?
  32.  
  33. 9
  34. 00:00:21,920 --> 00:00:24,680
  35. On the first tier, we have just the
  36.  
  37. 10
  38. 00:00:24,680 --> 00:00:26,320
  39. regular clients that are on the network
  40.  
  41. 11
  42. 00:00:26,320 --> 00:00:28,830
  43. That can be any full node that's connected
  44.  
  45. 12
  46. 00:00:28,830 --> 00:00:31,810
  47. any full node that's sending transactions around the
  48.  
  49. 13
  50. 00:00:31,810 --> 00:00:33,940
  51. network or anything else like that.
  52.  
  53. 14
  54. 00:00:33,940 --> 00:00:36,640
  55. And then we have a second tier network
  56.  
  57. 15
  58. 00:00:36,640 --> 00:00:38,750
  59. which is the Masternode network
  60.  
  61. 16
  62. 00:00:38,750 --> 00:00:42,550
  63. and by utilizing the second tier, we can actually
  64.  
  65. 17
  66. 00:00:42,550 --> 00:00:44,630
  67. form decentralized oracles.
  68.  
  69. 18
  70. 00:00:44,630 --> 00:00:47,680
  71. These are also known as sub-quorums
  72.  
  73. 19
  74. 00:00:47,680 --> 00:00:49,570
  75. which allows us to do things like
  76.  
  77. 20
  78. 00:00:49,570 --> 00:00:52,570
  79. instant transactions and decentralized masternode
  80.  
  81. 21
  82. 00:00:52,570 --> 00:00:54,250
  83. payments on the network.
  84.  
  85. 22
  86. 00:00:54,250 --> 00:00:57,500
  87. Besides that, you can also connect to the
  88.  
  89. 23
  90. 00:00:57,500 --> 00:00:59,460
  91. second tier to do DarkSend mixing
  92.  
  93. 24
  94. 00:00:59,460 --> 00:01:02,670
  95. for privacy and by utilizing the
  96.  
  97. 25
  98. 00:01:02,670 --> 00:01:05,510
  99. second tier all at the same time
  100.  
  101. 26
  102. 00:01:05,510 --> 00:01:08,100
  103. we can actually do full quorums
  104.  
  105. 27
  106. 00:01:08,100 --> 00:01:10,390
  107. which basically lets everyone that
  108.  
  109. 28
  110. 00:01:10,390 --> 00:01:12,790
  111. owns a masternode vote on something
  112.  
  113. 29
  114. 00:01:12,790 --> 00:01:14,700
  115. to either fund a given project
  116.  
  117. 30
  118. 00:01:14,700 --> 00:01:17,700
  119. or make a decision on behalf of the network.
  120.  
  121. 31
  122. 00:01:17,700 --> 00:01:21,440
  123. The sub-quorum system or the decentralized
  124.  
  125. 32
  126. 00:01:21,440 --> 00:01:24,980
  127. oracle implementation utilizes statistic
  128.  
  129. 33
  130. 00:01:24,980 --> 00:01:27,850
  131. and probabilities to secure the network.
  132.  
  133. 34
  134. 00:01:27,850 --> 00:01:30,610
  135. and this is done by using the 1000 dash
  136.  
  137. 35
  138. 00:01:30,610 --> 00:01:33,850
  139. requirement. So there can only be a certain
  140.  
  141. 36
  142. 00:01:33,850 --> 00:01:35,670
  143. amount of Masternodes on the network
  144.  
  145. 37
  146. 00:01:35,670 --> 00:01:38,420
  147. at a given time because of this requirement.
  148.  
  149. 38
  150. 00:01:38,420 --> 00:01:42,420
  151. And that means that to control a majority of the network,
  152.  
  153. 39
  154. 00:01:42,420 --> 00:01:45,140
  155. you have to control millions of dollars of
  156.  
  157. 40
  158. 00:01:45,140 --> 00:01:49,520
  159. infrastructure. And if you were in control of that much
  160.  
  161. 41
  162. 00:01:49,520 --> 00:01:53,520
  163. infrastructure, you probably wouldn't want to attack the network.
  164.  
  165. 42
  166. 00:01:53,520 --> 00:01:57,520
  167. And even if you wanted to attack the network,
  168.  
  169. 43
  170. 00:01:57,520 --> 00:02:00,560
  171. the statistics say that it's nearly impossible
  172.  
  173. 44
  174. 00:02:00,560 --> 00:02:04,560
  175. even if you control a majority of the network.
  176.  
  177. 45
  178. 00:02:04,560 --> 00:02:07,720
  179. The decentralized oracle implementation
  180.  
  181. 46
  182. 00:02:07,720 --> 00:02:11,090
  183. essentially just is the network asking
  184.  
  185. 47
  186. 00:02:11,090 --> 00:02:14,310
  187. specific masternodes a question.
  188.  
  189. 48
  190. 00:02:14,310 --> 00:02:16,640
  191. and to do this, you propagate a message around
  192.  
  193. 49
  194. 00:02:16,640 --> 00:02:19,850
  195. the network and as the message propagates
  196.  
  197. 50
  198. 00:02:19,850 --> 00:02:22,620
  199. it finds the Masternodes that the question
  200.  
  201. 51
  202. 00:02:22,620 --> 00:02:26,080
  203. was intended for using a deterministic secure
  204.  
  205. 52
  206. 00:02:26,080 --> 00:02:29,330
  207. algorithm and then those Masternodes
  208.  
  209. 53
  210. 00:02:29,330 --> 00:02:32,160
  211. answer the message by signing another
  212.  
  213. 54
  214. 00:02:32,160 --> 00:02:35,430
  215. message and then propagating that.
  216.  
  217. 55
  218. 00:02:35,430 --> 00:02:39,430
  219. Once the network has significant messages
  220.  
  221. 56
  222. 00:02:39,430 --> 00:02:42,380
  223. from the targeted Masternode. It can then
  224.  
  225. 57
  226. 00:02:42,380 --> 00:02:44,940
  227. answer the question in such a way that is
  228.  
  229. 58
  230. 00:02:44,940 --> 00:02:47,150
  231. completely secure
  232.  
  233. 59
  234. 00:02:47,150 --> 00:02:50,930
  235. For example, lets say we have an Apple stock,
  236.  
  237. 60
  238. 00:02:50,930 --> 00:02:54,350
  239. and we want to know what the answer is
  240.  
  241. 61
  242. 00:02:54,350 --> 00:02:57,280
  243. for how much is Apple currently trading?
  244.  
  245. 62
  246. 00:02:57,280 --> 00:03:00,260
  247. and so, someone on the network asks the network
  248.  
  249. 63
  250. 00:03:00,260 --> 00:03:02,260
  251. "How much is Apple trading for right now?"
  252.  
  253. 64
  254. 00:03:02,260 --> 00:03:05,170
  255. and then that network message propogates
  256.  
  257. 65
  258. 00:03:05,170 --> 00:03:08,270
  259. and then the 10 masternodes that are intended
  260.  
  261. 66
  262. 00:03:08,270 --> 00:03:11,070
  263. to find out the price of Apple
  264.  
  265. 67
  266. 00:03:11,070 --> 00:03:14,060
  267. all reach out to external APIs, pull
  268.  
  269. 68
  270. 00:03:14,060 --> 00:03:16,570
  271. down the price, and then they compare the
  272.  
  273. 69
  274. 00:03:16,570 --> 00:03:19,350
  275. price that they got to the price that other people got.
  276.  
  277. 70
  278. 00:03:19,350 --> 00:03:22,750
  279. If the price is close enough, then the network
  280.  
  281. 71
  282. 00:03:22,750 --> 00:03:25,950
  283. would select a median price and then go with that
  284.  
  285. 72
  286. 00:03:25,950 --> 00:03:28,770
  287. And so now we have a secure price for Apple.
  288.  
  289. 73
  290. 00:03:28,770 --> 00:03:32,480
  291. And you can also do this for things like
  292.  
  293. 74
  294. 00:03:32,480 --> 00:03:35,030
  295. instant transactions, where you ask
  296.  
  297. 75
  298. 00:03:35,030 --> 00:03:37,160
  299. is this transaction valid, and can I lock it.
  300.  
  301. 76
  302. 00:03:37,160 --> 00:03:40,170
  303. and if you can lock the transaction
  304.  
  305. 77
  306. 00:03:40,170 --> 00:03:43,190
  307. then now we have a double spend proof
  308.  
  309. 78
  310. 00:03:43,190 --> 00:03:47,840
  311. implementation of instant transactions.
  312.  
  313. 79
  314. 00:03:47,840 --> 00:03:50,276
  315. At a lower level, the sub-quorum system
  316.  
  317. 80
  318. 00:03:50,276 --> 00:03:53,666
  319. works by taking the mining proof of work from
  320.  
  321. 81
  322. 00:03:53,666 --> 00:03:57,186
  323. a block, and the mining proof of work hash
  324.  
  325. 82
  326. 00:03:57,186 --> 00:04:00,331
  327. is a very very large number that can not
  328.  
  329. 83
  330. 00:04:00,331 --> 00:04:05,361
  331. be forged and it takes the entire network
  332.  
  333. 84
  334. 00:04:05,361 --> 00:04:07,311
  335. a period of time to generate that
  336.  
  337. 85
  338. 00:04:07,311 --> 00:04:10,471
  339. and they're generated continuously
  340.  
  341. 86
  342. 00:04:10,471 --> 00:04:12,541
  343. and so using that secure number we then
  344.  
  345. 87
  346. 00:04:12,541 --> 00:04:17,131
  347. select 10 Masternodes based off of their numbers.
  348.  
  349. 88
  350. 00:04:17,131 --> 00:04:20,552
  351. And, Masternodes have a number which is the
  352.  
  353. 89
  354. 00:04:20,552 --> 00:04:24,552
  355. thousandth dash input that created them originally.
  356.  
  357. 90
  358. 00:04:24,552 --> 00:04:28,552
  359. And so by taking the distance between the two numbers
  360.  
  361. 91
  362. 00:04:28,552 --> 00:04:31,518
  363. we can order them into a ranking
  364.  
  365. 92
  366. 00:04:31,518 --> 00:04:34,268
  367. and then we could take the top 10 closest
  368.  
  369. 93
  370. 00:04:34,268 --> 00:04:36,518
  371. numbers to the proof of work hash.
  372.  
  373. 94
  374. 00:04:36,518 --> 00:04:40,038
  375. The process of instant transactions is
  376.  
  377. 95
  378. 00:04:40,038 --> 00:04:43,688
  379. relatively simple. The network will select
  380.  
  381. 96
  382. 00:04:43,688 --> 00:04:47,218
  383. Masternodes based off of the input of the
  384.  
  385. 97
  386. 00:04:47,218 --> 00:04:50,068
  387. transaction in question and then
  388.  
  389. 98
  390. 00:04:50,068 --> 00:04:52,778
  391. the transaction propagates around the network
  392.  
  393. 99
  394. 00:04:52,778 --> 00:04:55,288
  395. finds it's target Masternodes, those Masternodes
  396.  
  397. 100
  398. 00:04:55,288 --> 00:04:57,998
  399. look at their own memory pool to see if those inputs are valid
  400.  
  401. 101
  402. 00:04:57,998 --> 00:05:00,218
  403. if the inputs are valid then they send a message
  404.  
  405. 102
  406. 00:05:00,218 --> 00:05:02,388
  407. send it out back to the network again
  408.  
  409. 103
  410. 00:05:02,388 --> 00:05:04,988
  411. signatures are collected, a threshold is met
  412.  
  413. 104
  414. 00:05:04,988 --> 00:05:07,008
  415. and then rules are enforced on the
  416.  
  417. 105
  418. 00:05:07,008 --> 00:05:08,628
  419. entire network after that.
  420.  
  421. 106
  422. 00:05:08,628 --> 00:05:11,488
  423. After the enforcement is engaged
  424.  
  425. 107
  426. 00:05:11,488 --> 00:05:15,158
  427. No peer on the network will accept a conflicting
  428.  
  429. 108
  430. 00:05:15,158 --> 00:05:18,318
  431. transaction or any type of conflicting message
  432.  
  433. 109
  434. 00:05:18,318 --> 00:05:20,398
  435. for whatever the given quorum was.
  436.  
  437. 110
  438. 00:05:20,398 --> 00:05:25,048
  439. In this case, they would even reject blocks that were mined
  440.  
  441. 111
  442. 00:05:25,048 --> 00:05:26,878
  443. with the conflicting transaction.
  444.  
  445. 112
  446. 00:05:26,878 --> 00:05:30,428
  447. The DarkSend implementation, on the other hand
  448.  
  449. 113
  450. 00:05:30,428 --> 00:05:33,198
  451. doesn't use quorum technology at all.
  452.  
  453. 114
  454. 00:05:33,198 --> 00:05:35,978
  455. Masternodes just simply host mixing sessions
  456.  
  457. 115
  458. 00:05:35,978 --> 00:05:39,978
  459. for users. And all this means is a user will
  460.  
  461. 116
  462. 00:05:39,978 --> 00:05:42,968
  463. reach out to a Masternode, they will wait in que
  464.  
  465. 117
  466. 00:05:42,968 --> 00:05:45,708
  467. once enough users have entered the que,
  468.  
  469. 118
  470. 00:05:45,708 --> 00:05:49,708
  471. mixing starts and then the users send money
  472.  
  473. 119
  474. 00:05:49,708 --> 00:05:52,528
  475. to themselves through that Masternode.
  476.  
  477. 120
  478. 00:05:52,528 --> 00:05:55,118
  479. And this is why it remains trustless because
  480.  
  481. 121
  482. 00:05:55,118 --> 00:05:59,228
  483. the user's money actually never leaves their own wallet.
  484.  
  485. 122
  486. 00:05:59,228 --> 00:06:02,688
  487. The reason it's secure is because we use
  488.  
  489. 123
  490. 00:06:02,688 --> 00:06:05,828
  491. denominations in all the transactions
  492.  
  493. 124
  494. 00:06:05,828 --> 00:06:09,138
  495. So you would only pay yourself in 10s or
  496.  
  497. 125
  498. 00:06:09,138 --> 00:06:11,558
  499. you would pay yourself in 50s or you'd
  500.  
  501. 126
  502. 00:06:11,558 --> 00:06:14,108
  503. would only pay yourself in 100s.
  504.  
  505. 127
  506. 00:06:14,108 --> 00:06:17,238
  507. And all other users in that mixing session
  508.  
  509. 128
  510. 00:06:17,238 --> 00:06:20,268
  511. are required to do the same thing.
  512.  
  513. 129
  514. 00:06:20,268 --> 00:06:23,818
  515. And this is called "anonymity through ambiguity"
  516.  
  517. 130
  518. 00:06:23,818 --> 00:06:26,298
  519. meaning that you can't tell anything apart
  520.  
  521. 131
  522. 00:06:26,298 --> 00:06:28,738
  523. in the transaction because there is no other
  524.  
  525. 132
  526. 00:06:28,738 --> 00:06:31,858
  527. information other than the denominations
  528.  
  529. 133
  530. 00:06:31,858 --> 00:06:36,658
  531. fees for utilizing the DarkSend service are actually charged
  532.  
  533. 134
  534. 00:06:36,658 --> 00:06:41,058
  535. separately from the mixing transactions to increase the anonymity
  536.  
  537. 135
  538. 00:06:41,058 --> 00:06:44,758
  539. that is on the network. This is something that would be
  540.  
  541. 136
  542. 00:06:44,758 --> 00:06:48,148
  543. incredibly difficult and we have special rules in the client
  544.  
  545. 137
  546. 00:06:48,148 --> 00:06:52,148
  547. to allow it. When using DarkSend, after you have
  548.  
  549. 138
  550. 00:06:52,148 --> 00:06:54,928
  551. successfully anonymized coins, you'll end up with
  552.  
  553. 139
  554. 00:06:54,928 --> 00:06:57,928
  555. a private and a public balance within your wallet.
  556.  
  557. 140
  558. 00:06:57,928 --> 00:07:01,028
  559. And all this means is that you can spend your
  560.  
  561. 141
  562. 00:07:01,028 --> 00:07:03,528
  563. private balance at any time in the future
  564.  
  565. 142
  566. 00:07:03,528 --> 00:07:06,178
  567. And this is so that you can't execute
  568.  
  569. 143
  570. 00:07:06,178 --> 00:07:08,008
  571. timing attacks on our system.
  572.  
  573. 144
  574. 00:07:08,008 --> 00:07:11,338
  575. A timing attack is where you would
  576.  
  577. 145
  578. 00:07:11,338 --> 00:07:13,118
  579. look at all the mixing sessions
  580.  
  581. 146
  582. 00:07:13,118 --> 00:07:15,368
  583. and then you would try to correlate them
  584.  
  585. 147
  586. 00:07:15,368 --> 00:07:17,118
  587. with users spending their money later on.
  588.  
  589. 148
  590. 00:07:17,118 --> 00:07:20,628
  591. And if they happen too close because
  592.  
  593. 149
  594. 00:07:20,628 --> 00:07:23,348
  595. one is required just before the other one happens
  596.  
  597. 150
  598. 00:07:23,348 --> 00:07:25,758
  599. then you can break user's anonymity.
  600.  
  601. 151
  602. 00:07:25,758 --> 00:07:29,488
  603. Here you see a Bitcoin example transaction
  604.  
  605. 152
  606. 00:07:29,488 --> 00:07:32,228
  607. On the left, is where money came from
  608.  
  609. 153
  610. 00:07:32,228 --> 00:07:34,288
  611. and on the right is where it went to.
  612.  
  613. 154
  614. 00:07:34,288 --> 00:07:37,308
  615. One of those is the target person or
  616.  
  617. 155
  618. 00:07:37,308 --> 00:07:39,948
  619. company that it was spent to and the other one is
  620.  
  621. 156
  622. 00:07:39,948 --> 00:07:42,468
  623. the change address where the user is receiving
  624.  
  625. 157
  626. 00:07:42,468 --> 00:07:44,908
  627. back change to their own wallet.
  628.  
  629. 158
  630. 00:07:44,908 --> 00:07:46,958
  631. And so this is very easy to understand
  632.  
  633. 159
  634. 00:07:46,958 --> 00:07:48,828
  635. and if any of these addresses are
  636.  
  637. 160
  638. 00:07:48,828 --> 00:07:51,578
  639. deanonymized in the future, then it means that
  640.  
  641. 161
  642. 00:07:51,578 --> 00:07:55,738
  643. everything after that in the blockchain is not anonymous as well.
  644.  
  645. 162
  646. 00:07:55,738 --> 00:08:01,958
  647. So here you can see an example transaction for Dash.
  648.  
  649. 163
  650. 00:08:01,958 --> 00:08:05,594
  651. And everything is denominated up until the point where
  652.  
  653. 164
  654. 00:08:05,594 --> 00:08:09,244
  655. it's actually spent. and this is where the security comes
  656.  
  657. 165
  658. 00:08:09,244 --> 00:08:11,684
  659. from. So how do you use DarkSend?
  660.  
  661. 166
  662. 00:08:11,684 --> 00:08:14,064
  663. Well, it's as simple as clicking that button.
  664.  
  665. 167
  666. 00:08:14,064 --> 00:08:16,034
  667. "Start Darksend Mixing".
  668.  
  669. 168
  670. 00:08:16,034 --> 00:08:19,194
  671. And then when you actually want to spend
  672.  
  673. 169
  674. 00:08:19,194 --> 00:08:22,144
  675. your DarkSend private balance, you can use
  676.  
  677. 170
  678. 00:08:22,144 --> 00:08:25,114
  679. these check boxes in the send tab of the client,
  680.  
  681. 171
  682. 00:08:25,114 --> 00:08:27,234
  683. and depending on which one you want,
  684.  
  685. 172
  686. 00:08:27,234 --> 00:08:29,614
  687. you click the checkbox, fill out the form as
  688.  
  689. 173
  690. 00:08:29,614 --> 00:08:31,984
  691. you normally would, and then click send.
  692.  
  693. 174
  694. 00:08:31,984 --> 00:08:35,984
  695. So that's it for the Masternode Services Video.
  696.  
  697. 175
  698. 00:08:35,984 --> 00:08:38,844
  699. In our next video, we're going to be exploring
  700.  
  701. 176
  702. 00:08:38,844 --> 00:08:42,194
  703. our Decentralized Governance and Budgeting System
  704.  
  705. 177
  706. 00:08:42,194 --> 00:08:44,704
  707. how it works, and how it benefits Dash.
  708.  
  709. 178
  710. 00:08:42,512 --> 00:08:46,512
  711. Thanks for watching!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement