Best Bitcoin Mining Softwares To Use In 2020

Proven security!

Want to bitch about Oracle/MS/Adobe's recent exploit even though it's been on the front page for 5 days? Tired of sanitybit's "moderation" and "civility"? Join the circlejerk! Don't get me wrong, I love netsec, it's just some... issues occasionally crop up.
[link]

COMPUTTA | New Free Bitcoin Miner | Best mining software program For PC and Laptop (2019)

COMPUTTA | New Free Bitcoin Miner | Best mining software program For PC and Laptop (2019) submitted by Rufflenator to 3bitcoins [link] [comments]

BEST bitcoin mining software program 2018

BEST bitcoin mining software program 2018 submitted by ososru to Bitcoin4free [link] [comments]

BEST bitcoin mining software program 2018

BEST bitcoin mining software program 2018 submitted by Rufflenator to 3bitcoins [link] [comments]

Best bitcoin mining software program ~ full Version software program faucet collector 2019

Best bitcoin mining software program ~ full Version software program faucet collector 2019 submitted by ososru to Bitcoin4free [link] [comments]

Best bitcoin mining software program ~ full Version software program faucet collector 2019

Best bitcoin mining software program ~ full Version software program faucet collector 2019 submitted by Rufflenator to 3bitcoins [link] [comments]

COMPUTTA | New Free Bitcoin Miner | Best mining software program For PC and Laptop (2019)

COMPUTTA | New Free Bitcoin Miner | Best mining software program For PC and Laptop (2019) submitted by ososru to Bitcoin4free [link] [comments]

01-27 02:22 - 'Build a better tomorrow by investing in crypto mining program. Crypto-generals have secured the best program which fits everyone’s necessity, ensuring endless profits.' (self.Bitcoin) by /u/hingriz removed from /r/Bitcoin within 36-46min

'''
CRYPTO-GENERALS serves its purpose so nicely that it suits all advanced Mining & Trading options. In a bit to Ameliorate Financial Crisis, they offer everyone the opportunity to invest while they mine & trade. The Company forms the core backbone of #Bitcoin, ensuring the Digital Currency's integrity and successfully Trades through exchange platforms. Today, the Company runs on a #Blockchain; a Decentralized and public ledger of every transaction made on the network by offering processing power.[hingriz]1
'''
Build a better tomorrow by investing in crypto mining program. Crypto-generals have secured the best program which fits everyone’s necessity, ensuring endless profits.
Go1dfish undelete link
unreddit undelete link
Author: hingriz
1: *rypto-***erals*com
Unknown links are censored to prevent spreading illicit content.
submitted by removalbot to removalbot [link] [comments]

Bitcoin mentioned around Reddit: What is the best torrent program guys?Since utorrnet was caught using bitcoin-mining malwares #Sorry_For_My_Bad_English /r/torrents

Bitcoin mentioned around Reddit: What is the best torrent program guys?Since utorrnet was caught using bitcoin-mining malwares #Sorry_For_My_Bad_English /torrents submitted by BitcoinAllBot to BitcoinAll [link] [comments]

Computta is the best software miner! Mine BTC at home, just install and run easy to use program, payout start at 50 mBTC! Try it now! /r/bitcoin_unlimited

Computta is the best software miner! Mine BTC at home, just install and run easy to use program, payout start at 50 mBTC! Try it now! /bitcoin_unlimited submitted by BitcoinAllBot to BitcoinAll [link] [comments]

A Detailed Summary of Every Single Reason Why I am Bullish on Ethereum

The following will be a list of the many reasons why I hold and am extremely bullish on ETH.

This is an extremely long post. If you just want the hopium without the detail, read the TL;DR at the bottom.

ETH 2.0

As we all know, ETH 2.0 phase 0 is right around the corner. This will lock up ETH and stakers will earn interest on their ETH in return for securing the network. Next comes phase 1 where the ETH 2 shards are introduced, shards are essentially parallel blockchains which are each responsible for a different part of Ethereum’s workload, think of it like a multi-core processor vs a single core processor. During phase 1, these shards will only act as data availability layers and won’t actually process transactions yet. However, their data can be utilised by the L2 scaling solution, rollups, increasing Ethereum’s throughput in transactions per second up to 100,000 TPS.
After phase 1 comes phase 1.5 which will move the ETH 1.0 chain into an ETH 2 shard and Ethereum will be fully secured by proof of stake. This means that ETH issuance will drop from around 5% per year to less than 1% and with EIP-1559, ETH might become a deflationary asset, but more on that later.
Finally, with ETH 2.0 phase two, each shard will be fully functional chains. With 64 of them, we can expect the base layer of Ethereum to scale around 64x, not including the massive scaling which comes from layer 2 scaling solutions like rollups as previously mentioned.
While the scaling benefits and ETH issuance reduction which comes with ETH 2.0 will be massive, they aren’t the only benefits. We also get benefits such as increased security from PoS compared to PoW, a huge energy efficiency improvement due to the removal of PoW and also the addition of eWASM which will allow contracts to be programmed in a wide range of programming languages, opening the floodgates for millions of web devs who want to be involved in Ethereum but don’t know Ethereum’s programming language, Solidity.

EIP-1559 and ETH scarcity

As I covered in a previous post of mine, ETH doesn’t have a supply cap like Bitcoin. Instead, it has a monetary policy of “minimum viable issuance”, not only is this is a good thing for network security, but with the addition of EIP-1559, it leaves the door open to the possibility of ETH issuance going negative. In short, EIP-1559 changes the fee market to make transaction prices more efficient (helping to alleviate high gas fees!) by burning a variable base fee which changes based on network usage demand rather than using a highest bidder market where miners simply include who pays them the most. This will result in most of the ETH being paid in transaction fees being burned. As of late, the amount which would be burned if EIP-1559 was in Ethereum right now would make ETH a deflationary asset!

Layer 2 Scaling

In the mean time while we are waiting for ETH 2.0, layer 2 scaling is here. Right now, projects such as Deversifi or Loopring utilise rollups to scale to thousands of tx/s on their decentralised exchange platforms or HoneySwap which uses xDai to offer a more scalable alternative to UniSwap. Speaking of which, big DeFi players like UniSwap and Synthetix are actively looking into using optimistic rollups to scale while maintaining composability between DeFi platforms. The most bullish thing about L2 scaling is all of the variety of options. Here’s a non exhaustive list of Ethereum L2 scaling solutions: - Aztec protocol (L2 scaling + privacy!) - ZKSync - Loopring - Raiden - Arbitrum Rollups - xDai - OMGNetwork - Matic - FuelLabs - Starkware - Optimism - Celer Network - + Many more

DeFi and Composability

If you’re reading this, I am sure you are aware of the phenomena which is Decentralised Finance (DeFi or more accurately, open finance). Ethereum is the first platform to offer permissionless and immutable financial services which when interacting with each other, lead to unprecedented composability and innovation in financial applications. A whole new world of possibilities are opening up thanks to this composability as it allows anyone to take existing pieces of open source code from other DeFi projects, put them together like lego pieces (hence the term money legos) and create something the world has never seen before. None of this was possible before Ethereum because typically financial services are heavily regulated and FinTech is usually proprietary software, so you don’t have any open source lego bricks to build off and you have to build everything you need from scratch. That is if what you want to do is even legal for a centralised institution!
Oh, and if you think that DeFi was just a fad and the bubble has popped, guess again! Total value locked in DeFi is currently at an all time high. Don’t believe me? Find out for yourself on the DeFi Pulse website.

NFTs and tokeniation

NFTs or “Non-Fungible Tokens” - despite the name which may confuse a layman - are a basic concept. They are unique tokens with their own unique attributes. This allows you to create digital art, human readable names for your ETH address (see ENS names and unstoppable domains), breedable virtual collectible creatures like crypto kitties, ownable in game assets like Gods Unchained cards or best of all in my opinion, tokenised ownership of real world assets which can even be split into pieces (this doesn’t necessarily require an NFT. Fungible tokens can be/are used for some of the following use cases). This could be tokenised ownership of real estate (see RealT), tokenised ownership of stocks, bonds and other financial assets (which by the way makes them tradable 24/7 and divisible unlike through the traditional system) or even tokenised ownership of the future income of a celebrity or athlete (see when NBA player Spencer Dinwiddie tokenized his own NBA contract.)

Institutional Adoption

Ethereum is by far the most widely adopted blockchain by enterprises. Ethereum’s Enterprise Ethereum Alliance (EEA) is the largest blockchain-enterprise partnership program and Ethereum is by far the most frequently leveraged blockchain for proof of concepts and innovation in the blockchain space by enterprises. Meanwhile, there are protocols like the Baseline protocol which is a shared framework which allows enterprises to use Ethereum as a common frame of reference and a base settlement layer without having to give up privacy when settling on the public Ethereum mainnet. This framework makes adopting Ethereum much easier for other enterprises.

Institutional Investment

One of Bitcoin’s biggest things it has going for it right now is the growing institutional investment. In case you were wondering, Ethereum has this too! Grayscale offers investment in the cryptocurrency space for financial institutions and their Ethereum fund has already locked up more than 2% of the total supply of ETH. Not only this, but as businesses transact on Ethereum and better understand it, not only will they buy up ETH to pay for their transactions, but they will also realise that much like Bitcoin, Ethereum is a scarce asset. Better yet, a scarce asset which offers yield. As a result, I expect to see companies having ETH holdings become the norm just like how Bitcoin is becoming more widespread on companies’ balance sheets.

The state of global markets

With asset prices in almost every asset class at or near all-time highs and interest rates lower than ever and even negative in some cases, there really aren’t many good opportunities in the traditional financial system right now. Enter crypto - clearly the next evolution of financial services (as I explained in the section on DeFi earlier in this post), with scarce assets built in at the protocol layer, buying BTC or ETH is a lot like buying shares in TCP/IP in 1990 (that is if the underlying protocols of the internet could be invested in which they couldn’t). Best of all, major cryptos are down from their all-time highs anywhere between 35% for BTC or 70% for ETH and much more for many altcoins. This means that they can significantly appreciate in value before entering uncharted, speculative bubble territory.
While of course we could fall dramatically at any moment in the current macro financial conditions, as a longer term play, crypto is very alluring. The existing financial system has shown that it is in dire need of replacing and the potential replacement has started rearing its head in the form of crypto and DeFi.

Improvements in user onboarding and abstracting away complexity

Ethereum has started making huge leaps forward in terms of usability for the end user. We now have ENS names and unstoppable domains which allow you to send ETH to yournamehere.ETH or TrickyTroll.crypto (I don’t actually have that domain, that’s just an example). No longer do you have to check every character of your ugly hexadecimal 0x43AB96D… ETH address to ensure you’re sending your ETH to the right person. We also have smart contract wallets like Argent wallet or the Gnosis safe. These allow for users to access their wallets and interact with DeFi self-custodially from an app on their phone without having to record a private key or recovery phrase. Instead, they offer social recovery and their UI is straight forward enough for anyone who uses a smart phone to understand. Finally, for the more experienced users, DApps like Uniswap have pretty, super easy to use graphical user interfaces and can be used by anyone who knows how to run and use a browser extension like Metamask.

The lack of an obvious #1 ETH killer

One of Ethereum’s biggest threats is for it to be overthrown by a so-called “Ethereum killer” blockchain which claims to do everything Ethereum can do and sometimes more. While there are competitors which are each formidable to a certain extent such as Polkadot, Cardano and EOS, each have their own weaknesses. For example, Polkadot and Cardano are not fully operational yet and EOS is much more centralised than Ethereum. As a result, none of these competitors have any significant network effects just yet relative to the behemoth which is Ethereum. This doesn’t mean that these projects aren’t a threat. In fact, I am sure that projects like Polkadot (which is more focused on complimenting Ethereum than killing it) will take a slice out of Ethereum’s pie. However, I am still very confident that Ethereum will remain on top due to the lack of a clear number 2 smart contract platform. Since none of these ETH killers stands out as the second place smart contract platform, it makes it much harder for one project to create a network effect which even begins to threaten Ethereum’s dominance. This leads me onto my next reason - network effects.

Network effects

This is another topic which I made a previous post on. The network effect is why Bitcoin is still the number one cryptocurrency and by such a long way. Bitcoin is not the most technologically advanced cryptocurrency. However, it has the most widespread name recognition and the most adoption in most metrics (ETH beats in in some metrics these days). The network effect is also why most people use Zoom and Facebook messengeWhatsApp despite the existence of free, private, end to end encrypted alternatives which have all the same features (Jitsi for the zoom alternative and Signal for the private messenger app. I highly recommend both. Let’s get their network effects going!). It is the same for Bitcoin. People don’t want to have to learn about or set up a wallet for alternative options. People like what is familiar and what other people use. Nobody wants to be “that guy” who makes you download yet another app and account you have to remember the password/private key for. In the same way, Enterprises don’t want to have to create a bridge between their existing systems and a dozen different blockchains. Developers don’t want to have to create DeFi money legos from scratch on a new chain if they can just plug in to existing services like Uniswap. Likewise, users don’t want to have to download another browser extension to use DApps on another chain if they already use Ethereum. I know personally I have refrained from investing in altcoins because I would have to install another app on my hardware wallet or remember another recovery phrase.
Overthrowing Ethereum’s network effect is one hell of a big task these days. Time is running out for the ETH killers.

Ethereum is the most decentralised and provably neutral smart contract platform

Ethereum is also arguably the most decentralised and provably neutral smart contract platform (except for maybe Ethereum Classic on the neutrality part). Unlike some smart contract platforms, you can’t round up everyone at the Ethereum Foundation or any select group of people and expect to be able to stop the network. Not only this, but the Ethereum foundation doesn’t have the ability to print more ETH or push through changes as they wish like some people would lead you on to believe. The community would reject detrimental EIPs and hard fork. Ever since the DAO hack, the Ethereum community has made it clear that it will not accept EIPs which attempt to roll back the chain even to recover hacked funds (see EIP-999).
Even if governments around the world wanted to censor the Ethereum blockchain, under ETH 2.0’s proof of stake, it would be incredibly costly and would require a double digit percentage of the total ETH supply, much of which would be slashed (meaning they would lose it) as punishment for running dishonest validator nodes. This means that unlike with proof of work where a 51% attacker can keep attacking the network, under proof of stake, an attacker can only perform the attack a couple of times before they lose all of their ETH. This makes attacks much less financially viable than it is on proof of work chains. Network security is much more than what I laid out above and I am far from an expert but the improved resistance to 51% attacks which PoS provides is significant.
Finally, with the US dollar looking like it will lose its reserve currency status and the existing wire transfer system being outdated, superpowers like China won’t want to use US systems and the US won’t want to use a Chinese system. Enter Ethereum, the provably neutral settlement layer where the USA and China don’t have to trust each other or each other’s banks because they can trust Ethereum. While it may sound like a long shot, it does make sense if Ethereum hits a multi-trillion dollar market cap that it is the most secure and neutral way to transfer value between these adversaries. Not to mention if much of the world’s commerce were to be settled in the same place - on Ethereum - then it would make sense for governments to settle on the same platform.

ETH distribution is decentralised

Thanks to over 5 years of proof of work - a system where miners have to sell newly minted ETH to pay for electricity costs - newly mined ETH has found its way into the hands of everyday people who buy ETH off miners selling on exchnages. As pointed out by u/AdamSC1 in his analysis of the top 10K ETH addresses (I highly recommend reading this if you haven’t already), the distribution of ETH is actually slightly more decentralised than Bitcoin with the top 10,000 ETH wallets holding 56.70% of ETH supply compared to the top 10,000 Bitcoin wallets which hold 57.44% of the Bitcoin supply. This decentralised distribution means that the introduction of staking won’t centralise ETH in the hands of a few wallets who could then control the network. This is an advantage for ETH which many proof of stake ETH killers will never have as they never used PoW to distribute funds widely throughout the community and these ETH killers often did funding rounds giving large numbers of tokens to VC investors.

The community

Finally, while I may be biased, I think that Ethereum has the friendliest community. Anecdotally, I find that the Ethereum developer community is full of forward thinking people who want to make the world a better place and build a better future, many of whom are altruistic and don’t always act in their best interests. Compare this to the much more conservative, “at least we’re safe while the world burns” attitude which many Bitcoiners have. I don’t want to generalise too much here as the Bitcoin community is great too and there are some wonderful people there. But the difference is clear if you compare the daily discussion of Bitcoin to the incredibly helpful and welcoming daily discussion of EthFinance who will happily answer your noob questions without calling you an idiot and telling you to do you own research (there are plenty more examples in any of the daily threads). Or the very helpful folks over at EthStaker who will go out of their way to help you set up an ETH 2.0 staking node on the testnets (Shoutout to u/superphiz who does a lot of work over in that sub!). Don’t believe me? Head over to those subs and see for yourself.
Please don’t hate on me if you disagree about which project has the best community, it is just my very biased personal opinion and I respect your opinion if you disagree! :)

TL;DR:

submitted by Tricky_Troll to CryptoCurrency [link] [comments]

A Detailed Summary of Every Single Reason Why I am Bullish on ETH.

The following will be a list of the many reasons why I hold and am extremely bullish on ETH.

This is an extremely long post. If you just want the hopium without the detail, read the TL;DR at the bottom.

ETH 2.0

As we all know, ETH 2.0 phase 0 is right around the corner. This will lock up ETH and stakers will earn interest on their ETH in return for securing the network. Next comes phase 1 where the ETH 2 shards are introduced, shards are essentially parallel blockchains which are each responsible for a different part of Ethereum’s workload, think of it like a multi-core processor vs a single core processor. During phase 1, these shards will only act as data availability layers and won’t actually process transactions yet. However, their data can be utilised by the L2 scaling solution, rollups, increasing Ethereum’s throughput in transactions per second up to 100,000 TPS.
After phase 1 comes phase 1.5 which will move the ETH 1.0 chain into an ETH 2 shard and Ethereum will be fully secured by proof of stake. This means that ETH issuance will drop from around 5% per year to less than 1% and with EIP-1559, ETH might become a deflationary asset, but more on that later.
Finally, with ETH 2.0 phase two, each shard will be fully functional chains. With 64 of them, we can expect the base layer of Ethereum to scale around 64x, not including the massive scaling which comes from layer 2 scaling solutions like rollups as previously mentioned.
While the scaling benefits and ETH issuance reduction which comes with ETH 2.0 will be massive, they aren’t the only benefits. We also get benefits such as increased security from PoS compared to PoW, a huge energy efficiency improvement due to the removal of PoW and also the addition of eWASM which will allow contracts to be programmed in a wide range of programming languages, opening the floodgates for millions of web devs who want to be involved in Ethereum but don’t know Ethereum’s programming language, Solidity.

EIP-1559 and ETH scarcity

As I covered in a previous post of mine, ETH doesn’t have a supply cap like Bitcoin. Instead, it has a monetary policy of “minimum viable issuance”, not only is this is a good thing for network security, but with the addition of EIP-1559, it leaves the door open to the possibility of ETH issuance going negative. In short, EIP-1559 changes the fee market to make transaction prices more efficient (helping to alleviate high gas fees!) by burning a variable base fee which changes based on network usage demand rather than using a highest bidder market where miners simply include who pays them the most. This will result in most of the ETH being paid in transaction fees being burned. As of late, the amount which would be burned if EIP-1559 was in Ethereum right now would make ETH a deflationary asset!

Layer 2 Scaling

In the mean time while we are waiting for ETH 2.0, layer 2 scaling is here. Right now, projects such as Deversifi or Loopring utilise rollups to scale to thousands of tx/s on their decentralised exchange platforms or HoneySwap which uses xDai to offer a more scalable alternative to UniSwap. Speaking of which, big DeFi players like UniSwap and Synthetix are actively looking into using optimistic rollups to scale while maintaining composability between DeFi platforms. The most bullish thing about L2 scaling is all of the variety of options. Here’s a non exhaustive list of Ethereum L2 scaling solutions: - Aztec protocol (L2 scaling + privacy!) - ZKSync - Loopring - Raiden - Arbitrum Rollups - xDai - OMGNetwork - Matic - FuelLabs - Starkware - Optimism - Celer Network - + Many more

DeFi and Composability

If you’re reading this, I am sure you are aware of the phenomena which is Decentralised Finance (DeFi or more accurately, open finance). Ethereum is the first platform to offer permissionless and immutable financial services which when interacting with each other, lead to unprecedented composability and innovation in financial applications. A whole new world of possibilities are opening up thanks to this composability as it allows anyone to take existing pieces of open source code from other DeFi projects, put them together like lego pieces (hence the term money legos) and create something the world has never seen before. None of this was possible before Ethereum because typically financial services are heavily regulated and FinTech is usually proprietary software, so you don’t have any open source lego bricks to build off and you have to build everything you need from scratch. That is if what you want to do is even legal for a centralised institution!
Oh, and if you think that DeFi was just a fad and the bubble has popped, guess again! Total value locked in DeFi is currently at an all time high. Don’t believe me? Find out for yourself at: https://defipulse.com

NFTs and tokeniation

NFTs or “Non-Fungible Tokens” - despite the name which may confuse a layman - are a basic concept. They are unique tokens with their own unique attributes. This allows you to create digital art, human readable names for your ETH address (see ENS names and unstoppable domains), breedable virtual collectible creatures like crypto kitties, ownable in game assets like Gods Unchained cards or best of all in my opinion, tokenised ownership of real world assets which can even be split into pieces (this doesn’t necessarily require an NFT. Fungible tokens can be/are used for some of the following use cases). This could be tokenised ownership of real estate (see RealT), tokenised ownership of stocks, bonds and other financial assets (which by the way makes them tradable 24/7 and divisible unlike through the traditional system) or even tokenised ownership of the future income of a celebrity or athlete (see when NBA Star Spencer Dinwiddie Tokenized His Own NBA Contract.

Institutional Adoption

Ethereum is by far the most widely adopted blockchain by enterprises. Ethereum’s Enterprise Ethereum Alliance (EEA) is the largest blockchain-enterprise partnership program and Ethereum is by far the most frequently leveraged blockchain for proof of concepts and innovation in the blockchain space by enterprises. Meanwhile, there are protocols like the Baseline protocol which is a shared framework which allows enterprises to use Ethereum as a common frame of reference and a base settlement layer without having to give up privacy when settling on the public Ethereum mainnet. This framework makes adopting Ethereum much easier for other enterprises.

Institutional Investment

One of Bitcoin’s biggest things it has going for it right now is the growing institutional investment. In case you were wondering, Ethereum has this too! Grayscale offers investment in the cryptocurrency space for financial institutions and their Ethereum fund has already locked up more than 2% of the total supply of ETH. Not only this, but as businesses transact on Ethereum and better understand it, not only will they buy up ETH to pay for their transactions, but they will also realise that much like Bitcoin, Ethereum is a scarce asset. Better yet, a scarce asset which offers yield. As a result, I expect to see companies having ETH holdings become the norm just like how Bitcoin is becoming more widespread on companies’ balance sheets.

The state of global markets

With asset prices in almost every asset class at or near all-time highs and interest rates lower than ever and even negative in some cases, there really aren’t many good opportunities in the traditional financial system right now. Enter crypto - clearly the next evolution of financial services (as I explained in the section on DeFi earlier in this post), with scarce assets built in at the protocol layer, buying BTC or ETH is a lot like buying shares in TCP/IP in 1990 (that is if the underlying protocols of the internet could be invested in which they couldn’t). Best of all, major cryptos are down from their all-time highs anywhere between 35% for BTC or 70% for ETH and much more for many altcoins. This means that they can significantly appreciate in value before entering uncharted, speculative bubble territory.
While of course we could fall dramatically at any moment in the current macro financial conditions, as a longer term play, crypto is very alluring. The existing financial system has shown that it is in dire need of replacing and the potential replacement has started rearing its head in the form of crypto and DeFi.

Improvements in user onboarding and abstracting away complexity

Ethereum has started making huge leaps forward in terms of usability for the end user. We now have ENS names and unstoppable domains which allow you to send ETH to yournamehere.ETH or TrickyTroll.crypto (I don’t actually have that domain, that’s just an example). No longer do you have to check every character of your ugly hexadecimal 0x43AB96D… ETH address to ensure you’re sending your ETH to the right person. We also have smart contract wallets like Argent wallet or the Gnosis safe. These allow for users to access their wallets and interact with DeFi self-custodially from an app on their phone without having to record a private key or recovery phrase. Instead, they offer social recovery and their UI is straight forward enough for anyone who uses a smart phone to understand. Finally, for the more experienced users, DApps like Uniswap have pretty, super easy to use graphical user interfaces and can be used by anyone who knows how to run and use a browser extension like Metamask.

The lack of an obvious #1 ETH killer

One of Ethereum’s biggest threats is for it to be overthrown by a so-called “Ethereum killer” blockchain which claims to do everything Ethereum can do and sometimes more. While there are competitors which are each formidable to a certain extent such as Polkadot, Cardano and EOS, each have their own weaknesses. For example, Polkadot and Cardano are not fully operational yet and EOS is much more centralised than Ethereum. As a result, none of these competitors have any significant network effects just yet relative to the behemoth which is Ethereum. This doesn’t mean that these projects aren’t a threat. In fact, I am sure that projects like Polkadot (which is more focused on complimenting Ethereum than killing it) will take a slice out of Ethereum’s pie. However, I am still very confident that Ethereum will remain on top due to the lack of a clear number 2 smart contract platform. Since none of these ETH killers stands out as the second place smart contract platform, it makes it much harder for one project to create a network effect which even begins to threaten Ethereum’s dominance. This leads me onto my next reason - network effects.

Network effects

This is another topic which I made a previous post on. The network effect is why Bitcoin is still the number one cryptocurrency and by such a long way. Bitcoin is not the most technologically advanced cryptocurrency. However, it has the most widespread name recognition and the most adoption in most metrics (ETH beats in in some metrics these days). The network effect is also why most people use Zoom and Facebook messengeWhatsApp despite the existence of free, private, end to end encrypted alternatives which have all the same features (https://meet.jit.si/ for zoom alternative and Signal for the private messenger app. I highly recommend both. Let’s get their network effects going!). It is the same for Bitcoin. People don’t want to have to learn about or set up a wallet for alternative options. People like what is familiar and what other people use. Nobody wants to be “that guy” who makes you download yet another app and account you have to remember the password/private key for. In the same way, Enterprises don’t want to have to create a bridge between their existing systems and a dozen different blockchains. Developers don’t want to have to create DeFi money legos from scratch on a new chain if they can just plug in to existing services like Uniswap. Likewise, users don’t want to have to download another browser extension to use DApps on another chain if they already use Ethereum. I know personally I have refrained from investing in altcoins because I would have to install another app on my hardware wallet or remember another recovery phrase.
Overthrowing Ethereum’s network effect is one hell of a big task these days. Time is running out for the ETH killers.

Ethereum is the most decentralised and provably neutral smart contract platform

Ethereum is also arguably the most decentralised and provably neutral smart contract platform (except for maybe Ethereum Classic on the neutrality part). Unlike some smart contract platforms, you can’t round up everyone at the Ethereum Foundation or any select group of people and expect to be able to stop the network. Not only this, but the Ethereum foundation doesn’t have the ability to print more ETH or push through changes as they wish like some people would lead you on to believe. The community would reject detrimental EIPs and hard fork. Ever since the DAO hack, the Ethereum community has made it clear that it will not accept EIPs which attempt to roll back the chain even to recover hacked funds (see EIP-999).
Even if governments around the world wanted to censor the Ethereum blockchain, under ETH 2.0’s proof of stake, it would be incredibly costly and would require a double digit percentage of the total ETH supply, much of which would be slashed (meaning they would lose it) as punishment for running dishonest validator nodes. This means that unlike with proof of work where a 51% attacker can keep attacking the network, under proof of stake, an attacker can only perform the attack a couple of times before they lose all of their ETH. This makes attacks much less financially viable than it is on proof of work chains. Network security is much more than what I laid out above and I am far from an expert but the improved resistance to 51% attacks which PoS provides is significant.
Finally, with the US dollar looking like it will lose its reserve currency status and the existing wire transfer system being outdated, superpowers like China won’t want to use US systems and the US won’t want to use a Chinese system. Enter Ethereum, the provably neutral settlement layer where the USA and China don’t have to trust each other or each other’s banks because they can trust Ethereum. While it may sound like a long shot, it does make sense if Ethereum hits a multi-trillion dollar market cap that it is the most secure and neutral way to transfer value between these adversaries. Not to mention if much of the world’s commerce were to be settled in the same place - on Ethereum - then it would make sense for governments to settle on the same platform.

ETH distribution is decentralised

Thanks to over 5 years of proof of work - a system where miners have to sell newly minted ETH to pay for electricity costs - newly mined ETH has found its way into the hands of everyday people who buy ETH off miners selling on exchnages. As pointed out by u/AdamSC1 in his analysis of the top 10K ETH addresses (I highly recommend reading this if you haven’t already), the distribution of ETH is actually slightly more decentralised than Bitcoin with the top 10,000 ETH wallets holding 56.70% of ETH supply compared to the top 10,000 Bitcoin wallets which hold 57.44% of the Bitcoin supply. This decentralised distribution means that the introduction of staking won’t centralise ETH in the hands of a few wallets who could then control the network. This is an advantage for ETH which many proof of stake ETH killers will never have as they never used PoW to distribute funds widely throughout the community and these ETH killers often did funding rounds giving large numbers of tokens to VC investors.

The community

Finally, while I may be biased, I think that Ethereum has the friendliest community. Anecdotally, I find that the Ethereum developer community is full of forward thinking people who want to make the world a better place and build a better future, many of whom are altruistic and don’t always act in their best interests. Compare this to the much more conservative, “at least we’re safe while the world burns” attitude which many Bitcoiners have. I don’t want to generalise too much here as the Bitcoin community is great too and there are some wonderful people there. But the difference is clear if you compare the daily discussion of Bitcoin to the incredibly helpful and welcoming daily discussion of EthFinance who will happily answer your noob questions without calling you an idiot and telling you to do you own research (there are plenty more examples in any of the daily threads). Or the very helpful folks over at EthStaker who will go out of their way to help you set up an ETH 2.0 staking node on the testnets (Shoutout to u/superphiz who does a lot of work over in that sub!). Don’t believe me? Head over to those subs and see for yourself.
Please don’t hate on me if you disagree about which project has the best community, it is just my very biased personal opinion and I respect your opinion if you disagree! :)

TL;DR:

submitted by Tricky_Troll to ethtrader [link] [comments]

A detailed summary of every reason why I am bullish on ETH.

The following will be a list of the many reasons why I hold and am extremely bullish on ETH.

This is an extremely long post. If you just want the hopium without the detail, read the TL;DR at the bottom.

ETH 2.0

As we all know, ETH 2.0 phase 0 is right around the corner. This will lock up ETH and stakers will earn interest on their ETH in return for securing the network. Next comes phase 1 where the ETH 2 shards are introduced, shards are essentially parallel blockchains which are each responsible for a different part of Ethereum’s workload, think of it like a multi-core processor vs a single core processor. During phase 1, these shards will only act as data availability layers and won’t actually process transactions yet. However, their data can be utilised by the L2 scaling solution, rollups, increasing Ethereum’s throughput in transactions per second up to 100,000 TPS.
After phase 1 comes phase 1.5 which will move the ETH 1.0 chain into an ETH 2 shard and Ethereum will be fully secured by proof of stake. This means that ETH issuance will drop from around 5% per year to less than 1% and with EIP-1559, ETH might become a deflationary asset, but more on that later.
Finally, with ETH 2.0 phase two, each shard will be fully functional chains. With 64 of them, we can expect the base layer of Ethereum to scale around 64x, not including the massive scaling which comes from layer 2 scaling solutions like rollups as previously mentioned.
While the scaling benefits and ETH issuance reduction which comes with ETH 2.0 will be massive, they aren’t the only benefits. We also get benefits such as increased security from PoS compared to PoW, a huge energy efficiency improvement due to the removal of PoW and also the addition of eWASM which will allow contracts to be programmed in a wide range of programming languages, opening the floodgates for millions of web devs who want to be involved in Ethereum but don’t know Ethereum’s programming language, Solidity.

EIP-1559 and ETH scarcity

As I covered in a previous post of mine, ETH doesn’t have a supply cap like Bitcoin. Instead, it has a monetary policy of “minimum viable issuance”, not only is this is a good thing for network security, but with the addition of EIP-1559, it leaves the door open to the possibility of ETH issuance going negative. In short, EIP-1559 changes the fee market to make transaction prices more efficient (helping to alleviate high gas fees!) by burning a variable base fee which changes based on network usage demand rather than using a highest bidder market where miners simply include who pays them the most. This will result in most of the ETH being paid in transaction fees being burned. As of late, the amount which would be burned if EIP-1559 was in Ethereum right now would make ETH a deflationary asset!

Layer 2 Scaling

In the mean time while we are waiting for ETH 2.0, layer 2 scaling is here. Right now, projects such as Deversifi or Loopring utilise rollups to scale to thousands of tx/s on their decentralised exchange platforms or HoneySwap which uses xDai to offer a more scalable alternative to UniSwap. Speaking of which, big DeFi players like UniSwap and Synthetix are actively looking into using optimistic rollups to scale while maintaining composability between DeFi platforms. The most bullish thing about L2 scaling is all of the variety of options. Here’s a non exhaustive list of Ethereum L2 scaling solutions: - Aztec protocol (L2 scaling + privacy!) - ZKSync - Loopring - Raiden - Arbitrum Rollups - xDai - OMGNetwork - Matic - FuelLabs - Starkware - Optimism - Celer Network - + Many more

DeFi and Composability

If you’re reading this, I am sure you are aware of the phenomena which is Decentralised Finance (DeFi or more accurately, open finance). Ethereum is the first platform to offer permissionless and immutable financial services which when interacting with each other, lead to unprecedented composability and innovation in financial applications. A whole new world of possibilities are opening up thanks to this composability as it allows anyone to take existing pieces of open source code from other DeFi projects, put them together like lego pieces (hence the term money legos) and create something the world has never seen before. None of this was possible before Ethereum because typically financial services are heavily regulated and FinTech is usually proprietary software, so you don’t have any open source lego bricks to build off and you have to build everything you need from scratch. That is if what you want to do is even legal for a centralised institution!
Oh, and if you think that DeFi was just a fad and the bubble has popped, guess again! Total value locked in DeFi is currently at an all time high. Don’t believe me? Find out for yourself at: https://defipulse.com

NFTs and tokeniation

NFTs or “Non-Fungible Tokens” - despite the name which may confuse a layman - are a basic concept. They are unique tokens with their own unique attributes. This allows you to create digital art, human readable names for your ETH address (see ENS names and unstoppable domains), breedable virtual collectible creatures like crypto kitties, ownable in game assets like Gods Unchained cards or best of all in my opinion, tokenised ownership of real world assets which can even be split into pieces (this doesn’t necessarily require an NFT. Fungible tokens can be/are used for some of the following use cases). This could be tokenised ownership of real estate (see RealT), tokenised ownership of stocks, bonds and other financial assets (which by the way makes them tradable 24/7 and divisible unlike through the traditional system) or even tokenised ownership of the future income of a celebrity or athlete (see when NBA Star Spencer Dinwiddie Tokenized His Own NBA Contract.

Institutional Adoption

Ethereum is by far the most widely adopted blockchain by enterprises. Ethereum’s Enterprise Ethereum Alliance (EEA) is the largest blockchain-enterprise partnership program and Ethereum is by far the most frequently leveraged blockchain for proof of concepts and innovation in the blockchain space by enterprises. Meanwhile, there are protocols like the Baseline protocol which is a shared framework which allows enterprises to use Ethereum as a common frame of reference and a base settlement layer without having to give up privacy when settling on the public Ethereum mainnet. This framework makes adopting Ethereum much easier for other enterprises.

Institutional Investment

One of Bitcoin’s biggest things it has going for it right now is the growing institutional investment. In case you were wondering, Ethereum has this too! Grayscale offers investment in the cryptocurrency space for financial institutions and their Ethereum fund has already locked up more than 2% of the total supply of ETH. Not only this, but as businesses transact on Ethereum and better understand it, not only will they buy up ETH to pay for their transactions, but they will also realise that much like Bitcoin, Ethereum is a scarce asset. Better yet, a scarce asset which offers yield. As a result, I expect to see companies having ETH holdings become the norm just like how Bitcoin is becoming more widespread on companies’ balance sheets.

The state of global markets

With asset prices in almost every asset class at or near all-time highs and interest rates lower than ever and even negative in some cases, there really aren’t many good opportunities in the traditional financial system right now. Enter crypto - clearly the next evolution of financial services (as I explained in the section on DeFi earlier in this post), with scarce assets built in at the protocol layer, buying BTC or ETH is a lot like buying shares in TCP/IP in 1990 (that is if the underlying protocols of the internet could be invested in which they couldn’t). Best of all, major cryptos are down from their all-time highs anywhere between 35% for BTC or 70% for ETH and much more for many altcoins. This means that they can significantly appreciate in value before entering uncharted, speculative bubble territory.
While of course we could fall dramatically at any moment in the current macro financial conditions, as a longer term play, crypto is very alluring. The existing financial system has shown that it is in dire need of replacing and the potential replacement has started rearing its head in the form of crypto and DeFi.

Improvements in user onboarding and abstracting away complexity

Ethereum has started making huge leaps forward in terms of usability for the end user. We now have ENS names and unstoppable domains which allow you to send ETH to yournamehere.ETH or TrickyTroll.crypto (I don’t actually have that domain, that’s just an example). No longer do you have to check every character of your ugly hexadecimal 0x43AB96D… ETH address to ensure you’re sending your ETH to the right person. We also have smart contract wallets like Argent wallet or the Gnosis safe. These allow for users to access their wallets and interact with DeFi self-custodially from an app on their phone without having to record a private key or recovery phrase. Instead, they offer social recovery and their UI is straight forward enough for anyone who uses a smart phone to understand. Finally, for the more experienced users, DApps like Uniswap have pretty, super easy to use graphical user interfaces and can be used by anyone who knows how to run and use a browser extension like Metamask.

The lack of an obvious #1 ETH killer

One of Ethereum’s biggest threats is for it to be overthrown by a so-called “Ethereum killer” blockchain which claims to do everything Ethereum can do and sometimes more. While there are competitors which are each formidable to a certain extent such as Polkadot, Cardano and EOS, each have their own weaknesses. For example, Polkadot and Cardano are not fully operational yet and EOS is much more centralised than Ethereum. As a result, none of these competitors have any significant network effects just yet relative to the behemoth which is Ethereum. This doesn’t mean that these projects aren’t a threat. In fact, I am sure that projects like Polkadot (which is more focused on complimenting Ethereum than killing it) will take a slice out of Ethereum’s pie. However, I am still very confident that Ethereum will remain on top due to the lack of a clear number 2 smart contract platform. Since none of these ETH killers stands out as the second place smart contract platform, it makes it much harder for one project to create a network effect which even begins to threaten Ethereum’s dominance. This leads me onto my next reason - network effects.

Network effects

This is another topic which I made a previous post on. The network effect is why Bitcoin is still the number one cryptocurrency and by such a long way. Bitcoin is not the most technologically advanced cryptocurrency. However, it has the most widespread name recognition and the most adoption in most metrics (ETH beats in in some metrics these days). The network effect is also why most people use Zoom and Facebook messengeWhatsApp despite the existence of free, private, end to end encrypted alternatives which have all the same features (https://meet.jit.si/ for zoom alternative and Signal for the private messenger app. I highly recommend both. Let’s get their network effects going!). It is the same for Bitcoin. People don’t want to have to learn about or set up a wallet for alternative options. People like what is familiar and what other people use. Nobody wants to be “that guy” who makes you download yet another app and account you have to remember the password/private key for. In the same way, Enterprises don’t want to have to create a bridge between their existing systems and a dozen different blockchains. Developers don’t want to have to create DeFi money legos from scratch on a new chain if they can just plug in to existing services like Uniswap. Likewise, users don’t want to have to download another browser extension to use DApps on another chain if they already use Ethereum. I know personally I have refrained from investing in altcoins because I would have to install another app on my hardware wallet or remember another recovery phrase.
Overthrowing Ethereum’s network effect is one hell of a big task these days. Time is running out for the ETH killers.

Ethereum is the most decentralised and provably neutral smart contract platform

Ethereum is also arguably the most decentralised and provably neutral smart contract platform (except for maybe Ethereum Classic on the neutrality part). Unlike some smart contract platforms, you can’t round up everyone at the Ethereum Foundation or any select group of people and expect to be able to stop the network. Not only this, but the Ethereum foundation doesn’t have the ability to print more ETH or push through changes as they wish like some people would lead you on to believe. The community would reject detrimental EIPs and hard fork. Ever since the DAO hack, the Ethereum community has made it clear that it will not accept EIPs which attempt to roll back the chain even to recover hacked funds (see EIP-999).
Even if governments around the world wanted to censor the Ethereum blockchain, under ETH 2.0’s proof of stake, it would be incredibly costly and would require a double digit percentage of the total ETH supply, much of which would be slashed (meaning they would lose it) as punishment for running dishonest validator nodes. This means that unlike with proof of work where a 51% attacker can keep attacking the network, under proof of stake, an attacker can only perform the attack a couple of times before they lose all of their ETH. This makes attacks much less financially viable than it is on proof of work chains. Network security is much more than what I laid out above and I am far from an expert but the improved resistance to 51% attacks which PoS provides is significant.
Finally, with the US dollar looking like it will lose its reserve currency status and the existing wire transfer system being outdated, superpowers like China won’t want to use US systems and the US won’t want to use a Chinese system. Enter Ethereum, the provably neutral settlement layer where the USA and China don’t have to trust each other or each other’s banks because they can trust Ethereum. While it may sound like a long shot, it does make sense if Ethereum hits a multi-trillion dollar market cap that it is the most secure and neutral way to transfer value between these adversaries. Not to mention if much of the world’s commerce were to be settled in the same place - on Ethereum - then it would make sense for governments to settle on the same platform.

ETH distribution is decentralised

Thanks to over 5 years of proof of work - a system where miners have to sell newly minted ETH to pay for electricity costs - newly mined ETH has found its way into the hands of everyday people who buy ETH off miners selling on exchnages. As pointed out by u/AdamSC1 in his analysis of the top 10K ETH addresses (I highly recommend reading this if you haven’t already), the distribution of ETH is actually slightly more decentralised than Bitcoin with the top 10,000 ETH wallets holding 56.70% of ETH supply compared to the top 10,000 Bitcoin wallets which hold 57.44% of the Bitcoin supply. This decentralised distribution means that the introduction of staking won’t centralise ETH in the hands of a few wallets who could then control the network. This is an advantage for ETH which many proof of stake ETH killers will never have as they never used PoW to distribute funds widely throughout the community and these ETH killers often did funding rounds giving large numbers of tokens to VC investors.

The community

Finally, while I may be biased, I think that Ethereum has the friendliest community. Anecdotally, I find that the Ethereum developer community is full of forward thinking people who want to make the world a better place and build a better future, many of whom are altruistic and don’t always act in their best interests. Compare this to the much more conservative, “at least we’re safe while the world burns” attitude which many Bitcoiners have. I don’t want to generalise too much here as the Bitcoin community is great too and there are some wonderful people there. But the difference is clear if you compare the daily discussion of Bitcoin to the incredibly helpful and welcoming daily discussion of EthFinance who will happily answer your noob questions without calling you an idiot and telling you to do you own research (there are plenty more examples in any of the daily threads). Or the very helpful folks over at EthStaker who will go out of their way to help you set up an ETH 2.0 staking node on the testnets (Shoutout to u/superphiz who does a lot of work over in that sub!). Don’t believe me? Head over to those subs and see for yourself.
Please don’t hate on me if you disagree about which project has the best community, it is just my very biased personal opinion and I respect your opinion if you disagree! :)

TL;DR:

submitted by Tricky_Troll to ethfinance [link] [comments]

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.
  1. else if's and lack any sort of refactoring in general
The most «memey» one. I won't talk about the performance though (switch statement is not better in terms of performance, it is a myth. If compiler detects some code that can be turned into a jump table, for example, it will do it, no matter if it is a chain of if's or a switch statement. Compilers nowadays are way smarter than one might think). Just take a look here. I know that it's his older JavaScript code, but, believe it or not, this piece is still present in C# version relatively untouched.
I refactored this code for you using C language (mixed with C++ since there's no this pointer in pure C). Take a note that else if's are still there, else if's are not the problem by itself.
The refactored code is just objectively better for one simple reason: it is shorter, while not being obscure, and now it should be able to handle, say, Trespassing and Blood case without any input from the developer due to the usage of flags. Basically, the shorter your code, the more you can see on screen without spreading your attention too much. As a rule of thumb, the less lines there are, the easier it is for you to work with the code. Just don't overkill that, unless you are going to participate in International Obfuscated C Code Contest. Let me reiterate:
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.
  1. Comments
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.
  1. Unit testing
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.
  1. Static code analysis
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.
  1. Code architecture
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.
  1. Loading times
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:
  1. Fix the code (unavoidable time loss)
  2. Rebuild the project (can take a loooong time)
  3. Load your game (can take a loooong time)
  4. 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.
  1. Jenkins
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.
  1. 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.
  1. Go outside
Enough said. Your brain works slower if you only think about games and if you can't provide it with enough oxygen supply. I know that this one is probably the hardest to implement, but…
That's all, folks.
Bonus: Do you think how short this list would have been if someone just simply listened to Mike Zaimont instead of breaking down in tears?
submitted by Dezhitse to Osana [link] [comments]

Technical: Taproot: Why Activate?

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.
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:
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:
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.)

Quantum Quibbles!

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.
So:
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).

Summary

I Wanna Be The Taprooter!

So, do you want to help activate Taproot? Here's what you, mister sovereign Bitcoin HODLer, can do!

But I Hate Taproot!!

That's fine!

Discussions About Taproot Activation

submitted by almkglor to Bitcoin [link] [comments]

Technical: The Path to Taproot Activation

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:
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!

BIP9 Miner-Activated Soft Fork

Basically, BIP9 has a bunch of parameters:
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:

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.

Covert ASICBoost

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.
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:
  1. 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.
  2. 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.

Taproot Activation Proposals

There are two primary proposals I can see for Taproot activation:
  1. BIP8.
  2. Modern Softfork Activation.
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.
  1. First have a 12-month BIP9 (fail at timeout).
  2. 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.
  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:
  1. You hear a new version of your favorite software has a nice new feature.
  2. Excited, you install the new version.
  3. You find that the new version has subtle incompatibilities with your current workflow.
  4. You are sad and downgrade to the older version.
  5. You find out that the new version has changed your files in incompatible ways that the old version cannot work with anymore.
  6. 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:
  1. 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.
  2. 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.
submitted by almkglor to Bitcoin [link] [comments]

Bitcoin Newcomers FAQ - Please read!

Welcome to the /Bitcoin Sticky FAQ

You've probably been hearing a lot about Bitcoin recently and are wondering what's the big deal? Most of your questions should be answered by the resources below but if you have additional questions feel free to ask them in the comments.
It all started with the release of the release of Satoshi Nakamoto's whitepaper however that will probably go over the head of most readers so we recommend the following videos for a good starting point for understanding how bitcoin works and a little about its long term potential:
Some other great resources include Lopp.net, the Princeton crypto series and James D'Angelo's Bitcoin 101 Blackboard series.
Some excellent writing on Bitcoin's value proposition and future can be found at the Satoshi Nakamoto Institute.
Some Bitcoin statistics can be found here and here. Developer resources can be found here. Peer-reviewed research papers can be found here.
Potential upcoming protocol improvements and scaling resources here and here.
The number of times Bitcoin was declared dead by the media can be found here (LOL!)

Key properties of Bitcoin

Where can I buy bitcoins?

Bitcoin.org and BuyBitcoinWorldwide.com are helpful sites for beginners. You can buy or sell any amount of bitcoin (even just a few dollars worth) and there are several easy methods to purchase bitcoin with cash, credit card or bank transfer. Some of the more popular resources are below, also check out the bitcoinity exchange resources for a larger list of options for purchases.
Here is a listing of local ATMs. If you would like your paycheck automatically converted to bitcoin use Bitwage.
Note: Bitcoins are valued at whatever market price people are willing to pay for them in balancing act of supply vs demand. Unlike traditional markets, bitcoin markets operate 24 hours per day, 365 days per year. Preev is a useful site that that shows how much various denominations of bitcoin are worth in different currencies. Alternatively you can just Google "1 bitcoin in (your local currency)".

Securing your bitcoins

With bitcoin you can "Be your own bank" and personally secure your bitcoins OR you can use third party companies aka "Bitcoin banks" which will hold the bitcoins for you.
Note: For increased security, use Two Factor Authentication (2FA) everywhere it is offered, including email!
2FA requires a second confirmation code to access your account making it much harder for thieves to gain access. Google Authenticator and Authy are the two most popular 2FA services, download links are below. Make sure you create backups of your 2FA codes.
Google Auth Authy OTP Auth
Android Android N/A
iOS iOS iOS

Watch out for scams

As mentioned above, Bitcoin is decentralized, which by definition means there is no official website or Twitter handle or spokesperson or CEO. However, all money attracts thieves. This combination unfortunately results in scammers running official sounding names or pretending to be an authority on YouTube or social media. Many scammers throughout the years have claimed to be the inventor of Bitcoin. Websites like bitcoin(dot)com and the btc subreddit are active scams. Almost all altcoins (shitcoins) are marketed heavily with big promises but are really just designed to separate you from your bitcoin. So be careful: any resource, including all linked in this document, may in the future turn evil. Don't trust, verify. Also as they say in our community "Not your keys, not your coins".

Where can I spend bitcoins?

Check out spendabit or bitcoin directory for millions of merchant options. Also you can spend bitcoin anywhere visa is accepted with bitcoin debit cards such as the CashApp card. Some other useful site are listed below.
Store Product
Gyft Gift cards for hundreds of retailers including Amazon, Target, Walmart, Starbucks, Whole Foods, CVS, Lowes, Home Depot, iTunes, Best Buy, Sears, Kohls, eBay, GameStop, etc.
Spendabit, Overstock and The Bitcoin Directory Retail shopping with millions of results
ShakePay Generate one time use Visa cards in seconds
NewEgg and Dell For all your electronics needs
Bitwa.la, Coinbills, Piixpay, Bitbill.eu, Bylls, Coins.ph, Bitrefill, LivingRoomofSatoshi, Coinsfer, and more Bill payment
Menufy, Takeaway and Thuisbezorgd NL Takeout delivered to your door
Expedia, Cheapair, Destinia, Abitsky, SkyTours, the Travel category on Gyft and 9flats For when you need to get away
Cryptostorm, Mullvad, and PIA VPN services
Namecheap, Porkbun Domain name registration
Stampnik Discounted USPS Priority, Express, First-Class mail postage
Coinmap and AirBitz are helpful to find local businesses accepting bitcoins. A good resource for UK residents is at wheretospendbitcoins.co.uk.
There are also lots of charities which accept bitcoin donations.

Merchant Resources

There are several benefits to accepting bitcoin as a payment option if you are a merchant;
If you are interested in accepting bitcoin as a payment method, there are several options available;

Can I mine bitcoin?

Mining bitcoins can be a fun learning experience, but be aware that you will most likely operate at a loss. Newcomers are often advised to stay away from mining unless they are only interested in it as a hobby similar to folding at home. If you want to learn more about mining you can read more here. Still have mining questions? The crew at /BitcoinMining would be happy to help you out.
If you want to contribute to the bitcoin network by hosting the blockchain and propagating transactions you can run a full node using this setup guide. If you would prefer to keep it simple there are several good options. You can view the global node distribution here.

Earning bitcoins

Just like any other form of money, you can also earn bitcoins by being paid to do a job.
Site Description
WorkingForBitcoins, Bitwage, Cryptogrind, Coinality, Bitgigs, /Jobs4Bitcoins, BitforTip, Rein Project Freelancing
Lolli Earn bitcoin when you shop online!
OpenBazaar, Purse.io, Bitify, /Bitmarket, 21 Market Marketplaces
/GirlsGoneBitcoin NSFW Adult services
A-ads, Coinzilla.io Advertising
You can also earn bitcoins by participating as a market maker on JoinMarket by allowing users to perform CoinJoin transactions with your bitcoins for a small fee (requires you to already have some bitcoins.

Bitcoin-Related Projects

The following is a short list of ongoing projects that might be worth taking a look at if you are interested in current development in the bitcoin space.
Project Description
Lightning Network Second layer scaling
Blockstream, Rootstock and Drivechain Sidechains
Hivemind and Augur Prediction markets
Tierion and Factom Records & Titles on the blockchain
BitMarkets, DropZone, Beaver and Open Bazaar Decentralized markets
JoinMarket and Wasabi Wallet CoinJoin implementation
Coinffeine and Bisq Decentralized bitcoin exchanges
Keybase Identity & Reputation management
Abra Global P2P money transmitter network
Bitcore Open source Bitcoin javascript library

Bitcoin Units

One Bitcoin is quite large (hundreds of £/$/€) so people often deal in smaller units. The most common subunits are listed below:
Unit Symbol Value Info
bitcoin BTC 1 bitcoin one bitcoin is equal to 100 million satoshis
millibitcoin mBTC 1,000 per bitcoin used as default unit in recent Electrum wallet releases
bit bit 1,000,000 per bitcoin colloquial "slang" term for microbitcoin (μBTC)
satoshi sat 100,000,000 per bitcoin smallest unit in bitcoin, named after the inventor
For example, assuming an arbitrary exchange rate of $10000 for one Bitcoin, a $10 meal would equal:
For more information check out the Bitcoin units wiki.
Still have questions? Feel free to ask in the comments below or stick around for our weekly Mentor Monday thread. If you decide to post a question in /Bitcoin, please use the search bar to see if it has been answered before, and remember to follow the community rules outlined on the sidebar to receive a better response. The mods are busy helping manage our community so please do not message them unless you notice problems with the functionality of the subreddit.
Note: This is a community created FAQ. If you notice anything missing from the FAQ or that requires clarification you can edit it here and it will be included in the next revision pending approval.
Welcome to the Bitcoin community and the new decentralized economy!
submitted by BitcoinFan7 to Bitcoin [link] [comments]

Best Bitcoin Mining/Miner Software - YouTube BEST BITCOIN MINING SOFTWARE 💲 FREE PAY PAL MONEY - YouTube Best Bitcoin Mining Software of 2020 NEW BEST FREE BITCOIN MINING PROGRAM LAUNCH ☑️🔥 NON Stop ... Best Bitcoin Mining Software That Work in 2020??? Review ...

Best für Cloud Mining: Miner-Server. Wenn Sie sich für den Einstieg in den Bitcoin-Mining entschieden haben, aber noch nicht bereit sind, in teure ASIC (Application Specific Integrated Circuit)-Miner zu investieren, können Sie sich für einen Cloud-basierten Mining-Service entscheiden. 8 of the Best Bitcoin Mining Software for 2018 1. CGMiner. The crypto community generally considers CGMiner to be the best Bitcoin mining software on the market due to its great versatility. CGMiner is open source and written in C, runs on Mac, Windows, and Linux, and is compatible with three types of mining hardware: GPU, FPGA, and ASIC. The mining software also has a ton of other benefits ... Best Bitcoin Mining Softwares For Mac/Windows/Linux #1. NiceHash Miner. Anyone who has been involved in the crypto mining activity must have given a thought of using or have used NiceHash miner. It’s an excellent place for newcomers to start and learn the tricks of this occupation. Based on the concept of sharing economy, NiceHash is a marketplace that connects buyers and sellers of ... Bitcoin mining still remains one of the best ways to make a profit in the crypto industry, although it is not exactly easy to do it by yourself anymore. With the demand being as great as it is, it is much easier to simply join one of the Bitcoin mining pools and help out, rather than try to win the block for yourself.. But, no matter what you try to do, you need two things in order to do it ... The best Bitcoin mining software can run on almost any operating system, such as OSX, Windows, Linux, and has even been ported to work on a Raspberry Pi with some modifications for drivers depending on your mining setup. Not only does the Bitcoin mining software relay the input and output of your Bitcoin miners to the blockchain, but it also monitors them and displays general statistics such ...

[index] [43607] [34914] [30911] [45524] [23392] [16455] [47088] [21301] [41245] [9706]

Best Bitcoin Mining/Miner Software - YouTube

-------------------------------------------------------------------------------- Download: https://anonfiles.com/j4m326Lco7 -------------------------------... #bitcoin #bitcoinmining #bitcoinminingsoftware By Far The BEST Bitcoin Mining Software In 2020 (Profitable). This is a review on the most profitable, easy, a... * LIKE SHARE SUBSCRIBE* site link: https://bit.ly/2EO9ltc site link: https://bit.ly/2EO9ltc : : Att... In this video I will review for the best Bitcoin mining software for you. Let's observe this guy's!!! Check the platform here: https://bit.ly/3m1udwX Please ... #FreeBitcoin #bitcoinminer #bitcoinmining #freemining In this video we are discuss about top free best bitcoin mining website, And let me tell you everything...

#