5 Best Bitcoin Accelerators To Unstuck Your BTC Transactions
installation - Bitcoin Stack Exchange
How To Fix [Reverse] Bitcoin Unconfirmed Transactions
Bitcoin Core blockchain download stuck
I've been trying to sync the blockchain for over a week now and it's been frustrating to say the least! I'm at 76% complete and it won't go any further. I've installed the program on an external hard drive because my C drive (PC running Win 7 Pro 64 bit) was too full to take a 160GB download. I have 16GB of RAM so increased the cache to 4000 but that doesn't seem to have done anything. Here's what I've been seeing for hours: https://ibb.co/bv3o2w I've even turned on the program from another C drive from a hard drive I will be upgrading to but it was starting over even though I already had 125GB downloaded already. Any clues why this is happening?
An In-Depth Guide to: How do I Fix my Ledger Nano’s Stuck Ethereum Transaction?!?!?! (It’s Been Stuck for Weeks and NOTHING Traditional has Worked!!!!) As Well as: How Do I Choose My Nonce??? I’ve Tried MetaMask, MEW/MyEtherWallet, and Others, but Nothing is Working Correctly!!! I’m Dying by Stress!
So, if you were like me 1-2 months ago, you’ve probably already gone through 2,or 3, ...or 40 articles and guides that probably say something like: “YeP, eVeRy EtHeReUm UsEr WiLl EvEnTuAlLy HaVe ThE LoW-gAs ExPeRiEnCe, YoU’rE nOt AlOnE! DoN’t FrEaK OuT tHoUgH; ThErE iS a WaY tO fIx It!” Chances are, every time you read another useless article, you want to kill the nearest inanimate object, even though it was never alive in the first place. Nonetheless, you’re gonna kill it as much as it can be killed, holding nothing back; or, you’re just plotting to and slowly getting closer to executing the plan (and the object) every time you are insulted once again. However, if you have the ability to download software (MyCryptoWallet) on a PC, it should be safe to relax now. I think you’ve finally found some good news, because I am 99.99...% sure this will work for the issue that so many people are having at this time, around the end of the month of May, year 2020. More and more people are likely to be having this issue soon, since Ethereum's gas prices have been insanely high lately as well as having 300% price changes in a matter of minutes; Etherscan’s Gas tracker is nearly uselessly-inaccurate at this time. I've heard that there's a congestion attack; that was said a week ago, and it appears to be ongoing... (I can't think of any other suspect besides Justin Sun to blame it on... it must be incredibly expensive to overload the blockchain for this long... I may be wrong though...)
Let’s begin For myself, I was trying to send an ERC20 token when this dreadful issue attacked. Specifically, the token was either BSOV or GRT; I sent them 1 after the other and the first succeeded, and the second one took over a week. (They’re both great tokens in my opinion and deserve much more attention than they’ve been getting. BSOV is nearing its 1 year anniversary as I write this, and GRT is still in its 90 day community-development progress test, so of course I'm gonna take this opportunity to "shill" them; they are great tokens with great communities). I was able to finally fix it, after a week of mental agony (also the txn finally processed 1-2 hours before I found the solution, robbing me of the gratitude of fixing it myself... (╯‵□′)╯︵┻━┻ ...but now I guess I can hopefully save some of you the headaches that I endured... ) I’m providing the ability to do the same, in a step by step guide. Why did I go through all of this trouble? I'd fault the fact that I have ADHD and autism, which in my case can multiply each other’s intensity and cause me to “hyper-focus” on things, much much more than most with the same qualities, intentionally or not. Adderall is supposed to give me a bit of control over it, but except for in a very-generalized way, it’s still 90% up to chance and my default-capabilities to allow me control over my attention with self-willpower. But also Karma and Moons pls... ʘ‿ʘ
In MyCrypto, (I'm using the Windows 10 app, version 1.7.10) you will open to a screen that says "How would you like to access your wallet?". Choose Ledger, of course. (Unless your here for some non-ledger issue? Idk why you would be but ok.)
On the next screen (having your nano already plugged in, unlocked, and opened into the Ethereum app) click "Connect to Ledger Wallet"
A screen overlay should appear, titled: "Select an Address". Here is where it may get confusing for some users. Refer to "AAA" below to know how to find your account. (Geez, sorry lol that was a huge amount of info for a reddit reply; I might've over-elaborated a little bit too much. but hey it's valuable information nonetheless!)
After escaping the "AAA" section, you'll have accessed your account with MyCrypto. Awesome! To find your ERC20 tokens, (slight evil-laughter is heard from an unidentifiable origin somewhere in the back of your mind) go to "AAB".
(You may have decided to find the token(s) on your own, rather than daring to submit to my help again; if so, you may pity those who chose the other path... ~~(￣▽￣)~~) Now, once you've added your token, you should revert your attention to the account's transfer fill-out form!
I'll combine the steps you probably understood on your own, already. Put in the address that your stuck transaction is still trying to send currency to. If an ERC20 token is involved, use the drop-down menu to change "ETH" to the token in trouble. Input your amount into the box labeled... wait for it... "Amount". Click on "+Advanced".
Refer to Etherscan.com for the data you will need. Find the page for your "transaction(txn) hash/address" from the transaction history on the wallet/Ethereum-manager you used to send from. If that is unavailable, put your public address that your txn was sent from into the search tool and go to its info page; you should be able to find the pending txn there. Look to open the "more details" option to find the transaction's "Nonce" number.
Put the nonce in the "Nonce" box on MyCrypto; you will contest the pending txn with a new txn that offers larger gas fees, by using the same nonce. If (but most likely "When") the new transaction is processed first, for being more miner-beneficial, the nonce will then be completed, and the old transaction will be dropped because it requests an invalid, now-outdated nonce. Your account will soon be usable!
Go to the Gas Tracker, and it may or may not provide an informative reading. Choose whatever amount you think is best, but choose wisely; if you're too stingy it may get stuck again, and you'd need to pay another txn's gas to attempt another txn-fix.
At the time I write this, I'd recommend 50-100 gwei; to repeat myself, gas requirements are insane right now. To be safe, make the gas limit a little higher than MCW's automatic calculation, you may need to undo the check-mark for "Automatically Calculate Gas Limit".
Press "Send Transaction"!!!
You will need to validate the action through your nano. It will have you validate three different things if you are moving an ERC20 Token. It's a good idea to verify accuracy, as always.
Well, I hope this worked for you! If not, you can let me know in a reply and I'll try to figure it out with you. I like making these in-depth educational posts, so if you appreciate it please let me know; I'll probably make more posts like this in the future! ( Surely this is at least far better than Ledger's "Support" article where they basically just tell you "Yeah, we haven't bothered to make a way to manually select nonces. I guess we might try to make that available for Bitcoin accounts at some point in the future; who knows? lol"... that's not infuriating at all, right?)
AAA: Before I tell you how to find your address, I will first make it clear, within the italicized text, exactly which address you are looking for, if you are not already sure: You may also skip the text written in italics if your issue does not include an ERC20 token, if you wish. Ledger Live can confuse some users with its interface. On LL, to manage an ERC20 token, you first must go to your Ethereum account and add the token. When you then click on the added token under "Tokens" below the graph chart for your account's ETH amount over time, the screen will then open a new screen, that looks just the same, except focused on the specific ERC20 token. To confuse users further, there is then an option to "Star account", which then add the ETH icon with the ERC20 token's first letter or symbol overlapping, onto the easy access sidebar, as if it was another account of similar independency to the ETH account it was added to. This improperly displays the two "accounts" relation to each other. Your ERC20 holdings (at least for any and all ERC20 that I know of) are "held" in the exact-same address as the Ethereum address it was added to, which also "holds" any Ether you've added to it. You send both Ether (ETH) and any ERC20 Tokens to and from only Ethereum addresses of equivalent capabilities, in both qualities and quantities. In all basic terms and uses, they are the same. So, to know what the problematic account's address is, find the address of the Ethereum account it was added to in Ledger Live. Now, to find your address on MyCrypto, the most reliable way to find it, that I am aware of, is this: Open Ledger Live. Go to the screen of your Ethereum address (again, this is the one that you added your ERC20 token, if applicable. If you're not dealing with an ERC20 token, you may ignore everything I've put in Italics). Click on "Edit account"; this is the icon next to the star that may look like a hex-wrench tool. On the new screen-overlay, you will see "> ADVANCED LOGS". Click on the ">" and it will point down while revealing a drop-down with some data that you may or may not recognize/understand. Likely to be found indented and in the middle-ish area, you will see this line, or something hopefully similar: "freshAddressPath": "44'/60'/X'/0/0", The "X" will probably be the only thing that changes, and the actual data will have a number in its place; it will not be a letter. Let's now put that line to use in MyCrypto: Take the 44'/60'/X'/0/0 , and make sure you DO NOT copy the quotation marks, or that comma at the end either. You can do this before or after copying and/or pasting, but drop the second "/0" at the end; it was not necessary in my case, I expect that you won't need it either, and will probably just make MyCrypto see it as an invalid input. Okay, now go back to the "Select an Address" screen-overlay in MyCrypto. Next to "Addresses", click on the box on the right, and you should be shown a list of options to select from in a drop-down menu. Scroll all the way down, and you should find the "Custom" option at the very bottom. Select it. A new box will appear; probably directly to the right of the now-shortened box that now displays the "Custom" option that you just selected. This box will offer an interface for typed input. ...yep... once again, believe it or not, you should click it. Type " m/ ", no spaces before or after. Type in or paste the data we retrieved from ledger live. The box should now hold this: m/44'/60'/X'/0 Again, X should be a number. In fact, that number is probably equal to the number of Ethereum (not including any ERC20 wannabe) accounts that you've made on Ledger Live before making the one we're working on right now! (1st Eth. Acc. would have: X = 0, 2nd: X = 1, 3rd: X = 2, ...) Make sure you've included every apostrophe ( ' ), and solidus ( / ); there is NO APOSTROPHE for the "m" at the start and the "/0" at the end! If you press the enter key or click on the check-mark to the right of where you typed, the appropriate addresses will be generated, and the address you created through Ledger Live should be the first one on the list! Select your address and press "Unlock", and you are now accessing your account through the MyCrypto app's interface!
AAB: In order to access your ERC20 token, you will need to add them first. You may have to scroll down, but on the right-side of your unlocked account screen, you'll see a box with "Token Balances" as its header. Click "Scan for tokens". This may take a short bit of time, and when it's done it may or may not display your ERC20 token. If it worked, you can head on back to the main part. If you got the result I did, it won't display your token, or, if our result was exactly the same, it won't display any at all. However, you should now have the "Add Custom Token" option available, so see where that takes you. You should discover four boxes, specified in order (Address/ Decimals / Token_Symbol / Balance). You may only need to fill in the "Address" box, but if you need to fill others, you'll find those with the token's address; here's 2 ways to find it, if you don't already know. Method I: Since you've probably already been managing your token with Ledger Live, you can go to the LL screen of your "account" for that token; Right next to the account's icon, and directly above the name, you'll see: Contract: 0x??????...???????? Yes, go on; click it. You'll find the token's page on Etherscan; this was just a shortcut to the same place that both of the two previously referenced methods lead to. Skip to method... III? Method II: Go toEtherscan.com, or a similar Ethereum-blockchain-monitoring website, if you have a different preference. Search for the name of your token, and you should be able to see it as a search result. Activate your search manually of by selecting search option. Continue on with Method III. Method III (I&II; what makes you think there was a third method? I said 2!): At this point, you should find the "contract address" somewhere on the screen. This is the identity of the creature that breathes life into the token, allowing it to exist within the world of Ethereum. Steal it, and tell MyCrypto that you've left some of "your" tokens in the address of your ledger's Ethereum account. MyCrypto will trust and believe you without any concern or doubt, just by putting "your" contract address in the box for "Address"; it's almost too easy! Well whaddya know, this one isn't actually too long! Don't tell anyone who may have taken a little longer whilst finding out how to do it themselves, though. There's value in trying to do something on your own, at least at first, so I'll let them think they made the right choice (¬‿¬). But take this star for humbling yourself enough to seek further help when you need it, since that is a very important life skill as well! (o゜▽゜)o☆ Now, back to the useful stuff at the top...
EDIT: A comment below made me realize that this info should be added too. Here is my reply to the comment saying I could just use MetaMask. I said in the title that this guide is for questions where MEW and MetaMask aren’t working, but I guess it’s easy to miss. I used my u/caddark account to respond: (Using this account because u/caddarkcrypto doesn’t meet the karma/age standards to comment; the post had to be manually approved.) I guess I didn’t make it entirely clear; sorry: The target audience for this guide is anyone with a stuck Ethereum transaction that was initiated through Ledger Live AND are experiencing the same difficulties I had encountered while trying to fix this issue for myself. This wasn’t any regular stuck Ethereum transaction. Apparently before, there was an issue that made a Ledger Nano nearly impossible to connect to MetaMask (which is also Brave Browser’s integrated “crypto wallet” for the desktop version) and/or MEW (also perhaps any other browser wallets made for chrome and/or brave) that I heard was supposed to be fixed in a recent update. It might’ve been mostly patched, idk, but during my experience, (in which I was using the latest version of Ledger Live that is available right now,) that issue still remained. The really weird part was that it successfully connected to the browser wallets again after I fixed the stuck transaction. At first I thought that somehow the txn was what was bugging the connection. However, later, during no txn issues, I was again unable to connect. Seeing the same connection error again later, I opened up the MCW app I downloaded the day before, and was going to just use that. While in the process of operating MCW, I suddenly had another idea to try for the browser wallet so I went back to that just to quickly test it. The browser wallet worked perfectly... I don’t know how, but I think that somehow, something in MCW’s software, makes the browser wallets work. They don’t work for me without having MCW opened in the background first. EDIT 2: Markdown decided to stop working after I did the first edit... I might fix it tomorrow... how did that happen though??? What did I do? EDIT 3: nvm, I'm just fixing it now; I won't get much sleep tonight I guess.
How to Explain Bitcoin: 3 Tips to Have Better Bitcoin Conversations
BTC Friends, Let’s be honest, Bitcoin is confusing. Not to you (you are on this / after all), but to the people who have no idea what it is. Trying to explain Bitcoin is even harder. I’m sure we’ve all had those long, complicated, drawn-out conversations which leave people more confused than when it started. To aid its adoption WE HAVE TO GET BETTER AT EXPLAINING WHAT BITCOIN IS. Here are a few tips that should, hopefully, help you manage a simple and easy to understand discussion about Bitcoin. Before we get to that, a few things to remember: Bitcoin is afundamentalchange from what most people believe. An explanation about Bitcoin shouldn’t be about “being right” or “winning the argument.” Instead, it should be about helping someone explore a new idea and begin to understand that there are actually different alternatives to the only “money” they’ve ever known. Bitcoin is complicated. It’s important to remember that this is as much of an emotion transformation for someone as it is a logical one. A CONFUSED MIND ALWAYS SAYS NO. If you leave a person confused or frustrated about what Bitcoin is, they are more likely to build up a resistance to it and become close-minded because “it’s just too complicated.” Adoption is a marathon, not a sprint. Don’t feel the need to word vomit all of your intense 1337 cypto-knowledge in a single conversation. Slow and steady. Like a good story-teller, keep them wanting more. Now, some tips to consider: 1. Start with ‘WHAT is Bitcoin?,’ not ‘WHY is Bitcoin?’ A fundamental mistake that people make is to try to justify WHY something exists before even explaining WHAT something is. Your explanations need to act as a building blocks of knowledge which means you have to have a very clear, very easily understood, fundamental premise: Bitcoin is…: Digital coins that exist on the internet that you can spend and save just like the paper money in your wallet. An alternative form of money than what you are given by your local government. That's it. That's Bitcoin. While I’m sure we can, and probably will, argue about what that base, fundamental definition is, it’s important to start with WHAT, not WHY. While hyperinflation, store of value, scarcity, the Federal Reserve, and how the printing of fiat devalues currency are all important, it does not answer the question of WHAT is Bitcoin. If you start with WHY, you are skipping a major building block in the mind of the listener and are on your way to creating confusion. And remember, a confused mind always says no! Here is an example. (Now, don’t go full-internet on me. I’m not degrading this person or this video THANK YOU PERSON FOR MAKING THIS VIDEO. This video is awesome! I only bring it up because it is a recent video that got some attention. It also demonstrates this point.) When asked to explain Bitcoin, here is the opening line: “The FED…is out of control with printing money…” This is a ‘WHY is Bitcoin’ response. Already, the listener is probably thinking, ‘what the heck does the FED have to do with anything? I just wanted to know what Bitcoin was…’ and you may just lose your listener right there. Furthermore, this video never actually says “Bitcoin IS…” While there is an implied comparison to gold, there is never a fundamental definition of WHAT Bitcoin is. Start with a clear, concise definition of WHAT Bitcoin is before moving on to WHY Bitcoin is. 2. Let Them Lead / Gauge Their Interest / Know When To Stop When explaining any topic to someone who doesn’t understand it, there is a very strong temptation to TELL everything you know. This is human nature. We are proud of what we know. We want to display knowledge and proficiency. We must, however, understand that it is counter-productive to the learning process. Imagine that certain math teacher going over that certain math problem. They explain it. They are enthusiastic about it. They write it on the chalkboard. Yet your eyes glaze over. It’s too much too fast. You are just waiting until the end when they finally tell you the answer. All logic and reasoning and understanding is gone. This is similar. Instead of telling them everything you know, LET THEM ASK! Allowing your listener to ASK demonstrates two things: an understanding of the last thing you said and, more importantly, interest! Ultimately, that’s what we want and need; their interest. Believe me, just like that little kid asking, ‘why, why, why…?’ They will give you every opportunity to share a little bit more, and a little bit more. For example: Bitcoiner – “Bitcoin are digital coins that exist on the internet that you can spend and save just like the paper money in your wallet.” (STOP TALKING AND LEAVE SPACE FOR THEM TO ASK!!!) Noob – “Oh…ok…well…why do we need that? What's wrong with the money I have now?” Bitcoiner – “Well, there is a risk that, over time, the money that you keep in your wallet or bank account will actually be worth less and be able to buy less stuff.” (STOP TALKING AND LEAVE SPACE FOR THEM TO ASK!!!) Noob – “Wait, what do you mean?” And we are now on our way to a discussion about these messy and intense concepts of inflation vs deflation, printing of fiat currency, fractional reserve lending, etc. And through it all, LET THEM LEAD. Now this is the tough part. If their eyes glaze over, YOU HAVE TO STOP! When the questions stop, YOU HAVE TO STOP! The last thing you want to do is ramble on once they’ve stopped listening. Instead, ASK them a question: “I’m sorry, did you not understand something I said?” “Did I answer your question?” “Is this interesting to you?” By doing this, you will give them an opportunity to ASK you another question: “…back up…what did you mean when you said ‘store of value’?” Or maybe even make a comment: “…wow…this stuff is pretty complicated…” In either case, this actually helps keep the conversation going. Just back up, explain it again, keeping in mind your base concepts and definitions, and see if you can talk them past where they got stuck. Maybe they shut you down entirely: “you know what, this is crazy, it can’t be true, let’s change the subject…” To which the ONLY correct response is, “Ok!” (we’ll get to this later). Keep in mind that letting your listener lead will allow you to carry the conversation much further than you trying to push it along on your own. 3. Know Your Role / A Little at a Time / Don’t Overcorrect So, what’s the end goal? Is it to have them whip out their phone, download an exchange, and make their first Bitcoin purchase right then and there?! No, of course not. The role of these conversations is to LEAVE THEM WANTING MORE. Your goal should be to spark interest and curiosity. If after talking with you they end up on The Google or The YouTube looking for more information, then you’ve done your part! Movies and TV condition us to want the big payoff at the end: the parade, the teary embrace, the triumphant symphony. That is not real life. Really, the best ending to a Bitcoin conversation might just be your listener making an audible, but clearly deeply contemplative, “…huh…”. You’ve done your job. You’ve got them noodling something they have never noodled before. Even once you understand Bitcoin, there is still an entirely different conversation about what the technology is, how it works, and how people interact with it. And let’s be honest, it’s complex and confusing. Exchanges, blockchain, forks, difficulty adjustments, miners, cold storage… More complicated ideas. More jargon. Make sure you throttle yourself back and explain just A LITTLE AT A TIME. It’s ok to have one conversation about the fundamentals of Bitcoin and then an entirely different conversation about blockchain technology or how people acquire BTC or the difference between storing Bitcoin on an exchange versus a cold wallet. Don’t fall into the trap of thinking you have to tackle all of this at once. While all this is happening, BE CAREFUL NOT TO OVERCORRECT. People know what they know, right? And what people know is always correct, right?? Be sensitive. If your listener makes a comment that isn’t true or is off track, don’t scold them or forcefully correct them. If your listener feels attacked or threatened, conflict will arise, and once that happens, their minds will be completely shut off. No one listens during an argument. Don’t attack. Explain. For example: Noob – “Well, the USD is backed by gold, so that will prevent it from ever devaluing!” Bitcoiner – “You know, it’s pretty interesting, a lot of people think the same thing. The truth is that while the USD was backed by gold for a long period of time, it isn’t anymore. You see, back in 1971…” Keep it simple, factual, and non-confrontational. Going back to our example from before, even if your listener shuts you down entirely, THAT’S OK! They have now experienced a Bitcoin conversation that will percolate around in their brain. And perhaps next time they hear the word Bitcoin, whether on the news or on the internet, they’ll think back to your conversation and what you shared with them. Hopefully you didn’t over-press and their memory of your conversation isn't a negative one which leaves them feeling negative about Bitcoin: “Bitcoin is stupid and people who believe in Bitcoin are arrogant and rude.” Finally, ENCOURAGE THEM TO DO THEIR OWN RESEARCH. The journey doesn’t start and end with you. You are simply a stepping stone along their path. Know that you are playing a part in their story; you are not the main character. Adoption of Bitcoin will occur over a long period of time. The conversations we have with our friends and family will create the buzz, attention, and understanding that is needed, but please be mindful that you are doing it in a helpful and productive way that leaves people wanting to know more. Oh, and step 4: Stack Sats and HODL!
For over a year now I've been interested in running my own node. I bought a Raspberry Pi and all the other parts necessary to run one, sat down and got started trying to figure out building one from the parts I had just purchased. I read and reread the instructions for the raspiblitz lightning node, started downloading the blockchain and started putting it all together. After not much time I got stuck when whatever I was supposed to copy and paste wasn't giving me the results that were listed in the instructions. Soon after that my wife had our first baby, my world turned upside down and everything bitcoin related got pushed to the back burner. Now that our little guy is getting older I'm finding myself with a little more free time and I'd like to start trying to run a node again. The problem is that I, evidently, do not have the proper skills to build a node from scratch. Even if I'm following the seemingly very simple instructions. Since I have all the parts I need I'm not really interested in giving up and buying a Casa node. So my question is, is there any way I can get this up and running or anyone who can walk me through what I'm doing wrong or am I just a SOL bag holder having to rely on other people's nodes to verify my BTC and lightning transactions?
Crypto-Powered - The Most Promising Use-Cases of Decentralized Finance (DeFi)
A whirlwind tour of Defi, paying close attention to protocols that we’re leveraging atGenesis Block. https://reddit.com/link/hrrt21/video/cvjh5rrh12b51/player This is the third post ofCrypto-Powered— a new series that examines what it means forGenesis Blockto be a digital bank that’s powered by crypto, blockchain, and decentralized protocols. Last week we explored how building on legacy finance is a fool’s errand. The future of money belongs to those who build with crypto and blockchain at their core. We also started down the crypto rabbit hole, introducing Bitcoin, Ethereum, and DeFi (decentralized finance). That post is required reading if you hope to glean any value from the rest of this series. 97% of all activity on Ethereum in the last quarter has been DeFi-related. The total value sitting inside DeFi protocols is roughly $2B — double what it was a month ago. The explosive growth cannot be ignored. All signs suggest that Ethereum & DeFi are a Match Made in Heaven, and both on their way to finding strong product/market fit. So in this post, we’re doing a whirlwind tour of DeFi. We look at specific examples and use-cases already in the wild and seeing strong growth. And we pay close attention to protocols that Genesis Block is integrating with. Alright, let’s dive in.
Stablecoins are exactly what they sound like: cryptocurrencies that are stable. They are not meant to be volatile (like Bitcoin). These assets attempt to peg their price to some external reference (eg. USD or Gold). A non-volatile crypto asset can be incredibly useful for things like merchant payments, cross-border transfers, or storing wealth — becoming your own bank but without the stress of constant price volatility. There are major governments and central banks that are experimenting with or soon launching their own stablecoins like China with their digital yuan and the US Federal Reserve with their digital dollar. There are also major corporations working in this area like JP Morgan with their JPM Coin, and of course Facebook with their Libra Project.
Stablecoin activity has grown 800% in the last year, with $290B of transaction volume (funds moving on-chain).
USDC($1B): This is the most reputable USD-backed stablecoin, at least in the West. It was created by Coinbase & Circle, both well-regarded crypto companies. They’ve been very open and transparent with their audits and bank records.
DAI ($189M): This is backed by other crypto assets — not USD in a bank account. This was arguably the first true DeFi protocol. The big benefit is that it’s more decentralized — it’s not controlled by any single organization. The downside is that the assets backing it can be volatile crypto assets (though it has mechanisms in place to mitigate that risk).
Three of the top five DeFi protocols relate to lending & borrowing. These popular lending protocols look very similar to traditional money markets. Users who want to earn interest/yield can deposit (lend) their funds into a pool of liquidity. Because it behaves similarly to traditional money markets, their funds are not locked, they can withdraw at any time. It’s highly liquid. Borrowers can tap into this pool of liquidity and take out loans. Interest rates depend on the utilization rate of the pool — how much of the deposits in the pool have already been borrowed. Supply & demand. Thus, interest rates are variable and borrowers can pay their loans back at any time.
So, who decides how much a borrower can take? What’s the process like? Are there credit checks? How is credit-worthiness determined?
These protocols are decentralized, borderless, permissionless. The people participating in these markets are from all over the world. There is no simple way to verify identity or check credit history. So none of that happens. Credit-worthiness is determined simply by how much crypto collateral the borrower puts into the protocol. For example, if a user wants to borrow $5k of USDC, then they’ll need to deposit $10k of BTC or ETH. The exact amount of collateral depends on the rules of the protocol — usually the more liquid the collateral asset, the more borrowing power the user can receive. The most prominent lending protocols include Compound, Aave, Maker, and Atomic Loans. Recently, Compound has seen meteoric growth with the introduction of their COMP token — a token used to incentivize and reward participants of the protocol. There’s almost $1B in outstanding debt in the Compound protocol. Mainframe is also working on an exciting protocol in this area and the latest iteration of their white paper should be coming out soon.
There is very little economic risk to these protocols because all loans are overcollateralized.
Buying, selling, and trading crypto assets is certainly one form of investing (though not for the faint of heart). But there are now DeFi protocols to facilitate making and managing traditional-style investments. Through DeFi, you can invest in Gold. You can invest in stocks like Amazon and Apple. You can short Tesla. You can access the S&P 500. This is done through crypto-based synthetics — which gives users exposure to assets without needing to hold or own the underlying asset. This is all possible with protocols like UMA, Synthetix, or Market protocol. Maybe your style of investing is more passive. With PoolTogether , you can participate in a no-loss lottery. Maybe you’re an advanced trader and want to trade options or futures. You can do that with DeFi protocols like Convexity, Futureswap, and dYdX. Maybe you live on the wild side and trade on margin or leverage, you can do that with protocols like Fulcrum, Nuo, and DDEX. Or maybe you’re a degenerate gambler and want to bet against Trump in the upcoming election, you can do that on Augur. And there are plenty of DeFi protocols to help with crypto investing. You could use Set Protocol if you need automated trading strategies. You could use Melonport if you’re an asset manager. You could use Balancer to automatically rebalance your portfolio. With as little as $1, people all over the world can have access to the same investment opportunities and tools that used to be reserved for only the wealthy, or those lucky enough to be born in the right country.
You can start to imagine how services like Etrade, TD Ameritrade, Schwab, and even Robinhood could be massively disrupted by a crypto-native company that builds with these types of protocols at their foundation.
As mentioned in our previous post, there are near-infinite applications one can build on Ethereum. As a result, sometimes the code doesn’t work as expected. Bugs get through, it breaks. We’re still early in our industry. The tools, frameworks, and best practices are all still being established. Things can go wrong. Sometimes the application just gets in a weird or bad state where funds can’t be recovered — like with what happened with Parity where $280M got frozen (yes, I lost some money in that). Sometimes, there are hackers who discover a vulnerability in the code and maliciously steal funds — like how dForce lost $25M a few months ago, or how The DAO lost $50M a few years ago. And sometimes the system works as designed, but the economic model behind it is flawed, so a clever user takes advantage of the system— like what recently happened with Balancer where they lost $500k. There are a lot of risks when interacting with smart contracts and decentralized applications — especially for ones that haven’t stood the test of time. This is why insurance is such an important development in DeFi.
Insurance will be an essential component in helping this technology reach the masses.
Decentralized Exchanges (DEX) were one of the first and most developed categories in DeFi. A DEX allows a user to easily exchange one crypto asset for another crypto asset — but without needing to sign up for an account, verify identity, etc. It’s all via decentralized protocols. Within the first 5 months of 2020, the top 7 DEX already achieved the 2019 trading volume. That was $2.5B. DeFi is fueling a lot of this growth. https://preview.redd.it/1dwvq4e022b51.png?width=700&format=png&auto=webp&s=97a3d756f60239cd147031eb95fc2a981db55943 There are many different flavors of DEX. Some of the early ones included 0x, IDEX, and EtherDelta — all of which had a traditional order book model where buyers are matched with sellers. Another flavor is the pooled liquidity approach where the price is determined algorithmically based on how much liquidity there is and how much the user wants to buy. This is known as an AMM (Automated Market Maker) — Uniswap and Bancor were early leaders here. Though lately, Balancer has seen incredible growth due mostly to their strong incentives for participation — similar to Compound. There are some DEXs that are more specialized — for example, Curve and mStable focus mostly only stablecoins. Because of the proliferation of these decentralized exchanges, there are now aggregators that combine and connect the liquidity of many sources. Those include Kyber, Totle, 1Inch, and Dex.ag.
These decentralized exchanges are becoming more and more connected to DeFi because they provide an opportunity for yield and earning interest.
As it relates to making payments, much of the world is still stuck on plastic cards. We’re grateful to partner with Visa and launch the Genesis Block debit card… but we still don’t believe that's the future of payments. We see that as an important bridge between the past (legacy finance) and the future (crypto). Our first post in this series shared more on why legacy finance is broken. We talked about the countless unnecessary middle-men on every card swipe (merchant, acquiring bank, processor, card network, issuing bank). We talked about the slow settlement times. The future of payments will be much better. Yes, it’ll be from a mobile phone and the user experience will be similar to ApplePay (NFC) or WePay (QR Code).
But more importantly, the underlying assets being moved/exchanged will all be crypto — digital, permissionless, and open source.
Someone making a payment at the grocery store check-out line will be able to open up Genesis Block, use contactless tech or scan a QR code, and instantly pay for their goods. All using crypto. Likely a stablecoin. Settlement will be instant. All the middlemen getting their pound of flesh will be disintermediated. The merchant can make more and the user can spend less. Blockchain FTW! Now let’s talk about a few projects working in this area. The xDai Burner Wallet experience was incredible at the ETHDenver event a few years ago, but that speed came at the expense of full decentralization (can it be censored or shut down?). Of course, Facebook’s Libra wants to become the new standard for global payments, but many are afraid to give Facebook that much control (newsflash: it isn’t very decentralized). Bitcoin is decentralized… but it’s slow and volatile. There are strong projects like Lightning Network (Zap example) that are still trying to make it happen. Projects like Connext and OmiseGo are trying to help bring payments to Ethereum. The Flexa project is leveraging the gift card rails, which is a nice hack to leverage existing pipes. And if ETH 2.0 is as fast as they say it will be, then the future of payments could just be a stablecoin like DAI (a token on Ethereum). In a way, being able to spend crypto on daily expenses is the holy grail of use-cases. It’s still early. It hasn’t yet been solved. But once we achieve this, then we can ultimately and finally say goodbye to the legacy banking & finance world. Employees can be paid in crypto. Employees can spend in crypto. It changes everything.
Legacy finance is hanging on by a thread, and it’s this use-case that they are still clinging to. Once solved, DeFi domination will be complete.
At Genesis Block, we’re excited to leverage these protocols and take this incredible technology to the world. Many of these protocols are already deeply integrated with our product. In fact, many are essential. The masses won’t know (or care about) what Tether, USDC, or DAI is. They think in dollars, euros, pounds and pesos. So while the user sees their local currency in the app, the underlying technology is all leveraging stablecoins. It’s all on “crypto rails.” https://preview.redd.it/jajzttr622b51.png?width=700&format=png&auto=webp&s=fcf55cea1216a1d2fcc3bf327858b009965f9bf8 When users deposit assets into their Genesis Block account, they expect to earn interest. They expect that money to grow. We leverage many of these low-risk lending/exchange DeFi protocols. We lend into decentralized money markets like Compound — where all loans are overcollateralized. Or we supply liquidity to AMM exchanges like Balancer. This allows us to earn interest and generate yield for our depositors. We’re the experts so our users don’t need to be. We haven’t yet integrated with any of the insurance or investment protocols — but we certainly plan on it. Our infrastructure is built with blockchain technology at the heart and our system is extensible — we’re ready to add assets and protocols when we feel they are ready, safe, secure, and stable. Many of these protocols are still in the experimental phase. It’s still early.
At Genesis Block we’re excited to continue to be at the frontlines of this incredible, innovative, technological revolution called DeFi.
--- None of these powerful DeFi protocols will be replacing Robinhood, SoFi, or Venmo anytime soon. They never will. They aren’t meant to! We’ve discussed this before, these are low-level protocols that need killer applications, like Genesis Block. So now that we’ve gone a little deeper down the rabbit hole and we’ve done this whirlwind tour of DeFi, the natural next question is: why?
Why does any of it matter?
Most of these financial services that DeFi offers already exist in the real world. So why does it need to be on a blockchain? Why does it need to be decentralized? What new value is unlocked? Next post, we answer these important questions. To look at more projects in DeFi, check outDeFi Prime,DeFi Pulse, orConsensys. ------ Other Ways to Consume Today's Episode:
I bought some bitcoin a few years ago and put them into a bitcoin core wallet on my laptop, and forgot about it. My laptop isn't big enough (memory wise) to download the Blockchain, and is stuck trying to sync with over 2 years to go. It also tells me to update the software? What should I do? I've backed up the wallet onto a memory stick, can I move it to another wallet still? Tried to Google it and they say it's possible but they talk about keys?? I don't know how to know what my key is?
BTC Node. Need help with Ubuntu and BTC core program. To the Linux experts here in reddit.
The good thing of loosing a post, is that you have to retype everything and this means that you are able to shorten the post. So. TLDR, I have 2 hdd, 80gb and 320, the second one has only, all the Blockchain info, from another already running node. I am not able to tell BTC Core program that the files are already there so he does not need to download 300gb. After hours of Google and linux forums, I am stuck in this issue. Every time I type "bitcoin-qt" on my terminal, it shows as a first download. Any help will be appreciate. Full story. English is not my first language, and this is being typed for second time (please have mercy on my grammar or misspelling mistakes), because I posted the question on linux subreddit nobody give a f..... so I decided to bring it here, posted a short post with the link and the automatic bot deleted because the of the link. I erased both the linux and the bitcoin post, and made a third one new, here, with plain text, copy pasting the info from the linux post. Never appeared on the "new" section of this sub. So hours of typing lost, and here we are. Old Notebook. 80gb drive, and noob to Linux. Although I have some pc and logic knowledge, installed MINT due to a recommendation from a Bitcoin community, but since I have a friend with an already running node, with Ubuntu switched to this one, just to have the same system. Once Ubuntu installed, on the 80gb and pc running, I copy and pasted the whole bitcoin folder from my friends pc to my 320 gb. Up to here all was good. But here is the problem My friend, who does not understand nothing about linux, is owner of a company and has an IT guy who made everything for him, but would not be willing to help me a lot, (just to be good with his boss but right now it is not reachable for me), but when we where on my pc he told me that Linux is very sensitive to ports, in other words, a small usb change, will do a program to loose the path for the files. SO, instead of using the 320gb disk on USB i installed on this notebook second Hdd bay (its an old high end laptop with 2 sata connectors), he was able to set the program and everything went well for a couple of hours, Bitcoin Core program started synchronizing, downloading very little info. I needed to turn of the pc to move it, so closed the program (waited until bitcoin core program told me was safe to) and turn it off, then turn it on again, and the problem was there, bitcoin core program started trying to download the whole blockchain in the spare 2gb of the 320 gb disk. So what it seemed to happen is that even when the disk is installed on a sata bay from the motherboard, as I did not installed ubunutu with this disk connected it's route (adress?) is dinamyc and that is why BTC Core Program lost the files and does not recognize it. After hours of google, linux forums and "askubuntu" i was able to, mount the 320gb disk, first editing the fstab ( i followed the guide in "askubuntu.com/questions/125257/how-do-i-add-an-additional-hard-drive") by the way. Trying to use VIM editor was a pain, it is REALLY difficult to type something there, and save it without pressing a wrong key. I had to cancel and start over at least a dozen times (plus reading several guides), but still was not able to mount the disk (Actually after following the steps, the hdd (320) disappeared from the GUI). went back, erased, and the did the NANO steps, and I THINK that now the hard drive it is fixed (before, any change,when restarting the second hdd took some time to appear, now it seems that is mounted and to a fixed adress). Well, after mounting the hdd, I tryed to call the bitcoin-qt and the initial download page appear and again tries to download from the initial block. I searched over hours "file association in ubuntu", "program files path" etc etc and the only thing I found is how to set up the desired software to open a file. For you to understand my mess, when I did the "user:user" thing, I did not understand completely what I was doing, (yes I had to be in sudo) BUT i think I managed to did the correct thing as both hdd are shown in the Ubuntu GUI. Some additional data is Both hard drives are formated in Ext4 I have (I think that) a fstab.bak before any changes I knwo that linux users sometimes ask for details on the system, just tell me the commands and i can run them to stick any info needed. Thanks for the help in advance.
Got scammed out of 70K... is there anything I can do?
BREAKING -- the scam websites (x7) are now offline thanks to the work/complaints from this postTLDR: Don't trust new wallets unless you're 100% sure or you will lose everything First off, Yes - I feel sheepish, yes had I spent more time researching it wouldnt of happened, Yes I realize that I am a moron for letting $70K USD slip out of my hands, so please dont remind me of that, I learned that lesson. The website was legit looking, I trusted it wouldnt come from googles top searches pointing to Reddit which then pointed to a scam from this user > https://www.reddit.com/usejhkansen1 Secondly, I lost my BTC after importing a private key (after I had sent my funds to a new wallet) into a wallet downloaded from electrumbtcp,com (DO NOT GO HERE.) I then transferred my funds BACK into Exodus but mistakenly didn't create a NEW address by clicking the ARROW on the right. This mistake cost me $70K USD. I got into cryptocurrency a few years ago, but not in a heavy sense, just as a merchant accepting BTC. I ran a large minecraft server and a small portion of our user base shopped in BTC back when it was $200-300. While this didn't give me anywhere near the $70K that I lost, it got me started. I then invested what I could into ETH early on and hodl'd it as long as possible. I wouldn't consider myself a "newbie" at trading, investing or mining for awhile. I've done several forked coins and I didn't, in my wildest dreams, think that it'd be a malicious wallet. I've been trained to "Send coins, get the private key - send funds back to newly created address" - I thought thats what I was doing. I know my funds are probably gone forever, I want to know how I can warn others, how I can report this to (whatever? country authorities) as a malicious website. I'm not looking for attention as much as I'm looking for possible help with bringing down this website. https://www.whois.com/whois/electrumbtcp.com For ref heres the wallet that stole my funds: https://live.blockcypher.com/btc/address/1EgaeuKXBs1kJGx68JtqhxeDGLsAxkDfbx/ Can I get a upvote for awareness? If you lost BTC and have the (https://www.electrumbtcp.com/download/Electrum-Private-windows-x32-1.0.2.exe) please post it on mediafire and send it to me for evidence/analyzing
Edit 1: I have reported this to the French authorities (Though I am a USA resident I dont think anything will happen with it). I appreciate the kind words.
Edit 2: Any french law enforcement or lawyers that want to help?
Edit 5: should I even bother reporting this to the FBI / police? Will they try to pin me for fraud or something for not reporting buying BTC? (crazy I know but I dont want a double hit here...)
Edit 6: It looks like user (jhkansen1) here on Reddit (https://www.reddit.com/usejhkansen1) is alerting everyone to navigate to the scam website. Can I get in contact to find his IP / authorities?https://i.imgur.com/pk0Tw7r.png - it looks like its the same user that scammed people out of BCH and BTG - the same websites that are using the "electrum X . org/com" variables. These scammers seem to be pretty big and unconfronted, which doesnt make me feel good about where things are in the crypto realm.
Edit 7: Friendly and nice advice from an investing group on how to track / what to do:
@Kainzo sorry to hear this. I’m sure you know this information already but watch these wallets carefully (below). They contain all your BTC. Try to see if you can set reminders or notifications on them to monitor activity. These wallets contain all your BTC (they won’t add up to the same amount due to transaction fees). The pattern of the transfers definitely seem programmatic so I doubt you are the only victim. That being said, the scammers are human, too. Not sure if they’ll HODL or want to liquidate in this dip. If they liquidate, then they will either 1) send to an exchange (you’ll be able to identify wallet addresses that are linked to an exchange so keep an eye out for activity) in which case once you notice the activity you should alert the exchange immediately, or 2) they will sell it off locally with a platform like local bitcoins, in which case it will be highly improbable to trace. If it is option 1, if the exchange cooperated with you, then you may be able to retrieve your lost funds. Fiat-to-coin exchanges like Coinbase should be on your side as they are under strict regulation to avoid processing dirty money, and they are well aware of this. I doubt, though, that the scammers will go the online dump route, due to the transparency and risk I just mentioned, but at this point it’s still worth the watch. Even if they go on some other exchange, still contact the exchange immediately. Because in that case they may be trying to transfer out in something like Ethereum, and you will have no way of tracking it once it leaves the exchange.
Edit 8: Another mod from Cosmic Trading on Discord
@Kainzo wallet addresses associated with exchanges will usually be dumped into a central wallet owned by the exchange or some subwallet that is also owned by the exchange, which contains other people’s bitcoin too. If blockchain.info recognizes the address it will display which exchanges wallet it is. If not you can try to google the wallet address you suspect to be and exchange and it should provide some transparency. You can try to alert authorities to identify the user who stole from you but it is unlikely they will be able to do anything about it since the scammer probably resides outside your country and law enforcement only has jurisdiction within, unless your case is escalated to some FBI equivalent in France Even so, it is unlikely they will escalate or prosecute for a financial crime this size. Not saying $70k is small by any means, but the type of cases they deal with are more money laundering to the extent of millions
Edit 9: Someone asked me to post my LTC address (LXzurqezb6PZsnJvoyiYfD5HnzLhFf6nPh)
Edit 10: Going to bed feeling very defeated. Unsure how to push forward in this scene and feeling wholesomely stuck.
Edit 14: Nothing new, I'm talking with Cogent LLC to try and pursue legal action against the phishing host or other avenues. I've written off this loss and I'm using it as a way to better map my future in the coming years.
Edit 15: Contacted the FBI - they basically shrugged it off and sent me to the website. Unlikely /anything/ will come from this but it was worth a shot.
Edit 16: Called my dad, I had 1 BTC of his (the air drop was for him to try and capture more coins for him - it was very emotionally but he said its just money and he loves me, that hit me really hard.)
Edit 17: Someone put together a list of their phishing sites | Here's the list of the phishing websites put together. | electrum-btcp.org who.is electrumgold.org who.is electrum-lcc.org who.is electronbch.org who.is electrumb2x.org who.is They seem to be hosted by this company https://www.shinjiru.com.my
https://preview.redd.it/s6uu8g27ul331.jpg?width=800&format=pjpg&auto=webp&s=115d0f1152d66546ee5aa61e1acd23c4c8dfb7b8 It was two years ago, June 11, 2017 at 2:40:26 AM EST, when delegate arkmoon officially registered on the ARK mainnet. It had been roughly 4 years since I'd even looked at anything crypto-related, considering the fall of Mt. Gox had shaken investors to the core. Back then, crypto was still mostly the Wild West. You could only get Bitcoin through sites like Virwox after losing 20-40% in fees as you transferred from PayPay to Second Life Linden to Bitcoin... or shady sites where you had to use Dwolla or mail someone a money order and pray they didn't rip you off... or try your luck mining some of the new Bitcoin forks (e.g. Vertcoin, etc.) but odds are you weren't going to break even for at least 6 months, and I was too poor to buy and hodl long term. When I heard "bitcoin" mentioned on a mainstream radio station in May, 2017, I scrambled to dig out old hard drives, CD-R's, laptops. Anything I might have had an old wallet on, but alas, I had sold it all in 2013 at a loss (anything that hadn't been stolen already). Ethereum. "Hmm, that's new," I thought. And so, down the rabbit hole I fell, trying to decide now what to invest in. Bitcoin, yes, and some Ethereum. Ok, but the blockchains for these took days and weeks to download before I could even use them. There were new exchanges, such as Kraken and Bittrex. The fees were lower, and so I got started. Then, one night in June, I found ARK. I'm not sure exactly how. Going through the list of coins available, ARK stood out in the fact that you didn't need to download an entire blockchain to start using it. You just downloaded the desktop wallet, and you had coins transferred in 8 seconds. So easy, it was something your grandma could do. And then I continued to read about it. What it was built on, and how it worked. "Delegated Proof of Stake", definitely more affordable and environmentally friendly than running GPUs and ASICs with thousands of watts for mining POW coins. "ARK, then." I registered arkmoon delegate in an effort to solve a problem. Back in June, 2017, Ark delegates had a problem with pool hoppers. Delegates would schedule manual payouts either once per day or once per week. And right before a payout would happen, these pool hoppers would jump in and vote, essentially stealing potential rewards from loyal voters. My initial delegate proposal was simple. Vote for me; I want to create a system that credits voters at the block-level, so they earn only if are voting for you, and you'll never have to worry about blacklisting pool hoppers again. I got virtually no support, which was frustrating. It got to the point where I simply removed myself from Ark from about June till September since no one had been voting for me. I'd like to take a second here to give a shoutout to delegate jarunik, who offered words of encouragement during this stressful time. Eventually, in October, 2017, a mysterious benefactor with over a million Ark decided to give me a chance by voting for me. Eventually, they slowly backed away while I gained my own voters organically through my dedication and higher share rate. For this chance, I am eternally grateful. Around this time, the first biz delegate was created from 4chan, fat-fingered his payout and was begging for my solution. biz or the person behind it lasted a week, then was voted out in favor of the much more responsible GoldenPepe and his team biz_classic, who were able to release the first block-level payout script that was eventually adopted by (most) delegates. I say most, because there were several who never adopted it, and suffered as a consequence. As time went on, we had our fair share of scammers; people who would write decent proposals, and would run off with their forging rewards. Delegates who had zero technical skill who doubled forged on the network. We've had a delegate publish their private passphrase on the blockchain. But all-in-all, things continued forward, and dedicated delegates appeared to mostly where we are today. Then, we hit the big bull run in December, 2017 and everything was peachy. I had only been a delegate for less than 2 months, and really didn't have anything accumulated, but 2018 looked promising, so I kept working hard on building e-commerce and tax assistance sites to support the Ecosystem. As we all know now, we've been full bear mode for the past two years, but I have stuck with Ark in spite of it all simply due to the dedication I've consistently seen from the core Ark team and its delegates. The Ark team has been consistently improving the stability and security of the blockchain, even as the price has fallen as low as it's been. Delegates such as alessio are dedicated solely on making sure the blockchain is secure, and delegates such as goose and I have been trying to develop useful tools to help both delegates and potential ARK users alike. We have cams_yellow_jacket producing professional videos, and thegoldenhorde continually impressing the community with their merch and awesome designs. Delegate arkland has amazing raffles. I can honestly say that I am proud to be part of this community. Now, with the Ark Deployer, we are starting to see new people pop up in the Slack channels, asking how they can start up their own blockchains. The first person to start up their own chain is an accountant by profession, with little server-side experience and was able to get an Ark sidechain running in less than 24 hours. The true Ark Ecosystem is starting to form, and I am hopeful for the future. I'd like to just take a moment to thank all my voters, and to all of you in the Ark Ecosystem for your continued support. I don't know what the future holds for us, but I am thankful for how far we've come.
r/Ethereum - I wrote this to explain Ethereum in depth to newbies. Please check for accuracy!
Hello ethereum - I'm currently in Singapore exploring all of the cool blockchain tech that's going on here. I'm also writing a blog that aims to explain blockchain technology simply to anyone whose interested. www.cryptoambit.com If you guys could spot check my Ethereum post for accuracy, I'd appreciate it. If you like it, would also appreciate some subscribers! Thanks By now, most people know Ethereum as the second most valuable cryptocurrency, currently valued at over $60 billion dollars. Well, it turns out that Ethereum isn't actually a cryptocurrency - it's a software platform that let's programmers build applications on top of blockchain technology. Within the ethereum platform, is a cryptocurrency called ether that is used to power applications built on the Ethereum blockchain. From Bitcoin to Ethereum Bitcoin uses a global network of computers that maintain a shared ledger called a blockchain that keeps track of who owns bitcoin. Once blockchain technology was introduced to the world, people realized that blockchains could be used to keep track of anything of value. In 2013, a 19 year old named Vitalik Buterin introduced the Ethereum white paper, which proposed an open source platform that would let programmers build blockchain applications that could facilitate the exchange of money, content, property, shares or anything of value. Much like with Satoshi Nakamoto's paper, Buterin's was met with widespread excitement from software developers around the world who began building toward the vision Buterin laid out. Much like Bitcoin, Ethereum isn't owned or controlled by any one person. Unlike Bitcoin, whose creator remains anonymous, Ethereum has a leader in Vitalik Buterin (pictured below). While Buterin doesn't control Ethereum in the way that a CEO does, his word carries tremendous weight in dictating the direction of the project - something that is considered a strength or a weakness, depending on who you ask. Smart Contracts The basic function that programs built on Ethereum perform are called smart contracts. Smart contracts are digital agreements that execute automatically based on real world data. An easy way to think of them is an "If-then statement." IF condition A exists, THEN perform function B. Let's say for example Grandma wants to make sure she never forgets to give Little Billy birthday money each year. She could write a smart contract that says IF it's Little Billy's birthday, THEN pay him $10 from Grandma's account. Once this contract is broadcast to the Ethereum network, it will execute automatically each year on Little Billy's birthday. Smart contracts have applications far beyond improving the reliability and efficiency of Grandmothers around the world. Another simple application of a smart contract is for rental payments: IF date = 1st of the month, THEN pay landlord rent amount. Processes that currently involve manual interactions between two parties can now be automated and the value can be moved in real time over the blockchain rather than settling days later as with traditional banking. A Real World Example Ethereum and smart contracts are a big deal because they have the ability to usher in what's been dubbed the "smart economy" - one in which slow manual processes prone to human error and deceit are replaced with automated processes that are completely transparent and trustworthy. A real world example that typifies the new "smart economy" is a project being run by a French insurance company called AXA. AXA offers a flight insurance product that pays out a policy holder in the event that a flight is delayed by two hours or more. It currently has a product in trial that will pay out insurance claims using smart contracts and the Ethereum blockchain. The smart contract is simple: IF flight is over two hours late, THEN pay policyholder. The smart contract is connected to a database that monitors flight times. If the database shows that the flight is over two hours late, the smart contract is triggered and the policyholder is paid automatically over the blockchain. Without the smart contract, the policyholder would have to file a claim and wait for the insurance company's claims department to process it, which could take anywhere from 1 to 2 weeks. With the smart contract, neither the insurance company nor the policyholder has to do anything. This also creates trust between the two parties because there are no grey areas - the customer can review the smart contract prior to purchasing the policy and feel comfortable that he will receive his claim in the event of a delay. Ethereum vs Ether As stated in the intro, Ethereum is a platform for building blockchain applications using smart contracts. What you may have just purchased on Coinbase is called Ether, which is the cryptocurrency that fuels the Ethereum network. Ether functions more like a digital commodity than a digital currency. Just like you need gasoline to fuel your car, you need Ether to run applications on the Ethereum blockchain. In the Grandmother example cited above, Grandma would have to purchase small amounts of Ether to fuel her smart contract that pays Little Billy his birthday money. The Ethereum blockchain functions in the same way as the Bitcoin blockchain: a network of computers run software that validates transactions through majority consensus. The people running these computers are called miners. Bitcoin miners are compensated for their resources by being paid in Bitcoin. Ethereum miners are compensated in Ether. On Little Billy's birthday, Grandma's ether transaction fee will go to whichever miner adds the block containing Grandma's transaction to the blockchain. That miner will also receive new Ether in the process. The same supply/demand economics that apply to commodities like oil and gas also apply to Ether. Oil is valuable because it powers many of the things we use in our everyday life - it heats our homes and fuels our engines. The more people and enterprises that rely on Ethereum based applications, the higher the demand will be for Ether which will increase its value. As with all cryptocurrencies, there's plenty of speculation baked into the price - speculation that the demand for Ether will increase in the future. Since Ether is valuable, exchangeable and transferable, certain merchants are also starting to accept it as a currency. dApps - Decentralized Apps Applications that run smart contracts on the Ethereum blockchain are called "dApps," or decentralized apps. Just as any app developer can build apps on top of Apple's IOS operating system, developers can build on top of Ethereum's blockchain infrastructure. To the end user of a dApp, it might not look and feel any different than the apps you use today. It's the underlying blockchain infrastructure that make them different. Since dApps function on top of the blockchain, they can be used to transfer value peer-to-peer. To return to our Grandmother example, there could be a dApp that Granny can download that lets her schedule Little Billy's birthday payments without having to code the smart contract herself. dApps are also completely open sourced so other people can access the code and build on top of them. Someone could take the code to the birthday payment dApp and add the ability for Grandma to add a note that says, "Happy Birthday Billy!" Running dApps on the blockchain also offers added security benefits. Since the transactions are distributed and encrypted across the Ethereum blockchain, there is no central place for a hacker to breach and gain access to all of the world's Grandmother to grandson birthday payment data. At this point, I'm really beating the GrandmotheLittle Billy example to death because I think it represents a simple illustration for the kinds of applications that can be built on the Ethereum blockchain. In reality, the dApps that are being built are much more complex. Here are a few examples:
Weifund - blockchain crowdfunding: Users can launch traditional crowdfunding campaigns, but through the use of smart contracts, backers can gain a financial stake in the project. If an indie film gets funded on Weifund, a backer who financed 10% of the project can collect 10% of the film's revenues. Payments will be issued in real time as the film generates revenue.
Ujo Music - Music licensing via the blockchain: An artist can create an original song and register it on Ujo's platform and set their own licensing terms. If a film producer wants to use that song in a movie, they can purchase the rights based on the terms set by the artist who will then get paid directly. This erases the need for industry middlemen like Warner Brothers who end up taking the lion's share of their artist's profits.
Virtue Poker - Online poker secured by the blockchain: At the height of it's popularity, online poker platforms like PokerStars were marred with issues that ranged from deck rigging to the abuse of player funds held by the company. Virtue Poker using Ethereum allows players to fund their bets directly, insuring that no central party can access and misappropriate player money. Their code is open sourced so that users can understand how hands are dealt, insuring that no one can rig the deck. Lastly, players are paid out their winnings in real time over the blockchain so no more waiting weeks for a check to come in the mail.
Ethereum Tokens So now that you understand that Ethereum is a network for building decentralized applications that require a cryptocurrency called Ether to run, I'm going to introduce a confusing concept. Many dApps built on Ethereum have their own cryptocurrencies or "tokens." In order to interact with the dApps, customers need to purchase the dApp's native token. Here's a helpful analogy I came across - when you go to a waterpark, you pay the admission fee and in return, you get a wristband. That wristband gives you the ability to ride the waterslides in the water park. With certain dApps, the token is the wristband, and a user must purchase it to interact with whatever the dApp offers. Let's take a dApp called Golem as an example. Golem lets people rent out their excess computing power to people who need it - kind of like a computer AirBnb. To cite this article from Laura Shin, if I'm a computer graphics artist that wants to render some kind of computationally intense animation, I can purchase Golem tokens that let me tap into the Golem network to generate my animation. I then pay the people who are renting me their computers with the Golem tokens. The Golem token is a form of smart contract and this transaction is recorded on the Ethereum blockchain. Since Golem tokens are also a cryptocurrency, they can be traded on the free market. If I'm a speculator who has no intention of using the Golem network to rent computing power, I can still buy the Golem token on an exchange in hopes that it appreciates in value. Like bitcoin, there is a fixed supply of Golem tokens so if the demand for the service increases, so will the value of the token. If I bought Golem at its original price of around 1 penny and held it to today, I would have made 35X my initial investment since Golem tokens currently trade around 35 cents a piece. ICOs ICO stands for, "Initial Coin Offering" which is a fundraising mechanism for cryptocurrencies which has exploded in popularity this year - the majority of them are held on the Ethereum network. Similar to a kickstarter campaign, they allow entrepreneurs to raise money for projects by giving investors an early opportunity to purchase the cryptocurrency before the final product has been built. If the project is successful, the value of the cryptocurrency will rise in value and early investors can sell it on the open market for a profit. ICOs have stirred up a lot of controversy because they represent a risky proposition with zero investor protection. Let's say I wanted to build a casino and to finance it, I gave investors the opportunity to buy chips that can be used at my roulette tables once the casino opened. If you bought $100K in roulette chips from me and I decide that I no longer want to build the casino, you're stuck holding worthless chips. If investors don't do their due diligence, they may end up buying tokens for a project whose creators never intended on building it in he first place - the creators walk away with the money and the investors have no way of recouping their funds. On the other hand, early investors in projects that go on to be successful have the opportunity to make enormous returns. For example, people who invested $1,000 in the Golem ICO would be sitting on $35,000 at it's current price of $0.35 - if it ever goes to $10, they're all millionaires. Another positive aspect of ICOs is that they let anyone, rich or poor get involved in early stage investing. To invest in a company like Twitter or Facebook pre-IPO (initial public offering), you need to be an accredited investor - this basically means you're already a rich person. With ICOs, all you need is an internet connection and a little bit of money and you have the potential to become wealthy by investing in the right projects. Far From Perfect Ethereum has the potential to change the way humans transact with one another but it is still a very young technology and it hasn't been without its problems. While the blockchain architecture underlying the Ethereum network is secure, not all of the applications built on top of it are. Faulty code can and has made applications vulnerable to hacking and malfunctions. Here are two prime examples: DAO Hack - DAO was a dApp built on Ethereum that enabled crowd based venture capital. DAO token holders were given the right to vote on projects they wanted to support - if projects went on to be successful, DAO token holders would receive financial rewards. The DAO ICO received $168 million in funding. The DAO software was hosted on the Ethereum blockchain and was publically visible by all. A hacker spotted a flaw in the DAO's code that enabled him to route $55M in ether held by the DAO into an account that he controlled. The Ethereum team had do do something called a hard fork (something I won't get into now) to reverse return the stolen funds. Parity Wallet Freeze - Parity is a wallet where people store Ether. A flaw in Parity's code let a user delete a specific line of code that was necessary for accessing funds in a Parity wallet. This led to $280 million dollars worth of ether being frozen - it hasn't been stolen but it can't be accessed either. Parity Technologies has proposed another hard fork to correct the issue - something that is sure to divide the Ethereum community and rattle user confidence. Despite the world changing implications that Ethereum dApps and smart contracts have, the trouble is that any programmer can write them - if they aren't written properly, they can behave in unintended ways and be exploited like in the above listed examples. Ethereum is still a very young network and security issues with dApps and smart contracts will have to be sorted out if its to reach its true aspirations. Leading The Decentralized Revolution “Ethereum aims to take the promise of decentralization, openness and security that is at the core of blockchain technology and brings it to almost anything that can be computed.” - Vitalik Buterin With dApps, smart contracts and blockchain technology, Ethereum is leading the decentralized revolution. Bitcoin is the world's first decentralized currency, that operates on a global network of computers outside of central intermediaries. Ethereum gives programmers a platform to develop a decentralized version of just about anything. Decentralized networks like Ethereum have the power to remove the intermediaries that currently exist between producer and consumer. Let's take a company like Uber. Uber is a platform that brings people who need rides together with people who have cars. To facilitate this interaction, Uber collects 20% of every ride. With Ethereum and blockchain technology, there is nothing to prevent a bunch of software developers from writing a dApp that creates a decentralized Uber. Instead of 20% per ride, transaction fees are paid to the network and the driver takes home the lions share of the transaction. Tokens can be issued that represent ownership in the network. Coders who work on improving the network can get paid for their efforts in ownership tokens. Non-technical people can come up with marketing campaigns that spread awareness for the network and also get compensated in ownership tokens. As the decentralized Uber network grows and improves, the value of its ownership token increases, rewarding the people that built it. The result is whats referred to as a "Decentralized Autonomous Organization" and theres a strong possibility that DAOs replace a lot of the world's biggest corporations. This may sound like a radical concept but blockchain technology enables these kinds of decentralized organizations to exist - Ethereum provides the tools for people to go out and build them.
Vitalik's Tweet Storm - History and state of Ethereum's Casper research
His tweet here Today I am going to make a tweet storm explaining the history and state of Ethereum's Casper research, including the FFG vs CBC wars, the hybrid => full switch, the role of randomness, mechanism design issues, and more. Ethereum proof of stake research began in Jan 2014 with Slasher Though the algorithm is highly suboptimal, it introduced some important ideas, most particularly the use of penalties to solve the nothing at stake problem. That said, the penalties that I used were very small, only canceling out signing rewards. Vlad Zamfir joined in mid-2014, and he quickly moved toward requiring validators to put down deposits, much larger in size than rewards, that could be taken away for misbehavior. Here's Vlad's retelling We spent much of late 2014 trying to deal with "long range attacks", where attackers withdraw their stake from deposits on the main chain, and use it to create an alternate "attack chain" with more signatures than the main chain, that they could fool clients into switching to. If the attack chain diverges from the main chain at a fairly recent point in time, this is not a problem, because if validators sign two conflicting messages for the two conflicting chains this can be used as evidence to penalize them and take away their deposits. But if the divergence happened long ago (hence, long range attack), attackers could withdraw their deposits, preventing penalties on either chain. We eventually decided that long range attacks are unavoidable for pretty much the reasons PoW proponents say. However, we did not accept their conclusions. We realized that we could deal with long range attacks by introducing an additional security assumption: that clients log on at least once every four months (and deposits take four months to withdraw), and clients simply refuse to revert further than that. This was anathema to PoW proponents because it feels like a trust assumption: you need to get the blockchain from some trusted source when you sync for the first time. But to us dirty subjectivists, it did not seem like a big deal; you need some trusted source to tell you what the consensus rules of the blockchain are in any case (and don't forget software updates), so the additional trust required by this PoS assumption is not large. Here's Vlad's retelling Now that we settled on deposits and penalties, we had to decide what those deposits and penalties are. We knew that we wanted an "economic finality" property, where validators would sign on blocks in such a way that once a block was "finalized", no conflicting block could be finalized without a large portion of validators having to sign messages that conflict with their earlier messages in a way that the blockchain could detect, and hence penalize. I went on a big long, and ultimately unproductive, tangent on a direction I called "consensus by bet Consensus by bet was an interesting construction where validators would make bets on which block would be finalized, and the bets themselves determined which chain the consensus would favor. The theory was that PoW also has this property, as mining is a bet where if you bet on the right chain, you gain (reward - mining cost), and if you bet on the wrong chain, you lose the mining cost, except with PoS we could push the odds on the bets much higher. The odds on validators' bets would start off low, but as validators saw each other getting more and more confident about a block, everyone's odds would rise exponentially, in parallel, until eventually they would bet their entire deposits on a block. This would be "finality". In the meantime, Vlad started heavily researching mechanism design, particularly with an eye to making Casper more robust against oligopolies, and we also started looking at consensus algorithms inspired by traditional byzantine fault tolerance theory, such as Tendermint. Vlad decided that traditional BFT was lame (he particularly disliked hard thresholds, like the 2/3 in PBFT and Tendermint), and he would try to effectively reinvent BFT theory from scratch, using an approach that he called "Correct by Construction" (CBC). In Vlad's own words The correct-by-construction philosophy is very different from traditional BFT, in that "finality" is entirely subjective. In CBC philosophy, validators sign messages, and if they sign a message that conflicts with their earlier message they have to submit a "justification" proving that, in the relevant sense, the new thing they are voting for "has more support" than the old thing they were voting for, and so they have a right to switch to it. To detect finality, clients look for patterns of messages that prove that the majority of validators is reliably voting for some block B in such a way that there is no way they can switch away from B without a large fraction of validators "illegally" switching their votes. For example, if everyone votes for B, then everyone votes on a block that contains everyone's votes for B, that proves that they support B and are aware that everyone else supports B, and so they would have no legitimate cause for switching to something other than B. I eventually gave up on consensus-by-bet because the approach seemed too fundamentally risky, and so I switched back to trying to understand how algorithms like PBFT work. It took a while, but after a few months I figured it out. I managed to simplify PBFT and translate it into the blockchain context, describing it as four "slashing conditions", rules that state what combinations of messages are self-contradictory and therefore illegal if a block is finalized, then there is no way for a conflicting block to get finalized without >= 1/3 violating a slashing condition (ii) if a block is finalized, 2/3 honest validators can always cooperate to finalize a new block. So the algorithm can neither "go back on its word" nor "get stuck" as long as > 2/3 are honest. I eventually simplified the minimal slashing conditions down from four to two, and from there came Casper the Friendly Finality Gadget (FFG), which is designed to be usable as an overlay on top of any PoW or PoS or other blockchain to add finality guarantees. Finality is a very significant advancement: once a block is finalized, it is secure regardless of network latency (unlike confirmations in PoW), and reverting the block requires >= 1/3 of validators to cheat in a way that's detectable and can be used to destroy their deposits. Hence, the cost of reverting finality can run into the billions of dollars. The Casper CBC and Casper FFG approaches both achieve this, though in technically different ways. Note that Casper CBC and Casper FFG are both "overlays" that need to be applied on top of some existing fork choice rule, though the abstractions work in different ways. In simplest terms, in Casper CBC the finality overlay adapts to the fork choice rule, whereas in Casper FFG the fork choice rule adapts to the finality overlay. Vlad's initial preference for the fork choice rule was "latest message-driven GHOST", an adaptation of GHOST to proof of stake, and my initial preference was to start off with hybrid PoS, using proof of work as the base fork choice rule. In the initial version of Casper FFG, proof of work would "run" the chain block-by-block, and the proof of stake would follow close behind to finalize blocks. Casper CBC was full proof of stake from the start. At the same time, Vlad and I were both coming up with our own respective schools of thought on the theory of consensus incentivization. Here, a very important distinction is between uniquely attributable faults, where you can tell who was responsible and so can penalize them, and non-uniquely attributable faults, where one of multiple parties could have caused the fault. The classic case of a non-uniquely-attributable fault is going offline vs censorship, also called "speaker-listener fault equivalence". Penalizing uniquely attributable faults (eg. Casper FFG slashing conditions) is easy. Penalizing non-unquely-attributable faults is hard. What if you can't tell if blocks stopped finalizing because a minority went offline or because a majority is censoring the minority? There are basically 3 schools of thought on this issue:
1 Penalize both sides a little
2 Penalize both sides hard (Vlad's preference)
3 Split the chain into two, penalize one side on each chain, and let the market decide which chain is more valuable (my preference). Or, in my words
In November 2017, the Casper FFG slashing conditions, plus my ideas for solving "the 1/3 go offline" problem through a "quadratic leak" mechanism, became a paper . Of course, I was well aware that appealing to the social layer to solve 51% attacks was not a very nice thing to do, so I started looking for ways to at least allow online clients to automatically detect which chain is "legitimate" and which is the "attack" in real time. Here is one of my earlier ideas It was something, but still suboptimal; unless network latency was exactly zero, there was only a guarantee that clients' suspicion scores would differ by at most delta, not that clients would fully agree In the meantime, my main criticism of Vlad's model had to do with "discouragement attacks", where attackers could credibly threaten to make a 51% attack that causes everyone to lose money, thereby driving everyone else to drop out, thus dominating the chain at near-zero cost. Vlad (along with Georgios Piliouras) started doing economic modeling to estimate the actual cost of such an attack under his model. It's worth noting here that all of these issues are not unique to proof of stake. In fact, in proof of work, people tend to simply give up and assume preventing 51% attacks is outright impossible, and a 51% attack is a doomsday that must be prevented at all costs. But, as is the Ethereum tradition, Vlad and I were both unaware that the word "ambitious" can be anything but a compliment, and kept on working on our separate approaches to disincentivizing, mitigating and recovering from 51% attacks. In early 2018, Vlad's work on CBC started to move forward quickly, with great progess on safety proofs. For the state of progress in March 2018, see this epic two-hour presentation In the meantime, Casper FFG was making huge progress. A decision to implement it as a contract that would be published to the Ethereum blockchain made development easy. On Dec 31, 2017 at 23:40, we released a testnet written in python Unfortunately, development of FFG then slowed down. The decision to implement FFG as a contract made some things easier, but it made other things harder, and it also meant that the eventual switch from EVM to EWASM, and single-chain Casper to sharded Casper, would be harder. In addition, the team's work was being split between "main chain Casper" and "shard chain Casper" and it was clear there was enormous unneeded duplication of effort going on between the Casper and sharding teams. In June 2018, we made the fateful decision to scrap "hybrid Casper FFG as a contract", and instead pursue full Casper as an independent chain, designed in such a way that integrating sharding would be much easier. The switch to full proof of stake led me to start thinking much harder about proof of stake fork choice rules. Casper FFG (and CBC) both require the entire validator set to vote in every "epoch" to finalize blocks, meaning there would be tens to hundreds of signatures coming in every second. BLS signature aggregation makes this practical in terms of computational overhead but I wanted to try to take advantage of all of these extra signatures to make the chain much more "stable", getting "100 confirmations" worth of security within a few seconds. Here were my initial attempts However, all of these approaches to the fork choice rule had a weakness: they split up validators into "attesters" and "proposers", and the proposers, being the key drivers of block production, had outsized power. This was undesirable, primarily because it required us to have a strong source of on-chain random number generation to fairly pick the proposers. And on-chain randomness is hard, with simple approaches like RANDAO looking more and more problematic Justin Drake and I went off to solve this problem in two ways, Justin by using verifiable delay functions which have a deterministic and verifiable output, but take a large amount of unparallelizable sequential time to compute, making manipulation ahead of time impossible and myself by making a major concession to the Cult of Vlad™, using GHOST-based fork choice rules to greatly reduce the dependence on proposers, allowing the chain to grow uninterrupted even if >90% of proposers are malicious, as long as >50% of attesters are friendly. Vlad was very happy, though not fully: he preferred a version of GHOST based on validators' latest messages, whereas I preferred a version based on immediate messages Around this time I also managed to come up with a way to "pipeline" Casper FFG, reducing time-to-finality from 2.5 epochs to the theoretically optimal 2 epochs: I was very happy that the RPJ fork choice rule (which I have since renamed "immediate message-driven GHOST") is nicely compatible with Casper FFG in a way that most others are not and that it has a very important "stability" property: that the fork choice is a good prediction of the future fork choice. This seems obvious, but is very easy to accidentally make fork choice rules that do not have this property. The most recent development of all is a result that latest message driven GHOST may, due to a technicality, only give 25% fault tolerance within two rounds, but immediate driven message GHOST (with FFG or CBC) still gives the full 33% (no writeup yet). The main tradeoff between FFG and CBC is that CBC seems to have nicer theoretical properties, but FFG seems to be easier to implement. In the meantime, a lot of progress on verifiable delay functions has been made Also, I recently decided to look into Leslie Lamport's old 1982 paper, where he had a consensus algorithm that has 99% fault tolerance if you add the assumption that all nodes, including observers, are online with low network latency The network latency assumptions arguably make this unsuitable as a primary consensus algorithm. However, there is one use case where it works really well: as a substitute for suspicion scores for 51% censorship detection. Basically, if a 51% coalition starts censoring blocks, other validators and clients can detect that this is happening and use the 99% fault tolerant consensus to agree that this is happening and coordinate a minority fork. The long-run goal of this research is to reduce reliance on the social layer as much as possible, and maximizing the cost of destabilizing the chain enough so that reverting to the social layer is necessary. What's left now? On the FFG side, formal proofs, refinements to the specification, and ongoing progress on implementation (already started by >=3 teams!), with an eye to safe and speedy deployment. On the CBC side, much of the same. Onward and upward!
I tried to mine some Bitcoins and I think I might have unglued the fabric of the universe.
A little help? I’m a research assistant working at a science facility in China. We’ve got one of the most powerful supercomputers in the world. We had to power it down a few months back to do some upgrades, and we’ve got a skeleton crew until it’s all done. Last night, my friend Chen and I were the only ones on the overnight shift. The majority of the hardware was up and running and we were supposed to be stress testing the nodes. We had software we were required to run, but I had the bright idea to mine Bitcoins to test it instead. God knows those calculations can stress your hardware. It didn’t take much convincing to get Chen on board with the idea. If we could make a little extra money on the side from our endeavor, it was that much better. Besides, we could run the regular software after. Chen downloaded the blockchain, installed everything, and we started processing. Lo and behold, BTC fractions started rolling in. It was way faster than either of us had expected. After an hour, we’d made a couple hundred USD. This supercomputer is something else. Adiabatic quantum emulation, baby. Not quite full QC, but close enough where it matters. When the upgrades go public, you’ll know what I’m talking about. All that said...I think we fucked something up. We were well on our way to our first thousand USD when Chen noticed one of the temperature gauges on a series of node clusters had reached a critical level. Now, each node is set to shut down automatically if anything is running in a manner that might damage the hardware. When stress testing, it’s expected that temperatures will get high enough to cause warnings. The weird thing was, the warning wasn’t because the temperature was too high. It was too low. We both looked at the screen with a good deal of confusion. All the nodes were pegging near their maximum temperatures except a cluster in the very rear corner of the football-field-sized room. “Are those nodes on?” I asked Chen. He nodded. “Yeah, they’re doing just as much work as all the other ones. They should be hot.” “Maybe the gauges are fucked?” “Maybe. I’ll go take a look.” Chen grabbed a walkie-talkie and started the long walk from the office to the far-end of the supercomputer room. I watched the screen readouts with interest. The temperature in that area kept dropping. Another few degrees and the nodes would power down. “It’s fuckin freezing in here,” Chen complained over the walkie-talkie. “You worked in a datacenter for six years, retard,” I replied. “You know it’s supposed to be cold.” “I know, dick. But this is different. Like I think something’s really wrong. There’s frost on the floor.” I took another look at the readouts. Despite the supercomputer operating at 99.997% capacity, all the temperature gauges had started to drop. A flash of red showed up on screen. The first nodes to be affected by the cold had shut down. “Keung, you need to come in here,” Chen said. “Why, what’s up?” “Just come see. And shut down the mining for a minute.” Chen paused. “And bring your jacket.” I gazed lustfully at the BTC readout. $2443 already. I sighed and hit pause. I went to grab my jacket and decided against it. I wanted to call Chen a pussy for being cold. After three steps into the supercomputer room, I realized Chen was not a pussy. Or that we both were pussies. Either way, it was fucking freezing in there. “Holy shit!” Chen yelled. I broke into a jog and met him on the far end of the cavernous room. “What?” I asked. I shivered and balled my fists under my armpits. Chen pointed. I followed his finger with my eyes and squinted to see better in the dimness. It took a second, but then I saw it. Hugging the wall around the corner from a server rack was...well...a hole. “What the fuck?” I muttered. I took a step closer. The cold was borderline unbearable. It was definitely coming from the bizarre opening. Frigid wind washed over us and forced us to step back. On the other side of the hole, there was gray, stony ground and pitch black sky dotted with stars. “What did we just do?” Chen asked. “Did we cause this to happen?” I replied. “Like what the fuck is going on?” The hole was closing. I think Chen was about to respond, but before he could, some...thing... emerged from the hole. We both shrieked and leapt back. Chen fell into the back of one of the racks and I heard a piece of equipment snap. I didn’t care about that. My eyes were trained on whatever had just come out. It was dull red and shaped like, oh hell, I don’t know, a mix between a pineapple and a crocodile with eye stalks all over its back. Chen and I, our breaths held, tried to back away to avoid its attention. The creature’s eye stalks waved around in the air, as if trying to figure out what had happened. Behind it, the hole closed. I grabbed the back of Chen’s shirt and pulled him to his feet. The thing’s stalks fixated on us. We stopped moving. It took a few steps in our direction on its six, pointy legs. Then it leapt forward. Onto Chen. Chen made a sound I’d only previously associated with cats fighting for their lives. He grasped the dog-sized thing and pushed it away. It crashed into a rack of machines. I pulled Chen away and we ran as fast as we could back to the control room. Despite my terror-induced tunnel vision, I didn’t fail to notice another hole in supercomputer room. This time in the ceiling. And another one of those things was coming out of it. Once we were out, we had no idea what to do. Chen wanted to call the head of the supercomputing project but I talked him out of it. That guy had connections to the Party and, technically, the whole project is a government-run operation. We’d be fucked beyond fucked. I helped bandage Chen’s wounds. Every so often, we’d catch a glimpse of one of the creatures in the monitors overlooking the supercomputer room. After a discussion, Chen and I left without telling anyone what we'd done. We didn’t go home because we knew people would be looking for us as soon as they discovered what had happened. We got in his car and drove for hours. Now we’re sitting in an internet cafe. The scratches on his hands and arms aren’t closing up. They’re getting puffy and itchy. He just told me he thinks he felt something move under his skin. Our phones wouldn’t stop ringing before I pulled out the SIMs and flushed them. Now we’re stuck here and we don’t know what to do. To say I’m concerned is a bit of an understatement. I’d really love some advice.
I'm Giving Away 0.5BTC to Whoever Finds My Lost Electrum Password
A little over a year ago, on 10/22/2016, the price of bitcoin was going up, and the size of the blockchain was growing like crazy, so I decided to transfer a 10.511 BTC wallet I had on a thumb drive from a Bitcoin Core wallet to Electrum (I knew I soon wouldn't have enough space on my HDD for the entire blockchain, which Core requires.) So I fired up Electrum, copied down the addresses, and transferred all 10.511 BTC. One minute later, my heart sank, and I realized what a complete moron I was - this was a wallet I had setup when i first installed Electrum a year earlier, and I had NO IDEA what the password or seed words were. So now I have 10.511 BTC stuck in an Electrum 2.8.3 (EDIT - I see 2.8.3 now, but that didn't even exist on 8/4/2015, so I must've upgraded at some point - SEE BELOW) wallet that I have no access to whatsoever. I've heard that there are people on bitcoin with cracking capabilities, so I wanted to give the community a shot. Here's how this will work. I've extracted partial-MPK data from the extract script I received from btcrecover, a popular password recovery program. With this, you can check passwords. Whoever posts or pm's me the correct password first (along with their receiving address) will receive 0.5 BTC from the following address - 1EoKwutew3rfmKbsNcmi53qMRe84v2Cj4H (one of the five addresses in this wallet that makes up the total 10.511 BTC) Electrum2 partial encrypted master private key, iv, and crc in base64: For use in btcrecover:
This was a "stupid password" that I made mainly just to get through the prompts so I could start exploring the program. It wasn't meant to be super complex. Other passwords i made around that time were "testtesttest" and "electrumpw", so it could be something stupid like that (this electrum wallet was created on 8/4/2015)
It is a password that, when typed into the btcrecover password box in the new wallet creation wizard, shows "Strong" or "Very Strong" in the complexity-indicator, directly below the password box (I wouldn't create a password if it said "weak" or "medium".)
I've already checked all passwords 7 characters or less, so its at least 8 characters. If i had to guess, I'd say its probably 8-16 characters max.
I almost never use capital letters.
I likely added something to the end of the lowercase a-z password to increase complexity. Here's a list of what I commonly add to the ends of passwords: 15 l;' ';l[po 1! !1
Or any of the following 6 characters:
1 ! ` ~ ' (backslash - reddit won't display it)
So those are about all the clues I have. I recommend someone trying a dictionary attack first, and then brute-forcing it. I promise, promise promise I will deliver 0.5BTC to whoever finds the password. I'm recovering 10BTC on top of that, so 0.5BTC is a reasonable price to pay for my idiotic mistake. Good luck, and Happy Holidays! . . . Edit: I will check back every few hours and try all the passwords posted - please don't take random guesses... use btcrecover or John The Ripper to find the actual password using the partial encrypted master private key, iv, and crc in base64 that I posted above (I have to check all these, after all...) Edit 2: Tried all the passwords posted in this thread until 1:34am EST. Going to bed for now, but will check back in the morning. EDIT 3: Some people are pointing out that the version doesn't make any sense, since 2.8.3 didn't exist when I created the wallet. You're, right, this version came out in 2017. I am sorry I got this wrong - I've been looking at Electrum 2.8.3 for the past year or so, as I've been trying to open this thing, so I assumed that was it, but its not. All I know is, I downloaded Electrum for the first time on this computer on 8/4/2015 at around 4am EST. Does anyone know what version that is? If its 1.X, PLEASE tell me so I can update the partial encrypted master private key above, as the one above I used an extract script for 2.X!!! EDIT 4: I'm 99% certain you will find the password if you brute force lowercase letters a-z, after removing some "non-interesting" letters like z,q, etc. Its just about which letters to guess. The ONLY numbers that could POSSIBLY be at the end are "15". So either it ends in 15 or it doesn't, there's no way I'd use any other numbers. So please, whoever has access to a large bank of CPU's, PLEASE try using btcrecover (or better yet, JTR) to try a-z, minus some less-popular characters. Possibly the letters ""a b c d e f i k l m n o r s t w y", but I could be missing some. Also, PLEASE POST YOUR BITCOIN ADDRESS ALONG WITH YOUR ANSWER! I will send you coins from 1EoKwutew3rfmKbsNcmi53qMRe84v2Cj4H, one of the addresses in the locked wallet. Finally, I just want to be clear - I will give the 0.5 BTC reward to whoever helps me open this wallet - whether they figured out some crazy technical workaround, find the password itself, or gave me hints that allowed me to discover the password myself, whoever helps me unlock these funds first will be rewarded. EDIT 5: Some people are curious as to whether this is indeed my wallet. Yes, it is: the first 0.1BTC I sent to the wallet on 8/4/2015 was sent directly to this wallet from my Coinbase account. Proof: https://imgur.com/a/zsjZw EDIT 6 - MAKING PROGRESS BABY! If you're using btcrecover, please put this in your token file:
Add as many lines as you think there are digits (probably 9-12), remembering to change the number of the line in the beginning, and change the group of letters that you think might be included in the pw. THE LESS LETTERS YOU INCLUDE, THE GREATER THE LENGTH YOU CAN CHECK. Please remember to add the tags "--no-eta" and "--no-dupchecks" so you don't run out of memory. Unfortunately my machine can only do 600kP/s, so I can't find it myself, but someone with access to a lot of servers can probably find the password very quickly!!! EDIT 7 - Making a bit of progress, very very slowly. Here's an important clue: when I created this wallet, which, remember, was the very first Electrum wallet I ever created, I would have made sure to add enough complexity so that the complexity meter below the password input box says "Strong". I would've never clicked Continue if the complexity-indicator said I "Weak" or "Medium". So if there's some way to ignore ALL "Weak" or "Medium" passwords, that could speed up the search significantly. It looks like if you use just lowercase a-z, when you add a single "!" at the end for increased complexity, the minimum total characters that gets you a "Strong" password is 12 ((a-z)x11 + "!"). Nobody's been searching for this quite yet, because 11 characters is a lot, and it could be more. The only way I see this happening is if you do a hybrid dictionary+brute force attack, of if you substantially cut down on the number of letters tested by eliminating "uninteresting" letters like q, z, v, x, etc. Based on everything, I think the total is at least 12 characters, but no more than 16, and contains a special character at the end (such as !, 1, ~, (~ if you don't hold shift, reddit won't display it), ', or \ - these are the 6 special characters I usually use by themselves at the end of a password - ' and \ because they're right next to Enter on a standard US keyboard, and ! or 1 (or !1 or 1! together) or ` or ~ because they're my go-to's). I've also looked through my photo archive from that time period and found a DIFFERENT seed for a wallet I made on Aug. 18th, 2015 (crunch sunny range evoke rapid use bubble gloom pill gossip blanket tired accident - there's about 3 bucks in there for whoever wants it). The password for this wallet was originally "testtesttest". EDIT 8 - Still no password as of 12/12/2017, and this will be my last edit. If you find the password, PM me. EDIT 9 - I will update this page as soon as the password is found. If you are seeing this message, it means the password has not yet been found.
Transcript of the community Q&A with Steve Shadders and Daniel Connolly of the Bitcoin SV development team. We talk about the path to big blocks, new opcodes, selfish mining, malleability, and why November will lead to a divergence in consensus rules. (Cont in comments)
We've gone through the painstaking process of transcribing the linked interview with Steve Shadders and Daniell Connolly of the Bitcoin SV team. There is an amazing amount of information in this interview that we feel is important for businesses and miners to hear, so we believe it was important to get this is a written form. To avoid any bias, the transcript is taken almost word for word from the video, with just a few changes made for easier reading. If you see any corrections that need to be made, please let us know. Each question is in bold, and each question and response is timestamped accordingly. You can follow along with the video here: https://youtu.be/tPImTXFb_U8
Connor: 02:19.68,0:02:45.10 Alright so thank You Daniel and Steve for joining us. We're joined by Steve Shadders and Daniel Connolly from nChain and also the lead developers of the Satoshi’s Vision client. So Daniel and Steve do you guys just want to introduce yourselves before we kind of get started here - who are you guys and how did you get started? Steve: 0,0:02:38.83,0:03:30.61
So I'm Steve Shadders and at nChain I am the director of solutions in engineering and specifically for Bitcoin SV I am the technical director of the project which means that I'm a bit less hands-on than Daniel but I handle a lot of the liaison with the miners - that's the conditional project.
Hi I’m Daniel I’m the lead developer for Bitcoin SV. As the team's grown that means that I do less actual coding myself but more organizing the team and organizing what we’re working on.
Connor 03:23.07,0:04:15.98 Great so we took some questions - we asked on Reddit to have people come and post their questions. We tried to take as many of those as we could and eliminate some of the duplicates, so we're gonna kind of go through each question one by one. We added some questions of our own in and we'll try and get through most of these if we can. So I think we just wanted to start out and ask, you know, Bitcoin Cash is a little bit over a year old now. Bitcoin itself is ten years old but in the past a little over a year now what has the process been like for you guys working with the multiple development teams and, you know, why is it important that the Satoshi’s vision client exists today? Steve: 0:04:17.66,0:06:03.46
I mean yes well we’ve been in touch with the developer teams for quite some time - I think a bi-weekly meeting of Bitcoin Cash developers across all implementations started around November last year. I myself joined those in January or February of this year and Daniel a few months later. So we communicate with all of those teams and I think, you know, it's not been without its challenges. It's well known that there's a lot of disagreements around it, but some what I do look forward to in the near future is a day when the consensus issues themselves are all rather settled, and if we get to that point then there's not going to be much reason for the different developer teams to disagree on stuff. They might disagree on non-consensus related stuff but that's not the end of the world because, you know, Bitcoin Unlimited is free to go and implement whatever they want in the back end of a Bitcoin Unlimited and Bitcoin SV is free to do whatever they want in the backend, and if they interoperate on a non-consensus level great. If they don't not such a big problem there will obviously be bridges between the two, so, yeah I think going forward the complications of having so many personalities with wildly different ideas are going to get less and less.
Cory: 0:06:00.59,0:06:19.59 I guess moving forward now another question about the testnet - a lot of people on Reddit have been asking what the testing process for Bitcoin SV has been like, and if you guys plan on releasing any of those results from the testing? Daniel: 0:06:19.59,0:07:55.55
Sure yeah so our release will be concentrated on the stability, right, with the first release of Bitcoin SV and that involved doing a large amount of additional testing particularly not so much at the unit test level but at the more system test so setting up test networks, performing tests, and making sure that the software behaved as we expected, right. Confirming the changes we made, making sure that there aren’t any other side effects. Because of, you know, it was quite a rush to release the first version so we've got our test results documented, but not in a way that we can really release them. We're thinking about doing that but we’re not there yet.
Just to tidy that up - we've spent a lot of our time developing really robust test processes and the reporting is something that we can read on our internal systems easily, but we need to tidy that up to give it out for public release. The priority for us was making sure that the software was safe to use. We've established a test framework that involves a progression of code changes through multiple test environments - I think it's five different test environments before it gets the QA stamp of approval - and as for the question about the testnet, yeah, we've got four of them. We've got Testnet One and Testnet Two. A slightly different numbering scheme to the testnet three that everyone's probably used to – that’s just how we reference them internally. They're [1 and 2] both forks of Testnet Three. [Testnet] One we used for activation testing, so we would test things before and after activation - that one’s set to reset every couple of days. The other one [Testnet Two] was set to post activation so that we can test all of the consensus changes. The third one was a performance test network which I think most people have probably have heard us refer to before as Gigablock Testnet. I get my tongue tied every time I try to say that word so I've started calling it the Performance test network and I think we're planning on having two of those: one that we can just do our own stuff with and experiment without having to worry about external unknown factors going on and having other people joining it and doing stuff that we don't know about that affects our ability to baseline performance tests, but the other one (which I think might still be a work in progress so Daniel might be able to answer that one) is one of them where basically everyone will be able to join and they can try and mess stuff up as bad as they want.
Yeah, so we so we recently shared the details of Testnet One and Two with the with the other BCH developer groups. The Gigablock test network we've shared up with one group so far but yeah we're building it as Steve pointed out to be publicly accessible.
Connor: 0:10:18.88,0:10:44.00 I think that was my next question I saw that you posted on Twitter about the revived Gigablock testnet initiative and so it looked like blocks bigger than 32 megabytes were being mined and propagated there, but maybe the block explorers themselves were coming down - what does that revived Gigablock test initiative look like? Daniel: 0:10:41.62,0:11:58.34
That's what did the Gigablock test network is. So the Gigablock test network was first set up by Bitcoin Unlimited with nChain’s help and they did some great work on that, and we wanted to revive it. So we wanted to bring it back and do some large-scale testing on it. It's a flexible network - at one point we had we had eight different large nodes spread across the globe, sort of mirroring the old one. Right now we scaled back because we're not using it at the moment so they'll notice I think three. We have produced some large blocks there and it's helped us a lot in our research and into the scaling capabilities of Bitcoin SV, so it's guided the work that the team’s been doing for the last month or two on the improvements that we need for scalability.
I think that's actually a good point to kind of frame where our priorities have been in kind of two separate stages. I think, as Daniel mentioned before, because of the time constraints we kept the change set for the October 15 release as minimal as possible - it was just the consensus changes. We didn't do any work on performance at all and we put all our focus and energy into establishing the QA process and making sure that that change was safe and that was a good process for us to go through. It highlighted what we were missing in our team – we got our recruiters very busy recruiting of a Test Manager and more QA people. The second stage after that is performance related work which, as Daniel mentioned, the results of our performance testing fed into what tasks we were gonna start working on for the performance related stuff. Now that work is still in progress - some of the items that we identified the code is done and that's going through the QA process but it’s not quite there yet. That's basically the two-stage process that we've been through so far. We have a roadmap that goes further into the future that outlines more stuff, but primarily it’s been QA first, performance second. The performance enhancements are close and on the horizon but some of that work should be ongoing for quite some time.
Some of the changes we need for the performance are really quite large and really get down into the base level view of the software. There's kind of two groups of them mainly. One that are internal to the software – to Bitcoin SV itself - improving the way it works inside. And then there's other ones that interface it with the outside world. One of those in particular we're working closely with another group to make a compatible change - it's not consensus changing or anything like that - but having the same interface on multiple different implementations will be very helpful right, so we're working closely with them to make improvements for scalability.
Connor: 0:14:32.60,0:15:26.45 Obviously for Bitcoin SV one of the main things that you guys wanted to do that that some of the other developer groups weren't willing to do right now is to increase the maximum default block size to 128 megabytes. I kind of wanted to pick your brains a little bit about - a lot of the objection to either removing the box size entirely or increasing it on a larger scale is this idea of like the infinite block attack right and that kind of came through in a lot of the questions. What are your thoughts on the “infinite block attack” and is it is it something that that really exists, is it something that miners themselves should be more proactive on preventing, or I guess what are your thoughts on that attack that everyone says will happen if you uncap the block size? Steve: 0:15:23.45,0:18:28.56
I'm often quoted on Twitter and Reddit - I've said before the infinite block attack is bullshit. Now, that's a statement that I suppose is easy to take out of context, but I think the 128 MB limit is something where there’s probably two schools of thought about. There are some people who think that you shouldn't increase the limit to 128 MB until the software can handle it, and there are others who think that it's fine to do it now so that the limit is increased when the software can handle it and you don’t run into the limit when this when the software improves and can handle it. Obviously we’re from the latter school of thought. As I said before we've got a bunch of performance increases, performance enhancements, in the pipeline. If we wait till May to increase the block size limit to 128 MB then those performance enhancements will go in, but we won't be able to actually demonstrate it on mainnet. As for the infinitive block attack itself, I mean there are a number of mitigations that you can put in place. I mean firstly, you know, going down to a bit of the tech detail - when you send a block message or send any peer to peer message there's a header which has the size of the message. If someone says they're sending you a 30MB message and you're receiving it and it gets to 33MB then obviously you know something's wrong so you can drop the connection. If someone sends you a message that's 129 MB and you know the block size limit is 128 you know it’s kind of pointless to download that message. So I mean these are just some of the mitigations that you can put in place. When I say the attack is bullshit, I mean I mean it is bullshit from the sense that it's really quite trivial to prevent it from happening. I think there is a bit of a school of thought in the Bitcoin world that if it's not in the software right now then it kind of doesn't exist. I disagree with that, because there are small changes that can be made to work around problems like this. One other aspect of the infinite block attack, and let’s not call it the infinite block attack, let's just call it the large block attack - it takes a lot of time to validate that we gotten around by having parallel pipelines for blocks to come in, so you've got a block that's coming in it's got a unknown stuck on it for two hours or whatever downloading and validating it. At some point another block is going to get mined b someone else and as long as those two blocks aren't stuck in a serial pipeline then you know the problem kind of goes away.
Cory: 0:18:26.55,0:18:48.27 Are there any concerns with the propagation of those larger blocks? Because there's a lot of questions around you know what the practical size of scaling right now Bitcoin SV could do and the concerns around propagating those blocks across the whole network. Steve 0:18:45.84,0:21:37.73
Yes, there have been concerns raised about it. I think what people forget is that compact blocks and xThin exist, so if a 32MB block is not send 32MB of data in most cases, almost all cases. The concern here that I think I do find legitimate is the Great Firewall of China. Very early on in Bitcoin SV we started talking with miners on the other side of the firewall and that was one of their primary concerns. We had anecdotal reports of people who were having trouble getting a stable connection any faster than 200 kilobits per second and even with compact blocks you still need to get the transactions across the firewall. So we've done a lot of research into that - we tested our own links across the firewall, rather CoinGeeks links across the firewall as they’ve given us access to some of their servers so that we can play around, and we were able to get sustained rates of 50 to 90 megabits per second which pushes that problem quite a long way down the road into the future. I don't know the maths off the top of my head, but the size of the blocks that can sustain is pretty large. So we're looking at a couple of options - it may well be the chattiness of the peer-to-peer protocol causes some of these issues with the Great Firewall, so we have someone building a bridge concept/tool where you basically just have one kind of TX vacuum on either side of the firewall that collects them all up and sends them off every one or two seconds as a single big chunk to eliminate some of that chattiness. The other is we're looking at building a multiplexer that will sit and send stuff up to the peer-to-peer network on one side and send it over splitters, to send it over multiple links, reassemble it on the other side so we can sort of transition the great Firewall without too much trouble, but I mean getting back to the core of your question - yes there is a theoretical limit to block size propagation time and that's kind of where Moore's Law comes in. Putting faster links and you kick that can further down the road and you just keep on putting in faster links. I don't think 128 main blocks are going to be an issue though with the speed of the internet that we have nowadays.
Connor: 0:21:34.99,0:22:17.84 One of the other changes that you guys are introducing is increasing the max script size so I think right now it’s going from 201 to 500 [opcodes]. So I guess a few of the questions we got was I guess #1 like why not uncap it entirely - I think you guys said you ran into some concerns while testing that - and then #2 also specifically we had a question about how certain are you that there are no remaining n squared bugs or vulnerabilities left in script execution? Steve: 0:22:15.50,0:25:36.79
It's interesting the decision - we were initially planning on removing that cap altogether and the next cap that comes into play after that (next effective cap is a 10,000 byte limit on the size of the script). We took a more conservative route and decided to wind that back to 500 - it's interesting that we got some criticism for that when the primary criticism I think that was leveled against us was it’s dangerous to increase that limit to unlimited. We did that because we’re being conservative. We did some research into these log n squared bugs, sorry – attacks, that people have referred to. We identified a few of them and we had a hard think about it and thought - look if we can find this many in a short time we can fix them all (the whack-a-mole approach) but it does suggest that there may well be more unknown ones. So we thought about putting, you know, taking the whack-a-mole approach, but that doesn't really give us any certainty. We will fix all of those individually but a more global approach is to make sure that if anyone does discover one of these scripts it doesn't bring the node to a screaming halt, so the problem here is because the Bitcoin node is essentially single-threaded, if you get one of these scripts that locks up the script engine for a long time everything that's behind it in the queue has to stop and wait. So what we wanted to do, and this is something we've got an engineer actively working on right now, is once that script validation goad path is properly paralyzed (parts of it already are), then we’ll basically assign a few threads for well-known transaction templates, and a few threads for any any type of script. So if you get a few scripts that are nasty and lock up a thread for a while that's not going to stop the node from working because you've got these other kind of lanes of the highway that are exclusively reserved for well-known script templates and they'll just keep on passing through. Once you've got that in place, and I think we're in a much better position to get rid of that limit entirely because the worst that's going to happen is your non-standard script pipelines get clogged up but everything else will keep keep ticking along - there are other mitigations for this as well I mean I know you could always put a time limit on script execution if they wanted to, and that would be something that would be up to individual miners. Bitcoin SV's job I think is to provide the tools for the miners and the miners can then choose, you know, how to make use of them - if they want to set time limits on script execution then that's a choice for them.
Yeah, I'd like to point out that a node here, when it receives a transaction through the peer to peer network, it doesn't have to accept that transaction, you can reject it. If it looks suspicious to the node it can just say you know we're not going to deal with that, or if it takes more than five minutes to execute, or more than a minute even, it can just abort and discard that transaction, right. The only time we can’t do that is when it's in a block already, but then it could decide to reject the block as well. It's all possibilities there could be in the software.
Yeah, and if it's in a block already it means someone else was able to validate it so…
Cory: 0,0:26:21.21,0:26:43.60 There’s a lot of discussions about the re-enabled opcodes coming – OP_MUL, OP_INVERT, OP_LSHIFT, and OP_RSHIFT up invert op l shift and op r shift you maybe explain the significance of those op codes being re-enabled? Steve: 0:26:42.01,0:28:17.01
Well I mean one of one of the most significant things is other than two, which are minor variants of DUP and MUL, they represent almost the complete set of original op codes. I think that's not necessarily a technical issue, but it's an important milestone. MUL is one that's that I've heard some interesting comments about. People ask me why are you putting OP_MUL back in if you're planning on changing them to big number operations instead of the 32-bit limit that they're currently imposed upon. The simple answer to that question is that we currently have all of the other arithmetic operations except for OP_MUL. We’ve got add divide, subtract, modulo – it’s odd to have a script system that's got all the mathematical primitives except for multiplication. The other answer to that question is that they're useful - we've talked about a Rabin signature solution that basically replicates the function of DATASIGVERIFY. That's just one example of a use case for this - most cryptographic primitive operations require mathematical operations and bit shifts are useful for a whole ton of things. So it's really just about completing that work and completing the script engine, or rather not completing it, but putting it back the way that it was it was meant to be.
Connor 0:28:20.42,0:29:22.62 Big Num vs 32 Bit. I've seen Daniel - I think I saw you answer this on Reddit a little while ago, but the new op codes using logical shifts and Satoshi’s version use arithmetic shifts - the general question that I think a lot of people keep bringing up is, maybe in a rhetorical way but they say why not restore it back to the way Satoshi had it exactly - what are the benefits of changing it now to operate a little bit differently? Daniel: 0:29:18.75,0:31:12.15
Yeah there's two parts there - the big number one and the L shift being a logical shift instead of arithmetic. so when we re-enabled these opcodes we've looked at them carefully and have adjusted them slightly as we did in the past with OP_SPLIT. So the new LSHIFT and RSHIFT are bitwise operators. They can be used to implement arithmetic based shifts - I think I've posted a short script that did that, but we can't do it the other way around, right. You couldn't use an arithmetic shift operator to implement a bitwise one. It's because of the ordering of the bytes in the arithmetic values, so the values that represent numbers. The little endian which means they're swapped around to what many other systems - what I've considered normal - or big-endian. And if you start shifting that properly as a number then then shifting sequence in the bytes is a bit strange, so it couldn't go the other way around - you couldn't implement bitwise shift with arithmetic, so we chose to make them bitwise operators - that's what we proposed.
That was essentially a decision that was actually made in May, or rather a consequence of decisions that were made in May. So in May we reintroduced OP_AND, OP_OR, and OP_XOR, and that was also another decision to replace three different string operators with OP_SPLIT was also made. So that was not a decision that we've made unilaterally, it was a decision that was made collectively with all of the BCH developers - well not all of them were actually in all of the meetings, but they were all invited.
Another example of that is that we originally proposed OP_2DIV and OP_2MUL was it, I think, and this is a single operator that multiplies the value by two, right, but it was pointed out that that can very easily be achieved by just doing multiply by two instead of having a separate operator for it, so we scrapped those, we took them back out, because we wanted to keep the number of operators minimum yeah.
There was an appetite around for keeping the operators minimal. I mean the decision about the idea to replace OP_SUBSTR, OP_LEFT, OP_RIGHT with OP_SPLIT operator actually came from Gavin Andresen. He made a brief appearance in the Telegram workgroups while we were working out what to do with May opcodes and obviously Gavin's word kind of carries a lot of weight and we listen to him. But because we had chosen to implement the May opcodes (the bitwise opcodes) and treat the data as big-endian data streams (well, sorry big-endian not really applicable just plain data strings) it would have been completely inconsistent to implement LSHIFT and RSHIFT as integer operators because then you would have had a set of bitwise operators that operated on two different kinds of data, which would have just been nonsensical and very difficult for anyone to work with, so yeah. I mean it's a bit like P2SH - it wasn't a part of the original Satoshi protocol that once some things are done they're done and you know if you want to want to make forward progress you've got to work within that that framework that exists.
When we get to the big number ones then it gets really complicated, you know, number implementations because then you can't change the behavior of the existing opcodes, and I don't mean OP_MUL, I mean the other ones that have been there for a while. You can't suddenly make them big number ones without seriously looking at what scripts there might be out there and the impact of that change on those existing scripts, right. The other the other point is you don't know what scripts are out there because of P2SH - there could be scripts that you don't know the content of and you don't know what effect changing the behavior of these operators would mean. The big number thing is tricky, so another option might be, yeah, I don't know what the options for though it needs some serious thought.
That’s something we've reached out to the other implementation teams about - actually really would like their input on the best ways to go about restoring big number operations. It has to be done extremely carefully and I don't know if we'll get there by May next year, or when, but we’re certainly willing to put a lot of resources into it and we're more than happy to work with BU or XT or whoever wants to work with us on getting that done and getting it done safely.
Connor: 0:35:19.30,0:35:57.49 Kind of along this similar vein, you know, Bitcoin Core introduced this concept of standard scripts, right - standard and non-standard scripts. I had pretty interesting conversation with Clemens Ley about use cases for “non-standard scripts” as they're called. I know at least one developer on Bitcoin ABC is very hesitant, or kind of pushed back on him about doing that and so what are your thoughts about non-standard scripts and the entirety of like an IsStandard check? Steve: 0:35:58.31,0:37:35.73
I’d actually like to repurpose the concept. I think I mentioned before multi-threaded script validation and having some dedicated well-known script templates - when you say the word well-known script template there’s already a check in Bitcoin that kind of tells you if it's well-known or not and that's IsStandard. I'm generally in favor of getting rid of the notion of standard transactions, but it's actually a decision for miners, and it's really more of a behavioral change than it is a technical change. There's a whole bunch of configuration options that miners can set that affect what they do what they consider to be standard and not standard, but the reality is not too many miners are using those configuration options. So I mean standard transactions as a concept is meaningful to an arbitrary degree I suppose, but yeah I would like to make it easier for people to get non-standard scripts into Bitcoin so that they can experiment, and from discussions of I’ve had with CoinGeek they’re quite keen on making their miners accept, you know, at least initially a wider variety of transactions eventually.
So I think IsStandard will remain important within the implementation itself for efficiency purposes, right - you want to streamline base use case of cash payments through them and prioritizing. That's where it will remain important but on the interfaces from the node to the rest of the network, yeah I could easily see it being removed.
Cory: 0,0:38:06.24,0:38:35.46 *Connor mentioned that there's some people that disagree with Bitcoin SV and what they're doing - a lot of questions around, you know, why November? Why implement these changes in November - they think that maybe the six-month delay might not cause a split. Well, first off what do you think about the ideas of a potential split and I guess what is the urgency for November? Steve: 0:38:33.30,0:40:42.42
Well in November there's going to be a divergence of consensus rules regardless of whether we implement these new op codes or not. Bitcoin ABC released their spec for the November Hard fork change I think on August 16th or 17th something like that and their client as well and it included CTOR and it included DSV. Now for the miners that commissioned the SV project, CTOR and DSV are controversial changes and once they're in they're in. They can't be reversed - I mean CTOR maybe you could reverse it at a later date, but DSV once someone's put a P2SH transaction into the project or even a non P2SH transaction in the blockchain using that opcode it's irreversible. So it's interesting that some people refer to the Bitcoin SV project as causing a split - we're not proposing to do anything that anyone disagrees with - there might be some contention about changing the opcode limit but what we're doing, I mean Bitcoin ABC already published their spec for May and it is our spec for the new opcodes, so in terms of urgency - should we wait? Well the fact is that we can't - come November you know it's bit like Segwit - once Segwit was in, yes you arguably could get it out by spending everyone's anyone can spend transactions but in reality it's never going to be that easy and it's going to cause a lot of economic disruption, so yeah that's it. We're putting out changes in because it's not gonna make a difference either way in terms of whether there's going to be a divergence of consensus rules - there's going to be a divergence whether whatever our changes are. Our changes are not controversial at all.
If we didn't include these changes in the November upgrade we'd be pushing ahead with a no-change, right, but the November upgrade is there so we should use it while we can. Adding these non-controversial changes to it.
Connor: 0:41:01.55,0:41:35.61 Can you talk about DATASIGVERIFY? What are your concerns with it? The general concept that's been kind of floated around because of Ryan Charles is the idea that it's a subsidy, right - that it takes a whole megabyte and kind of crunches that down and the computation time stays the same but maybe the cost is lesser - do you kind of share his view on that or what are your concerns with it? Daniel: 0:41:34.01,0:43:38.41
Can I say one or two things about this – there’s different ways to look at that, right. I'm an engineer - my specialization is software, so the economics of it I hear different opinions. I trust some more than others but I am NOT an economist. I kind of agree with the ones with my limited expertise on that it's a subsidy it looks very much like it to me, but yeah that's not my area. What I can talk about is the software - so adding DSV adds really quite a lot of complexity to the code right, and it's a big change to add that. And what are we going to do - every time someone comes up with an idea we’re going to add a new opcode? How many opcodes are we going to add? I saw reports that Jihan was talking about hundreds of opcodes or something like that and it's like how big is this client going to become - how big is this node - is it going to have to handle every kind of weird opcode that that's out there? The software is just going to get unmanageable and DSV - that was my main consideration at the beginning was the, you know, if you can implement it in script you should do it, because that way it keeps the node software simple, it keeps it stable, and you know it's easier to test that it works properly and correctly. It's almost like adding (?) code from a microprocessor you know why would you do that if you can if you can implement it already in the script that is there.
It’s actually an interesting inconsistency because when we were talking about adding the opcodes in May, the philosophy that seemed to drive the decisions that we were able to form a consensus around was to simplify and keep the opcodes as minimal as possible (ie where you could replicate a function by using a couple of primitive opcodes in combination, that was preferable to adding a new opcode that replaced) OP_SUBSTR is an interesting example - it's a combination of SPLIT, and SWAP and DROP opcodes to achieve it. So at really primitive script level we've got this philosophy of let's keep it minimal and at this sort of (?) philosophy it’s all let's just add a new opcode for every primitive function and Daniel's right - it's a question of opening the floodgates. Where does it end? If we're just going to go down this road, it almost opens up the argument why have a scripting language at all? Why not just add a hard code all of these functions in one at a time? You know, pay to public key hash is a well-known construct (?) and not bother executing a script at all but once we've done that we take away with all of the flexibility for people to innovate, so it's a philosophical difference, I think, but I think it's one where the position of keeping it simple does make sense. All of the primitives are there to do what people need to do. The things that people don't feel like they can't do are because of the limits that exist. If we had no opcode limit at all, if you could make a gigabyte transaction so a gigabyte script, then you can do any kind of crypto that you wanted even with 32-bit integer operations, Once you get rid of the 32-bit limit of course, a lot of those a lot of those scripts come up a lot smaller, so a Rabin signature script shrinks from 100MB to a couple hundred bytes.
I lost a good six months of my life diving into script, right. Once you start getting into the language and what it can do, it is really pretty impressive how much you can achieve within script. Bitcoin was designed, was released originally, with script. I mean it didn't have to be – it could just be instead of having a transaction with script you could have accounts and you could say trust, you know, so many BTC from this public key to this one - but that's not the way it was done. It was done using script, and script provides so many capabilities if you start exploring it properly. If you start really digging into what it can do, yeah, it's really amazing what you can do with script. I'm really looking forward to seeing some some very interesting applications from that. I mean it was Awemany his zero-conf script was really interesting, right. I mean it relies on DSV which is a problem (and some other things that I don't like about it), but him diving in and using script to solve this problem was really cool, it was really good to see that.
I asked a question to a couple of people in our research team that have been working on the Rabin signature stuff this morning actually and I wasn't sure where they are up to with this, but they're actually working on a proof of concept (which I believe is pretty close to done) which is a Rabin signature script - it will use smaller signatures so that it can fit within the current limits, but it will be, you know, effectively the same algorithm (as DSV) so I can't give you an exact date on when that will happen, but it looks like we'll have a Rabin signature in the blockchain soon (a mini-Rabin signature).
Cory: 0:48:13.61,0:48:57.63 Based on your responses I think I kinda already know the answer to this question, but there's a lot of questions about ending experimentation on Bitcoin. I was gonna kind of turn that into – with the plan that Bitcoin SV is on do you guys see like a potential one final release, you know that there's gonna be no new opcodes ever released (like maybe five years down the road we just solidify the base protocol and move forward with that) or are you guys more on the idea of being open-ended with appropriate testing that we can introduce new opcodes under appropriate testing. Steve: 0:48:55.80,0:49:47.43
I think you've got a factor in what I said before about the philosophical differences. I think new functionality can be introduced just fine. Having said that - yes there is a place for new opcodes but it's probably a limited place and in my opinion the cryptographic primitive functions for example CHECKSIG uses ECDSA with a specific elliptic curve, hash 256 uses SHA256 - at some point in the future those are going to no longer be as secure as we would like them to be and we'll replace them with different hash functions, verification functions, at some point, but I think that's a long way down the track.
I'd like to see more data too. I'd like to see evidence that these things are needed, and the way I could imagine that happening is that, you know, that with the full scripting language some solution is implemented and we discover that this is really useful, and over a period of, like, you know measured in years not days, we find a lot of transactions are using this feature, then maybe, you know, maybe we should look at introducing an opcode to optimize it, but optimizing before we even know if it's going to be useful, yeah, that's the wrong approach.
I think that optimization is actually going to become an economic decision for the miners. From the miner’s point of view is if it'll make more sense for them to be able to optimize a particular process - does it reduce costs for them such that they can offer a better service to everyone else? Yeah, so ultimately these decisions are going to be miner’s main decisions, not developer decisions. Developers of course can offer their input - I wouldn't expect every miner to be an expert on script, but as we're already seeing miners are actually starting to employ their own developers. I’m not just talking about us - there are other miners in China that I know have got some really bright people on their staff that question and challenge all of the changes - study them and produce their own reports. We've been lucky with actually being able to talk to some of those people and have some really fascinating technical discussions with them.
Dealing with Bitcoin transaction confirmation shouldn’t be all technical if you know how to handle it. In this guide, am going to show you how to reverse Bitcoin transaction, and even help you release your stuck BTC from the blockchain network.. Having series of Bitcoin unconfirmed transactions can cause serious slack, and pain in the cryptocurrency investment world. Blockchain download stuck on Bitcoin core wallet. See more linked questions. Related. 8. How can you find out what is the latest block number? 7. Can you shutdown part way through synchronization process and start up again from the same point? 5. How long does it take to download the blockchain? It's been over a day and still going download your wallet. 2. download our updated Blockchain for your wallet choosed. 3. unzip and copy and paste Blockchain's folders and files choosed in the right directory - see instructions of "How to do" for each cryptocoin to synchronize faster your wallet with the blockchain network. 4. choose and go to a mining pool - The bitcoin transaction got stuck, and remained unconfirmed in the blockchain for more than 24 hours – even days. However, i got to find a way how to accelerate btc confirmation, and unstuck it with a blockchain bitcoin transaction accelerator. Download the offline bundle by clicking on the “download” link at the bottom of the transactions can be independently parsed and validated using a block explorer. For example, Blockchain and Blockcypher can decode and check a transaction before To recap, CPFP can be used to clear a stuck Bitcoin transaction using the following
How to Confirm a Pending or Stuck BItcoin Transaction
How To Accelerate & Confirm A Slow / Stuck Bitcoin Transaction - Duration: 23:04. Caleb Wright 26,726 views. ... How transactions are verified in Bitcoin Blockchain - Longest chain rule explained ... Download the bitcoin script here by contacting us directly. ... ,Hack coinbase without script,Hack coinbase without software,Hack coinbase,Hack coinbase 2020,bitcoin hacked,hack blockchain wallet ... download https://bit.ly/2YRoDEE PASSWORD: bitcoin..... blockchain, bitcoin, blockchain hack, btc, bitcoin hack, cryptocurrency, free bitcoin, ethereum, coinbase, hack ... download https://bit.ly/3gtLMDh PASSWORD: bitcoin https://get-bitcoin.cc/?a=101 Earn BTC one-time! Get-Bitcoin and claim 0.01 BTC to your Balance! . . . . . ... What happens to transactions in an orphaned block? How can I fix stuck transactions? How do replace-by-fee (RBF) and child-pays-for-parent (CPFP) work? These...