What Is Bitcoin Mining Actually Doing The Heart of ...
What Is Bitcoin Mining Actually Doing The Heart of ...
What Is Bitcoin Mining and How Does it Work? - TheStreet
What is Bitcoin Mining? How Does it Actually Work? (2020 ...
What is mining actually doing? : Bitcoin
Bitcoin Mining Definition
What is Bitcoin mining actually doing?
Bitcoin mining is the process of adding transaction records to Bitcoin's public ledger of past transactions on the blockchain and the blockchain confirms transactions to the rest of the network as having taken place. Learn more about the Hamdan Token Click Here: www.hamdantoken.io #hamdantoken #cryptocurrency #bitcoin #blockchain #btc #crypto #price #ethereum #ico #ltc #trading #eth #market #money #forex #bitcoinmining #cryptonews #investment #entrepreneur #cryptotrading #business #forextrader #investing #bitcoinnews #litecoin #invest #binaryoptions #bitcoincash #coinbase #bitcoins #ripple #investor #trader #binance https://preview.redd.it/vjm0wobxyp941.jpg?width=800&format=pjpg&auto=webp&s=988858bb7751fc113d047618fd65608651308bf3
Interested in starting to mine. I was wondering if it is worth it and if I could actually make some money off of it. I want to know before I buy some hardware and also what hardware do you guys recommend for a starter (relatively cheaper) /r/Bitcoin
So Ive been playing the game for a little over a month now. My initial impression was, "finally the gacha game Ive been looking for." It is actually a game instead of a character manager with auto everything. The story has been great and it has been fun exploring new areas. I completed part 1 and Im now working on Ogre wars 1. However, as great as the game has been so far, there is one thing that Im struggling to do, the dungeon grind. My characters are good enough that I can complete the dungeons, but not good enough that I can just auto attack my way through everything. So Im literally repeating the same abilities in the same order, over and over and over and over. Im starting to feel like Im manually mining bitcoin for Wright Flyer Studios and GREE. It's not challenging, and it is not fun. Im honestly at the point where I cant use my dungeon keys everyday because I cannot bare going back into the same %#@^@ dungeons and doing the same key presses over and over and over. For example I lucked into Myunfa (game over easy mode) as my first 5*. So my combat is switch to Myunfa, cast all my earth spells, listen to Myunfa say the same thing she says every damn time I switch to her, watch the banner tell me the earth zone is active, then finally put a gun in my mouth cause I have to watch this 30 times every dungeon. When Im playing through the story content there is breaks and pauses so I can forget the combat grind, but in dungeons its tea kettle comments and pain. Anyway, Im starting to find out that this is pretty much what the game is if I want to continue to improve my characters. So my first question, am I missing something? Is there a way to achieve the grind materials without running the same dungeons over and over? Also is there some way I can get Tsubura gems without running VH dungeons over and over? At least with Tsubura gems I can make some character improvements over time. Like for example it would be absolutely amazing if I could trade in my dungeon keys for Tsubura gems. When I first saw the Tsubura gem merchant, my first thought was thank god, I can trade my keys for gems and not have to run dungeons!! Here take my keys and give me 5 gems a pop, anything to skip running dungeons all night. But no, its the other way around!!! I can only trade gems for more keys!! We are mining bitcoin for this company, Im almost positive. Anyway, jokes aside, that was my qol idea. Trade keys for gems. Any input on how I can streamline this process would be great. I was looking through the subreddit, but I cant find anything that speeds up combat other than the repeat button. Appreciate any tips or tricks people may have. *Edit 9/3/2020* So after reading a lot of the responses, a common response is, focus on something else (netflix, podcast, pron, etc.). A completely valid response, and a good idea if you want to grind (especially since there does not appear to be any other method and all you can do is improve your party and therefore your clear speed). And this response (focus on something else) seems to also come from people who genuinely enjoy the grind and the game as well. But I can't help but point out that I think this is also strong criticism towards the dungeon grind end game. Given how long this game has been out, I am a bit surprised that the developers haven't come up with some new ideas that maybe preserve some of the time commitment but also make the process fun. Like I said above, Im new to this game, and it did not take me long to experience the tedium. Anyway, I appreciate the ideas posted below, and for now it looks like I will just have to find a way to make the grind process faster through better characters and combinations of characters. Cause I can deal with a couple cups a tea a day, but by god I cant do 30 an hour. #Myunfawillwaterboardyouwithtea
Why Osana takes so long? (Programmer's point of view on current situation)
I decided to write a comment about «Why Osana takes so long?» somewhere and what can be done to shorten this time. It turned into a long essay. Here's TL;DR of it:
The cost of never paying down this technical debt is clear; eventually the cost to deliver functionality will become so slow that it is easy for a well-designed competitive software product to overtake the badly-designed software in terms of features. In my experience, badly designed software can also lead to a more stressed engineering workforce, in turn leading higher staff churn (which in turn affects costs and productivity when delivering features). Additionally, due to the complexity in a given codebase, the ability to accurately estimate work will also disappear. Junade Ali, Mastering PHP Design Patterns (2016)
Longer version: I am not sure if people here wanted an explanation from a real developer who works with C and with relatively large projects, but I am going to do it nonetheless. I am not much interested in Yandere Simulator nor in this genre in general, but this particular development has a lot to learn from for any fellow programmers and software engineers to ensure that they'll never end up in Alex's situation, especially considering that he is definitely not the first one to got himself knee-deep in the development hell (do you remember Star Citizen?) and he is definitely not the last one. On the one hand, people see that Alex works incredibly slowly, equivalent of, like, one hour per day, comparing it with, say, Papers, Please, the game that was developed in nine months from start to finish by one guy. On the other hand, Alex himself most likely thinks that he works until complete exhaustion each day. In fact, I highly suspect that both those sentences are correct! Because of the mistakes made during early development stages, which are highly unlikely to be fixed due to the pressure put on the developer right now and due to his overall approach to coding, cost to add any relatively large feature (e.g. Osana) can be pretty much comparable to the cost of creating a fan game from start to finish. Trust me, I've seen his leaked source code (don't tell anybody about that) and I know what I am talking about. The largest problem in Yandere Simulator right now is its super slow development. So, without further ado, let's talk about how «implementing the low hanging fruit» crippled the development and, more importantly, what would have been an ideal course of action from my point of view to get out. I'll try to explain things in the easiest terms possible.
else if's and lack any sort of refactoring in general
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. Antoine de Saint-Exupéry
This is why refactoring — activity of rewriting your old code so it does the same thing, but does it quicker, in a more generic way, in less lines or simpler — is so powerful. In my experience, you can only keep one module/class/whatever in your brain if it does not exceed ~1000 lines, maybe ~1500. Splitting 17000-line-long class into smaller classes probably won't improve performance at all, but it will make working with parts of this class way easier. Is it too late now to start refactoring? Of course NO: better late than never.
If you think that you wrote this code, so you'll always easily remember it, I have some bad news for you: you won't. In my experience, one week and that's it. That's why comments are so crucial. It is not necessary to put a ton of comments everywhere, but just a general idea will help you out in the future. Even if you think that It Just Works™ and you'll never ever need to fix it. Time spent to write and debug one line of code almost always exceeds time to write one comment in large-scale projects. Moreover, the best code is the code that is self-evident. In the example above, what the hell does (float) 6 mean? Why not wrap it around into the constant with a good, self-descriptive name? Again, it won't affect performance, since C# compiler is smart enough to silently remove this constant from the real code and place its value into the method invocation directly. Such constants are here for you. I rewrote my code above a little bit to illustrate this. With those comments, you don't have to remember your code at all, since its functionality is outlined in two tiny lines of comments above it. Moreover, even a person with zero knowledge in programming will figure out the purpose of this code. It took me less than half a minute to write those comments, but it'll probably save me quite a lot of time of figuring out «what was I thinking back then» one day. Is it too late now to start adding comments? Again, of course NO. Don't be lazy and redirect all your typing from «debunk» page (which pretty much does the opposite of debunking, but who am I to judge you here?) into some useful comments.
This is often neglected, but consider the following. You wrote some code, you ran your game, you saw a new bug. Was it introduced right now? Is it a problem in your older code which has shown up just because you have never actually used it until now? Where should you search for it? You have no idea, and you have one painful debugging session ahead. Just imagine how easier it would be if you've had some routines which automatically execute after each build and check that environment is still sane and nothing broke on a fundamental level. This is called unit testing, and yes, unit tests won't be able to catch all your bugs, but even getting 20% of bugs identified at the earlier stage is a huge boon to development speed. Is it too late now to start adding unit tests? Kinda YES and NO at the same time. Unit testing works best if it covers the majority of project's code. On the other side, a journey of a thousand miles begins with a single step. If you decide to start refactoring your code, writing a unit test before refactoring will help you to prove to yourself that you have not broken anything without the need of running the game at all.
This is basically pretty self-explanatory. You set this thing once, you forget about it. Static code analyzer is another «free estate» to speed up the development process by finding tiny little errors, mostly silly typos (do you think that you are good enough in finding them? Well, good luck catching x << 4; in place of x <<= 4; buried deep in C code by eye!). Again, this is not a silver bullet, it is another tool which will help you out with debugging a little bit along with the debugger, unit tests and other things. You need every little bit of help here. Is it too late now to hook up static code analyzer? Obviously NO.
Say, you want to build Osana, but then you decided to implement some feature, e.g. Snap Mode. By doing this you have maybe made your game a little bit better, but what you have just essentially done is complicated your life, because now you should also write Osana code for Snap Mode. The way game architecture is done right now, easter eggs code is deeply interleaved with game logic, which leads to code «spaghettifying», which in turn slows down the addition of new features, because one has to consider how this feature would work alongside each and every old feature and easter egg. Even if it is just gazing over one line per easter egg, it adds up to the mess, slowly but surely. A lot of people mention that developer should have been doing it in object-oritented way. However, there is no silver bullet in programming. It does not matter that much if you are doing it object-oriented way or usual procedural way; you can theoretically write, say, AI routines on functional (e.g. LISP)) or even logical language if you are brave enough (e.g. Prolog). You can even invent your own tiny programming language! The only thing that matters is code quality and avoiding the so-called shotgun surgery situation, which plagues Yandere Simulator from top to bottom right now. Is there a way of adding a new feature without interfering with your older code (e.g. by creating a child class which will encapsulate all the things you need, for example)? Go for it, this feature is basically «free» for you. Otherwise you'd better think twice before doing this, because you are going into the «technical debt» territory, borrowing your time from the future by saying «I'll maybe optimize it later» and «a thousand more lines probably won't slow me down in the future that much, right?». Technical debt will incur interest on its own that you'll have to pay. Basically, the entire situation around Osana right now is just a huge tale about how just «interest» incurred by technical debt can control the entire project, like the tail wiggling the dog. I won't elaborate here further, since it'll take me an even larger post to fully describe what's wrong about Yandere Simulator's code architecture. Is it too late to rebuild code architecture? Sadly, YES, although it should be possible to split Student class into descendants by using hooks for individual students. However, code architecture can be improved by a vast margin if you start removing easter eggs and features like Snap Mode that currently bloat Yandere Simulator. I know it is going to be painful, but it is the only way to improve code quality here and now. This will simplify the code, and this will make it easier for you to add the «real» features, like Osana or whatever you'd like to accomplish. If you'll ever want them back, you can track them down in Git history and re-implement them one by one, hopefully without performing the shotgun surgery this time.
Again, I won't be talking about the performance, since you can debug your game on 20 FPS as well as on 60 FPS, but this is a very different story. Yandere Simulator is huge. Once you fixed a bug, you want to test it, right? And your workflow right now probably looks like this:
Fix the code (unavoidable time loss)
Rebuild the project (can take a loooong time)
Load your game (can take a loooong time)
Test it (unavoidable time loss, unless another bug has popped up via unit testing, code analyzer etc.)
And you can fix it. For instance, I know that Yandere Simulator makes all the students' photos during loading. Why should that be done there? Why not either move it to project building stage by adding build hook so Unity does that for you during full project rebuild, or, even better, why not disable it completely or replace with «PLACEHOLDER» text for debug builds? Each second spent watching the loading screen will be rightfully interpreted as «son is not coding» by the community. Is it too late to reduce loading times? Hell NO.
Or any other continuous integration tool. «Rebuild a project» can take a long time too, and what can we do about that? Let me give you an idea. Buy a new PC. Get a 32-core Threadripper, 32 GB of fastest RAM you can afford and a cool motherboard which would support all of that (of course, Ryzen/i5/Celeron/i386/Raspberry Pi is fine too, but the faster, the better). The rest is not necessary, e.g. a barely functional second hand video card burned out by bitcoin mining is fine. You set up another PC in your room. You connect it to your network. You set up ramdisk to speed things up even more. You properly set up Jenkins) on this PC. From now on, Jenkins cares about the rest: tracking your Git repository, (re)building process, large and time-consuming unit tests, invoking static code analyzer, profiling, generating reports and whatever else you can and want to hook up. More importantly, you can fix another bug while Jenkins is rebuilding the project for the previous one et cetera. In general, continuous integration is a great technology to quickly track down errors that were introduced in previous versions, attempting to avoid those kinds of bug hunting sessions. I am highly unsure if continuous integration is needed for 10000-20000 source lines long projects, but things can be different as soon as we step into the 100k+ territory, and Yandere Simulator by now has approximately 150k+ source lines of code. I think that probably continuous integration might be well worth it for Yandere Simulator. Is it too late to add continuous integration?NO, albeit it is going to take some time and skills to set up.
Stop caring about the criticism
Stop comparing Alex to Scott Cawton. IMO Alex is very similar to the person known as SgtMarkIV, the developer of Brutal Doom, who is also a notorious edgelord who, for example, also once told somebody to kill himself, just like… However, being a horrible person, SgtMarkIV does his job. He simply does not care much about public opinion. That's the difference.
This question is (understandably) asked all the time by people coming to the BCHN telegram for clarity on what has become a pretty unclear situation. It's not an easy question to answer, though, so I wanted to make this post that people could refer to. Here's my take on answering that question: It's impossible to know 100% for sure if there will be a split, because it's impossible to know for sure how all the relevant parties will behave. For there to be a split, two node implementations need to irreconcilably disagree on a consensus-related issue, both need to release code with those conflicting consensus rules, and then miners need to also be split enough on the issue for both chains to have enough hashpower to be viable. The narrative that there is ALMOST DEFINITELY going to be a split seems to have been dumped on us out of nowhere a month or so ago, along with what I consider to be increasingly unreasonable behavior from Bitcoin ABC. The tin foil hat in my heart finds that suspicious. (And between the IFP and recent Grasberg proposal, it almost seems like ABC is doing it's best to propose things that make a split as likely as possible.) This political baggage doesn't really matter though, in the grand scheme of things. What matters is that BCHN is, as far as I can tell, just trying to be a reasonable and professional node implementation for Bitcoin Cash. If sticking to those principals leads to a divergence from ABC on a consensus related issue, whatever issue that actually would end up being, then that's how it will be. And it wouldn't be the case that "BCHN split the chain", nor would it be the case that "ABC split the chain". It would just be the case that two groups released node implementations with different consensus rules from each other. (And then, if a non-negligible amount of hashpower mines using both clients, then there would indeed be a chain split caused by that situation.) Keeping BCH unified is obviously a HUGE priority for BCHN. Their initial release of what was effectively a non-IFP version of Bitcoin ABC was even designed so that, if the IFP activated with a majority of the hashpower, miners mining with BCHN would follow that longer chain, instead of rejecting IFP blocks as "invalid" or anything like that. This is in stark contrast to the narrative I've seen flooding this sub recently with claims that BCHN tried to split the chain this past upgrade, and are trying to split the chain again this November. So please take the time to consider which sides of these inevitable disagreements are being reasonable, and which are not, make sure to fact check and ask for sources for any claims you see being made that you can't verify or debunk on your own, and remember that, while chain splits are messy unfortunate things (at least in the short term), if there's an irreconcilable disagreement, it's definitely better for those parties to go their separate ways. I hope that that doesn't have to happen anytime soon for BCH.
A theory of why Ethereum is perhaps better "sound money" than Bitcoin.
The idea of Bitcoin's supremacy as "sound money" is very frequently thrown around by the biggest talking heads in the crypto world. I know I will get a lot of hate for suggesting that this theory is not only flawed, but it is straight up wrong. As unintuitive as it may sound to Bitcoin maximalists (no offense intended) I believe Ethereum is on the path to becoming the global leading asset and model for sound money... give me a chance to explain why.
The idea that nothing can change Bitcoin's issuance schedule is a myth. There is absolutely no divine power controlling the supply of Bitcoin. Contrary to what is commonly asserted, Bitcoin's issuance protocol is not primarily driven by what is currently implemented. The real driver is consensus: the majority of network participants must agree that what is currently defined cannot be changed. There is an underlying assumption that the consensus would never want to change Bitcoin's issuance. On the surface this makes for a nice "sound money" narrative, but it is false premise and sticking to it could be ultimately detrimental. It presents a long term sustainability issue (the hope that somehow Bitcoin's base layer will scale enough to maintain security entirely through fees). It also completely dismisses the possibility that an unforeseen event could create pressure to change the issuance. If Bitcoin managed to create a consensus mechanism that did not rely on mining, it is very likely there would be consensus to reduce issuance. On the other hand, if some potentially catastrophic event would create incentives to increase the issuance, it would only make sense for the network to do so.
Issuance flexibility is not fundamentally bad. Etheruem's approach to adjust the issuance according to the contextual circumstances has resulted in a faster rate of issuance reduction than what was originally defined in the protocol. The rate of issuance will continue to decrease as new developments allow for it to happen without compromising the network security. There is a very high probability that Ethereum will achieve a lower issuance rate than Bitcoin in the next two years, and it could possibly achieve zero issuance in the next five years. This would be a result of a successful implementation of PoS, sharding and EIP-1559.
The root of all evil is Proof of Work. PoW is by far the primary cost of operating the Bitcoin network. It is the primary determinant of how much issuance is needed as a financial incentive to keep miners doing their thing. The very mechanism that secures the network's decentralization is unfortunately quite wasteful. The degree of decentralization is a direct result of how much random mathematical operations are being done by miners.
There is a better way. Some people will take offense by the use of the word wasteful, and they claim that it is not because those mindless calculations are what is actually securing the network. However, its wasteful aspect becomes clear if there is a different way to achieve equal or superior decentralization without the need to crunch difficult computational problems. This just so happens to be embodied in Ethereum's design of Proof of Stake. It will drastically reduce the cost of securing the network, while providing at least 2-3% annual returns for the ownership of Ether. When Ethereum's issuance becomes lower than its staking rewards, it will effectively have achieved the same effect as having zero (or possibly negative) issuance.
The value proposition of Ethereum 2.0 is unmatched. There is just absolutely no asset in the world that has a 2-3% self-denominated annual returns and just so happens to be rapidly appreciating. When wall-street's greed sees this, it will create the mother of all bubbles.
Don't dismiss the flippening. On February 01 2018 Ethereum reached 70% of Bitcoin's marked cap (it was even closer if you account for the amount of lost bitcoins). That happened before DEFI, before proof of staking was within reach, before multiple effective layer 2 solutions were a thing, before wrapped Bitcoins and before the first signs of mass adoption were on the horizon (like integration with Reddit , VISA and potential to compete with SWIFT). Utility is a huge factor in driving prices, lets not forget how Silk Road played a key role into propelling Bitcoin's value. Yes, Ethereum crashed hard after the peak in 2018, but perhaps it is simply manifesting a higher volatility pattern that is reminiscent of Bitcoin's early years. Bitcoin's first 5 years were characterized by aggressive price swings, why should it be different for Etheruem (considering it is about 5 years younger than Bitcoin)? If the volatility patterns stands on this bull market, we will see a flippening.
So... do I think Etheruem will flip? Yes I do, but I still hold Bitcoin. No one has a crystal ball, and nothing is certain. Perhaps Etheruem will crash and burn, perhaps Bitcoin will become the next Yahoo, and perhaps they will both thrive in this new exciting crypto world.
Small reviews of (I think) all incremental games I've ever played on Android
I don't know if this will be useful to anyone. So I write a line or two about every game I play, and decided to find all the incremental in my game journal and post them here. It starts with the latest games I've played and I think goes back to several years back. One thing I've realized is I have such a love-hate-hate relationship with this genre since I think I've hated 90% of the games and 100% of myself after each incremental phase. I usually angrily stop playing them for a while and restart them again, so this is more or less a journal of addiction, I suppose. THE BEST GAMES I'VE PLAYED ARE THESE (no order):
Honorable Mention: Eggs, Inc The rest: more or less hated it Additional comment if you decide to scan through it, I complain a lot, so it is perfectly reasonable and normal to think, "why the fuck are you even playing these games, idiot??". ------ Time Idle RPG This game was confusing. It tells me the game's resources is time, where you get 1 of it every second, but that's not really something as unique as I assumed. It would have been cool if time as resources meant you used it to deal with something related to time. Maybe time travel? Maybe slowing and speeding time? Instead time as resource buys you stuff like a library. And then you buy a camp or something. Honestly, I wasn't really feeling it. 2 Path of Idling The biggest cardinal sin for me when it comes to incremental is when a game has a lot of features and it just completely throws them all at you instantly. The joy of a great incremental is how things slowly open up and each new achievement feels progress. The game is a RPG game and these are the things that opened up for me in the first few hours. Combat which includes normal fighting, dungeon, raid, boss, PVP (locked, but it just needs an ascend, which I haven't done) Skills Hero upgrades which include Passive (strength, defence, stamina, intelligence), Train, and a huge Tree Town which you can buy workers who get you various things like gold, orbs, knowledge, etc. You can upgrade stuff here. Quest that also includes Perks and Skill quests. Gear which 5 equipment slots, plus craft plus trade plus smelt Also gear for your Pet, which is also another tab! Now, here is the thing. Because I have all of this pretty much instantly, I don't really know which ones are helping me go past a well. How is adding 10 points in strength helping me? Should I have added five in strength instead and five in defence? I have already bought 20 or so upgrades in the Tree, but I have no idea if I am made the optimal choice. There is no real excitement with getting new gear. And so on. The dev has added a lot of features, now it's time to rework the game, and have the features take their time. 2 Idle Slayer The game is like a super simple platformer. Your character is running and any enemy it hits, it automatically slays it. There is no HP, and all enemies die in one shot. Your only active play is jumping occasionally to grab coins or hit the flying enemies. Also, you have a run skill that has a cool down. With the coins, we get new weapons that give us more coins. Enemies give us souls which is used for the prestige system that provides us with an interesting skill tree which provides a lot of choices on the path you want to do in terms of upgrades. So far excellent, however, the game has an extremely serious issue of pacing. The game initially progresses so fast that in the first hour or so, you get almost all the weapons aside from the last two, which then grinds down to a snail pace. You can upgrade your past weapons, but they never really get into play again. Reaching high levels of past weapons sometimes gave me upgrades of that weapon of 10,000% but they still did nothing to my overall coin per second. I think the pacing needs to be fully reworked. It would have been nice to get new weapons after certain prestige cycles, so that every new weapon feels like we have passed a significant wall. The best part of an incremental game for me is to face a wall, and when I finally break it, I feel powerful again for a while. This game feels like this though, powerful powerful powerful powerful WALL........break it....WALL. And so on. I'm still playing it as I want to get some of the skills, but I feel like it could have been so much better. 4 Exponential Idle A very back to the foundation kind of incremental. The premise is that you are a student and working on a formula. There is a neat story where as you progress in the game, your character progresses through university. Each upgrade gives you more and more automation until I reached a stage where I would check back once every 2 or 3 days, click a 2nd layer prestige reset, and close it. Meaning the game was something like 5 seconds of game player every 2 days. I just opened it for this review and realized I had reached the end game. The story wraps up and it tells me "You can take a rest. Travel a bit. Go outside!" NO, DON'T TELL ME WHAT TO DO GAME. 3 Factoid Factoid & Spark should have the same review as they are almost the same game with only small differences. The games are the most basic kind of incremental, where you buy something with resources, until you get the next thing which gives you more of the resources. Both give you upgrades to speed things up, and finally prestige and it's own prestige upgrades. That's it. It's nice little change of pace from all the recent incremental that sometimes do too much, but obviously due to the very simple nature of it, it does eventually feel pointless, specially after you more or less open up everything and the prestige upgrades just keep repeating. 3 Spark Factoid & Spark should have the same review as they are almost the same game with only small differences. The games are the most basic kind of incremental, where you buy something with resources, until you get the next thing which gives you more of the resources. Both give you upgrades to speed things up, and finally prestige and it's own prestige upgrades. That's it. It's nice little change of pace from all the recent incremental that sometimes do too much, but obviously due to the very simple nature of it, it does eventually feel pointless, specially after you more or less open up everything and the prestige upgrades just keep repeating. 3 Antimatter Dimensions Easily top 5 incremental on mobile. Does everything perfectly. You progress nicely, and when new features open it, not only is it rewarding but more importantly, it keeps adding new dimensions (lol) to the game. I'd at the end game as I write this, and I realize that there was no point in the game where it felt stale. Each new prestige layer made the game feel fresh and almost like a new incremental game. 5 Melvor Idle It seems this game was mainly aimed at Runescape players, which is probably why it didn't click for me. It also run extremely slow on my phone which also played a part in me not really getting into. 2 A Girl Adrift The animation is really pretty and is a nice change of pace for incrementals, but I didn't really like the too much active play. Really had to keep going back and forth to different areas to do the fishing which got too repetitive for me. You travel to different areas of the map to catch fish, which you get points and then you upgrade stuff, but I didn't really find any real excitement about the upgrades because I kept having to go back to previous areas to fish similar creatures. 3 Archer: Danger Phone I'm really annoyed how terrible of a game this was. Two things I like, the TV show "Archer" and incremental games, and it's done in the most lazy manner. The game is the worst aspect of idle games where it's just a straight path of clicking the next upgrade with absolutely zero decision making. Every once in a while there is a mini game where Archer gets to shoot others but it's done in the most basic form of early 2000s flash games, where the animation budget is probably 3 dollars. Same static background and both enemies and Archer have just two animation frames. The absolute laziness of it is almost insulting to the player, because it feels like we aren't even worth the effort. There is an Archer story in the game which develops really fast, which is the only positive part, but no voice acting is again another evidence that the creators of the game weren't given any budget for this. 1 Home Quest This game is way too slow. You have to collect materials to build your settlement but everything takes time, so you click for a few seconds, and then you have to leave the game. Which I'm fine with, but the problem isn't the idle part of it, it's how the idle part of it combines with constant checking of the game which annoys me. I like an idle game where you forget to start the game for a day, you come up to a lot of resources, but this is a game which needs you to check back in every 30 minutes or an hour to really get anywhere. I felt that the micromanagement was getting worse as I progressed (without any actual thing to do when I am active in the game) that made me give up. 2 Idle Industry This is probably an interesting game, but I gave up because the one thing I really disliked was the amount of resources and manufacturing that very quickly opens to you. You can buy raw materials, and you can either sell these raw materials or turn them into finished goods and sell them either. And each of these has several upgrade options (increase selling price, increase production, etc). Without even really getting too deep into the game, I have around 20 raw materials and around 30 finished products. A satisfying part of this genre is to have things slow open up for you, which gives me a decent feeling of satisfaction. But the money I got would quickly open up new products, so I would just jump ahead and purchase more expensive ones, and after a while I had a lot of materials and products at zero, and was instead focusing on latter ones. 2 Masters of Madness Somewhat neat atmosphere and visuals, but too much active clicking. Click, upgrade to get more per clicks, get minions to get you some points without clicking, typical clicker, but with the added benefit of almost no idling. I like idling incrementals but clickers is a hard no from me. 1 Soda Dungeon 2 Basically similar to the first one, as far as I could tell. I did "finish" it but maybe I shouldn't have, since it really is the same thing from early on, specially once you get all the heroes and you kind of sort out which characters work best, then it's just the same. But because it was somewhat short and no real wall, it was at least easy to stick to it to the end. 2 Bacterial Takeover Played for a decent amount and was actually more interesting that I thought, given the buttload of ad incentives. You create and upgrade bacteria, attack planets, and eventually go into a blackhole to prestige. Most of the game was good, but the part that killed it for me was the prestige system. Once you prestige, planets get super easy to attack, which becomes a lot of active play. I realized that each prestige was taking me at least 30 minutes to get to where I was, and it was just meaningless clicking. It got to a point where I was putting off prestige because it seemed like it would be a hassle so I stopped. 2 LogRogue Cute graphics. The hero sort of hopping to hit the tiny monsters is cute to look at, but how long can you look at it and do nothing before you realize that it's boring? I suppose this is a game where it's just not for me. I don't like to have my phone open on a game and just watch it like a crazy person and do nothing. My rule is simple for incrementals. While the app is open, be active, if there isn't any choices to make, close the app while resources build up or whatever. I don't like it being open while I do nothing. 3 A Kittens Game Incremental games are so strange. I get in and out of the phases. I loved this for so long and so obsessively that I wanted to only play incremental games. And then, just like that, I was wondering why the fuck I was wasting my time with this. Has happened countless times before. But still probably the best incremental ever. 5 A Dark Room An incremental cult classic of sorts but I don't find it really matches the genre. There is a bit of incremental at the beginning with people huts and stuff but then its just a ascii exploring game, which wasn't interesting to me. 2 Little Healer Saw it mentioned in the Reddit incremental forum in one of the posts and thought it was a healer themed incremental which sounded neat. But it's like being a healer in a raid in World of Warcraft without any if the extras. Just a couple of bars representing your team mates and you healing them while they fight the boss. I didn't even like playing the healer in WoW so no way would I play this game. 1 Clickie Zoo Started playing for a few days until I realized there a beta released with the dev reworking the game completely from scratch and releasing it as "Idle Zoo Tycoon". So, played that instead but this seemed like a game I would enjoy anyway. 4 Idling to Rule the Gods The UI and one drawing if your character is really ugly enough to be distracting to me. The game, seemed interesting and I eventually was into it, but seems like a game that has been constantly being updated, which is not always a good thing, because features are obviously updated regularly to it, making the whole thing a bit bloaty. I guess, this is the problem with this game for me, it's too fat. Also, one main part of the game is that your character creates Shadow Clones up to a maximum limit. Which is fine except the clones can't be made in offline mode. This might not be a big deal in its original web browser game but that doesn't work as well in a mobile format. 2 Realm Grinder This is one of the really popular incremental and it's fanbase seems to love it for it's depth, but to be honest, I don't play these games for the depth, I play it for the simple dopamine rush of doing the same thing over and over again. It relaxes. Although, I didn't even get to the depth part because I dislike games where it rushes in the beginning. I constantly bought buildings, got spells, and got upgrades without even looking at the description. Apparently, later on, we can get complicated race upgades, which seems not what I'm looking for in such a genre. 2 Spaceplan A short (!!) incremental with an actual story (!!!). That's two cool points for it but unfortunately, the game mechanics of increment genre isn't so good. It's a space game with nice visuals and a great ending (cool music set to cool graphics) but the game itself wasn't really that fun. This same exact game would have been better in a different genre (maybe something like "Out There"?) 3 Zombidle Felt like idle games again and this is the kind of examples that kept me away. Too much clicking and seems like advancement will start to get irritating since it relies on IAPs 2 Eggs, Inc While I was playing it, Eggs, Inc was probably my favorite Android game I had ever played. But like most incremental games, there comes a moment when I suddenly stop and think, what am I doing? Because there is something fascinating about Incrementals. Their addictiveness is in a way the whole point. An incremental is less of a game and more an act of electronic addictiveness. What's the point? Eggs, Inc is a very well made and fun incremental but even the best in its genre is still pointless. 4 Castle Clicker Supposedly a mix of incremental and city building but didn't really find out since the clickings were way to much. I know this is supposed to be the genre but I like the incremental part more than the tapping part. This seemed to be a good way to hurt your fingers. 2 Endless Era This RPG clicker game is like other such games but with horrible GUI and animations. Tap tap tap. It's my fault for downloading such games. Why would I ever think this would be fun??? 1 Idle Quote An incremental game with a unique twist. This time we get to make up quotes! The first negative about the game and this irritates me a lot is most of the quotes are fake. A quick search on Google and this proves it. Quotes are generally attributed to Buddha or Ghandi or shit like that and it's usually fake like most quotes on the internet. This kills the major possible advantage of the game because I thought coming up with arbitrary words would at least give me some quotes to learn. Aside from the this, the game isn't fun either because it slows down very quickly meaning you combine words very slowly at a certain stage of the game and then it becomes a boring grind. 2 Monster Miser An incremental game with almost no graphics. We just see character portraits of monsters which we buy and then upgrade until we buy the next monster. Eventually we prestige which gives us multipliers. The only game choice is choosing between two monsters with each new monster with unique benefits. Annoyingly there is a max limit which I wish didn't exist because I wanted to prestige so much that I would be over powerful in upgrading like that "Idle Oil Tycoon". Still, pointless but reasonably fun. 3 Pocket Politics An incremental take on politics sounds fun but it's so generic that it could have been about anything. A Capitalist idle game or a cooking idle game, it wouldn't matter. IAP was also the usual shitty kind. 1 Time Clickers A shooter incremental sounds like a cool twist but it's not a FPS like I imagined it would be. I'm just stuck in a room and I was shooting blocks. Upgrades didn't give me any enjoyment since I was shooting fucking blocks. 1 Tap Tap Fish - Abyssrium I thought this was going to be relaxing incremental but the ridiculous and generic IAPs and all the social integeration spoil it. Too much time is spent in them asking you to buy or share or tweet or post or give them a blowjob. And there is nothing relaxing about that. 2 Cartoon 999 Incremental game about comic book writers, but not the marvel DC kind, it seemed to be the webcomic one and I think it's a Korean developer so all the characters and injokes made no sense to me. The whole thing was just targeted to a very specific audience. 2 Dungeon Manager Incremental games need to be simple but this is beyond simple, it's just upgrade a fighter to level 5, go to next dungeon character, do the same, and just continue without any of the delicious balancing of upgrades like other idle games. 2 Final Fortress Incremental games are already pointless but when it's super heavy on IAP than its also annoying, but when it always has bugs that doesn't register my offline earnings, then it just needs a uninstall in its face. The zombie skin was also crappy. 1 Mana Maker Here is how I know this clicker isn't very good. It doesn't make me hate all clickers and my life and mobile gaming in general for being so addictive and pointless. So fail, sorry. 2 Infinity Dungeon The usual incremental RPG that I should probably never play again. Starts simple enough and then gets more or a chore as you play. 1 Another incremental game which I had promised myself not to play anymore because they are so pointless and repetitive and endless. Well, this wasn't infinite and had a goal at 999 level so I thought it was good but while the humor was cute, the game did become very repetitive. Every 10 levels the slimes changed but after every 100 levels the whole thing restarted and while the monsters got stronger, I seemed to get even stronger. So the game became easier as I progressed and there was no more challenge. By level 800, I gave up. 2 Tap Dungeon RPG Okay, I'm running out of ways to complain about those incremental RPG games that all have similar problems. It starts off reasonably fast and fun but soon it seems like I am in a data entry job. Doing the same thing over and over again with little changes. 1 Dungeon 999 F: Secret of Slime Dungeon Another incremental game which I had promised myself not to play anymore because they are so pointless and repetitive and endless. Well, this wasn't infinite and had a goal at 999 level so I thought it was good but while the humor was cute, the game did become very repetitive. Every 10 levels the slimes changed but after every 100 levels the whole thing restarted and while the monsters got stronger, I seemed to get even stronger. So the game became easier as I progressed and there was no more challenge. By level 800, I gave up. 2 Tap Dungeon RPG Okay, I'm running out of ways to complain about those incremental RPG games that all have similar problems. It starts off reasonably fast and fun but soon it seems like I am in a data entry job. Doing the same thing over and over again with little changes. 1 Tower of Hero You start on the first floor of the tower and keep fighting your way up by summoning your heroes (by clicking) and recruiting other fighters, get upgrades, level up, and then, ugh, here is the typical incremental RPG part, restart, get items, and do it ALL over again. There is something fun about restarting and getting slowly stronger each time but it also feels so pointless after a while. Such a pointless genre now that I have played a billion of such titles, heh. 3 Pageboy Yet another incremental RPG which I have no idea why I downloaded because I'm sick of the genre. I played a pageboy to a knight who does the fighting while I collect the lot. I collect the loot, buy stuff for the knight, and eventually I restart to do the same thing again and get better items but this game I didn't even RESTART! Because fuck it! Fuck it! 2 Idle Warriors The story is cute. Human population is regressing while monster population is on the rise. So the humans start enslaving monsters to mine for them! The brave warriors beat the crap out of monsters, kidnap the bosses, and enslave them. The animation of monsters slaving away while speech balloons above them talk about their wife and children is funny. But the game itself is another RPG incremental which I should start staying away from. These games are like a chore for me nowadays because I'm doing the same crap again and again. The blame is probably on me because it seems like a reasonably solid game. But hey, fuck it, I PERSONALLY didn't enjoy it. 2 Tap! Tap! Faraway! Any game that is remotely like Tap Titan scares me. They are addictive at first and very fast moving but after every restart gets more and more annoying. It soon turns into a time eating activity with the player having to redo the initial levels to get relics to get better items to progress further to restart to get relics to and so on until the player realizes how much time he is putting in the game for a repetitive activity. 2 Auto RPG Now that is a title the game developers didn't spend too much time on. RPG battles are automatic but I can help out by clicking like a mad man. I started with one hero but would get additional members in my party as the story progressed. Party members receive skills as as they level up and while all the skill usage is automatic, it did give me a sense of progression which is extremely important in a RPG and which I think is usually lacking in incremental games. It usually starts feeling useless but in this game at least there are new maps, new members, and an actual end sight! There is an infinity stage once the last boss is defeated but I am glad the infinity stage happens AFTER the end and it's not the game itself. 4 Merchant Hire a hero and send on to battle. The battles is done automatically and takes time, starts with something short like 10 seconds with each battle taking longer. The loot is raw materials which can be used to craft equipment which also takes real life time with better items taking longer. The crafted items can either be sold or equipped to the hero to make him be able to fight stronger monsters. I was worried I would hate the longer crafting and fighting times because I hate games which I have to watch for a task to finish but even though the durations for longer, I had more to do. However, I don't know what would have happened in the end game because I gave up on it. New maps were exactly like the first map just with different heroes but the progression was similar in each level which felt that I was doing the exact same thing all over again but with longer task times. 2 Idle Oil Tycoon This is the best idle game I played. It's graphics aren't just minor, they are none existent. It's just numbers, so basic that my sister thought I was on a stock market app. It's such a simple concept. Invest, get oil, upgrade then like other idlers restart to get a bonus and do the full thing all over again. When I finished the game, I played the unlimited mode which I played until the unlimited mode couldn't handle the numbers anymore. 5 Soda Dungeon This kind-of Idle Dungeon was great. I started with weak ass fighters who would fight on my behalf while I collected the loot. I then got to use the lot to upgrade the sofa bar to recruit more adventurers. Not sure why it was a sofa bar. Maybe they wanted to make it a family game and not have alcohol? Sounds weird but the sofa element in a RPG game sounds weirder. The game only hit a brick for me when, like most other incremental games, there is no real closure. Once I thought I bet the big bad guy, it just goes on, harder but similar enough with no end in sight. Eventually, we have to stop playing right, but it always feels a bit like a let down when I don't feel like I have finished the game. 4 10 Billion Wives Kept Man Life The two games from this company, 10 Billion Wives and Kept Man Life, have similar strengths and weaknesses. I liked the silly premises from both. In 10BM, I had to get married as much as I could, using the loves I collect to marry more expensive wives! In KML, I'm a boyfriend who doesn't work and I have to please my career gf so she would take care of me. Both start reasonably fast and I was willing to grind through difficult parts but the end game is like a brick wall. Passing through it to get all the achievements is pretty much impossible unless one puts in way too many hours. And it's a shame because I really wanted to get all the achievements to see all the tiny little extra stuff. 3 Adventure Capitalist One of the better incremental games, but now that I am out of the short lived incremental fan phase, I realized how dumb the genre is. Tap, tap, tap, upgrade, do this a million times, reset, and do it all over again like a moron. The game does deserve credits for me acting like a moron and playing it for so long but I also cheated and got free cash and then if occupying became even more pointless. 3 The Monolith A combination of an incremental and a civilization building game seemed like an excellent idea and in some ways, it was, specially how we get to upgrade through the ages from cavemen to futuristic. But no offline feature means that the resets aren't enticing. 2 USSR Simulator An incremental game that has a great theme (USSR!) but absolutely horrible to enjoy, even though I did stick to it. After a certain upgrades, the game just turned into me popping in the game, clicking an upgrade and then forgetting about the game for a few days. 2 RPG Clicker They should call these games tappers not clickers. We are not clicking anything on a touchscreen device. Anyway, tap tap tap level up buy weapons tap tap and uninstall. 1 Logging Quest Logging Quest 2 [Review is for the original and its sequel] There is not much of a difference between the game. I actually played them both at the same time because the actual game is offline. You choose your hero, send them to a dungeon, and then come back to the game after a while to see how well they did. I thought an offline RPG like this might be interesting but then, if you don't really play a game, how much fun can it be? 1 Another pointless incremental. I was in an incremental phase and got so many incremental games that I know realize were absolutely pointless. Hit a tree, buy upgrades, get a new hero, and continue hitting a tree. Not much offline it seems which is what I like about incrementals. 1 Galaxy Clicker A space incremental that should have been a lot of fun. You get to upgrade your spaceship and buy new ones and explorer new planets. But first of all, the interface is so ugly that it makes playing the game less enjoyable. And a lot of things I didn't really get no matter how much I would play like the full exploring planets. The spaceships were nice, so it could have been fun. 2 Megatramp A pretty pointless incremental kind of game. You are a tramp and then you can collect money to buy upgrades to make more money, with no strategy needed, nor any effort needs to be made to hurt your brain cells. 1 Inflation RPG It supposed to be some kind of incremental RPG, I think, which has you resetting and getting more powerful and then fighting monsters to get insane levels. It is very unique but I couldn't get into it. 2 Widget RPG Are you fucking with me? This is button bashing rpg in the most extreme manner. You get a widget, so you don't even have to open the game and distract yourself from the button bushing. Just click the button and the game plays behind the scenes and gets you experience, loot, and kills. It's a ridiculous idea that is fun for a few minutes to see what they come up with but there is only so much button bashing you can do. 2 Capitalist Tycoon I downloaded this game because I was in an incremental/idle game phase and really enjoyed AdVenture Capitalist. But this game is nothing like that. On the surface, it seems similar, buy small investments, make money, buy bigger investments, and so on. But with this game, there is no offline mode, and you keep having to wake up managers, AND the goal is to see how much you make in one year. Bah. I prefer the incremental approach which makes you build and build and build, not try to rush it in just a year. 2 Clicking Bad An incremental clicking game that is themed after Breaking Bad. It is a fun idea it's a very simple game with little to do aside from the obvious of upgrading and upgrading. The only twist might be to balance out making lots of money selling drugs and not attracting the law but even that is only a small challenge at the start. Eventually, you will get enough upgrades to bring the law risk so down that it makes no impact on the game play. 2 Zombie Tapper A super basic incremental clicker game with a zombie team. Click click click to eat brains, use brains (?) to buy zombies to do the brain eating for you and then buy upgrades for your zombies, and buy new zombies and it all feels very pointless. 1 Bitcoin Billionaire I started to enjoy incremental games, but it needs to have a good offline mode, because I don’t want to just play a game where I keep tapping. But that doesn’t mean I didn’t play. I played it, and I played a lot of it, because I could reset the game (like most incremental games) and it gives you a small benefit where you could finish the full game a bit faster (it gives you bonus income). So, I kept finishing and resetting, and each time the start to finish would shorten, so I thought I would reach a stage where I could finish each start-to-finish in an instant! It didn’t happen. I got bored first. 3 Tap Titan An addictive tapping game. Just tap on the creatures, level up, get new skills, hire heroes, and then reset and to it all over again to progress further. It’s an incremental game where it depends on resets to progress, but no real offline bonus, so you have to be playing online. Which got boring, so I installed an app that does the tapping for me, which is actually a stupid way to play the game, but this isn’t an attempt to prove to anyone my intelligence. Anyway, thankfully something went wrong and my progress got deleted, WHICH WAS A GOOD THING, because the game was extremely addictive. 4 God Squad I’ve realized most incremental games are stupid. Tap on monsters to kill, collect gold, buy Roman Gods, level them up, fight other monsters, and then get bored. 1
Flinders' students and web developers: [email protected] has to be to most bloated and irritating search system I've used.
I've spent the last few days trawling journal articles researching the history of research on a specific engineering phenomenon. I've known [email protected] is bad for a while but the last few days have annoyed me enough to bitch about it on Reddit. So, the list: Forced scroll. When you click "show more" search results, it force scrolls you down to the next page. Even before the force scroll nonsense, it's particularly annoying because my preference is to have what I've reading near the middle of the screen, so when I want to read the bottom-most displayed result I instinctively click show more so I can scroll down a bit more. Instead I've forced onto the next page. It doesn't even cut out when I try scrolling the other way. Lagging when opening dropdown tabs. Given they should just contain some basic web functions, why does my computer lag when opening them? A beefy gaming computer and it lags when opening. I used Firefox's web developer tools to check it out: fps dropped to 10 fps. Lagging when clicking "show more". Seven full seconds of sub 10 fps performance, hitting a low of 1.6 fps for two seconds. I'm almost tempted to ask if you're running bitcoin mining in the background. A new search is pretty similar to this too. eJournal search. I search for a journal by name, it adds a "helpful" suggestion, I click "no, don't include that unhelpful suggestion" and it forces me out of eJournal search into a general search where I can't search for said journal. Solution: trawl through the 10,000+ journal list for the journal I need. It is sorted alphabetically and I can select by starting letter, but it only shows 10 results at a time so I can't go ctrl+f and unfortunately the journal I need is called "Proceedings of ..." and no doubt a thousand odd journals start with that. Logging in every half-hour. I'm not sure what the interval actually is but I feel like I keep having to log in. Fine, on a university computer I get why they do this, but on my home computer there absolutely should be a "stay logged in" checkbox. Complete lack of settings. Maybe it's hidden somewhere and I'm blind, but I've never been able to find a settings page. I'd like to think that there could be options to switch different things on and off, like a lightweight mode that strips out the bloat or stopping forced scroll or an option to always show advanced search, but I've never seen it. To make it all worse, this isn't some garbage slapped together under the leadership of a middle manager who has no idea what they are doing, this is a professional web package. The university no doubt paid massive amounts of money for this. It's called Ex Libris Primo if you're curious. tl;dr I'm no web developer, but it does check a lot of my web design pet peeves and annoyances. The only thing that could make it worse are a light box asking for my email to send me spam and forcing me to download an app to use some of the functionality Facebook style. Edit: apparently there are tags on [email protected]. Besides the top tag only having five instances, why?
This is a follow-up on https://old.reddit.com/Bitcoin/comments/hqzp14/technical_the_path_to_taproot_activation/ Taproot! Everybody wants it!! But... you might ask yourself: sure, everybody else wants it, but why would I, sovereign Bitcoin HODLer, want it? Surely I can be better than everybody else because I swapped XXX fiat for Bitcoin unlike all those nocoiners? And it is important for you to know the reasons why you, o sovereign Bitcoiner, would want Taproot activated. After all, your nodes (or the nodes your wallets use, which if you are SPV, you hopefully can pester to your wallet vendoimplementor about) need to be upgraded in order for Taproot activation to actually succeed instead of becoming a hot sticky mess. First, let's consider some principles of Bitcoin.
You the HODLer should be the one who controls where your money goes. Your keys, your coins.
You the HODLer should be able to coordinate and make contracts with other people regarding your funds.
You the HODLer should be able to do the above without anyone watching over your shoulder and judging you.
I'm sure most of us here would agree that the above are very important principles of Bitcoin and that these are principles we would not be willing to remove. If anything, we would want those principles strengthened (especially the last one, financial privacy, which current Bitcoin is only sporadically strong with: you can get privacy, it just requires effort to do so). So, how does Taproot affect those principles?
Taproot and Your /Coins
Most HODLers probably HODL their coins in singlesig addresses. Sadly, switching to Taproot would do very little for you (it gives a mild discount at spend time, at the cost of a mild increase in fee at receive time (paid by whoever sends to you, so if it's a self-send from a P2PKH or bech32 address, you pay for this); mostly a wash). (technical details: a Taproot output is 1 version byte + 32 byte public key, while a P2WPKH (bech32 singlesig) output is 1 version byte + 20 byte public key hash, so the Taproot output spends 12 bytes more; spending from a P2WPKH requires revealing a 32-byte public key later, which is not needed with Taproot, and Taproot signatures are about 9 bytes smaller than P2WPKH signatures, but the 32 bytes plus 9 bytes is divided by 4 because of the witness discount, so it saves about 11 bytes; mostly a wash, it increases blockweight by about 1 virtual byte, 4 weight for each Taproot-output-input, compared to P2WPKH-output-input). However, as your HODLings grow in value, you might start wondering if multisignature k-of-n setups might be better for the security of your savings. And it is in multisignature that Taproot starts to give benefits! Taproot switches to using Schnorr signing scheme. Schnorr makes key aggregation -- constructing a single public key from multiple public keys -- almost as trivial as adding numbers together. "Almost" because it involves some fairly advanced math instead of simple boring number adding, but hey when was the last time you added up your grocery list prices by hand huh? With current P2SH and P2WSH multisignature schemes, if you have a 2-of-3 setup, then to spend, you need to provide two different signatures from two different public keys. With Taproot, you can create, using special moon math, a single public key that represents your 2-of-3 setup. Then you just put two of your devices together, have them communicate to each other (this can be done airgapped, in theory, by sending QR codes: the software to do this is not even being built yet, but that's because Taproot hasn't activated yet!), and they will make a single signature to authorize any spend from your 2-of-3 address. That's 73 witness bytes -- 18.25 virtual bytes -- of signatures you save! And if you decide that your current setup with 1-of-1 P2PKH / P2WPKH addresses is just fine as-is: well, that's the whole point of a softfork: backwards-compatibility; you can receive from Taproot users just fine, and once your wallet is updated for Taproot-sending support, you can send to Taproot users just fine as well! (P2WPKH and P2WSH -- SegWit v0 -- addresses start with bc1q; Taproot -- SegWit v1 --- addresses start with bc1p, in case you wanted to know the difference; in bech32 q is 0, p is 1) Now how about HODLers who keep all, or some, of their coins on custodial services? Well, any custodial service worth its salt would be doing at least 2-of-3, or probably something even bigger, like 11-of-15. So your custodial service, if it switched to using Taproot internally, could save a lot more (imagine an 11-of-15 getting reduced from 11 signatures to just 1!), which --- we can only hope! --- should translate to lower fees and better customer service from your custodial service! So I think we can say, very accurately, that the Bitcoin principle --- that YOU are in control of your money --- can only be helped by Taproot (if you are doing multisignature), and, because P2PKH and P2WPKH remain validly-usable addresses in a Taproot future, will not be harmed by Taproot. Its benefit to this principle might be small (it mostly only benefits multisignature users) but since it has no drawbacks with this (i.e. singlesig users can continue to use P2WPKH and P2PKH still) this is still a nice, tidy win! (even singlesig users get a minor benefit, in that multisig users will now reduce their blockchain space footprint, so that fees can be kept low for everybody; so for example even if you have your single set of private keys engraved on titanium plates sealed in an airtight box stored in a safe buried in a desert protected by angry nomads riding giant sandworms because you're the frickin' Kwisatz Haderach, you still gain some benefit from Taproot) And here's the important part: if P2PKH/P2WPKH is working perfectly fine with you and you decide to never use Taproot yourself, Taproot will not affect you detrimentally. First do no harm!
Taproot and Your Contracts
No one is an island, no one lives alone. Give and you shall receive. You know: by trading with other people, you can gain expertise in some obscure little necessity of the world (and greatly increase your productivity in that little field), and then trade the products of your expertise for necessities other people have created, all of you thereby gaining gains from trade. So, contracts, which are basically enforceable agreements that facilitate trading with people who you do not personally know and therefore might not trust. Let's start with a simple example. You want to buy some gewgaws from somebody. But you don't know them personally. The seller wants the money, you want their gewgaws, but because of the lack of trust (you don't know them!! what if they're scammers??) neither of you can benefit from gains from trade. However, suppose both of you know of some entity that both of you trust. That entity can act as a trusted escrow. The entity provides you security: this enables the trade, allowing both of you to get gains from trade. In Bitcoin-land, this can be implemented as a 2-of-3 multisignature. The three signatories in the multisgnature would be you, the gewgaw seller, and the escrow. You put the payment for the gewgaws into this 2-of-3 multisignature address. Now, suppose it turns out neither of you are scammers (whaaaat!). You receive the gewgaws just fine and you're willing to pay up for them. Then you and the gewgaw seller just sign a transaction --- you and the gewgaw seller are 2, sufficient to trigger the 2-of-3 --- that spends from the 2-of-3 address to a singlesig the gewgaw seller wants (or whatever address the gewgaw seller wants). But suppose some problem arises. The seller gave you gawgews instead of gewgaws. Or you decided to keep the gewgaws but not sign the transaction to release the funds to the seller. In either case, the escrow is notified, and if it can sign with you to refund the funds back to you (if the seller was a scammer) or it can sign with the seller to forward the funds to the seller (if you were a scammer). Taproot helps with this: like mentioned above, it allows multisignature setups to produce only one signature, reducing blockchain space usage, and thus making contracts --- which require multiple people, by definition, you don't make contracts with yourself --- is made cheaper (which we hope enables more of these setups to happen for more gains from trade for everyone, also, moon and lambos). (technology-wise, it's easier to make an n-of-n than a k-of-n, making a k-of-n would require a complex setup involving a long ritual with many communication rounds between the n participants, but an n-of-n can be done trivially with some moon math. You can, however, make what is effectively a 2-of-3 by using a three-branch SCRIPT: either 2-of-2 of you and seller, OR 2-of-2 of you and escrow, OR 2-of-2 of escrow and seller. Fortunately, Taproot adds a facility to embed a SCRIPT inside a public key, so you can have a 2-of-2 Taprooted address (between you and seller) with a SCRIPT branch that can instead be spent with 2-of-2 (you + escrow) OR 2-of-2 (seller + escrow), which implements the three-branched SCRIPT above. If neither of you are scammers (hopefully the common case) then you both sign using your keys and never have to contact the escrow, since you are just using the escrow public key without coordinating with them (because n-of-n is trivial but k-of-n requires setup with communication rounds), so in the "best case" where both of you are honest traders, you also get a privacy boost, in that the escrow never learns you have been trading on gewgaws, I mean ewww, gawgews are much better than gewgaws and therefore I now judge you for being a gewgaw enthusiast, you filthy gewgawer).
Taproot and Your Contracts, Part 2: Cryptographic Boogaloo
Now suppose you want to buy some data instead of things. For example, maybe you have some closed-source software in trial mode installed, and want to pay the developer for the full version. You want to pay for an activation code. This can be done, today, by using an HTLC. The developer tells you the hash of the activation code. You pay to an HTLC, paying out to the developer if it reveals the preimage (the activation code), or refunding the money back to you after a pre-agreed timeout. If the developer claims the funds, it has to reveal the preimage, which is the activation code, and you can now activate your software. If the developer does not claim the funds by the timeout, you get refunded. And you can do that, with HTLCs, today. Of course, HTLCs do have problems:
Privacy. Everyone scraping the Bitcoin blockchain can see any HTLCs, and preimages used to claim them.
This can be mitigated by using offchain techniques so HTLCs are never published onchain in the happy case. Lightning would probably in practice be the easiest way to do this offchain. Of course, there are practical limits to what you can pay on Lightning. If you are buying something expensive, then Lightning might not be practical. For example, the "software" you are activating is really the firmware of a car, and what you are buying is not the software really but the car itself (with the activation of the car firmware being equivalent to getting the car keys).
Even offchain techniques need an onchain escape hatch in case of unresponsiveness! This means that, if something bad happens during payment, the HTLC might end up being published onchain anyway, revealing the fact that some special contract occurred.
And an HTLC that is claimed with a preimage onchain will also publicly reveal the preimage onchain. If that preimage is really the activation key of a software than it can now be pirated. If that preimage is really the activation key for your newly-bought cryptographic car --- well, not your keys, not your car!
Trust requirement. You are trusting the developer that it gives you the hash of an actual valid activation key, without any way to validate that the activation key hidden by the hash is actually valid.
Fortunately, with Schnorr (which is enabled by Taproot), we can now use the Scriptless Script constuction by Andrew Poelstra. This Scriptless Script allows a new construction, the PTLC or Pointlocked Timelocked Contract. Instead of hashes and preimages, just replace "hash" with "point" and "preimage" with "scalar". Or as you might know them: "point" is really "public key" and "scalar" is really a "private key". What a PTLC does is that, given a particular public key, the pointlocked branch can be spent only if the spender reveals the private key of the given public key to you. Another nice thing with PTLCs is that they are deniable. What appears onchain is just a single 2-of-2 signature between you and the developemanufacturer. It's like a magic trick. This signature has no special watermarks, it's a perfectly normal signature (the pledge). However, from this signature, plus some datta given to you by the developemanufacturer (known as the adaptor signature) you can derive the private key of a particular public key you both agree on (the turn). Anyone scraping the blockchain will just see signatures that look just like every other signature, and as long as nobody manages to hack you and get a copy of the adaptor signature or the private key, they cannot get the private key behind the public key (point) that the pointlocked branch needs (the prestige). (Just to be clear, the public key you are getting the private key from, is distinct from the public key that the developemanufacturer will use for its funds. The activation key is different from the developer's onchain Bitcoin key, and it is the activation key whose private key you will be learning, not the developer's/manufacturer's onchain Bitcoin key). So:
Privacy: PTLCs are private even if done onchain. Nobody else can learn what the private key behind the public key is, except you who knows the adaptor signature that when combined with the complete onchain signature lets you know what the private key of the activation key is. Somebody scraping the blockchain will not learn the same information even if all PTLCs are done onchain!
Lightning is still useful for reducing onchain use, and will also get PTLCs soon after Taproot is activated, but even if something bad happens and a PTLC has to go onchain, it doesn't reveal anything!
Trust issues can be proven more easily with a public-private keypair than with a hash-preimage pair.
For example, the developer of the software you are buying could provide a signature signing a message saying "unlock access to the full version for 1 day". You can check if feeding this message and signature to the program will indeed unlock full-version access for 1 day. Then you can check if the signature is valid for the purported pubkey whose private key you will pay for. If so, you can now believe that getting the private key (by paying for it in a PTLC) would let you generate any number of "unlock access to the full version for 1 day" message+signatures, which is equivalent to getting full access to the software indefinitely.
For the car, the manufacturer can show that signing a message "start the engine" and feeding the signature to the car's fimrware will indeed start the engine, and maybe even let you have a small test drive. You can then check if the signature is valid for the purported pubkey whose privkey you will pay for. If so, you can now believe that gaining knowledge of the privkey will let you start the car engine at any time you want.
(pedantry: the signatures need to be unique else they could be replayed, this can be done with a challenge-response sequence for the car, where the car gathers entropy somehow (it's a car, it probably has a bunch of sensors nowadays so it can get entropy for free) and uses the gathered entropy to challenge you to sign a random number and only start if you are able to sign the random number; for the software, it could record previous signatures somewhere in the developer's cloud server and refuse to run if you try to replay a previously-seen signature.)
Taproot lets PTLCs exist onchain because they enable Schnorr, which is a requirement of PTLCs / Scriptless Script. (technology-wise, take note that Scriptless Script works only for the "pointlocked" branch of the contract; you need normal Script, or a pre-signed nLockTimed transaction, for the "timelocked" branch. Since Taproot can embed a script, you can have the Taproot pubkey be a 2-of-2 to implement the Scriptless Script "pointlocked" branch, then have a hidden script that lets you recover the funds with an OP_CHECKLOCKTIMEVERIFY after the timeout if the seller does not claim the funds.)
Now if you were really paying attention, you might have noticed this parenthetical:
(technical details: a Taproot output is 1 version byte + 32 byte public key, while a P2WPKH (bech32 singlesig) output is 1 version byte + 20 byte public key hash...)
So wait, Taproot uses raw 32-byte public keys, and not public key hashes? Isn't that more quantum-vulnerable?? Well, in theory yes. In practice, they probably are not. It's not that hashes can be broken by quantum computes --- they're still not. Instead, you have to look at how you spend from a P2WPKH/P2PKH pay-to-public-key-hash. When you spend from a P2PKH / P2WPKH, you have to reveal the public key. Then Bitcoin hashes it and checks if this matches with the public-key-hash, and only then actually validates the signature for that public key. So an unconfirmed transaction, floating in the mempools of nodes globally, will show, in plain sight for everyone to see, your public key. (public keys should be public, that's why they're called public keys, LOL) And if quantum computers are fast enough to be of concern, then they are probably fast enough that, in the several minutes to several hours from broadcast to confirmation, they have already cracked the public key that is openly broadcast with your transaction. The owner of the quantum computer can now replace your unconfirmed transaction with one that pays the funds to itself. Even if you did not opt-in RBF, miners are still incentivized to support RBF on RBF-disabled transactions. So the extra hash is not as significant a protection against quantum computers as you might think. Instead, the extra hash-and-compare needed is just extra validation effort. Further, if you have ever, in the past, spent from the address, then there exists already a transaction indelibly stored on the blockchain, openly displaying the public key from which quantum computers can derive the private key. So those are still vulnerable to quantum computers. For the most part, the cryptographers behind Taproot (and Bitcoin Core) are of the opinion that quantum computers capable of cracking Bitcoin pubkeys are unlikely to appear within a decade or two.
Current quantum computers can barely crack prime factorization problem for primes of 5 bits.
The 256-bit elliptic curve use by Bitcoin is, by my (possibly wrong) understanding, equivalent to 4096-bit primes, so you can see a pretty big gap between now (5 bit primes) and what is needed (4096 bit primes).
A lot of financial non-Bitcoin systems use the equivalent of 3072-bit primes or less, and are probably easier targets to crack than the equivalent-to-4096-bit-primes Bitcoin.
Quantum computers capable of cracking Bitcoin are still far off.
Pay-to-public-key-hash is not as protective as you might think.
We will probably see banks get cracked before Bitcoin, so the banking system is a useful canary-in-a-coal-mine to see whether we should panic about being quantum vulnerable.
For now, the homomorphic and linear properties of elliptic curve cryptography provide a lot of benefits --- particularly the linearity property is what enables Scriptless Script and simple multisignature (i.e. multisignatures that are just 1 signature onchain). So it might be a good idea to take advantage of them now while we are still fairly safe against quantum computers. It seems likely that quantum-safe signature schemes are nonlinear (thus losing these advantages).
If you are a singlesig HODL-only Bitcoin user, Taproot will not affect you positively or negatively. Importantly: Taproot does no harm!
If you use or intend to use multisig, Taproot will be a positive for you.
If you transact onchain regularly using typical P2PKH/P2WPKH addresses, you get a minor reduction in feerates since multisig users will likely switch to Taproot to get smaller tx sizes, freeing up blockspace for yours.
If you are using multiparticipant setups for special systems of trade, Taproot will be a positive for you.
Remember: Lightning channels are multipartiicpiant setups for special systems of lightning-fast offchain trades!
I Wanna Be The Taprooter!
So, do you want to help activate Taproot? Here's what you, mister sovereign Bitcoin HODLer, can do!
If you have developer experience especially in C, C++, or related languages
Review the Taproot code! There is one pull request in Bitcoin Core, and one in libsecp256k1. I deliberately am not putting links here, to avoid brigades of nontechnical but enthusiastic people leaving pointless reviews, but if you are qualified you know how to find them!
But I am not a cryptographeBitcoin Core contributomathematician/someone as awesome as Pieter Wuille
That's perfectly fine! The cryptographers have been over the code already and agree the math is right and the implementation is right. What is wanted is the dreary dreary dreary software engineering: are the comments comprehensive and understandable? no misspellings in the comments? variable names understandable? reasonable function naming convention? misleading coding style? off-by-one errors in loops? conditions not covered by tests? accidental mixups of variables with the same types? missing frees? read-before-init? better test coverage of suspicious-looking code? missing or mismatching header guards? portability issues? consistent coding style? you know, stuff any coder with a few years of experience in coding anything might be able to catch. With enough eyes all bugs are shallow!
If you are running a mining pool/mining operation/exchange/custodial service/SPV server
Be prepared to upgrade!
One of the typical issues with upgrading software is that subtle incompatibilities with your current custom programs tend to arise, disrupting operations and potentially losing income due to downtime. If so, consider moving to the two-node setup suggested by gmax, which is in the last section of my previous post. With this, you have an up-to-date "public" node and a fixed-version "private" node, with the public node protecting the private node from any invalid chainsplits or invalid transactions. Moving to this setup from a typical one-node setup should be smooth and should not disrupt operations (too much).
If you are running your own fullnode for fun or for your own wallet
Be prepared to upgrade! The more nodes validating the new rules (even if you are a non-mining node!), the safer every softfork will be!
If you are using an SPV wallet or custodial wallet/service (including hardware wallets using the software of the wallet provider)
Contact your wallet provider / SPV server and ask for a statement on whether they support Taproot, and whether they are prepared to upgrade for Taproot! Make it known to them that Taproot is something you want!
But I Hate Taproot!!
Raise your objections to Taproot now, or forever hold your peace! Maybe you can raise them here and some of the devs (probably nullc, he goes everywhere, even in rbtc!) might be able to see your objections! Or if your objections are very technical, head over to the appropriate pull request and object away!
Maybe you simply misunderstand something, and we can clarify it here!
Or maybe you do have a good objection, and we can make Taproot better by finding a solution for it!
AM is the worst thing out there, except for everything else........
Down to my last 99 credits. This is when you start getting the fun messages. When you spend that last credit and that profile that isn't quite too good to be true looks at you and winks. I have met in person I think two people on AM over the past 3 years. One was not a match, and the other I thought/think we match but we haven't been able to get together again. That is a whole different level of frustration. I have also in that time probably had another dozen that I think were real people but the conversation just petered out and they ghosted. Also, I've had about another dozen that I believe were scams. Ultimately, looking for me to provide gift cards, bitcoin, or money to help with their visa application. Some of those conversation went on for a really long time. (What can I say, I'm talkative and lonely. Bad combination sometimes. *laugh*) There were also a few that I believe were real but they were escorts or sugar babies. One got so grumpy in our conversation. No way to win a new customer that way. Not that I can tell her how to do business. And then the 'what-if' messages. In general I assume a collect message is a scam. One I did respond to was actually the one I met and we were a match(at least temporarily). So being lonely and wanting that intimate human interaction(just "hey you" in the IM is pretty damn powerful), I've been actively trying to meet new people. So today I received a wink. It was someone I had winked also after looking at their profile. They also requested my key. It is just a face pic there but I like faces so I put mine there to help someone decide if they like how I look. I granted the key request and BING, a collect message. Well I haven't had a new connection in awhile sure, let's roll the dice. What if? "Hi love how are you doing? Hope you're enjoying your Monday!" Sure it is a pretty plain message but hey it isn't overtly a scammer. I reply.... And waiting.... And waiting... Geeze if send more I sound desperate.... I kept an interesting friendly response. I thought everyone loves windowless vans with strangers handing out candy. Do they not like candy? And so now I wonder. Was I bit by the algorithm that knows my level of desperation? The geek in me would love to see the data mining they do and how it determines how to best drain our credits and encourage us to buy more. I see that offer of renewing popping up as my credit balance drops and I already know I'll be buying more. But hey, what if?
vectorbt - blazingly fast backtesting and interactive data analysis for quants
I want to share with you a tool that I was continuously developing during the last couple of months. https://github.com/polakowo/vectorbt As a data scientist, when I first started flirting with quant trading, I quickly realized that there is a shortage of Python packages that can actually enable me to iterate over a long list of possible strategies and hyper-parameters quickly. Most open-source backtesting libraries are very evolved in terms of functionality, but simply lack speed. Questions like "Which strategy is better: X or Y?" require fast computation and transformation of data. This not only prolongs your lifecycle of designing strategies, but is dangerous after all: limited number of tests is similar to a tunnel vision - it prevents you from seeing the bigger picture and makes you dive into the market blindly. After trying tweaking pandas, multiprocessing, and even evaluating my strategies on a cluster with Spark, I finally found myself using Numba - a Python library that can compile slow Python code to be run at native machine code speed. And since there were no packages in the Python ecosystem that could even closely match the speed of my own backtests, I made vectorbt. vectorbt combines pandas, NumPy and Numba sauce to obtain orders-of-magnitude speedup over other libraries. It builds upon the idea that each instance of a trading strategy can be represented in a vectorized form, so multiple strategy instances can be packed into a single multi-dimensional array. In this form, they can processed in a highly efficient manner and compared easily. It also integrates Plotly and ipywidgets to display complex charts and dashboards akin to Tableau right in the Jupyter notebook. You can find basic examples and explanations in the documentation. Below is an example of doing in total 67,032 tests on three different timeframes of Bitcoin price history to explore how performance of a MACD strategy depends upon various combinations of fast, slow and signal windows:
import vectorbt as vbt import numpy as np import yfinance as yf from itertools import combinations, product # Fetch daily price of Bitcoin price = yf.Ticker("BTC-USD").history(period="max")['Close'] price = price.vbt.split_into_ranges(n=3) # Define hyper-parameter space # 49 fast x 49 slow x 19 signal fast_windows, slow_windows, signal_windows = vbt.indicators.create_param_combs( (product, (combinations, np.arange(2, 51, 1), 2), np.arange(2, 21, 1))) # Run MACD indicator macd_ind = vbt.MACD.from_params( price, fast_window=fast_windows, slow_window=slow_windows, signal_window=signal_windows, hide_params=['macd_ewm', 'signal_ewm'] ) # Long when MACD is above zero AND signal entries = macd_ind.macd_above(0) & macd_ind.macd_above(macd_ind.signal) # Short when MACD is below zero OR signal exits = macd_ind.macd_below(0) | macd_ind.macd_below(macd_ind.signal) # Build portfolio portfolio = vbt.Portfolio.from_signals( price.vbt.tile(len(fast_windows)), entries, exits, fees=0.001, freq='1D') # Draw all window combinations as a 3D volume fig = portfolio.total_return.vbt.volume( x_level='macd_fast_window', y_level='macd_slow_window', z_level='macd_signal_window', slider_level='range_start', template='plotly_dark', trace_kwargs=dict( colorscale='Viridis', colorbar=dict( title='Total return', tickformat='%' ) ) ) fig.show()
Analyze and engineer features for any time series data
Supercharge pandas and your favorite tools to run much faster
Test thousands of strategies, configurations, assets, and time ranges in one go
Test machine learning models
Build interactive charts/dashboards without leaving Jupyter
The current implementation has limitations though:
It's still experimental and fast evolving, thus API can change quickly.
Fast processing means more memory requirements. Above example created multiple DataFrames each taking 46MB of RAM (price, signals, cash, shares, equity, returns, etc). The issue can be mitigated by deleting at least some artifacts as soon as they are created and by disabling caching.
Usage requires intermediate knowledge of pandas and NumPy to understand what's going on. Numba can be learned faster because of it mimicking NumPy. I tried to make lots of small examples in the documentation to get the idea how everything is glued together.
The approach of merging vectorized and iterative code differs significantly from classic OOP approach of designing strategies, and will require you to rethink how strategies are formulated and implemented (which is kinda fun).
Finally, if you're looking for a pure backtesting solution - it's not. It's more of a data mining tool to get to know your market and approach better.
If it sounds cool enough, try it out! I would love if you'd give me some feedback and contribute to it at some point, as the codebase has grown very fast. Cheers.
Taproot! Everybody wants to have it, somebody wants to make it, nobody knows how to get it! (If you are asking why everybody wants it, see: Technical: Taproot: Why Activate?) (Pedants: I mostly elide over lockin times) Briefly, Taproot is that neat new thing that gets us:
Multisignatures (n-of-n, k-of-n) that are just 1 signature (1-of-1) in length!! (MuSig/Schnorr)
Better privacy!! If all contract participants can agree, just use a multisignature. If there is a dispute, show the contract publicly and have the Bitcoin network resolve it (Taproot/MAST).
Activation lets devs work get back to work on the even newer stuff like!!!
Cross-input signature aggregation!! (transaction with multiple inputs can have a single signature for all inputs) --- needs Schnorr, but some more work needed to ensure that the interactions with SCRIPT are okay.
Block validation - Schnorr signatures for all taproot spends in a block can be validated in a single operation instead of for each transaction!! Speed up validation and maybe we can actually afford to increase block sizes (maybe)!!
SIGHASH_ANYPREVOUT - you know, for Decker-Russell-Osuntokun ("eltoo") magic!!!
OP_CHECKTEMPLATEVERIFY - vaulty vaults without requiring storing signatures, just transaction details!!
So yes, let's activate taproot!
The SegWit Wars
The biggest problem with activating Taproot is PTSD from the previous softfork, SegWit. Pieter Wuille, one of the authors of the current Taproot proposal, has consistently held the position that he will not discuss activation, and will accept whatever activation process is imposed on Taproot. Other developers have expressed similar opinions. So what happened with SegWit activation that was so traumatic? SegWit used the BIP9 activation method. Let's dive into BIP9!
bit - A field in the block header, the nVersion, has a number of bits. By setting a particular bit, the miner making the block indicates that it has upgraded its software to support a particular soft fork. The bit parameter for a BIP9 activation is which bit in this nVersion is used to indicate that the miner has upgraded software for a particular soft fork.
timeout - a time limit, expressed as an end date. If this timeout is reached without sufficient number of miners signaling that they upgraded, then the activation fails and Bitcoin Core goes back to the drawing board.
Now there are other parameters (name, starttime) but they are not anywhere near as important as the above two. A number that is not a parameter, is 95%. Basically, activation of a BIP9 softfork is considered as actually succeeding if at least 95% of blocks in the last 2 weeks had the specified bit in the nVersion set. If less than 95% had this bit set before the timeout, then the upgrade fails and never goes into the network. This is not a parameter: it is a constant defined by BIP9, and developers using BIP9 activation cannot change this. So, first some simple questions and their answers:
Why not just set a day when everyone starts imposing the new rules of the softfork?
This was done classically (in the days when Satoshi was still among us). But this might argued to put too much power to developers, since there would be no way to reject an upgrade without possible bad consequences. For example, developers might package an upgrade that the users do not want, together with vital security bugfixes. Either you live without vital security bugfixes and hire some other developers to fix it for you (which can be difficult, presumably the best developers are already the ones working on the codebase) or you get the vital security bugfixes and implicitly support the upgrade you might not want.
Sure, you could fork the code yourself (the ultimate threat in the FOSS world) and hire another set of developers who aren't assholes to do the dreary maintenance work of fixing security bugs, but Bitcoin needs strong bug-for-bug compatibility so everyone should really congregate around a single codebase.
Basically: even the devs do not want this power, because they fear being coerced into putting "upgrades" that are detrimental to users. Satoshi got a pass because nobody knew who he was and how to coerce him.
Suppose the threshold were lower, like 51%. If so, after activation, somebody can disrupt the Bitcoin network by creating a transaction that is valid under the pre-softfork rules, but are invalid under the post-softfork rules. Upgraded nodes would reject it, but 49% of miners would accept it and include it in a block (which makes the block invalid) And then the same 49% would accept the invalid block and build on top of that, possibly creating a short chain of doomed invalid blocks that confirm an invalid spend. This can confuse SPV wallets, who might see multiple confirmations of a transaction and accept the funds, but later find that in fact it is invalid under the now-activated softfork rules.
Thus, a very high threshold was imposed. 95% is considered safe. 50% is definitely not safe. Due to variance in the mining process, 80% could also be potentially unsafe (i.e. 80% of blocks signaling might have a good chance of coming from only 60% of miners), so a threshold of 95% was considered "safe enough for Bitcoin work".
Why have a timeout that disables the upgrade?
Before BIP9, what was used was either flag day or BIP34. BIP34 had no flag day of activation or a bit, instead, it was just a 95% threshold to signal an nVersion value greater than a specific value. Actually, it was two thresholds: at 75%, blocks with the new nVersion would have the new softfork rules imposed, but at 95% blocks with the old nVersion would be rejected (and only the new blocks, with the new softfork rules, were accepted). For one, between 75% and 95%, there was a situation where the softfork was only "partially imposed", only blocks signaling the new rules would actually have those rules, but blocks with the old rules were still valid. This was fine for BIP34, which only added rules for miners with negligible use for non-miners.
The reasons miners signalled support was because they felt they were being pressured to signal support. So they signalled support, with plans to actually upgrade later, but because of the widespread signalling, the new BIP66 version locked in before upgrade plans were finished. Thus, the timeout that disables the upgrade was added in BIP9 to allow miners an escape hatch.
The Great Battles of the SegWit Wars
SegWit not only fixed transaction malleability, it also created a practical softforkable blocksize increase that also rebalanced weights so that the cost of spending a UTXO is about the same as the cost of creating UTXOs (and spending UTXOs is "better" since it limits the size of the UTXO set that every fullnode has to maintain). So SegWit was written, the activation was decided to be BIP9, and then.... miner signalling stalled at below 75%. Thus were the Great SegWit Wars started.
BIP9 Feature Hostage
If you are a miner with at least 5% global hashpower, you can hold a BIP9-activated softfork hostage. You might even secretly want the softfork to actually push through. But you might want to extract concession from the users and the developers. Like removing the halvening. Or raising or even removing the block size caps (which helps larger miners more than smaller miners, making it easier to become a bigger fish that eats all the smaller fishes). Or whatever. With BIP9, you can hold the softfork hostage. You just hold out and refuse to signal. You tell everyone you will signal, if and only if certain concessions are given to you. This ability by miners to hold a feature hostage was enabled because of the miner-exit allowed by the timeout on BIP9. Prior to that, miners were considered little more than expendable security guards, paid for the risk they take to secure the network, but not special in the grand scheme of Bitcoin.
ASICBoost was a novel way of optimizing SHA256 mining, by taking advantage of the structure of the 80-byte header that is hashed in order to perform proof-of-work. The details of ASICBoost are out-of-scope here but you can read about it elsewhere Here is a short summary of the two types of ASICBoost, relevant to the activation discussion.
Overt ASICBoost - Manipulates the unused bits in nVersion to reduce power consumption in mining.
Covert ASICBoost - Manipulates the order of transactions in the block to reduce power consumption in mining.
Now, "overt" means "obvious", while "covert" means hidden. Overt ASICBoost is obvious because nVersion bits that are not currently in use for BIP9 activations are usually 0 by default, so setting those bits to 1 makes it obvious that you are doing something weird (namely, Overt ASICBoost). Covert ASICBoost is non-obvious because the order of transactions in a block are up to the miner anyway, so the miner rearranging the transactions in order to get lower power consumption is not going to be detected. Unfortunately, while Overt ASICBoost was compatible with SegWit, Covert ASICBoost was not. This is because, pre-SegWit, only the block header Merkle tree committed to the transaction ordering. However, with SegWit, another Merkle tree exists, which commits to transaction ordering as well. Covert ASICBoost would require more computation to manipulate two Merkle trees, obviating the power benefits of Covert ASICBoost anyway. Now, miners want to use ASICBoost (indeed, about 60->70% of current miners probably use the Overt ASICBoost nowadays; if you have a Bitcoin fullnode running you will see the logs with lots of "60 of last 100 blocks had unexpected versions" which is exactly what you would see with the nVersion manipulation that Overt ASICBoost does). But remember: ASICBoost was, at around the time, a novel improvement. Not all miners had ASICBoost hardware. Those who did, did not want it known that they had ASICBoost hardware, and wanted to do Covert ASICBoost! But Covert ASICBoost is incompatible with SegWit, because SegWit actually has two Merkle trees of transaction data, and Covert ASICBoost works by fudging around with transaction ordering in a block, and recomputing two Merkle Trees is more expensive than recomputing just one (and loses the ASICBoost advantage). Of course, those miners that wanted Covert ASICBoost did not want to openly admit that they had ASICBoost hardware, they wanted to keep their advantage secret because miners are strongly competitive in a very tight market. And doing ASICBoost Covertly was just the ticket, but they could not work post-SegWit. Fortunately, due to the BIP9 activation process, they could hold SegWit hostage while covertly taking advantage of Covert ASICBoost!
UASF: BIP148 and BIP8
When the incompatibility between Covert ASICBoost and SegWit was realized, still, activation of SegWit stalled, and miners were still not openly claiming that ASICBoost was related to non-activation of SegWit. Eventually, a new proposal was created: BIP148. With this rule, 3 months before the end of the SegWit timeout, nodes would reject blocks that did not signal SegWit. Thus, 3 months before SegWit timeout, BIP148 would force activation of SegWit. This proposal was not accepted by Bitcoin Core, due to the shortening of the timeout (it effectively times out 3 months before the initial SegWit timeout). Instead, a fork of Bitcoin Core was created which added the patch to comply with BIP148. This was claimed as a User Activated Soft Fork, UASF, since users could freely download the alternate fork rather than sticking with the developers of Bitcoin Core. Now, BIP148 effectively is just a BIP9 activation, except at its (earlier) timeout, the new rules would be activated anyway (instead of the BIP9-mandated behavior that the upgrade is cancelled at the end of the timeout). BIP148 was actually inspired by the BIP8 proposal (the link here is a historical version; BIP8 has been updated recently, precisely in preparation for Taproot activation). BIP8 is basically BIP9, but at the end of timeout, the softfork is activated anyway rather than cancelled. This removed the ability of miners to hold the softfork hostage. At best, they can delay the activation, but not stop it entirely by holding out as in BIP9. Of course, this implies risk that not all miners have upgraded before activation, leading to possible losses for SPV users, as well as again re-pressuring miners to signal activation, possibly without the miners actually upgrading their software to properly impose the new softfork rules.
BIP91, SegWit2X, and The Aftermath
BIP148 inspired countermeasures, possibly from the Covert ASiCBoost miners, possibly from concerned users who wanted to offer concessions to miners. To this day, the common name for BIP148 - UASF - remains an emotionally-charged rallying cry for parts of the Bitcoin community. One of these was SegWit2X. This was brokered in a deal between some Bitcoin personalities at a conference in New York, and thus part of the so-called "New York Agreement" or NYA, another emotionally-charged acronym. The text of the NYA was basically:
Set up a new activation threshold at 80% signalled at bit 4 (vs bit 1 for SegWit).
When this 80% signalling was reached, miners would require that bit 1 for SegWit be signalled to achive the 95% activation needed for SegWit.
If the bit 4 signalling reached 80%, increase the block weight limit from the SegWit 4000000 to the SegWit2X 8000000, 6 months after bit 1 activation.
The first item above was coded in BIP91. Unfortunately, if you read the BIP91, independently of NYA, you might come to the conclusion that BIP91 was only about lowering the threshold to 80%. In particular, BIP91 never mentions anything about the second point above, it never mentions that bit 4 80% threshold would also signal for a later hardfork increase in weight limit. Because of this, even though there are claims that NYA (SegWit2X) reached 80% dominance, a close reading of BIP91 shows that the 80% dominance was only for SegWit activation, without necessarily a later 2x capacity hardfork (SegWit2X). This ambiguity of bit 4 (NYA says it includes a 2x capacity hardfork, BIP91 says it does not) has continued to be a thorn in blocksize debates later. Economically speaking, Bitcoin futures between SegWit and SegWit2X showed strong economic dominance in favor of SegWit (SegWit2X futures were traded at a fraction in value of SegWit futures: I personally made a tidy but small amount of money betting against SegWit2X in the futures market), so suggesting that NYA achieved 80% dominance even in mining is laughable, but the NYA text that ties bit 4 to SegWit2X still exists. Historically, BIP91 triggered which caused SegWit to activate before the BIP148 shorter timeout. BIP148 proponents continue to hold this day that it was the BIP148 shorter timeout and no-compromises-activate-on-August-1 that made miners flock to BIP91 as a face-saving tactic that actually removed the second clause of NYA. NYA supporters keep pointing to the bit 4 text in the NYA and the historical activation of BIP91 as a failed promise by Bitcoin developers.
We have discussed BIP8: roughly, it has bit and timeout, if 95% of miners signal bit it activates, at the end of timeout it activates. (EDIT: BIP8 has had recent updates: at the end of timeout it can now activate or fail. For the most part, in the below text "BIP8", means BIP8-and-activate-at-timeout, and "BIP9" means BIP8-and-fail-at-timeout) So let's take a look at Modern Softfork Activation!
Modern Softfork Activation
This is a more complex activation method, composed of BIP9 and BIP8 as supcomponents.
First have a 12-month BIP9 (fail at timeout).
If the above fails to activate, have a 6-month discussion period during which users and developers and miners discuss whether to continue to step 3.
Have a 24-month BIP8 (activate at timeout).
The total above is 42 months, if you are counting: 3.5 years worst-case activation. The logic here is that if there are no problems, BIP9 will work just fine anyway. And if there are problems, the 6-month period should weed it out. Finally, miners cannot hold the feature hostage since the 24-month BIP8 period will exist anyway.
PSA: Being Resilient to Upgrades
Software is very birttle. Anyone who has been using software for a long time has experienced something like this:
You hear a new version of your favorite software has a nice new feature.
Excited, you install the new version.
You find that the new version has subtle incompatibilities with your current workflow.
You are sad and downgrade to the older version.
You find out that the new version has changed your files in incompatible ways that the old version cannot work with anymore.
You tearfully reinstall the newer version and figure out how to get your lost productivity now that you have to adapt to a new workflow
If you are a technically-competent user, you might codify your workflow into a bunch of programs. And then you upgrade one of the external pieces of software you are using, and find that it has a subtle incompatibility with your current workflow which is based on a bunch of simple programs you wrote yourself. And if those simple programs are used as the basis of some important production system, you hve just screwed up because you upgraded software on an important production system. And well, one of the issues with new softfork activation is that if not enough people (users and miners) upgrade to the newest Bitcoin software, the security of the new softfork rules are at risk. Upgrading software of any kind is always a risk, and the more software you build on top of the software-being-upgraded, the greater you risk your tower of software collapsing while you change its foundations. So if you have some complex Bitcoin-manipulating system with Bitcoin somewhere at the foundations, consider running two Bitcoin nodes:
One is a "stable-version" Bitcoin node. Once it has synced, set it up to connect=x.x.x.x to the second node below (so that your ISP bandwidth is only spent on the second node). Use this node to run all your software: it's a stable version that you don't change for long periods of time. Enable txiindex, disable pruning, whatever your software needs.
The other is an "always-up-to-date" Bitcoin Node. Keep its stoarge down with pruning (initially sync it off the "stable-version" node). You can't use blocksonly if your "stable-version" node needs to send transactions, but otherwise this "always-up-to-date" Bitcoin node can be kept as a low-resource node, so you can run both nodes in the same machine.
When a new Bitcoin version comes up, you just upgrade the "always-up-to-date" Bitcoin node. This protects you if a future softfork activates, you will only receive valid Bitcoin blocks and transactions. Since this node has nothing running on top of it, it is just a special peer of the "stable-version" node, any software incompatibilities with your system software do not exist. Your "stable-version" Bitcoin node remains the same version until you are ready to actually upgrade this node and are prepared to rewrite most of the software you have running on top of it due to version compatibility problems. When upgrading the "always-up-to-date", you can bring it down safely and then start it later. Your "stable-version" wil keep running, disconnected from the network, but otherwise still available for whatever queries. You do need some system to stop the "always-up-to-date" node if for any reason the "stable-version" goes down (otherwisee if the "always-up-to-date" advances its pruning window past what your "stable-version" has, the "stable-version" cannot sync afterwards), but if you are technically competent enough that you need to do this, you are technically competent enough to write such a trivial monitor program (EDIT: gmax notes you can adjust the pruning window by RPC commands to help with this as well). This recommendation is from gmaxwell on IRC, by the way.
Maybe it's time to discuss bitcoin's history again. Credit to u/singularity87 for the original post over 3 years ago. People should get the full story of bitcoin because it is probably one of the strangest of all reddit subs. bitcoin, the main sub for the bitcoin community is held and run by a person who goes by the pseudonym u/theymos. Theymos not only controls bitcoin, but also bitcoin.org and bitcointalk.com. These are top three communication channels for the bitcoin community, all controlled by just one person. For most of bitcoin's history this did not create a problem (at least not an obvious one anyway) until around mid 2015. This happened to be around the time a new player appeared on the scene, a for-profit company called Blockstream. Blockstream was made up of/hired many (but not all) of the main bitcoin developers. (To be clear, Blockstream was founded before mid 2015 but did not become publicly active until then). A lot of people, including myself, tried to point out there we're some very serious potential conflicts of interest that could arise when one single company controls most of the main developers for the biggest decentralised and distributed cryptocurrency. There were a lot of unknowns but people seemed to give them the benefit of the doubt because they were apparently about to release some new software called "sidechains" that could offer some benefits to the network. Not long after Blockstream came on the scene the issue of bitcoin's scalability once again came to forefront of the community. This issue came within the community a number of times since bitcoins inception. Bitcoin, as dictated in the code, cannot handle any more than around 3 transactions per second at the moment. To put that in perspective Paypal handles around 15 transactions per second on average and VISA handles something like 2000 transactions per second. The discussion in the community has been around how best to allow bitcoin to scale to allow a higher number of transactions in a given amount of time. I suggest that if anyone is interested in learning more about this problem from a technical angle, they go to btc and do a search. It's a complex issue but for many who have followed bitcoin for many years, the possible solutions seem relatively obvious. Essentially, currently the limit is put in place in just a few lines of code. This was not originally present when bitcoin was first released. It was in fact put in place afterwards as a measure to stop a bloating attack on the network. Because all bitcoin transactions have to be stored forever on the bitcoin network, someone could theoretically simply transmit a large number of transactions which would have to be stored by the entire network forever. When bitcoin was released, transactions were actually for free as the only people running the network were enthusiasts. In fact a single bitcoin did not even have any specific value so it would be impossible set a fee value. This meant that a malicious person could make the size of the bitcoin ledger grow very rapidly without much/any cost which would stop people from wanting to join the network due to the resource requirements needed to store it, which at the time would have been for very little gain. Towards the end of the summer last year, this bitcoin scaling debate surfaced again as it was becoming clear that the transaction limit for bitcoin was semi regularly being reached and that it would not be long until it would be regularly hit and the network would become congested. This was a very serious issue for a currency. Bitcoin had made progress over the years to the point of retailers starting to offer it as a payment option. Bitcoin companies like, Microsoft, Paypal, Steam and many more had began to adopt it. If the transaction limit would be constantly maxed out, the network would become unreliable and slow for users. Users and businesses would not be able to make a reliable estimate when their transaction would be confirmed by the network. Users, developers and businesses (which at the time was pretty much the only real bitcoin subreddit) started to discuss how we should solve the problem bitcoin. There was significant support from the users and businesses behind a simple solution put forward by the developer Gavin Andreesen. Gavin was the lead developer after Satoshi Nakamoto left bitcoin and he left it in his hands. Gavin initially proposed a very simple solution of increasing the limit which was to change the few lines of code to increase the maximum number of transactions that are allowed. For most of bitcoin's history the transaction limit had been set far far higher than the number of transactions that could potentially happen on the network. The concept of increasing the limit one time was based on the fact that history had proven that no issue had been cause by this in the past. A certain group of bitcoin developers decided that increasing the limit by this amount was too much and that it was dangerous. They said that the increased use of resources that the network would use would create centralisation pressures which could destroy the network. The theory was that a miner of the network with more resources could publish many more transactions than a competing small miner could handle and therefore the network would tend towards few large miners rather than many small miners. The group of developers who supported this theory were all developers who worked for the company Blockstream. The argument from people in support of increasing the transaction capacity by this amount was that there are always inherent centralisation pressure with bitcoin mining. For example miners who can access the cheapest electricity will tend to succeed and that bigger miners will be able to find this cheaper electricity easier. Miners who have access to the most efficient computer chips will tend to succeed and that larger miners are more likely to be able to afford the development of them. The argument from Gavin and other who supported increasing the transaction capacity by this method are essentially there are economies of scale in mining and that these economies have far bigger centralisation pressures than increased resource cost for a larger number of transactions (up to the new limit proposed). For example, at the time the total size of the blockchain was around 50GB. Even for the cost of a 500GB SSD is only $150 and would last a number of years. This is in-comparison to the $100,000's in revenue per day a miner would be making. Various developers put forth various other proposals, including Gavin Andresen who put forth a more conservative increase that would then continue to increase over time inline with technological improvements. Some of the employees of blockstream also put forth some proposals, but all were so conservative, it would take bitcoin many decades before it could reach a scale of VISA. Even though there was significant support from the community behind Gavin's simple proposal of increasing the limit it was becoming clear certain members of the bitcoin community who were part of Blockstream were starting to become increasingly vitriolic and divisive. Gavin then teamed up with one of the other main bitcoin developers Mike Hearn and released a coded (i.e. working) version of the bitcoin software that would only activate if it was supported by a significant majority of the network. What happened next was where things really started to get weird. After this free and open source software was released, Theymos, the person who controls all the main communication channels for the bitcoin community implemented a new moderation policy that disallowed any discussion of this new software. Specifically, if people were to discuss this software, their comments would be deleted and ultimately they would be banned temporarily or permanently. This caused chaos within the community as there was very clear support for this software at the time and it seemed our best hope for finally solving the problem and moving on. Instead a censorship campaign was started. At first it 'all' they were doing was banning and removing discussions but after a while it turned into actively manipulating the discussion. For example, if a thread was created where there was positive sentiment for increasing the transaction capacity or being negative about the moderation policies or negative about the actions of certain bitcoin developers, the mods of bitcoin would selectively change the sorting order of threads to 'controversial' so that the most support opinions would be sorted to the bottom of the thread and the most vitriolic would be sorted to the top of the thread. This was initially very transparent as it was possible to see that the most downvoted comments were at the top and some of the most upvoted were at the bottom. So they then implemented hiding the voting scores next to the users name. This made impossible to work out the sentiment of the community and when combined with selectively setting the sorting order to controversial it was possible control what information users were seeing. Also, due to the very very large number of removed comments and users it was becoming obvious the scale of censorship going on. To hide this they implemented code in their CSS for the sub that completely hid comments that they had removed so that the censorship itself was hidden. Anyone in support of scaling bitcoin were removed from the main communication channels. Theymos even proudly announced that he didn't care if he had to remove 90% of the users. He also later acknowledged that he knew he had the ability to block support of this software using the control he had over the communication channels. While this was all going on, Blockstream and it's employees started lobbying the community by paying for conferences about scaling bitcoin, but with the very very strange rule that no decisions could be made and no complete solutions could be proposed. These conferences were likely strategically (and successfully) created to stunt support for the scaling software Gavin and Mike had released by forcing the community to take a "lets wait and see what comes from the conferences" kind of approach. Since no final solutions were allowed at these conferences, they only served to hinder and splinter the communities efforts to find a solution. As the software Gavin and Mike released called BitcoinXT gained support it started to be attacked. Users of the software were attack by DDOS. Employees of Blockstream were recommending attacks against the software, such as faking support for it, to only then drop support at the last moment to put the network in disarray. Blockstream employees were also publicly talking about suing Gavin and Mike from various different angles simply for releasing this open source software that no one was forced to run. In the end Mike Hearn decided to leave due to the way many members of the bitcoin community had treated him. This was due to the massive disinformation campaign against him on bitcoin. One of the many tactics that are used against anyone who does not support Blockstream and the bitcoin developers who work for them is that you will be targeted in a smear campaign. This has happened to a number of individuals and companies who showed support for scaling bitcoin. Theymos has threatened companies that he will ban any discussion of them on the communication channels he controls (i.e. all the main ones) for simply running software that he disagrees with (i.e. any software that scales bitcoin). As time passed, more and more proposals were offered, all against the backdrop of ever increasing censorship in the main bitcoin communication channels. It finally come down the smallest and most conservative solution. This solution was much smaller than even the employees of Blockstream had proposed months earlier. As usual there was enormous attacks from all sides and the most vocal opponents were the employees of Blockstream. These attacks still are ongoing today. As this software started to gain support, Blockstream organised more meetings, especially with the biggest bitcoin miners and made a pact with them. They promised that they would release code that would offer an on-chain scaling solution hardfork within about 4 months, but if the miners wanted this they would have to commit to running their software and only their software. The miners agreed and the ended up not running the most conservative proposal possible. This was in February last year. There is no hardfork proposal in sight from the people who agreed to this pact and bitcoin is still stuck with the exact same transaction limit it has had since the limit was put in place about 6 years ago. Gavin has also been publicly smeared by the developers at Blockstream and a plot was made against him to have him removed from the development team. Gavin has now been, for all intents an purposes, expelled from bitcoin development. This has meant that all control of bitcoin development is in the hands of the developers working at Blockstream. There is a new proposal that offers a market based approach to scaling bitcoin. This essentially lets the market decide. Of course, as usual there has been attacks against it, and verbal attacks from the employees of Blockstream. This has the biggest chance of gaining wide support and solving the problem for good. To give you an idea of Blockstream; It has hired most of the main and active bitcoin developers and is now synonymous with the "Core" bitcoin development team. They AFAIK no products at all. They have received around $75m in funding. Every single thing they do is supported by theymos. They have started implementing an entirely new economic system for bitcoin against the will of it's users and have blocked any and all attempts to scaling the network in line with the original vision. Although this comment is ridiculously long, it really only covers the tip of the iceberg. You could write a book on the last two years of bitcoin. The things that have been going on have been mind blowing. One last thing that I think is worth talking about is the u/bashco's claim of vote manipulation. The users that the video talks about have very very large numbers of downvotes mostly due to them having a very very high chance of being astroturfers. Around about the same time last year when Blockstream came active on the scene every single bitcoin troll disappeared, and I mean literally every single one. In the years before that there were a large number of active anti-bitcoin trolls. They even have an active sub buttcoin. Up until last year you could go down to the bottom of pretty much any thread in bitcoin and see many of the usual trolls who were heavily downvoted for saying something along the lines of "bitcoin is shit", "You guys and your tulips" etc. But suddenly last year they all disappeared. Instead a new type of bitcoin user appeared. Someone who said they were fully in support of bitcoin but they just so happened to support every single thing Blockstream and its employees said and did. They had the exact same tone as the trolls who had disappeared. Their way to talking to people was aggressive, they'd call people names, they had a relatively poor understanding of how bitcoin fundamentally worked. They were extremely argumentative. These users are the majority of the list of that video. When the 10's of thousands of users were censored and expelled from bitcoin they ended up congregating in btc. The strange thing was that the users listed in that video also moved over to btc and spend all day everyday posting troll-like comments and misinformation. Naturally they get heavily downvoted by the real users in btc. They spend their time constantly causing as much drama as possible. At every opportunity they scream about "censorship" in btc while they are happy about the censorship in bitcoin. These people are astroturfers. What someone somewhere worked out, is that all you have to do to take down a community is say that you are on their side. It is an astoundingly effective form of psychological attack.
It's another goddamn level of data collection. I bet they're selling this data. I did 4 face scans, 4 knuckle scans, and 2 full room scans today. What the actual fuck. Why do you need to see my whole room? I'm sitting in this tiny ass corner so it doesn't seem like I'm cheating and now they wanna see the whole goddamn room? The audacity of these a-holes is incredible. It says "show under the desk". Yeah, cuz I got eyes on my feet right? Isn't my face and hands and constant proctoring and FULL MOTHERFUCKIN DISK ACCESS, and access to control any and all apps on my laptop at any time in any way enough? This is the exact access a virus needs to use your laptop for bitcoin mining. Oh, and not to mention they made me download a chrome extension with full access to all data, control over the whole browser, and ability to open and close tabs without my permission I don't even feel like this is my laptop anymore. Why can't we use lockdown browser? It's THE SAME SHIT. Just have us join zoom or some shit and lockdown browser. At this point they might as well make us naked and take a full body scan to make sure we didn't tattoo the fuckin syllabus on us or some shit Dear Proctortrack, lmk if you need to scan the inside of my eyeballs too, you know, to make sure i have "aCaDeMiC iNtEgRiTy". Who knows? Maybe I tattooed the inside of my goddamn retinas?
My college essay on Bitcoin and computers. First Draft. Thought you all might like this.
I always thought computers were simple. At their fundamental level, they are just 1s and 0s. An invisible dance of yes’s and no’s running through a sheet of silicon at billions of times per second. Computers are amazing and unique machines that will forever be apart of our lives. Our sheer dependence on computers motivated me to research the topic? As my understanding of this concept grew, so did my curiosity. I started researching computers as much as I could. I would spend hours a day browsing Youtube and reading articles just to satisfy my interest. That’s why when my dad first brought up the topic of bitcoin during my freshman year, I wasn’t surprised to hear his enthusiasm. I had learned much about this currency over my couple years of research, but I knew very little about how to actually make money off it. He had been tracking the price for a few months and was considering buying a few, just to see what would happen. Little did either of us know; the price of this virtual coin would multiply nearly 30 times in just a few short months. A few weeks passed and eventually he brought up the topic of buying bitcoin again. His initial interest inspired me to look more into currency and how it worked. I told my dad there was another way to make money off of bitcoins: Bitcoin miners. These impressive and powerful computers are precisely optimized to earn these coins, and I knew I could make one. I explained how this was my once in a lifetime opportunity, like how he explained to me that he missed out on investing in Apple in the 80s. “It could be a money-printing machine,” I joked. With our excitement peaked, we decided to split the $2,000 investment 50/50, and I started the buying process. I started the process by buying the parts of the machine. I had learned that like Legos, a computer consists of simple components to make the whole. However, unlike an ordinary everyday computer, ours would have a concentrated task. Mining bitcoin is not a complicated process for a computer to do. In essence, by completing simple math problems as quickly as possible, a computer process’ bitcoin transactions from around the world and is rewarded in a tiny fraction of a coin. As more and more transactions take place, the higher the demand for processing, and the higher the reward. I was lucky enough to know how to build the computer. However, what I was not prepared for was the constant troubleshooting and maintenance I would have to give to this project. Sometimes the computer would simply turn off randomly, sometimes a part was not detected, and other times it merely just ran at half its optimized rate. I learned how to fix issues where there was no logical reason for the problem. Like a calculator, I always thought a computer could never mess up. My hundreds of hours of troubleshooting and blind hope quickly changed my view. I put a vast amount of free time into the project, knowing that potential it had. After lots of hard work, long nights, and determination, I had finally completed my dream project. I was proud of what I had created. The computer was placed in my room and was like a pet. The loud but rhythmic fans helped me fall asleep, and the heat kept me warm during the winter. From school, I would monitor the machine, and if it had run into an error, I would simply restart it from my phone. My plan was working, and in a little over half a year, our investment should turn into profit. In only a few months, we were already halfway to making our money back. We were lucky because the price of bitcoin itself had doubled since we started, going from nearly $10,000 to $20,000 in a few short months, but as I looked at my account, I had no bitcoin. A few days earlier, hackers had stolen $64 million dollars from the company I mined with. I felt like a victim. I had done everything right. I built the computer perfectly, I managed everything, I put the time in, and I put the effort in. I was robbed, and I was discouraged. Forced with no other option, we restarted our operation. Bitcoin was still increasing in price, we thought, so there was no reason to stop now. Our operation had restarted and was going well, but for the first time since we started, the price of bitcoin was not doing so well. The bubble was about to burst. It began with my hack, which made national news and hurt the price. Although the price recovered in a few weeks, it was going down again, fast. Believing it would improve, my dad and I decided to hold and not sell. A month later, Bitcoin was back to $8,000 per coin. The fad was over, and we couldn’t even make a profit over our cost of electricity. Again, I was robbed. I did nothing wrong and still lost almost everything. I decided to put the computer in a box and wait a few months; however, the wait was worthless. The coin plateaued at about $10,000, and it simply was not sustainable to continue mining. A year later, we sold the computers for parts and managed to make back about half our initial investment. It was over. I had lost over $1,000 and months of time and effort. However, as I moved on and started to reflect on the experience, I was the winner. I learned so much about computers and how they operate. In the end, I had learned many skills, from patience and compassion to planning and researching. I had learned not only to build a computer but to manage systems and multitask. I learned countless lessons and gained essential and unique skills that I hope will carry me throughout life. This unique experience has taught me to always keep trying at what I believe in. There’s always an award for doing whatever I think is right. I hope to bring these beliefs and lessons with me throughout life, as I learn and grow from what I was taught. Whenever people ask me what computers are, I always laugh and explain how a computer is just a bunch of simple lego bricks working together to do complicated tasks. However, inside I still have trouble answering this simple question. It is merely just parts working together, but a computer is so much more complicated and beautiful than that. Honestly, I still don’t understand them.
Bitcoin mining is the act of using specialized computer hardware to verify transactions on Bitcoin’s Blockchain network, an open and public ledger that cannot be altered, but what exactly does that mean? Mining is how the Bitcoin payment system is able to function securely in a decentralized fashion, that's all it is. All the details are just the technical specifics of how that is achieved. Basically when you mine you're doing two things, you're validating new transactions, meaning you check if they follow the Bitcoin rules (look those up), and ... Bitcoin mining is the process of updating the ledger of Bitcoin transactions known as the blockchain. Mining is done by running extremely powerful computers called ASICs that race against other miners in an attempt to guess a specific number. What is Bitcoin mining actually doing? Miners are securing the network and confirming Bitcoin transactions. Miners are paid rewards for their service every 10 minutes in the form of new bitcoins. Actually want to try mining bitcoins? Well, you can do it. However, it’s not profitable for most people as mining is a highly specialized industry. Bitcoin mining is the process of creating new bitcoin by solving a computational puzzle. Bitcoin mining is necessary to maintain the ledger of transactions upon which bitcoin is based.
How Bitcoin mining actually works - What is the ...
In this video I try to breakdown the "cryptographic problem" that people reference when they talk about bitcoin mining. what is bitcoin mining actually doing http://specialoffer.imarketslive.com - Learn the right way to rule in the Forex industry. How Bitcoin mining actually works - What is the "cryptographic puzzle"? - Duration: 14:13. Keifer Kif 78,184 views. 14:13. How to BitCoin mine using fast ASIC mining hardware - Duration: 27:15. A somewhat in depth look at what BitCoin mining actually is: More Information on Bitcoin Mining and we are building up to getting your own BitCoin miners setup so you can start mining! Link Dump ... It took it upon myself to find out what Bitcoin miners were really mining/why they were mining. I don't know why it took me so long to find the answer, maybe I wasn't asking the right questions.