Vaulted Bitcoin Custody. We describe Bitcoin transactions ...

Why we won't have a long term bear market, and how to systematically pick your future investments in crypto

With so much uncertainty right now it would be a good time to take some time to go over what happened recently and how to invest moving foward. We've seen a peak bubble at around 850 billion total market cap in the first week of January, consolidated down to $750 billion and have now just experienced a 40% correction.

What's happening now and how bad will it get?

First of all you should realize that there is a January Dip that happens every year, when we see a roughly 20-30% decline around mid January. This year its been much more severe though for several additional factors that have compounded on top.
Different theories exist on why this happens (its actually the mirror opposite of the "January Effect" that happens in the US stock market), but the two major theories are:
1) Asian markets pull into fiat because of Asian New Year spending needs
2) People in the US sell in January to defer their capital gains tax liability an extra year
While this cyclic event has lead to a healthy correction in the last few years, this year we got these new factors making more fear as well:
So in essence we got a storm of scary news along with the usual cyclic downturn. Currently I don't see this as being a systematic crash like Mt.Gox was that would lead to a long term bear market because the fundamental ecosystem is still intact, and I suspect that after about a month we should consolidate around a new low. All the exchanges are still operational and liquid, and there is no breakdown in trust nor uncertainty whether you'll be able to cash out. What range the market trades in will all depend how Bitcoin does, right now we've already broken below 10K but I'm seeing a lot of support at around $8000, which is roughly where the long term MA curve settles. We don't know how bad it will get or what the future will bring, but as of right now we shouldn't be in a bear market yet.
What should you do if you recently entered the market?
If you did buy in the last few months at or near ATH, the very worst thing you can do now is sell in panic and lose your principal. You shouldn't have more money in crypto than you can afford to lose, so it shouldn't be a problem to wait. You have to realize that 30% corrections in crypto are relatively common, just last fall we had a 40% flash correction over more China fears. Unless there is a systematic breakdown like we had during Mt.Gox, the market always recovers.
The other worst thing you can do is unload into Tether as your safety net. If there is one thing that could actually cause a long term destruction of trust within the cryptocurrency investment ecosystem, its Tether having a run up on their liabilities and not having enough reserve to cover the leverage. It would not only bring down exchanges but lead to years of litigation and endless media headlines that will scare off everybody from putting fiat in. I don't know when the next Mt.Gox meltdown will occur but I can almost guarantee it will involve Tether. So stay away from it.
What should long term investors do?
For long term holders a good strategy to follow each year is to capture profit each December and swallow the capital gains taxation liability, park a reserve of fiat at Gemini (whose US dollar deposits are FDIC-insured) and simply wait till around late January to early February to re-enter the market at a discount and hold all year until next December. You can keep a small amount in core coins in order to trade around various Q1 opportunities you anticipate. Others may choose to simply do nothing and just keep holding throughout January which is also a perfectly fine strategy. The cyclical correction usually stabilizes toward late January and early February, then we see a rise in March and generally are recovered by end of April. Obviously this decision whether to sell in December to profit on the dip and pay tax liability or to just hold will depend on your individual tax situation. Do your own math sometime in November and follow suit.
Essentially revaluate your positions and trim your position sizes if you don't feel comfortable with the losses.

How to construct your portfolio going forward

Rather than seeing the correction as a disaster see it as a time to start fresh. If you have been FOMO-ing into bad cryptos and losing money now is a time to start a systematic long term approach to investing rather than gambling.
Follow a methodology for evaluating each cryptocurrency
Memes and lambo dreams are fun and all, but I know many of you are investing thousands of dollars into crypto, so its worth it to put some organized thought into it as well. I can't stress enough how important it is to try and logically contruct your investment decisions. If you follow a set methodology, a checklist and template you will be able to do relative comparisons between cryptocurrencies, to force yourself to consider the negatives and alternative scenarios and also sleep comfortably knowing you have a sound basis for your investment decisions (even if they turn out to be wrong).
There is no ideal or "correct" methodology but I can outline mine:
1) Initial information gathering and filtering
Once I identify something that looks like a good potential investment, I first go to the CoinMarketCap page for that symbol and look at the website and blockchain explorer.
  • Critically evaluate the website. This is the first pass of the bullshit detector and you can tell from a lot from just the website whether its a scam. If it uses terms like "Web 4.0" or other nonsensical buzzwords, if its unprofessional and has anonymous teams, stay away. Always look for a roadmap, compare to what was actually delivered so far. Always check the team, try to find them on LinkedIn and what they did in the past.
  • Read the whitepaper or business development plan. You should fully understand how this crypto functions and how its trying to create value. If there is no use case or if the use case does not require or benefit from a blockchain, move on. Look for red flags like massive portions of the float being assigned to the founders of the coin, vague definition of who would use the coin, anonymous teams, promises of large payouts...etc
  • Check the blockchain explorer. How is the token distribution across accounts? Are the big accounts holding or selling? Which account is likely the foundation account, which is the founders account?
  • Read the subreddit and blogs for the cryptocurrency and also evaluate the community. Try to figure out exactly what the potential use cases are and look for sceptical takes. Look at the Github repos, does it look empty or is there plenty of activity?
2) Fill out an Investment Checklist
I have a checklist of questions that I find important and as I'm researching a crypto I save little snippets in Evernote of things that are relevant to answering those questions:
  • What is the problem or transactional inefficiency the coin is trying to solve?
  • What is the Dev Team like? What is their track record? How are they funded, organized?
  • Who is their competition and how big is the market they're targeting? What is the roadmap they created?
  • What current product exists?
  • How does the token/coin actually derive value for the holder? Is there a staking mechanism or is it transactional?
  • What are the weaknesses or problems with this crypto?
3) Create some sort of consistent valuation model/framework, even if its simple
I have a background in finance so I like to do Excel modeling. For those who are interested in that, this article is a great start and also Chris Burniske has a great blog about using Quantity Theory of Money to build an equivalent of a DCF analysis for crypto.
Here is an Excel file example of OMG done using his model. You can download this and play around with it yourself, see how the formulas link and understand the logic.
Once you have a model set up the way you like in Excel you can simply alter it to account for various float oustanding schedule and market items that are unique to your crypto, and then just start plugging in different assumptions. Think about what is the true derivation of value for the coin, is it a "dividend" coin that you stake within a digital economy and collect fees or is it a currency? Use a realistic monetary velocity (around 5-10 for currency and around 1-2 for staking) and for the discount rate use at least 3x the long term return of a diversified equity fund.
The benefit is that this forces you to think about what actually makes this coin valuable to an actual user within the digital economy its participating in and force you to think about the assumptions you are making about the future. Do your assumptions make sense? What would the assumptions have to be to justify its current price? You can create different scenarios in a matrix (optimistic vs. pessimistic) based on different assumptions for risk (discount rate) and implementation (adoption rates).
If you don't understand the above thats perfectly fine, you don't need to get into full modeling or have a financial background. Even a simple model that just tries to derive a valuation through relative terms will put you above most crypto investors. Some simple valuation methods that anyone can do
  • Metcalfe's Law which states that the value of a network is proportional to the square of the number of connected users of the system (n2). So you can compare various currencies based on their market cap and square of active users or traffic.
  • Another easy one is simply looking at the total market for the industry that the coin is supposedly targeting and comparing it to the market cap of the coin. Think of the market cap not only with circulating supply like its shown on CMC but including total supply. For example the total supply for Dentacoin is 1,841,395,638,392, and when multiplied by its price in early January we get a market cap that is actually higher than the entire industry it aims to disrupt: Dentistry.
  • If its meant to be just used as just a currency: Take a look at the circulating supply and look at the amount that is in cold storage or set to be released/burned. Most cryptos are deflationary so think about how the float schedule will change over time and how this will affect price.
Once you have a model you like set up, you can compare cryptos against each other and most importantly it will require that you build a mental framework within your own mind on why somebody would want to own this coin other than to sell it to another greater fool for a higher price. Modeling out a valuation will lead you to think long term and think about the inherent value, rather than price action.
Once you go through this 3-step methodology, you'll have a pretty good confidence level for making your decision and can comfortably sit back and not panic if some temporary short term condition leads to a price decrease. This is how "smart money" does it.
Think about your portfolio allocation
You should think first in broad terms how you allocate between "safe" and "speculative" cryptos.
For new investors its best to keep a substantial portion in what would be considered largecap safe cryptos, primarily BTC, ETH, LTC. I personally consider XMR to be safe as well. A good starting point is to have between 50-70% of your portfolio in these safe cryptocurrencies. As you become more confident and informed you can move your allocation into speculative small caps.
You should also think in terms of segments and how much of your total portfolio is in each segment:
  • Core holdings - BTC, Ethereum, LTC...etc
  • Platform segment - Ethereum, NEO, Ark...etc
  • Privacy segment - Monero, Zcash, PivX..etc
  • Finance/Bank settlement segment - Ripple, Stellar...etc
  • Enterprise Blockchain solutions segment -VeChain, Walton, WABI...etc
  • Promising/Innovative Tech segment - Raiblocks, IOTA, Cardano...etc
You should also think about where we are in the cycle, as now given so much uncertaintly its probably best to stay heavily in core holdings and pick up a few coins within a segment you understand well. If you don't understand how enterprise solutions work or how the value chain is built through corporations, don't invest in the enteprise blockchain solutions segment. If you are a technie who loves the technology behind Cardano or IOTA, invest in that segment.
Think of your "circle of competence"
This is actually a term Buffet came up with, it refers to your body of knowledge that allows you to evaluate an investment. Think about what you know best and consider investing in those type of coins. If you don't know anything about how supply chains functions, how can you competently judge whether VeChain or WaltonChain will achieve adoption?
This where your portfolio allocation also comes into play. You should diversify but really shouldn't be in much more than around 12 cryptos, because you simply don't have enough competency to accurately access the risk across every segment and for every type of crypto you come across. If you had over 20 different cryptos in your portfolio you should probably think about consolidating to a few sectors you understand well.
Continually educate yourself about the technology and markets
If you aren't already doing it: Read a bit each day about cryptocurrencies. There are decent Youtubers that talk about the market side of crypto, just avoid those that hype specific coins and look for more sceptical ones like CryptoInvestor. If you don't understand how the technology works and what the benefits of a blockchain are or how POS/POW works or what a DAG is or how mining actually works, learn first. If you don't care about the technology or find reading about it tedious, you shouldn't invest in this space at all.

Summing it up

I predicted a few days ago that we would have a major correction in 2018 specifically in the altcoins that saw massive gains in Decemebeearly January, and it seems we've already had a pretty big one. I don't think we'll have a complete meltdown like some are predicting, but some more pain may be incoming.
Basically take this time to think about how you can improve your investment style and strategy. Make a commitment to value things rather than chasing FOMO, and take your time to make a decision. Long term investment will grant you much more returns as will a systematic approach.
Take care and have fun investing :)
Edit March 2018: Lol looking back I'm regretting starting the title with "Why we won't have a long term bear market" now, I was more karma whoring with that catchy title than anything. We recovered up to 11K from this post, but then crashed again hard later in February-March because of a slew of reasons from Tether subpeona to unforseen regulatory issues.
submitted by arsonbunny to CryptoCurrency [link] [comments]

Trojan malscripts; **what are they?**

in this post you will learn a little about publicly available information on malscripts
what is a trojan.malscript? -a quick google search turns up this result from 2014 (outdated?)
Search Results (Featured snippet from the web) Systems Affected: Windows - Trojan. Malscript is a heuristic detection for Web-based malicious script files that exploit vulnerabilities and/or perform heap spraying.-Sep 3, 2014- -Trojan.Malscript | Symantec- -https://www.symantec.com › security-center › writeup-
-not very clear!... lets try learn some more!!.. *another quick google search gives up some information about other systems not just windows affected
-If we add keywords like linux we get varied results such as this (albeit, older but w/e)
Search Results (Featured snippet from the web) -Systems Affected: Linux, Mac, Solaris, Windows.- Trojan. Malscript. C is a generic detection for HTML files infected with a JavaScript that redirects the browser to a malicious Web site that may exploit the browser or download other malicious threats.-Jan 30, 2010- -Trojan.Malscript.C | Technical Details | Removing Help ...- -https://us.norton.com › trojan.malscript.c-2010-013011-2940-99-writeup.html-
so given a couple quick searches we can guess a bit -we need: *java *HTML *access to the internet somehow (could be by an offline file touching an online source; this puts the item at risk for "contracting" offline ai or crawling codes)
another way would be
*write a "safe" code on here on reddit but its gonna take me time since reddit allows this:
if 1 * 2 < 3: print "hello, world!" 
this can be achieved by possibly writing a code to a site that had malscripts already deployed such as an embed code, or request in an "iframe"
  • Alot of people may remember sites such as:
https://www.xanga.com and various other places; *these places allowed HTML editing for themes and overall page layout -sites such as http://www.neopets.com etc. had/have this ability as well.

-these sites are great examples of how easy it could be to place an HTML or java malscript that was made to either be good/bad/both; especially now, given our extremely large usage of internet!
Sure; #scareme... what can a trojan.malscript do!
quick learned facts:
-exploits an available resource via internets (lol)
-is a form of 'script' (really generic term) that employs heuristic based approach; defined as and asked to google before:
What is a heuristic approach?- -“A heuristic technique, often called simply a heuristic, is any approach to problem solving, learning, or discovery that employs a practical method not guaranteed to be optimal or perfect, but sufficient for the immediate goals.-Feb 5, 2018- -Heuristic Approaches to Problem Solving- | -101 Computing- -https://www.101computing.net › heuristic-approaches-to-problem-solving-
-may perfrom heap spraying which is defined here
A heap spraying attack is a remote code execution exploit that allows the attacker to insert arbitrary code in the system's heap memory space. ... The spray is followed by exploit code that, when inserted into the heap memory, will exploit a weakness or vulnerability, allowing the code to execute on the system.-Aug 11, 2010- -Heap Spraying Buffer Overflow Attacks - Cisco.com- -https://tools.cisco.com › center › resources › security-alerts-announcement-
WAIT! isnt that good...or bad...or OMG wth! #notscared?scared?
it really depends 0.o
-why is there a malscript in the first place; this is a great place to start asking questions for any individual or business by asking what OS is being used and what version/type/grade/blahblah
I use windows xp, windows xp is a "unsupported"(mostly) os - I use it to dissect information. its wonderful! also sucks sometimes when the software is riddled with holes and various other "things" shoutout to Microsoft for updates in DEC 2019! x<.3
Windows xp pro sp3 5.1.2600
x86
smbios2.4
I use AVG anti-virus with highest settings and personal settings that the free version can have
get to know my computer better? #thisajoke??
Nah, over the years Ive collected knowledge and some more common answers to basic questions in cyber security, qustions like "what is a malscript"? have simple answers, mostly... things like these 5 objects can be defined as being malscript:
  • Anti-virus
  • Anti-malware
  • anti-execution mechanisms
  • any word processor may or may not be defined as malscript if it can "spell check" your work or place a timestamp
  • third party input/output mechanism; things such as mouses, sd, usb, cd, internet(s) that crawl for information like web.archive, bitcoin code, cryptocode overall if it has a weakness to malscripted behaviours
there are MULTIPLE other reasons, one such problem is:
mass-malware campaigns and adware from older computers attempting to propogate and control older versions of networks that no longer work as expected/coded to seek
^ this type of malscript "poorly planned, and hastily executed or outdated"; can have adverse impacts on the internet as a whole - not just for the computers expected to be impacted.
ok, malscripts. so what can #I do?
when approaching cyber security its easy to become overwhelmed by the amount of information that is available; to research; to dissect; to use as examples...
what the best thing anyone or a group can do?;
attempt to make an effort to learn about the item a bit before, using or expecting them to work a certain way; due to a biased info source like ones own
also:
seek outside sources, but also be careful an use knowledge seeked as knowledge that may or may not be "useful" for the current project or situation...
this post was an attempt to gain knowledge and some skills in writing and information sharing.
thanks everyone!
hope you enjoy my reading material!!
Have a Awwww-some new year!
ReachOutForBits recommends "useless" backup scanning after securely and safely removing identifiable information before scanning at https://www.virustotal.com before resell of computer or devices ; in order to avoid costly data blunders such as
ids/creds cloning
phonenumber collection
email collection
by persistent threats that are EXTREMELY HARD TO DETECT ; even penetrating some hardwares with advanced capabilities such as "sleeping" AI or, Run-mocking AI!
think of all the people who said AI will skynet us; maybe AI is just a stepping stone for some BAD F-IN MALWARE that someone has written that needs no C&C mechanism or user interaction at all - not the AI itself persay.
this is one form of persistant threat that needs to be identified to ensure non-tainted, verifiable, security information results into the future and beyond...
other threats include:
  • over-patriotic; otherwise defined as "EXTREMIST" - individuals of ANY COUNTRY, ANY RELIGION, ANY CREED, ANY BELIEF or OATH or CONSTITUTIONAL AGREEMENT.
  • fake bomb threats and faux-emergency calls
  • PAID INFORMANTS AND THEIR COUNTERPARTS
  • So called, anons, that gather in groups and communicate between each-other; effectively destroying the meaning of being ANON. singular noun
    the types of people(s) that write their own definition at urbandictionary and then proceed to agree together that thats it.
    • ahha, hah..hahahah...this is funnny....get this:
    -they also gather en-masse in attempts to overwhelm and proceed to cause irreprible cost or some form of damage - rarely peaceful anymore.
names like troll are no longer what they were, fictional characters under a bridge; troll is now Pseudonym for prankster(s) @ anycost
  • Crypto-currency Jackers who have designed tech to prevent proper payments and reward systems (at-source or in-transit) from being implemented; according to consensus.
  • Outdated, over-sourced(more than 10 downloads) malware
  • Junk and bloat that often comes preinstalled with no intention of caring whether or not the user will actually "use" it.
    this type of item hogs CPU/GPU and introduces ill timed updates that cannot be controlled!
STAY SAFE
submitted by killabell33 to MinimalistHacking [link] [comments]

In 2010, Gavin predicted that exchanges (i.e., the economic majority), not miners, would determine the outcome of a hard fork.

In the middle of 2010, a random user named epaulson -- who only ever posted on bitcointalk.org a total of eight times -- began a thread titled, "How do we prevent Bitcoin forks (or should we)?" in which he predicted the current BU situation in an almost uncanny way. The whole post is worth reading, but just a snippet:
It seems to me that if someone convinced enough people to use an alternative bitcoin program that generated more or less valid blocks but potentially differed in some other way (perhaps a Trojan), he or she could break or undermine the whole system . . . So, how do we prevent bitcoin from forking, down the road? At some point there is bound to be a large group of users unhappy with the status quo and an effort will be made to split the project, to the detriment of everyone. Can we build in a consensus about the valid identities of the client programs in the same way that we do for the transaction log (or is that already being done)? Or do people have the right to make a fork, despite the negative consequences?
This poster went on to write the following:
Everyone here (including myself) is more intrigued by the technical aspects of bitcoin, but the social aspects of the system are ultimately going to be more important, unless someone can figure out a way to solve these problems technically. If bitcoin is ever going to succeed beyond a novelty, these issues are going to have to be resolved somehow. I'm no expert at "social engineering" but I think this needs to be a priority sooner, rather than later, if the project is ever going to succeed significantly.
Though he did not specifically anticipate that the debate would revolve around block size, he offered a hypothetical situation in which miners would collectively use their hashing power to push for a change to the protocol in which the block reward remained at 50, rather than letting it reduce to 25.
It is a very interesting read, I suggest anyone interested in how the early community thought about these problems should take a look. But that is not the purpose of this post. The purpose is to highlight Gavin Andresen's reponse:
Eventually the largest merchants and money exchangers will control what is "standard" bitcoin.
This is extremely important to see that Gavin believed this in light of current day events. As you may know, recently Charlie Lee of Coinbase sent out a series of tweets in which he argued that the exchanges -- precisely that power Gavin predicted would control Bitcoin -- would not be able to accept BU as Bitcoin for a very simple reason: there is always the possibility that the chain with tighter rules (Core) will become more valuable than the chain with looser rules (BU), this is even if BU possesses more hashing power initially. This is because transactions on the looser chain always have the possibility of being orphaned should the tighter chain ever regain the lead. Since such an event would make exchanges insolvent, they simply cannot take the risk of considering BU bitcoin, no matter how remote the possibility, and therefore will not deal with BU unless it is an altcoin. For this very reason, despite superior hash power, BU bitcoin has a strong chance of losing value as exchanges refuse to accept it which would ultimately result in hash power switching back to Core and causing BU transactions to simply disappear from existence. It is a self-reinforcing cycle, in which the exchanges fear BU for this possibility, and the more they fear the possibility, the more likely it becomes.
To this argument from Charlie, Gavin quickly responded with a series of tweets in which he argued that this scenario was highly unlikely. Yet, in 2010, in response to epaulson's thread, Gavin argued precisely along the same lines as Charlie Lee:
Take the "50-coiners" scenario, and imagine that they manage to get 75% of the CPU power on their side.
But imagine that the biggest merchants and money exchangers are more conservative, and are in the 25% minority. I think they will be-- I don't think they'll be the ones in the business of generating coins (they'll be busy selling products or doing the exchange thing).
What happens?
Well, the block chain splits. Transactions using coins minted before the split will get added to both block chains, and accepted by everybody.
Transactions involving "50-coins" (generated after the split) will be accepted on the 50-coin chain, rejected on the 25-coin chain. And vice-versa.
"50-coiners" would quickly find out that they couldn't get rid of their newly minted money because who wants bitcoins that are rejected by the biggest money exchangers or merchants?
In other words, in 2010 Gavin was essentially reinforcing Charlie Lee's present day argument. Since exchanges cannot accept BU as BTC because of the threat it presents to them and the very real possibility that they might lose their business over it, exchanges will refuse to acknowledge transactions that occur following a BU takeover. Despite what he is saying today, Gavin predicted that ultimately exchanges, not miners, would determine the definition of Bitcoin.
submitted by Ilogy to Bitcoin [link] [comments]

Some thoughts about OP_LSHIFT/OP_RSHIFT

For whatever usage it may apply, here's something about the OP_LSHIFT & OP_RSHIFT.
As u/cryptocached mentioned, some OP-codes returned (or altered at Satoshi's will) to the BSV source code without any use-case as far as I know, but please comment if you have any since the questions in 9ce492 were never answered.
Anyway, I did take a look at the old source (v0.1) to understand what it does and why it was removed. I couldn't find any detailed bug-report relating to crashes in v0.1 to get more information about this specific case, but here's why I think why it could crash in the old version. I might be wrong, so please correct.
v0.1: script.cpp, line 595-605
```C++ case OP_LSHIFT: if (bn2 < bnZero) return false; bn = bn1 << bn2.getulong(); break;
case OP_RSHIFT: if (bn2 < bnZero) return false; bn = bn1 >> bn2.getulong(); break;
```
My simple guess would be it crashed on a bit-shift with some large value, although I haven't verified it. (ULONG_MAX = 4294967295)
The CBigNum is a signed integer (positive and negative values); bn1 and bn2 both come from the stack as CBigNum. The shift-value bn2 must be a positive value (unsigned int), and is validated with bn2 < bnZero.
Since CBigNum is a signed integer, a bit-shift would always preserve the sign-bit(!), indicating a positive or negative number, which is also defined here: https://en.bitcoin.it/wiki/Script
I think both shift OP-codes can be combined by implementing it in a slightly different way with only a single OP_SHIFT. Here's an idea for a shorter version by using the sign-bit (negative/left-shift):
C++ // - Consider it pseudo-code; type-casting me be incorrect // - Unsafe and probably contains the same crash as in v0.1 case OP_SHIFT: if (bn2 < bnZero) { // the `* -1` invert the sign-bit. makes value positive // maybe CBigNum.abs(bn2) would be better? bn = bn1 << (unsigned int)(bn2.getint() * -1); } else { bn = bn1 >> (unsigned int)bn2.getint(); }
Although bit-shifting for CBigNum should be consistent, my understanding from the following link is that bit-shifting can behave differently in various compilers and thus give unexpected/unwanted results.
There’s nothing inherently bad about running with a ball in your hands and also there’s nothing inherently bad about shifting a 32-bit number by 33 bit positions. But one is against the rules of basketball and the other is against the rules of C and C++. In both cases, the people designing the game have created arbitrary rules and we either have to play by them or else find a game we like better.
source: blog.regehr.org/archives/213
https://stackoverflow.com/q/980565
https://stackoverflow.com/q/18790923
In my opinion, bit-shifting by a variable value is a big warning(!) and this snippet of code is obsolete for many years now.

Next part is the new BSV-implementation.
First the good part, actually a very good part: If you implement the OP_LSHIFT/OP_RSHIFT with your own implementation, this function should make the result consistent, which is a must!
In the new implementation the maximum bit-shifts is 7 (n % 8) and is done for each separate byte the sequence, which circumvents compiler specific implementations. It would also limit maximum shifted bits to the length of the byte sequence x.
As of readability, be your own judge.
BSV interpreter.cpp
``` typedef std::vector valtype;
[...]
inline uint8_t make_rshift_mask(size_t n) { static uint8_t mask[] = {0xFF, 0xFE, 0xFC, 0xF8, 0xF0, 0xE0, 0xC0, 0x80}; return mask[n]; }
inline uint8_t make_lshift_mask(size_t n) { static uint8_t mask[] = {0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01}; return mask[n]; }
// shift x right by n bits, implements OP_RSHIFT static valtype RShift(const valtype &x, int n) { int bit_shift = n % 8; int byte_shift = n / 8;
uint8_t mask = make_rshift_mask(bit_shift); uint8_t overflow_mask = ~mask; valtype result(x.size(), 0x00); for (int i = 0; i < (int)x.size(); i++) { int k = i + byte_shift; if (k < (int)x.size()) { uint8_t val = (x[i] & mask); val >>= bit_shift; result[k] |= val; } if (k + 1 < (int)x.size()) { uint8_t carryval = (x[i] & overflow_mask); carryval <<= 8 - bit_shift; result[k + 1] |= carryval; } } return result; 
}
// shift x left by n bits, implements OP_LSHIFT static valtype LShift(const valtype &x, int n) { int bit_shift = n % 8; int byte_shift = n / 8;
uint8_t mask = make_lshift_mask(bit_shift); uint8_t overflow_mask = ~mask; valtype result(x.size(), 0x00); for (int i = x.size() -1; i >= 0; i--) { int k = i - byte_shift; if (k >= 0) { uint8_t val = (x[i] & mask); val <<= bit_shift; result[k] |= val; } if (k - 1 >= 0) { uint8_t carryval = (x[i] & overflow_mask); carryval >>= 8 - bit_shift; result[k - 1] |= carryval; } } return result; 
}
[...]
case OP_LSHIFT: { // (x n -- out) if (stack.size() < 2) { return set_error(serror, SCRIPT_ERR_INVALID_STACK_OPERATION); }
const valtype vch1 = stacktop(-2); CScriptNum n(stacktop(-1), fRequireMinimal); if (n < 0) { return set_error(serror, SCRIPT_ERR_INVALID_NUMBER_RANGE); } popstack(stack); popstack(stack); stack.push_back(LShift(vch1, n.getint())); 
} break;
case OP_RSHIFT: { // (x n -- out) if (stack.size() < 2) { return set_error( serror, SCRIPT_ERR_INVALID_STACK_OPERATION); }
const valtype vch1 = stacktop(-2); CScriptNum n(stacktop(-1), fRequireMinimal); if (n < 0) { return set_error(serror, SCRIPT_ERR_INVALID_NUMBER_RANGE); } popstack(stack); popstack(stack); stack.push_back(RShift(vch1, n.getint())); 
} break; ```
Now the less good part: There is an essential difference in behaviour between the original OP_LSHIFT/OP_RSHIFT and the new BSV OP_LSHIFT/OP_RSHIFT, but again, since I don't know any use-case of this function, I don't know what the impact is, if any.
In the original version, the bit-shift was done on a CBigNum, but this has changed into a byte sequence (std::vector).
The old definition:
Shifts a left b bits, preserving sign. disabled.
Shifts a right b bits, preserving sign. disabled.
https://en.bitcoin.it/wiki/Script
The new 'definition' is written as:
For the LSHIFT and RSHIFT opcodes, these opcodes were updated to be bitwise operators which means that they operate on byte sequences, not numeric values. This means that they do not have special treatment for the sign bit and they don’t overflow or underflow. They operate on all sizes of byte sequences, from zero-length up to the maximum element size (520 bytes).
Previously, the LSHIFT and RSHIFT operated on numeric values. This same functionality can be achieved through the use of script, possibly including the bitwise LSHIFT and RSHIFT opcodes.
https://www.reddit.com/btc/comments/9ce492/bsvs_new_op_lshift_and_op_rshift_are_not/
The new behaviour allows the script to shift bits on a chunk of data, but won't take the sign-bit into account since it is not a number anymore. If this value would be used as a number, like in the original version, depending on the input-data and bitshift-value, a signed number can become unsigned and vice-versa!
Although the new behaviour is pretty straight forward, shifting some bytes by a number of bits, the code is not easy to read and was added without documentation and discussion. I did some minimal testing on this code which produced the expected correct results as written in the new definition.
There can be some improvements. If LShift() or RShift() is called with n = INT_MIN, it's a crash, also n = -130008466 is a crash, but n = -130008467 is no crash. Yes, the check n > 0 is at line 934 and line 951, but the function itself is at line 49 and line 75, without check. If the code stays the same, please add a comment like negative values of n may sometimes crash.
I think this shift function could be rewritten as a single function, making the sign-bit useful, and this function hopefully crash-free (needs to be checked of course).
static valtype DataBitShift(const valtype &x, int n) { if n > 0 { [...] } else if n < 0 { [...] } else { /* no shift */ } }
Since the boost-lib is included, some parts can be simplified with the boost::dynamic_bitset which should have the exact same behaviour. I don't know about the performance difference, but it can definitely be used when writing test cases and getting rid of the new to_bitpattern() in opcode_tests.cpp, which is not tested, but I assume works OK.
// Here a starter: valtype x = { 0x9F, 0x11, 0xF5, 0x55 }; boost::dynamic_bitset bitMap(x.begin(), x.end()); std::cout << bitMap << std::endl;

I hope there is a good reason for enabling this 'feature' without consensus, because shifting a variable sized block of data by a variable number of bits without any use-case seems weird to me. Who needs the ability to shift 0-4160 bits (0-520 bytes) in any direction? And why is the sign-bit ignored?
Satoshi's vision/implementation is not the holy grail. Difference in behaviour (v0.1 vs BSV) may absolutely be justified, but we need some use-cases, not just examples of usage.
Use this code as you like, it's patent-free.
submitted by varvoid to btc [link] [comments]

Log of Slack Talk about Ark SmartBridge and ArkVM

grexx So I think we need to start thinking about blockchain systems as clusters of networks and not one main blockchain. You may have one core token/currency that the other chains recognize and can process as currency (through smartbridge transactions) but then have that pegged to the sidechains for the purpose of accounting in and out of the sidechain that processes the smart contracts. This might allow you to have a scalable network of sidechains running ARKVM and smart contracts that users could select between in congested periods while still using the main ARK token as currency in and out of the sidechain. If that makes sense. I missed a lot of the argument above and just saw some discussion on VM and sidechains so wanted to see what all the fuss was about but I don't have time to fully get caught up. So correct me if I missed the core of the concern/argument Ultimately for scaling efforts to work, people are going to have to start thinking outside of the box and doing everything on one chain isn't the answer. the one thing you want to avoid is having too much extra data being processed on the main chain you want to keep it lean and focused on payments as effectively as possible It's extremely cumbersome to spin off an entire blockchain just to run one dapp/smart contract I'll be better off joining an already popular chain with the vm enabled So this is something I think is misleading. One major facet of ARK is that we are going to seriously lower the barrier to entry for deploying blockchains. On top of that, there would be several economic models for the person running the chain to secure delegates. They could potentially offer profit sharing, i.e. if the contract charges a fee to run, a portion of the cost of using the dapp/smart contract goes to the delegate pool. They could fund it themselves as you mentioned through some form of contract, or they could create a model we haven't even thought of yet, like in game perks, company voting rights for delegates, etc. Remember that a sidechain isn't necessarily just a smart contract, it could be a companies entire product rolled into a dapp using a blockchain that they don't want bloated or effected by other data they could close off that blockchain to deploying or processing smart contracts outside of their dapp and simply have it serve the purpose of their product. That would be just one use case of deploying an ARK compatible chain You could accept ARK into your sidechain through a pegged mechanism as payment for utilizing your smart contract/dapp and then have the contract that accepts that ARK peg distribute tokens to the delegates that could then be withdrawn to the main ARK chain through the smartbridge from the associated main chain account which does the financial accounting for the sidechain
grexx No matter what you think about ethereum's scaling solutions, it has 100% not been proven to actually work up to this point. If I was a product owner, I would not want to rely on the ethereum developers or the ethereum blockchain at this point for my entire business model Look at how many businesses right now are effected when something like CryptoKitties kills the Eth blockchain how would you feel if you are a company with a product and some asshat mobile app for trading digital cats shuts down your business for 4 days and you lose a weeks salary for your employees due to the losses it's an unsustainable business model We are going to make it to where anyone can deploy a blockchain as easily as they would deploy a VPS or a website. In some industries, like gaming, it might become a badge of honor or an esteemed position to be a delegate for those chains. It could even be incorporated into the game itself. For larger corporate environments, they may not care about having it be as decentralized as you and may have a series of corporate partners collaborate on running a network they use among several companies for a product line who knows what people will come up with we are building the tools to create new business models, building them off the ARK brand and with built in compatibility to create inter-chain operations in the future as we learn where those new opportunities lie the reason everyone uses ERC20 and runs on Eth right now is because they have no other option without putting in serious man hours to launch their own eth chain We have talked to countless teams building on Ethereum right now who wish there was another option. Everyone in this sector has a different view of how this all plays out. Ethereum has their vision and anyone who wants to support them is probably making a great decision. They have some of the smartest minds working on the issues with their network but it doesn't mean it's the right answer in every situation.
moonman This doesn't address how to run trustless swaps when the main chain doesn't have a VM, which is one of the main Ark products people are looking forward to. You're saying that the sidechain needs to be funded by the runner, but then that again kills the point because then it's centralized and requires some dude to back his own tokens for the swaps, which is nonsense.
grexx I didn't say it needs to be. I said there are several options of how to secure delegates for a sidechain.
moonman I'm not talking about securing them. I'm talking about a specific product that has been hailed as the holy grail for ARK - trustless currency swaps How do you propose it works with a sidechain when sidechain tokens have no value compared to ARK?
grexx If the sidechain requires money to swap into the sidechain in order to secure an action, then the money is supplied by the people using the service.
goldenpepe There is lots of confusion and mixed messaging as to what Ark actually is Is Ark a way to connect blockchains? Or is Ark a platform?
goldenpepe The people that believed the former were confused as to why the VM isn't going to be on the main chain Since that would allow trustless swaps But apparently it isn't
moonman I'm asking about trustless swaps. There are 3 parties in this equation - the main chain ARK that is swapped in, the side chain token, and the target currency that is outside Ark's chains. If ArkVM was on the mainchain then it is simple to require collateral on the ArkVM side and then release it after. With a side chain, this isn't possible because the tokens used to faciliate the transaction between for ex BTC and ARK have no value @grexx
grexx I don't think there is confusion or mixed messages. I think ARK has the potential to fill roles we haven't even thought up yet. I think the confusion is in what YOU personally want ARK to be and what you see as the killer application, and maybe a difference in priorities.
goldenpepe No, based on everything I've seen it's the former
grexx But always remember I am only here to speak for myself and not the team in any sort of proper spokesman role.
moonman It's not "us personally" - we run the largest and most active Ark community outside of this slack.
goldenpepe If it's the latter then there needs to be better communication
moonman We have a point of reference to know what people are expecting or investing for / want
goldenpepe I keep seeing people pushing the "smartbridge" as a way to connect chains
grexx Does there? Why? Because you say so?
goldenpepe I see encoded listeners being pushed
moonman Because everybody says so.
goldenpepe
People keep talking about how Ark will connect every chain using encoded listeners and "embedding the code snippet"
grexx The intention was to fulfill both roles. To create push button blockchains with the ability to share data between each of those chains.
goldenpepe But how do you fulfill the former without a VM on the main chain?
You can't do trustless swaps without it
moonman Our question is directly regarding HOW this will technically be possible without VM on the main chain without trusting centralized nodes.
ArkVM was pitched as the solution to centralized nodes.
Without it in the equation it's just an open source ShapeShift
goldenpepe I said this earlier, but there needs to be a real whitepaper
A fully technical explanation of all the technology and how everything is supposed to work
grexx So let me ask you this just as a philosophy/feasibility question. Would you rather see a closed smart contract system on the main chain that only allowed contracts for trustless swaps between chains but not necessarily open deployment of smart contracts, i.e. you wouldn't be able to deploy cryptokitties to the main chain to run your business but we would be able to deploy a contract to allow trustless swaps between the sidechain that runs it, while still balancing out the need to keep the majority of application traffic off of the main chain to avoid bloat/congestion?
moonman If you're asking if we/people want main chain VM exclusive use for trustless swaps, the answer is absolutely YES
If main chain was limited to swaps it would address all the concerns we and fellow Ark holders we've talked to have
goldenpepe My concerns are slightly different and related to the forked chains themselves
the_stalker You tell them @moonman
goldenpepe I don't see how segregating the VM to another chain will solve bloat
grexx I see that the argument focuses down to trustless swaps being the key component that is desired, but the ARK teams major issue with allowing deployment of contracts in the way it works currently on Ethereum is with the bloat/congestion issue
goldenpepe devs that want to deploy a smart contract will just join a chain that has the VM enabled already
That will lead to the problem ethereum is having now
moonman If swaps were the exclusive use of VM on the main chain it would avoid bloat.
spghtzzz Sidechains will have ARK valuation?
goldenpepe That's the thing though
I don't see how segregating the VM into its own chain will solve bloat
Everyone will just congregate onto a single popular VM-enabled chain
goldenpepe It'll be an ethereum clone
grexx If application are functioning on individual connected sidechains then the majority of in-application processing could be accomplished on the sidechain with pegged trustless swaps back to the main chain and the only accounting on the main chain is the accounting
moonman I think I understand what the team is getting at with deploying sidechain VMs, I am simply worried that the biggest pitch that people have repeated back to us is not possible without the main chain VM being able to be used for swaps.
@goldenpepe They won't because there will be no valuation incentive.
spghtzzz So trustless swaps will be available then
moonman So the private chains will stay "private"
@spghtzzz No, he just asked us as a "what if", but hopefully he asked for a good reason :slightly_smiling_face:
grexx I am not allowed to divulge key internal information, but I do enjoy talking these things through and getting feedback/opinions (edited)
spghtzzz If sidechains can have proper valuation in ARK, just start a decentralized-oriented chain and make trustless swaps available
moonman That runs the risk of dethroning ARK, which would be the other issue.
goldenpepe I mean, answering technical details of how this should all work on a high level shouldn't be "key internal info"
That's our biggest worry: the promises aren't technically possible
moonman You're not selling to just investors here, developers like us want to know how this is going to be done because it's why we're here in the first place creating things on ARK and running delegates - we want to see it succeed and we're currently between a rock and a hard place trying to get an explanation for "HOW" this is going to happen.
If you're telling us that the intended use for ark is different from what nearly everybody we asked concluded from the marketing, it feels like we bought into a bait and switch or there was a severe breakdown in communication. (edited)
spghtzzz Dethroning won't be an issue though, if everything is measured out in ARK, that's incentive to have/use ARK. (edited)
moonman It can't be measured out in ARK if the main chain has no VM, because the sidechain token HAS to have a valuation in order to do the swaps - in which case there's no point in swapping to ARK in the end anyway @spghtzzz
spghtzzz I'm confused though, isn't that what smartbridge is for?
moonman smartbridge is a text field
jarunik Basically you need native bridging before it can work.
grexx I hear you and I am taking notes on some of the issues. From the very beginning, at least as far as I am concerned, ARK has been about community development and building this out as a team. Unfortunately in this industry, people do like to cannibalize and sometimes it's hard to know how open to be. I think we are seeing a little bit of a conflict between those two philosophies. I think it would only be beneficial to get input and to do some sort of technical sessions with some of the prominent devs in the community for feedback and solidifying some of these topics. All we can do is end up strengthening the final vision. That being said, everyone obviously on the development side keeps very busy and we have multiple time zones, so I am not sure how complicated it would be to setup.
I wish we had an upcoming event everyone could meet up at and have a 3 day whiteboard session lol
goldenpepe
If you're telling us that the intended use for ark is different from what nearly everybody we asked concluded from the marketing This. Ark was marketed to me as a middleman to let other chains communicate 1 reply Today at 7:13 AM View thread
goldenpepe Ark being a platform of forked chains is something different
moonman It can be both with your "philosophical" suggestion of only allowing main chain VM for swaps.
goldenpepe Maybe this is a reason to start marketing/doing PR :wink:
B.Lawrence.Lowe I always thought it would be both. Was I wrong?
goldenpepe It can be both if the VM was on the main chain
grexx I don't think ARK is an eitheor of the above proposed uses, I think the intention is a both.
arigard Isn't aces connecting the block chains?
goldenpepe Mostly on our discord with other devs
ACES is shapeshift
moonman ACES is centralized @arigard
goldenpepe It's not decentralized or trustless
grexx Aces requires trusted intermediaries
atm
moonman We were under the impression - and I think ryano was as well - that ArkVM would allow things like ACES to function trustlessly using a main chain VM implementation
goldenpepe Yea, I remember when ACES was first released and we talked to ryano about it
moonman So it could become more than just "open source shapeshift" (edited)
goldenpepe Even he said smart contracts could be used to do ACES in a trustless manner
But that's not possible without the VM on the main chain
grexx No I mean I get what you are saying. Look if we launch a fully integrated open source ARK blockchain with full ARKVM functionality and anyone in the world can clone it and publish an Ethereum competitor on the spot, we always ran the risk of someone forking/cloning ARK and stealing our thunder, but that is a risk we are willing to take.
We won't intentionally hamstring ourselves
who said that?
grexx ARKVM was on the initial roadmap from Day 1
grexx Technically it was on the roadmap at Crypti
mike The main chain is only to provide communications among bridged chains, and send payments in Ark among addresses, just as TCP/IP is only used to send data among IP addresses. Applications seeking trustless operation can run their own bridged chains with multiple delegates forked from Ark and configured to their own custom configurations, or they can even use a different consensus system altogether. Enterprise applications can run permissioned ledgers using an Ark fork since it is very similar to DPoS, except they control who can be delegates, like EduCTX as an example. ArkVM will be available for those who want to run Solidity contracts, either as their own forked and bridged chain, like if they have complex contracts and/or high volume, or can run their contracts on a public ArkVM chain bridged to Ark. ACES is also available as a trusted listener and relay node option to other chains. There are plenty of options for difference use cases and preferences.
goldenpepe But Mike, wouldn't being forced to fork off your own chain every time you wanted to create your own dapp/smart contract be extremely cumbersome?
jarunik It is already really easy to clone
goldenpepe How is it easy? You need to set up your own servers, find people to be your delegates, acquire a stash of ark
If you end up being your own delegate then there goes decentralization
moonman I understand and agree with the use case OUTSIDE of trust less swaps. But in the context of trustless swaps, which has been Ark's biggest selling point everywhere we asked, it would only be possible if the main chain had VM or a sidechain token had a valuation, in which case there would be no reason to swap back to ark. Were trustless swaps not a big part of the internal goal of what ArkVM aims to accomplish? How would it work with just side chains without stealing Ark's thunder? @mike
ryano I've talked about trust and the design of ACES in many posts. It often gets argued as not being trustless, but I do state that the ACES design is intentionally "trust agnostic" because there are many different views on the right way to build blockchain services. Not all parties believe trustless is even a thing. For example, even in smart contracts that are "trustless" you must trust the code, and very few people will critique the code, so you end up with a single point of trust failure. My personal favorite approach is M of N multisig, and this can reduce trust to a statistically insignificant amount (though by definition, as perhaps with all things, not 100% trustless).
spghtzzz if native function is built in v2, we can see trustless swaps
ryano as far as ACES being shapeshift, this is true to an extent. But shapeshift is like one single provider. A 1 of 1 signature service. With a marketplace we can build a system that has ways to manage trust using well studied trust based marketplace. And despite its name, the trust factor can be minimized towards zero with multisig
goldenpepe Who knows what protocol changes v2 will bring
moonman @ryano There's no such thing as multisig swaps though - that's sort of what it would be if main chain got VM - you could have 51 delegates to "decentralize" the contract and ensure it stays trustless. The current ACES implementation is entirely centralized around the specific node running it.
moonman A marketplace isn't decentralized, it just means you have more trust options. It's not "trust agnostic". You're only trusting one node, but you get to pick the node.
ryano Thats not true if it a multisig service
goldenpepe Another thing: wouldn't the forked chains require a stash of Ark?
moonman The problem with that is you're still trusting the few running them - they're not backed by ARK voters.
goldenpepe From what I remember Mike said, the forked chain's delegates will also be running Ark nodes which is how the forked chains' clients can communicate to Ark
moonman If you could lock ACES down to be ran just under the delegate nodes ran under ARK itself, it could work.
goldenpepe But in order for that to happen, the delegates would need a stash of Ark in order to send Ark txs, no?
grexx I think there has always been an intention to have a marketplace of service providers who could be rated and would allow a more "trusted" environment but I get the argument against that model.
spghtzzz yes, it's a trust of consensus
moonman If ArkVM is being ported, it could be avoided and would renew and bring new faith into Ark if the main chain could become the central trustless hub for swaps. For other dapps I understand the hesitation due to bloat, but due to how the marketing was perceived or communicated I'm afraid that everyone we've spoken to or conversed with about the topic is expecting that specific dapp to play a central role in Ark development/adoption - which is why we were all taken aback when we were told that the main chain wouldn't have VM.
grexx But this here is exactly what led to the discussion above. What you describe here would then basically be a smart contract. Moon Man If you could lock ACES down to be ran just under the delegate nodes ran under ARK itself, it could work. Posted in #generalToday at 6:58 AM
moonman There's no way to lock it down trustlessly though without also having it interwined with ARK
He can't "Force" nodes to run ACES, that's the problem.
Then the issue is we don't know who we are trusting.
Then you get other issues like sybil attacks
ryano I'm trying to dig up an important article on this topic, but you should all get familiar with the advantages and disadvantages of smart contracts vs. M of N multisig
moonman That's why DPoS is good - it solves these issues.
ryano you'll find very material advantages to multisig that are not often discussed, ones that fit very nicely in well studied and proven marketplace-like ecosystems
goldenpepe Aren't atomic swaps basically that?
ryano Were building ACES trust-agnostic for this reason, because if people want to built "trustless" services, which can be argued to be trusted anyways, theres no reason not to provide the ecosystem to communicate their services
but there will be many other services just using multisig to reduce trust
jarunik Someone will sure launch a clone chain which offers VM services
ryano this is how its done in bitcoin and monero, and is more powerful than people let on
moonman And then it overtakes ark if it carries ark features but has a swaps-capable VM, which is our other concern.
jarunik You will better be running it then!
ryano If i have 5 service providers, and a service is set up as a 3 of 5 signature service, those 5 providers are all listening to the external chain, possibly subscribing to different listener sources, and then verifying back to ark, like an oracle, that the requested event occurred. This is a simple binary oracle response, and can be entered as signature. Sign = yes, no sign = no/unsure.
moonman You have to trust those 5 providers though.
ryano You would then need 3 bad actors for this to fail.
moonman And what happens when you have sock puppets
that's how sybil attacks work
You spam the network with sock puppets
goldenpepe Yea even Tor got sybil'd
moonman If you can't add your own sock puppets, then what's the point of having 5 sigs if one person chooses all 5? Then you're just trusting the creator
goldenpepe but tbh, monero is vulnerable to sybil too
moonman The reason ARK will help with this is you are tying the 51 sigs to existing delegates that were voted in by ARK users.
They're "trusted" but decentralized in a method that makes sense given the platform
ryano well, why not use those delegates as your signers then
moonman There's no way to force the delegates to run the service
That's the problem
ryano no forcing anywhere, but incentives
goldenpepe Not unless the ark team embeds aces into ArkCore
B.Lawrence.Lowe What about incentivizing the delegates to run the service somehow?
moonman It won't matter. It's too easy for them to just say "I'm not interested or don't want to" and then you get attacked by those who are running it. It just doesn't make any sense.
moonman A second layer solution doesn't work simply because you can't enforce delegates running the service.
ryano But why do you trust the delegates?
moonman I don't - voters do.
I trust the collective voter choice vs your choice of 5 signatories
B.Lawrence.Lowe Voter here. I tust my delegate. He;s always paid me on time.
moonman It's about who ARK voters trust.
Because ultimately that's what powers the platform - trust in ARK and ARK holders
spghtzzz why do you trust a delegate who won't even reduce your TX fees?
goldenpepe I don't get it
ryano even with smart contracts, since were dealing with external chains, you need to trust a source to confirm that something from the outside world happened
spghtzzz explanation provided yesterday in #delegates if that was toward me @goldenpepe
moonman Correct - but it is far less concerning when that source is the 51 delegates.
Rather, when the source is confirmed by the 51 delegates
ryano but now instead of 51 delegates its 51 listener hubs
or even more
moonman Yes, but again, sybil attacks...
B.Lawrence.Lowe Right, and just like a representational government, as a voter I trust my delegate. I thought this is how this worked, yes?
moonman If you select the hubs, it's centralized to YOU selecting them. If you don't, it's open to sybil attacks from sock puppets
If it's limited to the delegates, it makes sense in the context of the ARK ecosystem because you are trusting your currency to those 51 people in the first place
B.Lawrence.Lowe He takes my votes and makes decisions for the community in my best interest, as his constituent, right?
moonman The only way to enforce the consensus is to build it into the core so delegates have to run the platform and keep the swaps "dapp" secure and running.
anyway, I've explained my case. Hopefully what I said made sense.
mike The original plan, and still the plan, is to interconnect other blockchains, which can be existing chains or new ones forked from ark. We have added ArkVM as an option to be added to the deployable chains, and run a public ArkVM chain. Ryano has also come up with ACES, as another, streamlined method to exchange and interact with other chains, which is an example of Ark allowing different methods to be developed to accomplish objectives. A non-turing complete VM meant only to facilitate cross chain swaps is a viable option as well, and can run as a bridged chain.
ryano You could reduce the risk of sybil attacks by doing something similar to how ark does voting. A listener source would have to be tied to an ark address, so you would see their "stake". In this case attempting to run 51 listeners to do a sybil attack would require you to reduce your stake, and likely be less attractive to users
moonman @mike How does the bridged chain function as a method for these swaps though? What do you envision as the technical flow for this?
@ryano You could do that, but then you're doing almost exactly what I mentioned before - making your own ARK clone but with swaps. (edited)
What would be the requirements for running the nodes? How would you force consensus without running its own blockchain?
goldenpepe @mike I recall you saying deployed chains' delegates will also be running Ark nodes which is how these chains will be able to communicate with Ark. But wouldn't that require these forked-chain delegates to maintain a stash of Ark? Wouldn't the chain become completely isolated once their delegate nodes run out of Ark?
moonman If it's not an ARK clone and just listeners - that means no PoW, no DPoS, what are you going to do in your listener code to enforce consensus
The only thing you can do is have more oracles checking the top 51 delegates and matching it with signatures provided by listeners - but then THOSE oracles get sybil attacked!
mergatroid You know on the roadmap where it says all of the goals, and tech documentation is at 25%
B.Lawrence.Lowe @mike "The original plan, and still the plan, is to interconnect other blockchains, which can be existing chains or new ones forked from ark." This answered my main question. As long as by "existing chains" you clearly mean, Bitcoin, Ethereum, Litecoin, Dash, Stratis, Waves, etc.. Not sure how it will all work because I don't code, but if you're confident in getting it done, that works for me.
goldenpepe @mergatroid All the questions we're asking could have been answered with a technical whitepaper, but it doesn't exist and the existing whitepaper is outdated.
mike they would run ark clients, which interact with the Ark chain, the various ark-cli clients that are available, or they can run full nodes with their own copies of the ark blockchain, it's up to the developer of a particular bridged chain how he wants to configure it.
ryano time to update that white paper :stuck_out_tongue:
goldenpepe But the pushbutton deployed chains will all need a stash of ark, no?
spghtzzz it'd be nice for interoperability purposes
mike They will need Ark to write data to the main ark chain using the vendor field. they will not need ark to run listeners and read the vendor field from transactions addressed to that chain.
cannabanana Dudes, all I can say is that this blockchain is less than a full year old. We've been already been looking for a technical writer for a whitepaper 2.0 and techincal whitepaper.
mike if they want to use Ark as a reserve currency to back exchanges between other chains they would need that as well.
mike As canna says, we are hiring for a technical writer to update and add to the documentation, and hiring in general is ramping up now that the SCic is in place.
goldenpepe @mike Do you envision in the future there will be an ark-fork with the VM enabled that will essentially be an ethereum clone where all the devs gather to play with smart contracts/dapps?
mike yes
moonman Do you have any worries that any such chain may overtake ARK itself? @mike
goldenpepe I'm more concerned over that chain becoming bloated which defeats the purpose of moving the VM to its own chain in the first place
mike no, it is for a specific type of use, smart contracts to provide ETH type functionality.
moonman Grexx mentioned a separate chain for each major dapp.
That would reduce/remove bloat
goldenpepe It'll get very confusing if you have a bunch of large open VM-enabled chains.
"Have you seen ArkieKitties?" "Where? On ArkFork1? Fork2?Fork3?"
goldenpepe It'll lead to fragmentation
spghtzzz ecosystem, fragmentation is good
in some senses..
goldenpepe uhhhh
ryano Ark.Kitties
goldenpepe No it isn't lol
moonman It's good for the network, not for user interaction.
goldenpepe ^
ryano depends how its designed i think
can be done well
goldenpepe @ryano I also brought this up
moonman Yeah I think it's a minor issue as well, it can probably have a directory or its own DNS-like service in the wallet
goldenpepe So if I want to create a super cool new dapp, I'll need to fork off my own chain, find people to be my delegates, then give them a bunch of ark
ryano In ethereum you need to know the contract name to interact with it, so why not required to know the ark chain id?
goldenpepe It's too cumbersome
mike separate chains is the preferred method, and for a lot of things requiring complex code, Solidity contracts aren't the best way to go. But for those wanting to port Solidity code to Ark, either on a public chain or their own chain, ArkVM will provide that option.
goldenpepe Yea I was thinking that
Small contracts can exist on a shared chain while large dapps like kitties or an ICO can exist in its own chain
Large projects will have the resources to fork, find delegates, and fund them
But that will still create fragmentation if there exists multiple large public VM chains
mike I see ArkVM as a way to onboard projects and developers from Eth over to Ark, but then they may optimize for more efficient operation by writing code from scratch specific to their needs instead of running on solidity. As an example, non-turing complete application specific code is more reliable in that it has a finite set of states where as Turing complete code has an infinte set of state, not all of which can be known.
if the multiple large public chains are bridged, contracts running on them can still communicate with other contracts running on the other large public VMs.
goldenpepe Bridging them won't help if the dapp you want to access is on ChainA and ChainA takes hours to process a tx because of bloat
mike It's analagous to code running on Amazon servers can communicate with code running on OVH servers via TCP/IP, like delegates now communicate with each other while running on different data centers.
grexx just for reference, the intention is to make discovery extremely easy and for the average user, they will have no idea what chain they are on or how it works.
they will just buy kitties and be happy
goldenpepe @grexx It would be great if the wallet could do that and it would solve fragmentation issues
"Chain-hopping" being completely transparent to the user
grexx that is a top priority
goldenpepe But how will we deal with a certain chain containing data you need being slow?
grexx same way the free market deals with anything
if your service sucks, improve your service or get beat by competition
goldenpepe The bloated chain will lose users?
mike If a public VM degrades in performance then there is a market for another public VM, and the existing one can upgrade its performance to remain competitive.
grexx sidechains can increase capacity through better hardware with the upgrades being made
goldenpepe But blockchains are sticky (to use an economic term), people will be less prone to switch if all their assets exist in that slow chain
Look at bitcoin
grexx but then again like I mentioned way earlier
goldenpepe Slow as fuck but people still use it because they're invested
mike gress is a faster typist than I am...
grexx connected clusters with pegged assets I think are a potential answer
within the sidechains
well if you look at the main ark chain, we have 8s blockchains to maximize use case as currency
but a sidechain depending on its needs wouldn't necessarily have to have 8s and could probably do a lot to increase tps and other factors
those are all things we will min/max on devnet though
mike If a given VM chain becomes bigger than Ark and wags the dog, that is part of the evolution. We don't want to try to force the ecosystem to use Ark but instead attract them to do so. We don't want to be like New York banning railroads from entering New York City to force traffic to use the Erie Canal.
grexx all of crypto is an experiment and we have no idea what models will ultimately come out of it, especially when we make it easy for anyone to launch their own fully capable smart contract enabled blockchain (eth clone)
so there is definitely some inherent risk as with investing in any emerging technology
moonman Pegged assets would address my concern regarding sidechain valuations and their use in swaps, but pegged assets have never worked in crypto except for Tether which is centralized and potentially a fraud.
goldenpepe Didn't someone mention forking ark and printing USD-backed coins?
moonman We did lol
I never said it was a good idea
moonman I was going to mention bitshares @bluffet
Bitshares isn't stable
Their pegs have fluctuated WILDLY in the past
goldenpepe Bitshares got delisted from bittrex and is in deep shit with the SEC though
mike Yes, TCP/IP was originally just to connect academic and research lab computers to share files, evolved to add email, then web, and now all kinds of applications. None of this added functionality was planned or conceived when TCP/IP was first invented.
bluffet I know, moonman. It is a liquidity issue. The market solves it.
moonman Tether never had this issue though (I don't have a good reason for why - bitshares is infinitely better designed yet economically worse than tether)
grexx in 3 years we may look back and think, holy shit, I never saw that coming. People are innovative and when given time, always end up exceeding expectations. I guess we are starry eyed dreamers in that we want to create something that empowers a new generation of innovation and accessibility in the space.
bluffet I liked your discussion today, guys. I learn from it.
grexx bitshares along with all of dan's projects have the problem of being centralized within a small group of connected supporters (edited)
goldenpepe Yea this was a good conversation
submitted by Jarunik to ArkEcosystem [link] [comments]

jl777 informal Telegram chat 9/AUG/18. Topics include Crypto Condition smart contracts, ERC20 token migration, scaling, and marketing.

TL:DR will be in comments
This is an informal discussion with jl777 and some Komodo team members and the community on Telegram. I've edited some of the grammar and structure, combined shorter messages into paragraphs to help readability, and removed messages that weren't relevant to the discussion or had already been answered. Full text is visible on Komodo telegram, or Komodo Discord (telegram channel)
---
N 21: Mr. Please when smart contracts?
jl777: first four reference contracts are pretty much working now, likely some bug fixes needed but assets, faucet, rewards and dice CC contracts are functional
Firedragon: Ethereum start the year 2017 around 7 dollars, end the year x 200 times at around *1400*, user friendliness leads to giant expansion.
jl777: Sure, no disagreement, but code snippets don’t seem very user friendly. Unless you mean having cartoon characters alongside the code snippets makes it user friendly?
jl777: Having non-coders doing code is dangerous, no matter if it has cartoons.
Firedragon: enables expansion at scale.
jl777: Until you get an actual dApp that is popular and the entire chain bogs down and TX fees goes to $5+
Firedragon: it is dangerous, but once run into problem, will likely seek help, but important, easy to start.
jl777: With the CC contracts, it is a matter to issue rpc calls to start a contract. So it doesn’t require coding, but if your use case isn’t covered by an existing CC contract, then a custom CC contract needs to be written. It is similar to ASIC mining vs CPU mining. More work to make the ASIC, but once created it can do all the related things much more efficiently.
jl777: Assets with DEX, faucet, rewards and dice CC contracts I made in a month. We are in the process of hiring a dedicated CC contracts dev, they are not that much work to code but it does require to be coded and I only did the cli rpc calls, not GUI.
Firedragon: komodo solve the scalability of Cryptokittens that Ethereum bog down with. I believe Ethereum solve the usability issues. if only combine the two.
jl777: Yes, KMD solves the Cryptokitties scalability issue, but someone has to write the Cryptokitties CC contract which is mostly independent of the blockchain as it has the kitty’s DNA logic that seems to be most of it.
Jakub Alex: Jl777 what is your opinion about future price after bear market? What price levels can we expect with komodo? 50-100? 100-200 or more? Are we able to be in top 15 m cap coins?
jl777: Future KMD price depends on overall crypto market cap, if you can predict that, then I can predict a future KMD price. Historically KMD is a bit under 0.1% of overall crypto market cap. Assuming KMD price rises in CMC to top 10 level, then it would be closer to 1% of overall crypto market cap.
jl777: So really, just 2 variables. What overall rank on CMC and the total crypto market cap.
Chris Fray: Staking Is the best way u come back in a year collect your 5% and do it all over again don't panic sell.
jl777: It will be monthly starting very soon.
The Fonz: How many nodes are there currently? Running the network? is there a real time link to a list?
jl777: There is no way to know for sure, I would estimate about 1000
Rubinho: How do you run a node on KMD? Just by staking tokens?
jl777: Running a native wallet, runs a node.
Rubinho: Who is the intended end user for KMD? b2c? b2b? both? what is the state of partnerships?
The Fonz: Minimum KMD required?
Regnar: To run a node? No minimum required, but to earn 5.1% rewards on your balance, you need a minimum of 10 KMD in an address, the simplest way to do this is to store funds in Agama (even the lite mode) and press the claim interest button.
The Fonz: gotcha, thx.
Regnar: Probably best to check out the discord marketing channel for updates and talks on that, telegram generally gets cluttered quickly with other conversations. There are definitely partnerships being worked on, but I think it would be better to wait for official announcements on them, so I won't disclose or help push any rumors there. Here's the link.https://discord.gg/5WtTNKX
Regnar: jl777, I assume ERC20 projects who are looking to migrate off of Ethereum, or launch their main net, would be interested in Komodo as CC becomes more developed. Can you say what that migrating/main net process might look like for those projects?
jl777c: the process would be to get a new chain spawned to test the custom contract with and when it is working,to just migrate the ERC20 snapshot to the new chain. The CC framework is ready to be coded to and devs can create a custom contract embedded in their chain. txfees in their chain, only tx from their dapp on their chain.
Regnar: And I assume before they migrate to their new chain they can have all the features and things in place to be atomic swap capable, set up for dPoW, and would have the same scaling tech Komodo uses?
jl777: yes, all can be put in place before doing the snapshot and migrating, and everything other than enabling dPoW can be done without our being involved, though we are happy to help.
Regnar: Okay so the dPoW part requires Komodo involvement, and GameCredits, Kreds, Utrum, and some other coins have added dPoW to their chains for the extra security. Is this process getting easier to do for established coins that aren't looking to migrate?
jl777: as far as if KMD will survive this bear market, I am confident KMD will survive the next bear market and even the one after that. We have funding for 10+ years of dPoW and while we do have end user deliverables, that is a very expensive marketing wise for customer acquisition. Our focus on enabling technologies allows us to run much leaner on the marketing side. and in any case, we don’t have millions of dollars to be throwing about left and right for paid placements and listings like many of the other projects do. It will take longer, but as more people learn about KMD, the mentions we will get will be based on KMD attributes and not due to paid placements.
Rubinho: The main focus for many platforms is to attract devs.. i think the perception of the numbers of devs out is over estimated... what would you consider to be a "possible application" that can be built on KMD for the benefit of the end user? Again I own KMD, I just want to have a better grasp of KMD's competitive edge, is it only TPS? And if there isn't a lot of money for paid placements... which is understandable... how would KMD be better distributed in more hands?
jl777: I wrote 4 reference contracts last month: assets with DEX, faucet, rewards and dice. Once written they can be configured without programming, each CC contract that is written becomes part of the baseline contracts available for all chains, and the rewards CC contract implements what seems to be what is most liked about masternodes.
xRobeSx: Assetchains / dPoW / jumblr / 5% interest... the list goes on and on. The fact that anyone can spawn a new chain in seconds that has a built in faucet, is pretty damn cool.
The Fonz: This link is helpful as well https://www.reddit.com/komodoplatform/comments/8gyajv/welcome_to_komodo_a_beginners_guide/
jl777: Assets/tokens are also pretty important and dice is a classic blockchain game, all these are blockchain enforced trustless implementations
Steve Lee: I'd recommend reading https://komodoplatform.com/komodo-evolution-the-5-pillars-of-blockchain-tech/ and the 5 deep dive posts linked in the article.
Rubinho: how would that be beneficial in a real life scenario? what would be your prediction for the future in terms of the numbers of chains or platforms? Many or few winners?
xRobeSx: The first few years of bitcoin, was a lot of faucets and dice games :smiley: now anyone can do it in minutes ha.
Steve Lee: We're working with https://www.ideasbynature.com/ for a full rebrand and also refreshing the UX/UI across our product portfolio. Ideas By Nature is the world’s leading agency focused solely on the design and development of blockchain products. Located in the heart of Denver, CO.
jl777: these are just the reference CC contracts, the possibilities are endless as to what can be implemented. Basically anything you can describe coherently in detail can be made into a CC contract.
Steve Lee: We've spent the last year building the most securely scalable and interoperable blockchain infrastructure. We find this was critical to first focus on building the right foundation for our ecosystem and ensuring it was future-proof and to address many of the limitations we're seeing today.
Χαίρετε: UX/UI are better comparing with the old KMD apps, but it's still far from user friendly, the standards have to be much, much higher, otherwise I don't see much adoptions
J: I want to see ethLend style CC system in KMD
Rubinho: btw... I own KMD on ledger… will there be a way to gain the interest without having to move it to another wallet? I mean to claim. I don't want to take my private keys and put them into another wallet.
Steve Lee: This is our current interim solution. We're exploring full wallet integration with the Ledger team. https://www.youtube.com/watch?v=nKBdGI8pu7M&lc=z22audyhlvnrjpdwq04t1aokgbvrwe1nz2iz0sbmi0mnrk0h00410
Rubinho: thank u for that!
Χαίρετε: average users access your infrastructure via apps, doesn't matter how good your underline techs are, if apps are hard to use, people will leave. google cloud has better tech than AWS, better engineering team, better talents, but it's losing big against AWS, internally google said it will only fund it 2 more years if things don't turn around, i know number of people who have left that team, so the infrastructure doesn't matter at the end. i think KMD team has this engineering mentality thinking that UX/UI is easy, but the opposite is true, designing a user friendly product is hard, even harder than engineering.
Steve Lee: Agreed, that's why since we've finished building the foundational architecture, we're moving focuses on building out our developer community, documentation, training, and are moving towards development of a smart contract reference library.
Siu: Mm1.0 is a proof of concept. As it is right now it still is ages ahead of similar concepts. It should be jaw dropping even as it currently is. The real problem bdex confronts is the prostitution of the "atomic swap" name by ETH tokens.
Steve Lee: Also in plan is building a GUI frontend for blockchain creation, customization, etc.
jl777: if everything was perfect already, we would be done and have nothing to do. it is a process of continuous improvement
James: Ethereum has solidity. Is there equivalent for Komodo?
jl777: CC contracts are native code running at full speed. Any language that can be compiled into a library can be used, but we are just getting started with making different language bindings and it would need to interface to the c/c++ functions inside the komodod. My thinking is that blockchain coding is difficult and not something end users or casual programmers should be doing, such can and have led to some very expensive errors, even experienced blockchain devs make errors. C++ is the easiest, but any language that compiles would be able to be used.
James: OK. So it is c++
Rubinho: could you walk me thought how am I (the end user) going to use KMD in the system? is KMD like GAS for the platform?
jl777: rust would likely not be too hard to interface to. The CC contracts tend to be configurable, so the user can determine the settings of the rewards and not have to code it, of course a full blockchain project creating their own dapp would need to still create their own dapp, but on their own chain, there is no crazy txfee, congestion, etc
[End Chat]
submitted by regnar2 to komodoplatform [link] [comments]

[uncensored-r/CryptoCurrency] Why we won't have a long term bear market, and how to systematically pick your future investments...

The following post by arsonbunny is being replicated because some comments within the post(but not the post itself) have been openly removed.
The original post can be found(in censored form) at this link:
np.reddit.com/ CryptoCurrency/comments/7r4vlc
The original post's content was as follows:
With so much uncertainty right now it would be a good time to take some time to go over what happened recently and how to invest moving foward. We've seen a peak bubble at around 850 billion total market cap in the first week of January, consolidated down to $750 billion and have now just experienced a 40% correction.

What's happening now and how bad will it get?

First of all you should realize that there is a January Dip that happens every year, when we see a roughly 20-30% decline around mid January. This year its been much more severe though for several additional factors that have compounded on top.
Different theories exist on why this happens (its actually the mirror opposite of the "January Effect" that happens in the US stock market), but the two major theories are:
1) Asian markets pull into fiat because of Asian New Year spending needs
2) People in the US sell in January to defer their capital gains tax liability an extra year
While this cyclic event has lead to a healthy correction in the last few years, this year we got these new factors making more fear as well:
So in essence we got a storm of scary news along with the usual cyclic downturn. Currently I don't see this as being a systematic crash like Mt.Gox was that would lead to a long term bear market because the fundamental ecosystem is still intact, and I suspect that after about a month we should consolidate around a new low. All the exchanges are still operational and liquid, and there is no breakdown in trust nor uncertainty whether you'll be able to cash out. What range the market trades in will all depend how Bitcoin does, right now we've already broken below 10K but I'm seeing a lot of support at around $8000, which is roughly where the long term MA curve settles. I don't expect us going below that support line anytime soon without any systematic breakdown. The fact we got closer to it is actually quite healthy in the long term because it is a valuation that can be logically justified using the cost factors of the mining network. In addition when I run a regression on the price history before the crazy Nov/December bull run, the first Fibonacci level seems to be just around $8000. So I think we should consistantly move above that support level, possibly with a few weeks of fluctuations between the $9-$13K range.
What should you do if you recently entered the market?
If you did buy in the last few months at or near ATH, the very worst thing you can do now is sell in panic and lose your principal. You shouldn't have more money in crypto than you can afford to lose, so it shouldn't be a problem to wait a few months. You have to realize that 30% corrections in crypto are relatively common, just last fall we had a 40% flash correction over more China fears. Unless there is a systematic breakdown like we had during Mt.Gox, the market always recovers.
The other worst thing you can do is unload into Tether as your safety net. If there is one thing that could actually cause a long term destruction of trust within the cryptocurrency investment ecosystem, its Tether having a run up on their liabilities and not having enough reserve to cover the leverage. It would not only bring down exchanges but lead to years of litigation and endless media headlines that will scare off everybody from putting fiat in. I don't know when the next Mt.Gox meltdown will occur but I can almost guarantee it will involve Tether. So stay away from it.
What should long term investors do?
For long term holders a good strategy to follow each year is to capture profit each December and swallow the capital gains taxation liability, park a reserve of fiat at Gemini (whose US dollar deposits are FDIC-insured) and simply wait till around late January to early February to re-enter the market at a discount and hold all year until next December. You can keep a small amount in core coins in order to trade around various Q1 opportunities you anticipate. Others may choose to simply do nothing and just keep holding throughout January which is also a perfectly fine strategy. The cyclical correction usually stabilizes toward late January and early February, then we see a rise in March and generally are recovered by end of April. Obviously this decision whether to sell in December to profit on the dip and pay tax liability or to just hold will depend on your individual tax situation. Do your own math sometime in November and follow suit.

How to construct your portfolio going forward

Rather than seeing the correction as a disaster see it as a time to start fresh. If you have been FOMO-ing into bad cryptos and losing money now is a time to start a systematic long term approach to investing rather than gambling.
Follow a methodology for evaluating each cryptocurrency
Memes and lambo dreams are fun and all, but I know many of you are investing thousands of dollars into crypto, so its worth it to put some organized thought into it as well. I can't stress enough how important it is to try and logically contruct your investment decisions. If you follow a set methodology, a checklist and template you will be able to do relative comparisons between cryptocurrencies, to force yourself to consider the negatives and alternative scenarios and also sleep comfortably knowing you have a sound basis for your investment decisions (even if they turn out to be wrong).
There is no ideal or "correct" methodology but I can outline mine:
1) Initial information gathering and filtering
Once I identify something that looks like a good potential investment, I first go to the CoinMarketCap page for that symbol and look at the website and blockchain explorer.
  • Critically evaluate the website. This is the first pass of the bullshit detector and you can tell from a lot from just the website whether its a scam. If it uses terms like "Web 4.0" or other nonsensical buzzwords, if its unprofessional and has anonymous teams, stay away. Always look for a roadmap, compare to what was actually delivered so far. Always check the team, try to find them on LinkedIn and what they did in the past.
  • Read the whitepaper or business development plan. You should fully understand how this crypto functions and how its trying to create value. If there is no use case or if the use case does not require or benefit from a blockchain, move on. Look for red flags like massive portions of the float being assigned to the founders of the coin, vague definition of who would use the coin, anonymous teams, promises of large payouts...etc
  • Check the blockchain explorer. How is the token distribution across accounts? Are the big accounts holding or selling? Which account is likely the foundation account, which is the founders account?
  • Read the subreddit and blogs for the cryptocurrency and also evaluate the community. Try to figure out exactly what the potential use cases are and look for sceptical takes. Look at the Github repos, does it look empty or is there plenty of activity?
2) Fill out an Investment Checklist
I have a checklist of questions that I find important and as I'm researching a crypto I save little snippets in Evernote of things that are relevant to answering those questions:
  • What is the problem or transactional inefficiency the coin is trying to solve?
  • What is the Dev Team like? What is their track record? How are they funded, organized?
  • Who is their competition and how big is the market they're targeting? What is the roadmap they created?
  • What current product exists?
  • How does the token/coin actually derive value for the holder? Is there a staking mechanism or is it transactional?
  • What are the w...
submitted by censorship_notifier to noncensored_bitcoin [link] [comments]

Deep Analysis Of Qtum's Account Abstraction Layer (Qtum AAL)

Analysis of Qtum Account Abstraction Layer (AAL) Implementation
https://mp.weixin.qq.com/s?__biz=MzI2MzM2NDQ2NA==&mid=2247485993&idx=1&sn=57ad353fd13b10ab85b62d693f86b1f5&chksm=eabc4036ddcbc9208ea766274defc543a9238967c5d2c541e615906a25a2962d75c4c6bd2c2b&scene=21#wechat_redirect
Qtum is designed with a bitcoin UTXO-based account model and implements a smart contract that supports the EVM specification, which is done through the Account Abstract Layer (ALA). AAL adapts the UTXO account to the EVM contract account, so that the AAL can use the UTXO transaction output to create a smart contract on the chain, send the transaction to the contract account to trigger the execution of the contract, and the AAL will eventually execute after the execution. The results were processed and adapted to UTXO. Thanks to the AAL, contract developers don't need to care about the UTXO transformation details related to contract operations, they can use the features of EVM to develop and are compatible with existing Ethereum smart contracts. This paper first analyzes the working process of AAL by interpreting the implementation code from UTXO transaction to smart contract execution.
 
1. UTMO transaction added script opcode
Qtum has added three opcodes OP_CREATE, OP_CALL and OP_SPEND for UTXO trading scripts to provide operational support for conversion between UTXO and EVM account models. These opcodes are defined in the opcodetype enumeration type:
 
Enum opcodetype{
......
OP_CREATE = 0xc1,
OP_CALL = 0xc2,
OP_SPEND= 0xc3,
......
}
 
These three opcodes have the following effects:
OP_CREATE is used to create smart contracts;
OP_CALL is used for the execution of the contract;
OP_SPEND is used for the cost of the contract balance.
In order to identify and process the transactions controlled by these opcodes during the block generation process, the HasCreateOrCall() and HasOpSpend() functions are added to the class CTransaction for UTXO model transactions for use in the mempool in the new block. The transaction is processed and the corresponding processing is added to the EvalScript() function of the script opcode parsing.
 
2. Conversion of UTXO transactions to EVM model transactions
When generating new blocks, in addition to regular parameter legality, consensus rules, DDOS attack checks, etc. for UTXO transactions, it is also necessary to use the opcode check function HasCreateOrCall() to determine whether the transaction output contains OP_CREATE or OP_CALL, which respectively correspond to EVM needs to perform contract creation or contract calls. This section has the following processing:
 
2.1 Performing account parameter extraction for EVM model
The contract uses the data, gasPrice, gasLimit, and VM version parameters in the execution of the EVM. These parameters are sent by the RPC call sendtocontract. The sendtocontract generates a UTXO transaction and uses the OP_CALL opcode in the transaction output. Will be broadcast to the blockchain network. The adaptation from UTXO to EVM in AAL is implemented by the QtumTxConverter class, in which the member functions extractQtumTransactions() and parseEthTXParams() of the class complete the parameter extraction for all such UTXO transaction output. The code fragment is as follows:
 
Dev::Address receiveAddress;
Valtype vecAddr;
If (opcode == OP_CALL)
{
vecAddr = stack.back();
Stack.pop_back();
receiveAddress = dev::Address(vecAddr);
}
Valtype code(stack.back());
Stack.pop_back();
Uint64_t gasPrice = CScriptNum::vch_to_uint64(stack.back());
Stack.pop_back();
Uint64_t gasLimit = CScriptNum::vch_to_uint64(stack.back());
Stack.pop_back();
VersionVM version(CScriptNum::vch_to_uint64(stack.back()));
Stack.pop_back();
Return EthTransactionParams{version, dev::u256(gasLimit), dev::u256(gasPrice), code,
receiveAddress }
 
The above code first judges that if the opcode is OP_CALL, the contract with the address vecAddr has been created, so it is directly converted into the address of the EVM format receiveAddress, otherwise it is OP_CREATE, the corresponding contract is created, there is no such field, so no extraction is done. Next, the data, gasPrice, gasLimit, and VM version are extracted in turn, which are all essential parameters for the EVM to execute bytecode.
 
2.2 Transaction conversion of the EVM account model
Transaction conversion is done through the function createEthTX() of the QtumTxConverter class. The QtumTransaction type transaction is created using the parameters extracted in the previous step and the UTXO transaction output vout. Since QtumTransaction is derived from the dev::eth::Transaction class in EVM, the QtumTransaction class is supported by operations related to EVM execution.
 
QtumTransaction txEth;
If ( etp.receiveAddress == dev::Address() ) {
txEth = QtumTransaction(txBit.vout[nOut].nValue, etp.gasPrice, (etp.gasLimit *
Etp.gasPrice),
Etp.code, dev::u256(0));
}
Else{
txEth = QtumTransaction(txBit.vout[nOut].nValue, etp.gasPrice, (etp.gasLimit *
Etp.gasPrice),
etp.receiveAddress, etp.code, dev::u256(0));
}
Dev::Address sender(GetSenderAddress(txBit, view));
txEth.forceSender(sender);
txEth.setHashWith(uintToh256(txBit.GetHash()));
txEth.setNVout(nOut);
 
First, the code etp.receiveAddress == dev::Address() determines whether the contract is not in the EVM state and needs to be newly created or the contract already included in the EVM state. The only difference is the contract address. Then, the QtumTransaction() constructor completes some of the transaction parameter constructs, the next statement extracts the sender of the transaction, and then sets the transaction HASH. A UTXO transaction supports multiple inputs and outputs. Qtum's AAL design takes this into account, so AAL supports a transaction output containing UTXO accounts and contract accounts. The last set nOut indicates that the nOut output of the transaction is sent to the smart contract. , so this output will trigger contract execution. In this way, the transaction conversion is completed according to the EVM account model.
 
3. Contract execution and UTXO conversion of execution results
The execution of the contract changes state (managed by the QtumState class's instantiated object globalState). For the contract state, Qtum follows the EVM definition, so it is compatible with all EVM-compliant smart contracts. But the transfer of the account amount, Qtum made a UTXO conversion, which means that the smart contract and the ordinary UTXO model account can complete the interaction, which is an important part of AAL to achieve UTXO support smart contract. The following is a brief introduction to the conversion process of contract execution and status results.
 
3.1 Contract execution environment construction and contract execution
The execution of the contract is a critical step in the processing of the contract, directly affecting the state of the contract. The implementation of the EVM to the contract bytecode is implemented by the ByteCodeExec class. The main function is performByteCode(). The main process of this step is to use the transaction parameters extracted above to build the virtual machine execution environment, and then complete the execution of the contract, the code is as follows:
 
For(QtumTransaction& tx : txs){
Dev::eth::EnvInfo envInfo(BuildEVMEnvironment());
Std::unique_ptr
Se(dev::eth::ChainParams(dev::eth::genesisInfo(dev::eth::Network::HomesteadTest)).
createSealEngine());
If(!tx.isCreation() && !globalState->addressInUse(tx.receiveAddress())){
Dev::eth::ExecutionResult execRes;
execRes.excepted = dev::eth::TransactionException::Unknown;
Result.push_back(ResultExecute{execRes, dev::eth::TransactionReceipt(dev::h256(),
Dev::u256(), dev::eth::LogEntries()), CTransaction()});
Continue;
}
Result.push_back(globalState->execute(envInfo, *se.get(), tx, type, OnOpFunc()));
}
 
The first is to build a contract execution environment, which is done by BuildEVMEnvironment(). It can be seen that this execution environment is carried out for each independent transaction, so as to minimize the contract execution process of different transactions and avoid the cross-effects in the contract execution process. Then build a new sealEngine class, which is the EVM execution engine, which is done by the createSealEngine() function. In the middle, the possible state exceptions that occur are checked, and then globalState->execute() completes the execution of the contract. Here, the execution environment envInfo and the EVM execution engine se are used.
 
3.2 UTXO conversion of contract execution results
After the completion of the contract execution, the result is stored in vector result. The vector vector records the transfer relationship between EVM accounts generated by each contract execution. AAL completes the transfer from EVM account model to UTXO model by converting these transfers into UTXO transactions. Conversion of the transaction. This processing is implemented by the processingResults() function. The following is a code snippet.
 
ByteCodeExecResult resultBCE;
For(size_t i = 0; i < result.size(); i++){
If(result[i].execRes.excepted != dev::eth::TransactionException::None){
If(txs[i].value() > 0){
CMutableTransaction tx;
Tx.vin.push_back(CTxIn(h256Touint(txs[i].getHashWith()), txs[i].getNVout(), CScript() <<
OP_SPEND));
CScript script(CScript() << OP_DUP << OP_HASH160 << txs[i].sender().asBytes() <<
OP_EQUALVERIFY << OP_CHECKSIG);
Tx.vout.push_back(CTxOut(CAmount(txs[i].value()), script));
resultBCE.valueTransfers.push_back(CTransaction(tx));
}
} else {
resultBCE.usedFee += CAmount(result[i].execRes.gasUsed);
CAmount ref((txs[i].gas() - result[i].execRes.gasUsed) * txs[i].gasPrice());
If(ref > 0){
CScript script(CScript() << OP_DUP << OP_HASH160 << txs[i].sender().asBytes() <<
OP_EQUALVERIFY << OP_CHECKSIG);
resultBCE.refundOutputs.push_back(CTxOut(ref, script));
resultBCE.refundSender += ref;
}
} if(result[i].tx != CTransaction()){
resultBCE.valueTransfers.push_back(result[i].tx);
}}
 
First, the resultBCE variable of type ByteCodeExecResult is defined to save the result of the conversion. Use the opcode OP_SPEND to implement the transaction cost, because the UTXO of Bitcoin uses the private key signature to realize the balance after the transaction input is unlocked, and the EVM implementation involves the transfer between different accounts, so these need to be implemented by OP_SPEND Transfer to UTXO model trading conversion. If execRes.excepted is not None, ie the contract execution exception, the balance is returned to the contract caller. Otherwise, if there is no abnormality, the remaining gas after deducting the consumed gas is returned to the caller of the contract. For the transfer that occurs during contract execution, its UTXO transaction is stored in result[i].tx. Therefore, transactions between different UTXO accounts generated by this process of contract execution are stored in the valueTransfers vector, and eventually these transactions are included in the new block. At this point, the AAL module completes the conversion from EVM transactions to UTXO.
 
4. Summary
AAL assists in the creation, execution, and cost of contracts through the addition of UTXO script opcodes. Before the contract is created and executed, the conversion of the UTXO transaction to the EVM model transaction is required, and then the executed EVM execution environment and engine are used to complete the execution of the contract. AAL finally processed the results of the contract and adapted it from EVM to UTXO, thus implementing a UTXO-based smart contract. AAL makes Qtum compatible with EVM-compliant smart contracts, providing Dapp with a new base platform, while UTXO's advantages allow for advantages such as parallel processing and privacy.
 
Huaming
He is currently a Qtum core developer and researcher. He graduated from Huazhong University of Science and Technology and has a graduate degree from the Chinese Academy of Sciences. Prior to joining Qtum, he has been engaged in the development of algorithms and protocol stacks for many years of wireless networks (including 4G LTE and wireless ad hoc networks); since 2015, he has been in contact with blockchain technology and has participated in the first hackathon competition organized by Wanxiang Blockchain. .
submitted by thisthingismud to Qtum [link] [comments]

Blowing the lid off the CryptoNote/Bytecoin scam (with the exception of Monero) - Reformatted for Reddit

Original post by rethink-your-strategy on Bitcointalk.org here
This post has been reformatted to share on Reddit. What once was common knowledge, is now gone. You want a quality history lesson? Share this like wildfire.
August 15, 2014, 08:15:37 AM

Preamble

I'd like to start off by stating categorically that the cryptography presented by CryptoNote is completely, entirely solid. It has been vetted and looked over by fucking clever cryptographers/developers/wizards such as gmaxwell. Monero have had a group of independent mathematicians and cryptographers peer-reviewing the whitepaper (their annotations are here, and one of their reviews is here), and this same group of mathematicians and cryptographers is now reviewing the implementation of the cryptography in the Monero codebase. Many well known Bitcoin developers have already had a cursory look through the code to establish its validity. It is safe to say that, barring more exotic attacks that have to be mitigated over time as they are invented/discovered, and barring a CryptoNote implementation making rash decisions to implement something that reduces the anonymity set, the CryptoNote currencies are all cryptographically unlinkable and untraceable.
Two other things I should mention. I curse a lot when I'm angry (and scams like this make me angry). Second, where used my short date format is day/month/year (smallest to biggest).
If you find this information useful, a little donation would go a long way. Bitcoin address is 1rysLufu4qdVBRDyrf8ZjXy1nM19smTWd.

The Alleged CryptoNote/Bytecoin Story

CryptoNote is a new cryptocurrency protocol. It builds on some of the Bitcoin founding principles, but it adds to them. There are aspects of it that are truly well thought through and, in a sense, quite revolutionary. CryptoNote claim to have started working on their project years ago after Bitcoin's release, and I do not doubt the validity of this claim...clearly there's a lot of work and effort that went into this. The story as Bytecoin and CryptoNote claim it to be is as follows:
They developed the code for the principles expressed in their whitepaper, and in April, 2012, they released Bytecoin. All of the copyright messages in Bytecoin's code are "copyright the CryptoNote Developers", so clearly they are one and the same as the Bytecoin developers. In December 2012, they released their CryptoNote v1 whitepaper. In September 2013, they released their CryptoNote v2 whitepaper. In November 2013, the first piece of the Bytecoin code was first pushed to Github by "amjuarez", with a "Copyright (c) 2013 amjuarez" copyright notice. This was changed to "Copyright (c) 2013 Antonio Juarez" on March 3rd, 2014. By this juncture only the crypto libraries had been pushed up to github. Then, on March 4th, 2014, "amjuarez" pushed the rest of the code up to github, with the README strangely referring to "cybernote", even though the code referred to "Cryptonote". The copyrights all pointed to "the Cryptonote developers", and the "Antonio Juarez" copyright and license file was removed. Within a few days, "DStrange" stumbled across the bytecoin.org website when trying to mine on the bte.minefor.co.in pool (a pool for the-other-Bytecoin, BTE, not the-new-Bytecoin, BCN), and the rest is history as we know it. By this time Bytecoin had had a little over 80% of its total emission mined.

Immediate Red Flags

The first thing that is a red flag in all of this is that nobody, and I mean no-fucking-body, is a known entity. "Antonio Juarez" is not a known entity, "DStrange" is not a known entity, none of the made up names on the Bytecoin website exist (they've since removed their "team" page, see below), none of the made up names on the CryptoNote website exist (Johannes Meier, Maurice Planck, Max Jameson, Brandon Hawking, Catherine Erwin, Albert Werner, Marec Plíškov). If they're pseudonyms, then say so. If they're real names, then who the fuck are they??? Cryptographers, mathematicians, and computer scientists are well known - they have published papers or at least have commented on articles of interest. Many of them have their own github repos and Twitter feeds, and are a presence in the cryptocurrency community.
The other immediate red flag is that nobody, and I mean no-fucking-body, had heard of Bytecoin. Those that had heard of it thought it was the crummy SHA-256 Bitcoin clone that was a flop in the market. Bytecoin's claim that it had existed "on the deep web" for 2 years was not well received, because not a single vendor, user, miner, drug addict, drug seller, porn broker, fake ID card manufacturer, student who bought a fake ID card to get into bars, libertarian, libertard, cryptographer, Tor developer, Freenet developer, i2p developer, pedophile, or anyone else that is a known person - even just known on the Internet - had ever encountered "Bytecoin" on Tor. Ever. Nobody.

Indisputable Facts

Before I start with some conjecture and educated guesswork, I'd like to focus on an indisputable fact that obliterates any trust in both Bytecoin's and CryptoNote's bullshit story. Note, again, that I do not doubt the efficacy of the mathematics and cryptography behind CryptoNote, nor do I think there are backdoors in the code. What I do know for a fact is that the people behind CryptoNote and Bytecoin have actively deceived the Bitcoin and cryptocurrency community, and that makes them untrustworthy now and in the future. If you believe in the fundamentals in CryptoNote, then you need simply use a CryptoNote-derived cryptocurrency that is demonstrably independent of CryptoNote and Bytecoin's influence. Don't worry, I go into this a little later.
So as discussed, there were these two whitepapers that I linked to earlier. Just in case they try remove them, here is the v1 whitepaper and the v2 whitepaper mirrored on Archive.org. This v1/v2 whitepaper thing has been discussed at length on the Bytecoin forum thread, and the PGP signature on the files has been confirmed as being valid. When you open the respective PDFs you'll notice the valid signatures in them:
signature in the v1 whitepaper
signature in the v2 whitepaper
These are valid Adobe signatures, signed on 15/12/2012 and 17/10/2013 respectively. Here's where it gets interesting. When we inspect this file in Adobe Acrobat we get a little more information on the signature
.
Notice the bit that says "Signing time is from the clock on the signer's computer"? Now normally you would use a Timestamp Authority (TSA) to validate your system time. There are enough public, free, RFC 3161 compatible TSAs that this is not a difficult thing. CryptoNote chose not do this. But we have no reason to doubt the time on the signature, right guys? crickets
.
See these references from the v1 whitepaper footnotes? Those two also appear in the v2 whitepaperth. Neither of those two footnotes refer to anything in the main body of the v1 whitepaper's text, they're non-existent (in the v2 whitepaper they are used in text). The problem, though, is that the Bitcointalk post linked in the footnote is not from early 2012 (proof screenshot is authentic: https://bitcointalk.org/index.php?topic=196259.0)
.
May 5, 2013. The footnote is referencing a post that did not exist until then. And yet we are to believe that the whitepaper was signed on 12/12/2012! What sort of fucking fools do they take us for?
A little bit of extra digging validates this further. The document properties for both the v1 whitepaper as well as the v2 whitepaper confirms they were made in TeX Live 2013, which did not exist on 12/12/2012. The XMP properties are also quite revealing
XMP properties for the v1 whitepaper
XMP properties for the v2 whitepaper
According to that, the v1 whitepaper PDF was created on 10/04/2014, and the v2 whitepaper was created on 13/03/2014. And yet both of these documents were then modified in the past (when they were signed). Clearly the CryptoNote/Bytecoin developers are so advanced they also have a time machine, right?
Final confirmation that these creation dates are correct are revealed those XMP properties. The properties on both documents confirm that the PDF itself was generated from the LaTeX source using pdfTeX-1.40.14 (the pdf:Producer property). Now pdfTeX is a very old piece of software that isn't updated very often, so the minor version (the .14 part) is important.
.
pdfTeX 1.40.14 pushed to source repo on Feb 14, 2014
.
This version of pdfTeX was only pushed to the pdfTeX source repository on February 14, 2014, although it was included in a very early version of TeX Live 2013 (version 2013.20130523-1) that was released on May 23, 2013. The earliest mentions on the Internet of this version of pdfTeX are in two Stack Exchange comments that confirm its general availability at the end of May 2013 (here and here).
The conclusion we draw from this is that the CryptoNote developers, as clever as they were, intentionally deceived everyone into believing that the CryptoNote whitepapers were signed in 2012 and 2013, when the reality is that the v2 whitepaper was created in March, 2014, and the v1 whitepaper haphazardly created a month later by stripping bits out of the v2 whitepaper (accidentally leaving dead footnotes in).
Why would they create this fake v2 whitepaper in the first place? Why not just create a v1 whitepaper, or not even version it at all? The answer is simple: they wanted to lend credence and validity to the Bytecoin "2 years on the darkweb" claim so that everyone involved in CryptoNote and Bytecoin could profit from the 2 year fake mine of 82% of Bytecoin. What they didn't expect is the market to say "no thank you" to their premine scam.

And Now for Some Conjecture

As I mentioned earlier, the Bytecoin "team" page disappeared. I know it exists, because "AtomicDoge" referred to it as saying that one of the Bytecoin developers is a professor at Princeton. I called them out on it, and within a week the page had disappeared. Fucking cowards.
That was the event that triggered my desire to dig deeper and uncover the fuckery. As I discovered more and more oddities, fake accounts, trolling, and outright falsehoods, I wondered how deep the rabbit hole went. My starting point was DStrange. This is the account on Bitcointalk that "discovered" Bytecoin accidentally a mere 6 days after the first working iteration of the code was pushed to Github, purely by chance when mining a nearly dead currency on a tiny and virtually unheard of mining pool. He has subsequently appointed himself the representative of Bytecoin, or something similar. The whole thing is so badly scripted it's worse than a Spanish soap opera...I can't tell who Mr. Gonzales, the chief surgeon, is going to fuck next.
At the same time as DStrange made his "fuck me accidental discovery", another Bitcointalk account flared up to also "accidentally discover this weird thing that has randomly been discovered": Rias. What's interesting about both the "Rias" and "DStrange" accounts are their late 2013 creation date (October 31, 2013, and December 23, 2013, respectively), and yet they lay dormant until suddenly, out of the blue, on January 20th/21st they started posting. If you look at their early posts side by side you can even see the clustering: Rias, DStrange.
At any rate, the DStrange account "discovering" Bytecoin is beyond hilarious, especially with the Rias account chiming in to make the discovery seem natural. Knowing what we unmistakably do about the fake CryptoNote PDF dates lets us see this in a whole new light.
Of course, as has been pointed out before, the Bytecoin website did not exist in its "discovered" form until sometime between November 13, 2013 (when it was last captured as this random picture of a college girl) and February 25, 2014 (when it suddenly had the website on it as "discovered"). This can be confirmed by looking at the captures on Wayback Machine: https://web.archive.org/web/*/http://bytecoin.org
The CryptoNote website, too, did not exist in its current form until after October 20, 2013, at which time it was still the home of an encrypted message project by Alain Meier, a founding member of the Stanford Bitcoin Group and co-founder of BlockScore. This, too, can be confirmed on Wayback Machine: https://web.archive.org/web/*/http://cryptonote.org
~It's hard to ascertain whether Alain had anything to do with CryptoNote or Bytecoin. It's certainly conceivable that the whitepaper was put together by him and other members of the Stanford Bitcoin Group, and the timeline fits, given that the group only formed around March 2013. More info on the people in the group can be found on their site, and determining if they played a role is something you can do in your own time.~
Update: Alain Meier posted in this thread, and followed it up with a Tweet, confirming that he has nothing to do with CryptoNote and all the related...stuff.

Batshit Insane

The Bytecoin guys revel in creating and using sockpuppet accounts. Remember that conversation where "Rias" asked who would put v1 on a whitepaper with no v2 out, and AlexGR said "a forward looking individual"? The conversation took place on May 30, and was repeated verbatim by shill accounts on Reddit on August 4 (also, screenshot in case they take it down).
Those two obvious sockpuppet/shill accounts also take delight in bashing Monero in the Monero sub-reddit (here are snippets from WhiteDynomite and cheri0). Literally the only thing these sockpuppets do, day in and day out, is make the Bytecoin sub-reddit look like it's trafficked, and spew angry bullshit all over the Monero sub-reddit. Fucking batshit insane - who the fuck has time for that? Clearly they're pissy that nobody has fallen for their scam. Oh, and did I mention that all of these sockpuppets have a late January/early February creation date? Because that's not fucking obvious at all.
And let's not forget that most recently the sockpuppets claimed that multi-sig is "a new revolutionary technology, it was discovered a short time ago and Bytecoin already implemented it". What the actual fuck. If you think that's bad, you're missing out on the best part of all: the Bytecoin shills claim that Bytecoin is actually Satoshi Nakamoto's work. I'm not fucking kidding you. For your viewing pleasure...I present to you...the Bytecoin Batshit Insane Circus:
.
https://bitcointalk.org/index.php?topic=512747.msg8354977#msg8354977
.
Seriously. Not only is this insulting as fuck to Satoshi Nakamoto, but it's insulting as fuck to our intelligence. And yet the fun doesn't stop there, folks! I present to you...the centerpiece of this Bytecoin Batshit Insane Circus exhibit...
.
Of course! How could we have missed it! The clues were there all along! The CryptoNote/Bytecoin developers are actually aliens! Fuck me on a pogostick, this is the sort of stuff that results in people getting committed to the loony bin.
One last thing: without doing too much language analysis (which is mostly supposition and bullshit), it's easy to see common grammar and spelling fuck ups. My personal favorite is the "Is it true?" question. You can see it in the Bytecoin thread asking if it's Satoshi's second project, in the Monero thread asking if the Monero devs use a botnet to fake demand, and in the Dashcoin thread confirming the donation address (for a coin whose only claim is that they copy Bytecoin perfectly, what the fuck do they need donations for??).

Layer After Layer

One of the things that happened soon after the Bytecoin "big reveal" was a string of forks popping up. The first was Bitmonero on April 18. Fantomcoin was launched May 6. Quazarcoin was launched May 8. HoneyPenny was announced on April 21, although only launched as Boolberry on May 17. duckNote was launched on May 30. MonetaVerde as launched June 17.
Now for some reason unbeknownst to anyone with who isn't a retarded fuckface, the Bytecoin code was pushed up to SourceForge on 08/04/2014 (the "Registered" date is at the bottom of the page). I have no idea why they did this, maybe it's to try and lend credence to their bullshit story (oh hey, look how old Bytecoin is, it's even on Sourceforge!)
Coincidentally, and completely unrelated (hurr durr), Quazarcoin, Fantomcoin, and Monetaverde are all also on Sourceforge. This gives us a frame of reference and a common link between them - it's quite clear that at least these three are run by the same team as CryptoNote. There is further anecdotal evidence that can be gathered by looking at the shill posts in the threads (especially the way the Moneteverda shills praise merge mining, in a way that is nearly fucking indistinguishable from the Bytecoin praise for multi-sig technology).
QuazarCoin is a special case and deserves a little attention. Let's start with OracionSeis, who launched it. He's well known on Bitcointalk for selling in-game currencies. In that same thread you'll notice this gem right at the end from Fullbuster: "Hey,OracionSeis is no longer under my use so please https://bitcointa.lk/threads/selling-most-of-the-game-currencies.301540/#post-5996983 come into this thread! thank you !" Click through to his new link and Fullbuster clarifies: "Hello, I may look new around here but i've sold my first account and created new one and i have an intention to keep the same services running as my first account did." So now that we know that OracionSeis is a fucking bought account, we can look at his actions a little more critically.
On May 7, just when Monero was being taken back by the community (see below), OracionSeis out of the blue decided to take it overelaunch it himself. This included a now-defunct website at monero.co.in, and a since-abandoned Github. The community pushed back hard, true to form, with hard-hitting statements such as "To reiterate, this is not the original devs, and thus not a relaunch. OP, fuck you for trying this. This should warrant a ban." A man after my own heart. OracionSeis caved and decided to rename it to...QuazarCoin, which launched on May 8. To recap: bought account, launched by trying to "relaunch" Monero, got fucked up, renamed it to QuazarCoin. Clearly and undeniably goes in our pile of fuckface coins.
The other three are a little more interesting. Let's start with ~fuckNote~duckNote. It's hard to say if duckNote is a CryptoNote/Bytecoin project. The addition of the HTML based wallet is a one-trick pony, a common thread among most of the CryptoNote/Bytecoin controlled coins, but that could also be the result of a not-entirely-retarded developer. Given the shill posts in the duckNote thread I'm going to flag it as possibly-controlled-by-the-fuckface-brigade.
And now we come to ~HoneyPenny~ ~MoneyPenny~ ~HoneyBerry~ ~Boolean~ Boolberry. This is an interesting one. This was "pre-announced" on April 21, although it was only released with the genesis block on May 17. This puts it fourth in line, after Fantomcoin and Quazarcoin, although fucktarded proponents of the shittily-named currency insist that it was launched on April 21 because of a pre-announcement. Fucking rejects from the Pool of Stupidity, some of them. At any rate, "cryptozoidberg" is the prolific coder that churned out a Keccak-derived PoW (Wild Keccak) in a month, and then proceeded to add completely fucking retarded features like address aliasing that requires you to mine a block to get an address (lulz) and will never cause any issues when "google" or "obama" or "zuckerberg" want their alias back. Namecoin gets around this by forcing you to renew every ~200 - 250 days, and besides, nobody is making payments to microsoft.bit. This aliasing system is another atypical one-trick-pony that the CryptoNote developers push out and claim is monumental and historical and amazing.
There's also the matter of cryptozoidberg's nickname. In the Bytecoin code there's the BYTECOIN_NETWORK identifiert, which according to the comment is "Bender's nightmare" (hurr durr, such funny, 11100111110001011011001210110110 has a 2 in it). Now this may be a little bit of conjecture, yo, but the same comment appears twice in the "epee" contributed library, once in the levin signature, and again in the portable storage signature. The contexts are so disconnected and different that it would be a fucking stretch to imagine that the same person did not write both of these. We can also rule out this being a Bytecoin-specific change, as the "Bender's nightmare" comments exist in the original epee library on githubw (which is completely unused anywhere on the planet except in Bytecoin, most unusual for a library that has any usefulness, and was first committed to github on February 9, 2014).
We know from the copyright that Andrey N. Sabelnikov is the epee author, and we can say with reasonable certainty that he was involved in Bytecoin's creation and is the dev behind Boolberry. Sabelnikov is quite famous - he wrote the Kelihos botnet code and worked at two Russian security firms, Microsoft took him to court for his involvement (accusing him of operating the botnet as well), and then settled with him out of court on the basis of him not running the botnet but just having written the code. Kelihos is a botnet that pumped out online pharmacy spam (you know the fucking annoying "Y-ou Ne3D Vi-4Gra!?" emails? those.) so it's good to see he transitioned from that to a cryptocurrency scam. Regardless of BBR's claim to have "fixed" CryptoNote's privacy (and the fake fight on Bitcointalk between the "Bytecoin devs" and cryptozoidberg), it's clear that the link between them is not transparent. BBR is either the brainchild of a spam botnet author that worked on Bytecoin, or it's the CryptoNote developers trying to have one currency distanced from the rest so that they have a claim for legitimacy. I think it's the second one, and don't want to enter into a fucking debate about it. Make up your own mind.
Which brings us to the oddest story of the bunch: Bitmonero. It's pretty clear, given its early launch date and how unfamiliar anyone was with creating a genesis block or working in completely undocumented code, that thankful_for_today is/was part of the CryptoNote developers. He made a fatal error, though: he thought (just like all the other cryptocurrencies) that being "the dev" made him infallible. Ya know what happened? He tried to force his ideas, the community politely said "fuck you", and Bitmonero was forked into Monero, which is leading the pack of CryptoNote-based coins today. Let me be perfectly fucking clear: it doesn't matter that the Bytecoin/CryptoNote developers know their code and can push stuff out, and it doesn't matter that Sabelnikov can shovel bullshit features into his poorly named cryptocurrency, and it doesn't matter that Monetaverde is "green" and has "merged mining". Nobody working behind these cryptocurrencies is known in the cryptocurrency community, and that alone should be a big fucking red flag. Monero is streets ahead, partly because of the way they're developing the currency, but mostly because the "core devs" or whatever they're called are made up of reasonably well-known people. That there are a bunch of them (6 or 7?) plus a bunch of other people contributing code means that they're sanity checking each other.
And, as we saw, this has fucking infuriated the Bytecoin/CryptoNote developers. They're so angry they waste hours and hours with their Reddit accounts trawling the Monero sub-reddit, for what? Nobody has fallen for their scam, and after my revelation today nobody fucking will. Transparency wins, everything else is bullshit.
As pointed out by canonsburg, when the Bytecoin/CryptoNote people realised they'd lost the fucking game, they took a "scorched earth" approach. If they couldn't have the leading CryptoNote coin...they'd fucking destroy the rest by creating a shit-storm of CryptoNote coins. Not only did they setup a thread with "A complete forking guide to create your own CryptoNote currency", but they even have a dedicated website with a fuckton of JavaScript. Unfortunately this plan hasn't worked for them, because they forgot that nobody gives a fuck, and everyone is going to carry on forking Bitcoin-based coins because of the massive infrastructure and code etc. that works with Bitcoin-based coins.
There are a bunch of other useless CryptoNote coins, by the way: Aeon, Dashcoin, Infinium-8, OneEvilCoin. We saw earlier that Dashcoin is probably another CryptoNote developer driven coin. However, this entire group is not really important enough, nor do they have enough potential, for me to give a single fuck, so make up your own mind. New CryptoNote coins that pop up should be regarded with the utmost caution, given the bullshit capabilities that we've already seen.

All Tied Up in a Bow

I want to cement the relationship between the major CryptoNote shitcoins. I know that my previous section had a lot of conjecture in it, and there's been some insinuation that I'm throwing everyone under the bus because I'm raging against the machine. That's not my style. I'm more of a Katy Perry fan..."you're going to hear me roar". There were some extra links I uncovered during my research, and I lacked the time to add it to this post. Thankfully a little bit of sleep and a can of Monster later have given me the a chance to add this. Let's start with an analysis of the DNS records of the CN coins.
If we look at the whois and DNS records for bytecoin.org, quazarcoin.org, fantomcoin.org, monetaverde.org, cryptonote.org, bytecoiner.org, cryptonotefoundation.org, cryptonotestarter.org, and boolberry.com, we find three common traits, from not-entirely-damming to oh-shiiiiiiit:
  1. There's a lot of commonality with the registrar (NameCheap for almost all of them), the DNS service (HurricaneElectric's Free DNS or NameCheap's DNS), and with the webhost (LibertyVPS, QHosteSecureFastServer.com, etc.)
  2. All of the CN domains use WhoisGuard or similar private registration services.
  3. Every single domain, without exception, uses Zoho for email. The only outlier is bitmonero.org that uses Namecheap's free email forwarding, but it's safe to disregard this as the emails probably just forward to the CryptoNote developers' email.
The instinct may be to disregard this as a fucking convenient coincidence. But it isn't: Zoho used to be a distant second go Google Apps, but has since fallen hopelessly behind. Everyone uses Google Apps or they just use mail forwarding or whatever. With the rest of the points as well, as far-fetched as the link may seem, it's the combination that is unusual and a dead giveaway of the common thread. Just to demonstrate that I'm not "blowing shit out of proportion" I went and checked the records for a handful of coins launched over the past few months to see what they use.
darkcoin.io: mail: Namecheap email forwarding, hosting: Amazon AWS, open registration through NameCheap monero.cc: mail: mail.monero.cc, hosting: behind CloudFlare, open registration through Gandi xc-official.com: mail: Google Apps, hosting: MODX Cloud, hidden registration (DomainsByProxy) through GoDaddy blackcoin.io: mail: Namecheap email forwarding, hosting: behind BlackLotus, open registration through NameCheap bitcoindark.org: mail: no MX records, hosting: Google User Content, open registration through Wix viacoin.org: mail: mx.viacoin.org, hosting: behind CloudFlare, closed registration (ContactPrivacy) through Hostnuke.com neutrinocoin.org: mail: HostGator, hosting: HostGator, open registration through HostGator
There's no common thread between them. Everyone uses different service providers and different platforms. And none of them use Zoho.
My next check was to inspect the web page source code for these sites to find a further link. If you take a look at the main CSS file linked in the source code for monetaverde.org, fantomcoin.org, quazarcoin.org, cryptonotefoundation.org, cryptonote-coin.org, cryptonote.org, bitmonero.org, and bytecoiner.org, we find a CSS reset snippet at the top. It has a comment at the top that says "/* CSS Reset /", and then where it resets/sets the height it has the comment "/ always display scrollbars */". Now, near as I can find, this is a CSS snipped first published by Jake Rocheleau in an article on WebDesignLedger on October 24, 2012 (although confusingly Google seems to think it appeared on plumi.de cnippetz first, but checking archive.org shows that it was only added to that site at the beginning of 2013). It isn't a very popular CSS reset snippet, it got dumped in a couple of gists on Github, and translated and re-published in an article on a Russian website in November, 2012 (let's not go full-blown conspiritard and assume this links "cryptozoidberg" back to this, he's culpable enough on his own).
It's unusual to the point of being fucking impossible for one site to be using this, let alone a whole string of supposedly unrelated sites. Over the past few years the most popular CSS reset scripts have been Eric Meyer's "Reset CSS", HTML5 Doctor CSS Reset, Yahoo! (YUI 3) Reset CSS, Universal Selector ‘’ Reset, and Normalize.css, none of which contain the "/ CSS Reset /" or "/ always display scrollbars */" comments.
You've got to ask yourself a simple question: at what point does the combination of all of these fucking coincidental, completely unusual elements stop being coincidence and start becoming evidence of a real, tenable link? Is it possible that bytecoin.org, quazarcoin.org, fantomcoin.org, monetaverde.org, cryptonote.org, bytecoiner.org, cryptonotefoundation.org, cryptonotestarter.org, and boolberry.com just happen to use similar registrars/DNS providers/web hosts and exactly the fucking same wildly unpopular email provider? And is it also possible that monetaverde.org, fantomcoin.org, quazarcoin.org, cryptonotefoundation.org, cryptonote-coin.org, cryptonote.org, and bytecoin.org just happen to use the same completely unknown, incredibly obscure CSS reset snippet? It's not a conspiracy, it's not a coincidence, it's just another piece of evidence that all of these were spewed out by the same fucking people.

The Conclusion of the Matter

Don't take the last section as any sort of push for Monero. I think it's got potential (certainly much more than the other retarded "anonymous" coins that "developers" are popping out like street children from a cheap ho), and I hold a bit of XMR for shits and giggles, so take that tacit endorsement with a pinch of fucking salt.
The point is this: Bytecoin's 82% premine was definitely the result of a faked blockchain. CryptoNote's whitepaper dates were purposely falsified to back up this bullshit claim. Both Bytecoin and CryptoNote have perpetuated this scam by making up fake website data and all sorts. They further perpetuate it using shill accounts, most notably "DStrange" and "Rias" among others.
They launched a series of cryptocurrencies that should be avoided at all cost: Fantomcoin, Quazarcoin, and Monetaverde. They are likely behind duckNote and Boolberry, but fuck it, it's on your head if you want to deal with scam artists and botnet creators.
They developed amazing technology, and had a pretty decent implementation. They fucked themselves over by being fucking greedy, being utterly retarded, being batshit insane, and trying to create legitimacy where there was none. They lost the minute the community took Monero away from them, and no amount of damage control will save them from their own stupidity.
I expect there to be a fuck-ton of shills posting in this thread (and possibly a few genuine supporters who don't know any better). If you want to discuss or clarify something, cool, let's do that. If you want to have a protracted debate about my conjecture, then fuck off, it's called conjecture for a reason you ignoramus. I don't really give a flying fuck if I got it right or wrong, you're old and ugly enough to make up your own mind.
tl;dr - CryptoNote developers faked dates in whitepapers. Bytecoin faked dates in fake blockchain to facilitate an 82% premine, and CryptoNote backed them up. Bytecoin, Fantomcoin, Quazarcoin, Monetaverde, Dashcoin are all from the same people and should be avoided like the fucking black plague. duckNote and Boolberry are probably from them as well, or are at least just fucking dodgy, and who the fuck cares anyway. Monero would have been fucking dodgy, but the community saved it. Make your own mind up about shit and demand that known people are involved and that there is fucking transparency. End transmission.
Just a reminder that if you found this information useful, a little donation would go a long way. Bitcoin address is 1rysLufu4qdVBRDyrf8ZjXy1nM19smTWd.
submitted by OsrsNeedsF2P to CryptoCurrency [link] [comments]

What's Bitcoin? - YouTube The 4-Minute Rule for Bitcoin Definition - Investopedia ... BITCOIN DÉFINITION : LE MEMPOOL BLOCKCHAIN - YouTube DEXFIN Launching European Crypto Exchange as a One Stop ... Melbourne Bitcoin Conference Interview Snippets

Here is a snippet of text from the video: “Randomly pick a number between 1 and 30,000. Now spend that amount of money on Ethereum. This is known as hashing the code to get some of that Bitcoin”. The machine was trained on dozens of Bitcoin definitions and the project was even described by the creators as a creative endeavour. The corpus is quite small for a predictive model and it seems ... Diese Aussage bestätigt, dass mit Bitcoin zum ersten Mal eine virtuelle Währung von einer US-Bhörde als reale Währung eingeschätzt wurde. Anzeige. Beispiel. Bei verschiedenen Online-Anbietern ... Buying Bitcoin, Bitcoin, What is bitcoin, blockchain, Ethereum buying, Binance, Bitcoin wallet, Alt Coins, Crypto, Cryptocurrency, XRP, ETH, BNB, Credits, Facebook Bitcoin ist in Sachen virtuelles Geld Vorreiter und die bekannteste Währung. Das Bitcoin-Netzwerk wurde am 3. Januar 2009 ins Leben gerufen. Dabei handelt es sich um ein Open-Source-Softwareprojekt auf Peer-to-Peer-Basis. Der Nutzer kann über sogenannte Bitcoin-Adressen Geld anonym von einer Wallet-Datei über das Netzwerk an andere Adressen überweisen. Im Gegensatz zu realen Währungen ... To help increase awareness about Bitcoin we created this easy to embed Bitcoin price widget. So, copy the following snippet of code into your website to add a bitcoin price ticker and earn free bitcoins! <

[index] [28979] [8597] [39745] [35078] [23539] [9019] [38315] [3248] [35393] [30304]

What's Bitcoin? - YouTube

A quick 20 second clip of what Bitcoin is by definition. Like, subscribe and hit the bell notification for more content coming soon! Suite de la Bitcoin définition et détail sur le mempool blockchain. Son rôle dans la transition des transactions et comment les mineurs réalisent du profit ?... Award-winning Documentary now released here: https://vimeo.com/ondemand/bitcoin These are Short Quotes from Inside Bitcoin's Melbourne shoot July 9th 2014. to find out more about how to make money with cryptocurrency 2020 you can check out: https://www.clkmg.com/supporthelp/yviveauto The video is showing how to ... Bitcoin ( BTC ) may be down less from its all-time highs than any other cryptocurrency, but 2020 has so far been the year of Chainlink ( LINK ). In the lates...

#