You may have seen me at the top of /technology
the other day and I got a lot of messages telling me to do an IAMA about this article on CNBC
so here I am!
So I made a bet with my parents that if I turned 18 and was a millionaire, my parents wouldn't force me to go to college. I’m proud to say I won that bet! Thanks to some clever investments, making money from projects, and as is the case with everyone who has any kind of success (or even failure) a little bit of luck.
Here’s the story of how it happened:
When I was 12 years old in May 2011, my older brother showed me this technology that I fell in love with and found fascinating. The technology was called Bitcoin.
At that stage in life I had a $1000 saved up, solely a gift from my Grandma to use for my scholarship fund. It did not go to my scholarship fund. I asked my brother to help me put it into Bitcoin at $12 because I knew it would be huge in someway. At that point I had about a 100 bitcoins.
I continued to do ‘day trading’ buying low and selling high over the coming years as well and reinvesting the money.
Fast forward to when I was 14 in high school I was not enjoying school. I was in a small town in Idaho living on a llama farm. So the quality of the school system, was let’s say, not the highest grade. I found the classes to be boring, valuable to some people, but at least for me boring and teaching me in a way that didn’t make sense to me. Lessons that did not seem applicable in my life.
My teachers would constantly criticize people in the classroom. Especially me.
One teacher told me to drop out and work at McDonald's because that was all I would amount to for the rest of my life.
Another would force us to read other student’s grades out to the rest of the class to shame them for failing.
Another roasted me (me in particular) for the full hour of class. No teaching. It was literally the “Roast of Erik Finman”. Which now seems kind of funny actually but still very bad to do.
I went to a summer program to prepare me for the next year and found the best teacher ever in my life that changed my life who was from the UK. I got an A+ in advanced physics when I got a C- in basic physics the previous year.
With that knowledge. Since I didn’t have access to good teachers in my small town in Idaho. I wanted to fix it. So I learned how to code and created an educational website that would allow you to connect with Tutors/Teachers/Mentors online over video chat to teach you any subject you wanted to learn. You could search for Spanish. And find someone to teach you from Ecuador. You could type in programming and you’d find a CS college student that is trying to pay tuition by doing this on the side. Or a retired expert who is a veteran in his field that just wants to impart his knowledge onto others.
It became very popular in the local community! I told my teachers about it, but they did not like it because it felt like competition. Maybe they thought they might have to do better?
At this point I was 15 and this got some initial traction and I was using it to teach myself.
I asked my parents to let me drop out of High School to focus on this because I was miserable in school.
They agreed and were supportive, but they made a bet with me that I can drop out of High School, but I have to go to college if I don’t make a million dollars by the age 18.
I agreed and I dropped out of High School to work on this. A little bit after I dropped out of High School, and I had traction with my project. Bitcoin was shooting up! It was going big! $800! $900! $1000!!!!
So I sold a lot of my Bitcoins which resulted in me gaining a $100,000.
I used that money to put into my business so I could hire more professional programmers and I moved to Silicon Valley.
I even caught the attention of Alexis Ohanian of Reddit
because his book at the time Without Their Permission
is what got me started. He helped me in many ways!
Fast forward to early 2015. Eventually I found a buyer for the companies code & technology in January 2015. The investor offered either $100,000 or 300 bitcoin, which had dropped in value at that time to a little more than $200 a coin. I took the lower cash value bitcoin deal because I believed it was the next big thing and an official buyout would’ve been very difficult for someone under 18 and it was good tax planning to use Bitcoin. Also continuing to do day trading on a daily basis.
I used some of that money in the coming years to travel the world. Going to London, Dubai, Australia, and more!
I used that to start a VR company using crowdfunding and that did well. I shipped all those out. It was incredible!
Now I’m doing a satellite as part of a NASA award which is launching in November out of New Zealand! I'll probably do another post about this soon because it's so cool.
Elon Musk has always been hero of mine. He's such a talented guy changing the world with Tesla and SpaceX. I'm a great admirer of his and respect him immensely. He's the closest we have yet to a real life Iron Man. But who knows maybe I'll beat him one day
haha ;-) After all we stand on the shoulders of giants right? haha that's a big goal though and I say it as such.
It’s been a fantastic few years! I’ve used that money to learn how to do a business, invest, and learn about the world! I didn’t do investing all the time and I used that money to build things that I thought were important! I haven’t done everything perfectly, no one has! I’ve made some humbling mistakes, but had lots of exciting successes! I’ve really launched my career in exciting ways and have met mentors that help me and advise me along the whole way! Which I’m so thankful for!
I’ve learned so much outside the education system and have been so much happier. Although I’m unique, I’ve met many many people that weren’t satisfied and unhappy — ranging from students with the lowest and highest GPAs. My GPA was a 2.1 in school!
And I’m happy I’m not going to College! College wasn’t for me but it was the ‘life path’ you are supposed to go on and I did not want to go nor felt it would’ve helped me too much in life — especially the $250,000 in debt! Or $249,000 with my scholarship fund if I had not used it on Bitcoin and my projects ;-)
I really believe the education system needs to be reformed and I think technology is the way to do that. I think it’s wonderful how society allows you to be a ‘student’ so that you can learn for many years and that’s your full time job. The infrastructure would just ideally be much better so you could do that without being in sometimes a bad environment and crippling debt.
I can say today that I own 403 bitcoins which is currently valued at $1,092,678.08 with the price per Bitcoin being at $2,711.36 plus some other money invested in other things. Can’t have all your eggs in one basket! So I won the bet!
If you have any questions let me know! And if you want any advice on cryptocurrency or your own educational route, or anything else let me know!
Also on reddit! People have made Pepe memes of me! I feel like I've finally made it: http://imgur.com/gallery/06dWK If you want to keep updated with everything I’m doing! Follow me on twitter!
Proof of the bet: http://www.cbsnews.com/news/erik-finman-botangle-after-100k-bitcoin-score-15-year-old-creates-startup/
Travel proof: http://imgur.com/a/kvlzR
Proof: I went through rigorous proof verification and fact checking with CNBC as you can see with this article
. I keep my Bitcoin is super secure places spread out across multiple wallets across multiple machines. I'm so paranoid after all this media attention someone is going to steal it all! haha
Proof of growing up on the llama farm: http://imgur.com/gallery/6scF5
---- ASK me about the time the llama came into my house!
Proof of the 100k initially made: http://mashable.com/2014/06/10/botangle/
Proof it's really me: http://imgur.com/a/zc3eu Edit:
Wow! Thanks for the gold guys! Edit:
Was on for the first few hours of the AMA and had a meeting to go to and I just came back now to see all these great questions! Questions I all have answers to! I will respond to them tomorrow as it's midnight here now. Edit:
That's it for me! A lot of great questions and a lot of great feedback.
Hello everyone, I’m back! Someone asked a question recently on what exactly happened to XVG – Verge and if this could be a problem for DGB – DigiByte - Here: DigiByte vs Verge
It was a great question and there have been people stating that this cannot be a problem for us because of DigiShield etc… with not much explanation after that.
I was curious and did a bit more investigating to figure out what happened and why exactly it is that we are safe. So take a read.
Some Information on Verge
Verge was founded in 2014 with code based on DogeCoin, it was initially named DogeCoinDark, it later was renamed Verge XVG in 2016. Verge has 5 mining algorithms as does DigiByte. Those being:
However, unlike DigiByte those algorithms do not run side by side. On Verge one block can only be mined by a single algorithm at any time. This means that each algorithm takes turns mining the chain.
Prior to the latest fork there was not a single line of code that forced any algo rotation. They all run in parallel but of course in the end only one block can be accepted at given height which is obvious. After the fork algo rotation is forced so only 6 blocks with the same algo out of any 10 blocks can be accepted. - srgn_
Mining Verge and The Exploit
What happened then was not a 51% attack per say, but the attacker did end up mining 99% of all new blocks so in fact he did have power of over 51% of the chain. The way that Verge is mined allowed for a timestamp exploit.
Every block that is mined is dependent on the previous blocks for determining the algorithm to be used (this is part of the exploit). Also, their mining difficulty is adjusted every block (which last 30 seconds also part of the exploit).
Algorithms are not picked but in fact as stated previously compete with one another. As for difficulty:
Difficulty is calculated by a version of DGW which is based on timestamps of last 12 blocks mined by the same algo. - srgn_
This kind of bug is very serious and at the foundation of Verge’s codebase. In fact, in order to fix it a fork is needed, either hard fork or soft fork!
What happened was that the hacker managed to change the time stamps on his blocks. He introduced a pair of false blocks. One which showed that the scrypt mining algorithm had been previously used, about 26 mins before, and then a second block which was mined with scrypt.
The chain is set up so that it goes through the 5 different algorithms. So, the first false block shows the chain that the scrypt algorithm had been used in the recent past. This tricks it into thinking that the next algorithm to be used is scrypt. In this way, he was essentially able to mine 99% of all blocks.
Pairs of blocks are used to lower the difficulty but they need to be mined in certain order so they can pass the check of median timestamp of last 11 blocks which is performed in CBlock::AcceptBlock(). There is no tricking anything into thinking that the next algo should be x because there is no algo picking. They all just run and mine blocks constantly. There is only lowering the difficulty, passing the checks so the chain is valid and accepting this chain over chains mined by other algos. - segn_ Here is a snippet of code for what the time stamps on the blocks would look like:
SetBestChain: new best=00000000049c2d3329a3 height=2009406 trust=2009407 date=04/04/18 13:50:09 ProcessBlock: ACCEPTED (scrypt) SetBestChain: new best=000000000a307b54dfcf height=2009407 trust=2009408 date=04/04/18 12:16:51 ProcessBlock: ACCEPTED (scrypt) SetBestChain: new best=00000000196f03f5727e height=2009408 trust=2009409 date=04/04/18 13:50:10 ProcessBlock: ACCEPTED (scrypt) SetBestChain: new best=0000000010b42973b6ec height=2009409 trust=2009410 date=04/04/18 12:16:52 ProcessBlock: ACCEPTED (scrypt) SetBestChain: new best=000000000e0655294c73 height=2009410 trust=2009411 date=04/04/18 12:16:53 ProcessBlock: ACCEPTED (scrypt) Here’s the first falsified block that was introduced into the XVG chain – Verge-Blockchain.info
As you can see there is the first fake block with a time stamp of 13:50:09 for example and the next is set to 12:15:51, the following two blocks are also a fraudulent pair and note that the next block is set to 12:16:52. So essentially, he was able to mine whole blocks - 1 second per block!
The “Fix” This exploit was brought to public attention by ocminer on the bitcointalk forums. It seems the person was a mining pool administrator and noticed the problem after miners on the pool started to complain about a potential bug.
What happened next was that Verge developers pushed out a “fix” but in fact did not really fix the issue. What they did was simply diminish the time frame in which the blocks can be mined. The attack still was exploitable and the attacker even went on to try it again!
“The background is that the "fix" promoted by the devs simply won't fix the problem. It will just make the timeframe smaller in which the blocks can be mined / spoofed and the attack will still work, just be a bit slower.” - ocminer
Ocminer then cited DigiShield as a real fix to the issue! Stating that the fix should also stipulate that a single algo can only be used X amount of times and not be dependent on when the algo was last used. He even said that DigiByte and Myriad had the same problems and we fixed them! He cited this github repo for DigiByte:
DigiShield It seems that the reason that this exploit was so lucrative was because the difficulty adjustment parameters were not enough to reduce the rewards the attacker recieved. Had the rewards per block adjusted at reasonable rate like we do in DGB then at least the rewards would have dropped significantly per block.
The attacker was able to make off with around 60 million Verge which equals about 3.6 million dollars per today’s prices.
The exploit used by the attacker depended on the fact that time stamps could be falsified firstly and secondly that the difficulty retargeting parameters were inadequate.
Let’s cover how DigiShield works more in detail. One of the DigiByte devs gave us this post about 4 years ago now, and the topic deserves revisiting and updates! I had a hard time finding good new resources and information on the details of DigiShield so I hope you’ll appreciate this review! This is everything I found for now that I could understand hopefully I get more information later and I’ll update this post.
Let’s go over some stuff on difficulty first then I’ll try giving you a way to visualise the way these systems work.
First you have to understand that mining difficulty changes over time; it has to! Look at Bitcoin’s difficulty for example – Bitcoin difficulty over the past five months. As I covered in another post (An Introduction to DigiByte Difficulty in Bitcoin is readjusted every 2016 blocks which each last about 10 mins each. This can play out over a span of 2 weeks, and that’s why you see Bitcoin’s difficulty graph as a step graph. In general, the hash power in the network increases over time as more people want to mine Bitcoin and thus the difficulty must also increase so that rewards are proportional.
The problem with non-dynamic difficulty adjustment is that it allows for pools of miners and or single entities to come into smaller coins and mine them continuously, they essentially get “free” or easily mined coins as the difficulty has not had time to adjust. This is not really a problem for Bitcoin or other large coins as they always have a lot of miners running on their chains but for smaller coins and a few years ago in crypto basically any coin other than Bitcoin was vulnerable. Once the miners had gotten their “free coins” they could then dump the chain and go mine something else – because the difficulty had adjusted. Often chains were left frozen or with very high fees and slow processing times as there was not enough hash power to mine the transactions.
This was a big problem in the beginning with DigiByte and almost even killed DogeCoin. This is where our brilliant developers came in and created DigiShield (first known as MultiShield).
These three articles are where most of my information came from for DigiShield I had to reread a the first one a few times to understand so please correct me if I make any mistakes! They are in order from most recent to oldest and also in order of relevance.
DigiShield is a system whereby the difficulty for mining DigiByte is adjusted dynamically. Every single block each at 15 seconds has difficulty adjusted for the available hashing power. This means that difficulty in DigiByte is as close as we can get to real time! There are other methods for adjusting difficulty, the first being the Bitcoin/Litecoin method (a moving average calculated every X number of blocks) then the Kimoto Gravity Well is another. The reason that DigiShield is so great is because the parameters are just right for the difficulty to be able to rise and fall in proportion to the amount of hash power available.
Note that Verge used a difficulty adjustment protocol more similar to that of DigiByte than Bitcoin. Difficulty was adjusted every block at 30 seconds. So why was Verge vulnerable to this attack? As I stated before Verge had a bug that allowed for firstly the manipulation of time stamps, and secondly did not adjust difficulty ideally.
You have to try to imagine that difficulty adjustment chases hashing power. This is because the hashing power on a chain can be seen as the “input” and the difficulty adjustment as the corresponding output. The adjustment or output created is thus dependent on the amount of hashing power input.
DigiShield was designed so that increases in mining difficulty are slightly harder to result than decreases in mining difficulty. This asymmetrical approach allows for mining to be more stable on DigiByte than other coins who use a symmetrical approach. It is a very delicate balancing act which requires the right approach or else the system breaks! Either the chain may freeze if hash power increases and then dumps or mining rewards are too high because the difficulty is not set high enough!
If you’ve ever taken any physics courses maybe one way you can understand DigiShield is if I were to define it as a dynamic asymmetrical oscillation dampener. What does this mean? Let’s cover it in simple terms, it’s difficult to understand and for me it was easier to visualise. Imagine something like this, click on it it’s a video: Caravan Weight Distribution – made easy. This is not a perfect analogy to what DigiShield does but I’ll explain my idea.
The input (hashing power) and the output (difficulty adjustment) both result in oscillations of the mining reward. These two variables are what controls mining rewards! So that caravan shaking violently back and forth imagine those are mining rewards, the weights are the parameters used for difficulty adjustment and the man’s hand pushing on the system is the hashing power. Mining rewards move back and forth (up and down) depending on the weight distribution (difficulty adjustment parameters) and the strength of the push (the amount of hashing power input to the system).
Here is a quote from the dev’s article.
“The secret to DigiShield is an asymmetrical approach to difficulty re-targeting. With DigiShield, the difficulty is allowed to decrease in larger movements than it is allowed to increase from block to block. This keeps a blockchain from getting "stuck" i.e., not finding the next block for several hours following a major drop in the net hash of coin. It is all a balancing act. You need to allow the difficulty to increase enough between blocks to catch up to a sudden spike in net hash, but not enough to accidentally send the difficulty sky high when two miners get lucky and find blocks back to back.”
AND to top it all off the solution to Verge’s time stamp manipulation bug is RIGHT HERE in DigiShield again! This was patched and in Digishield v3 problems #7
Here’s a direct quote:
“Most DigiShield v3 implementations do not get data from the most recent blocks, but begin the averaging at the MTP, which is typically 6 blocks in the past. This is ostensibly done to prevent timestamp manipulation of the difficulty.”
Moreover, DigiShield does not allow for one algorithm to mine more than 5 blocks in a row. If the next block comes in on the same algorithm then it would be blocked and would be handed off to the next algorithm.
DigiShield is a beautiful delicate yet robust system designed to prevent abuse and allow stability in mining! Many coins have adopted out technology!
Verge Needs DigiShield NOW! The attacker has been identified as IDCToken on the bitcointalk forums. He posted recently that there are two more exploits still available in Verge which would allow for similar attacks! He said this:
“Can confirm it is still exploitable, will not abuse it futher myself but fix this problem immediately I'll give Verge some hours to solve this otherwise I'll make this public and another unpatchable problem.” - IDCToken
DigiShield could have stopped the time stamp manipulation exploit, and stopped the attacker from getting unjust rewards! Maybe a look at Verge’s difficulty chart might give a good idea of what 1 single person was able to do to a coin worth about 1 billion dollars.
Here’s DigiByte’s difficulty steady, even and fair:
Maybe our developers could help Verge somehow – but for a fee? Or it might be a good way to get our name out there, and show people why DigiByte and DigiShield are so important!
SOURCES Edit - Made a few mistakes in understanding how Verge is mined I've updated the post and left the mistakes visible. Nothing else is changed and my point still stands Verge could stand to gain something from adopting DigiShield!
I hope you’ve enjoyed my article! I tried to learn as much as I could on DigiShield because I thought it was an interesting question and to help put together our DGB paper! hopefully I made no mistakes and if I did please let me know.
-Dereck de Mézquita
I'm a student typing this stuff on my free time, help me pay for school? Thank you!