In these series of articles, we will be discussing the General Data Protection Regulation commonly know as GDPR, and explain its relation with Distributed Ledger Technologies such as blockchain. According to Article 8 of the EU Charter of Fundamental Rights on Protection of Personal Data, “Everyone has the right to the protection of personal data concerning him or her”, thus establishing data protection as one of the most important rights for EU citizens. Based on this assumption, in April 2016 the European Parliament adopted the General Data Protection Regulation (GDPR), urging that businesses protect the personal data and privacy of EU citizens for transactions that occur within EU member states, or even outside EU borders if transactions involve EU citizens. The measure was considered a necessary step after a report by the RSA on privacy and security called attention to some alarming data. It emerged that out of 7,500 consumers across the UK, USA, France, Germany, and Italy, 80% said that lost banking and financial information was a top concern, while 76% stated that lost security and identity information was their major worry. GDPR and blockchain With the rise of blockchain technology and its cryptographic approach to personal data, which conceals information like names and addresses under a code, the need for some thorough analysis and some relevant regulation became apparent. Data protection regulation principles were designed and developed in a world that only knew a centralized data management type, while blockchain raises questions on how to apply these principles in a decentralized environment. It’s understood and accepted that the issues around the overlapping of GDPR and blockchain are not about the technology itself but how the technology is used when processing personal data. Although we developed the idea that blockchains are private and anonymous, in reality, some user information can lead back to the individual’s identity even if cryptographically secured. Therefore, since this is possible, personal data processed through a blockchain is to be considered subject to the GDPR. Personal data includes any information relating to an identified or identifiable natural person (the data subject). In the context of blockchain technology an individual’s public key would be considered their personal data and would therefore need GDPR compliance obligations. While the validity and relevance of blockchain technology in relation to GDPR are not questioned, there still exist many points of tension between the two. What issues arise under GDPR? We’ve seen that processing personal data in a blockchain still triggers GDPR compliance. The two major issues involving GDPR and blockchain are:
The definition of Data Controllers and Data Processors when blockchain is involved;
The issues arising with the Right of Rectification and Right to Erasure.
What are a data controller and a data processor when a blockchain is involved? GDPR identifies a Data Controller as “the natural or legal person, public authority, agency or other body which, alone or jointly with others, determines the purposes and means of the processing of personal data within the EU state members or when it involves an EU citizen, even if the data processing is carried out by a non-member state entity.” (Art. 4 sec 7) In the case of a blockchain involvement, a natural person who buys or sells bitcoin on their own behalf, for instance, is not a data controller. By contrast, a natural person who trades bitcoin on behalf of professional or commercial activity, or of other natural persons, is a data controller. If a lawyer records a client’s transaction of any sort on a blockchain, the notary is a data controller. If a bank processes a client’s financial data on a blockchain, the bank is a data controller. The data controller is the one instigating the purposes or means of data processing. He/she/they have to be identifiable so that data subjects can enforce their legal rights under EU data protection law. Blockchain’s decentralized nature replaces a central entity with a network of nodes whose consensus makes it difficult to attribute responsibility and accountability. This is where blockchain technology clashes with GDPR. Data Protection, GDPR, and Blockchain. Data Processors activate personal data on behalf of the controller (Art 4 sec 8 of GDPR) where data processing essentially involves any handling of personal data. Processing includes the collection, adaptation, alteration, and recording of personal data but also its simple storage. According to the French Data Privacy Authority (CNIL), a data processor in a blockchain can be either miners or smart contract developers. For instance, a smart contract developer who processes personal data on behalf of a data controller may be a data processor. Similarly, a miner who follows the data controllers’ instructions when validating a transaction is also a data processor. CNIL mainly draws some guidelines as it has been emphasized that a case-by-case basis should be considered in the connection between the technology and GDPR, rather than the relationship being determined in a broad and general manner. For instance, with regard to the rights of information, access, and portability it advises that they are not problematic on blockchain technology and that a transaction submitted to the blockchain contains sufficiently transparent and visible information. CNIL also views the “right of access and the right to portability as entirely compatible with blockchains’ technical properties.” Issues arising with the Right of Rectification and Right to Erasure The matter becomes more complicated as the EU Charter of Fundamental Rights on Protection of Personal Data provides that everyone has a right to access personal data relating to them, including a right to have such data rectified or erased. That’s why the GDPR includes the “Right of Rectification”, that grants data subjects the right to have their data amended in case of inaccurate information; and the “Right of Erasure” (or “Right to be forgotten”) which adds the right of data subjects to obtain from a data controller and the data processor an obligation to erase their personal data. How can something be deleted or rectified from an immutable blockchain then? The immutability of the blockchain and the fact that it is a permanent and transparent ledger gives rise to GDPR compliance issues. As GDPR requires that personal data must not be kept longer than it is necessary for the purpose for which it is processed, this may be an issue with blockchains where the data cannot be deleted. Not all blockchains are immutable though or subject to a predefined and permanent consensus. Permissioned (or private) blockchains, for example, allow participants to establish a governance structure where roles can be clearly defined, contractual terms satisfying GDPR requirements can be embedded, and technological solutions granting individual rights can be built into the blockchain. With permissionless (open and public) blockchains, the most-compliant approach to these issues is to avoid storing personal data on the blockchain altogether, using for example an off-chain (append-only) data storage approach. If the data is stored off-chain, then it would be easier to process the erasure of the information. On the other hand, if the data is stored on-chain in an encrypted way, then the deletion of the encryption key could be a fair compromise. Because of the immutable nature of blockchains, the data would not be erased as such, however, it would be made inaccessible. In essence, unless there is a blockchain rollback resorting to a hard fork, as happened with the DAO hack in 2016, open blockchain’s data cannot be deleted. The best practice would be to store all personal data “off-chain” which can then be linked back to the ledger by a hash. Through the erasure of hash functions’ private keys, editing and verifying the hashed information would no longer be possible and confidentiality would no longer be compromised. Rather than posing a risk for individuals’ fundamental privacy rights and freedoms, blockchain technology represents a tool that grants data subjects exclusive possession and control over their personal information. Conclusion Without question, the EU consideration of the blockchain approach to GDPR is a further legitimization of the technology. Even though the blockchain itself may be immutable or can only be updated under specific circumstances, the requirements of GDPR may indeed still be fulfilled. It will soon become obvious that rather than posing a risk for individuals’ fundamental privacy rights and freedoms, blockchain technology represents a tool that grants data subjects exclusive possession and control over their personal information. Furthermore, as the technology evolves, the digital ecosystem will offer a variety of peer-to-peer networks; from public distributed ledgers developed that grant unrestricted access and equal roles to everybody, to private networks developed with proprietary software that will grant access to selected participants only. Mixed private and public blockchains will provide an additional structure that could range from some nodes running a piece of the protocol to other nodes that could act as block validators. Stay tuned for the next article with more insights about blockchain technology, its use, and implications by following us on our social media channels. For more info, contactBlock.codirectly or email at [email protected]. Tel +357 70007828 Get the latest from Block.co, like and follow us on social media: ✔️Facebook ✔️LinkedIn ✔️Twitter ✔️YouTube ✔️Medium ✔️Instagram ✔️Telegram ✔️Reddit ✔️GitHub
I keep reading people say bitcoin development is stalled
But in practice there's more going on right now than there's ever been in the last few years. You just have to look in the right places. Here's a few days of documented github activity from the bitcoin slack and I've a feeling there are hundreds more people working on Bitcoin projects outside of the work being done by core: github BOT [6:28 PM] [bitcoin:master] 2 new commits by Daniel Kraft and 1 other: f93c2a1 net: Avoid duplicate getheaders requests. - Daniel Kraft 8e8bebc Merge #8054: net: Avoid duplicate getheaders requests. - Wladimir J. van der Laan [6:28] [bitcoin/bitcoin] Pull request closed: #8054 net: Avoid duplicate getheaders requests. by laanwj [6:31] [bitcoin:master] 6 new commits by Pieter Wuille and 1 other: d253ec4 Make ProcessNewBlock dbp const and update comment - Pieter Wuille 316623f Switch reindexing to AcceptBlock in-loop and ActivateBestChain afterwards - Pieter Wuille fb8fad1 Optimize ActivateBestChain for long chains - Pieter Wuille d3d7547 Add -reindex-chainstate that does not rebuild block index - Pieter Wuille b4d24e1 Report reindexing progress in GUI - Pieter Wuille Show more... [6:31] [bitcoin/bitcoin] Pull request closed: #7917 Optimize reindex by laanwj Joshua Unseth [9:55 PM] joined #commit-activity. Also, @sjors joined and left. ----- May 19th ----- github BOT [12:08 AM] [bitcoin/bitcoin] Pull request submitted by EthanHeilman
8070 Remove non-determinism which is breaking net_tests #8069
If addrmanUncorrupted does not have the same nKey every time it will map addrs to different bucket positions and occasionally cause a collision between two addrs, breaking the test. github BOT [1:00 AM] [bitcoin/bitcoin] Pull request closed: #7716 [0.11] Backport BIP9 and softfork for BIP's 68,112,113 by morcos Eragmus You Should Probably Stop Modding [1:12 AM] joined #commit-activity. Also, @buttmunch joined, @icandothisallday joined, @misnomer joined, @coreneedstostop joined, @xchins joined, @jbeener joined, @jbleeks joined, @whalepanda joined, @grinny joined, @alex_may joined, @mr_e joined. github BOT [2:46 PM] [bitcoin:master] 5 new commits by Warren Togami and 1 other: 00678bd Make failures to connect via Socks5() more informative and less unnecessarily scary. - Warren Togami 0d9af79 SOCKS5 connecting and connected messages with -debug=net. - Warren Togami 94fd1d8 Make Socks5() InterruptibleRecv() timeout/failures informative. - Warren Togami bf9266e Use Socks5ErrorString() to decode error responses from socks proxy. - Warren Togami 18436d8 Merge #8033: Fix Socks5() connect failures to be less noisy and less unnecessarily scary - Wladimir J. Show more... [2:46] [bitcoin/bitcoin] Pull request closed: #8033 Fix Socks5() connect failures to be less noisy and less unnecessarily scary by laanwj github BOT [3:56 PM] [bitcoin:master] 3 new commits by EthanHeilman and 2 others: f4119c6 Remove non-determinism which is breaking net_tests #8069 - EthanHeilman 2a8b358 Fix typo adddrman to addrman as requested in #8070 - Ethan Heilman 7771aa5 Merge #8070: Remove non-determinism which is breaking net_tests #8069 - Wladimir J. van der Laan [3:56] [bitcoin/bitcoin] Pull request closed: #8070 Remove non-determinism which is breaking net_tests #8069 by laanwj github BOT [5:18 PM] [bitcoin/bitcoin] Pull request submitted by MarcoFalke
8072 travis: 'make check' in parallel and verbose
• 'make check' in parallel, since the log will take care of clean output • 'make check' verbose, so that test failure causes aren't hidden Fixes: #8071 github BOT [7:56 PM] [bitcoin/bitcoin] Pull request submitted by rat4
8073 qt: askpassphrasedialog: Clear pass fields on accept
This is usability improvement in a case if user gets re-asked passphrase. (e.g. made a typo) Victor Broman [8:01 PM] joined #commit-activity. Also, @bb joined, @ziiip joined. ----- May 20th ----- github BOT [12:34 PM] [bitcoin/bitcoin] Pull request submitted by jsantos4you
debug.data.txt [12:37] [bitcoin/bitcoin] Pull request closed: #8075 0.12 by sipa github BOT [3:37 PM] [bitcoin/bitcoin] Pull request closed: #7082 Do not absolutely protect local peers and make eviction more aggressive. by gmaxwell github BOT [3:44 PM] [bitcoin:master] 2 new commits by Cory Fields and 1 other: 401ae65 travis: 'make check' in parallel and verbose - Cory Fields 1b87e5b Merge #8072: travis: 'make check' in parallel and verbose - MarcoFalke [3:44] [bitcoin/bitcoin] Pull request closed: #8072 travis: 'make check' in parallel and verbose by MarcoFalke github BOT [3:58 PM] [bitcoin/bitcoin] Pull request closed: #7093 Address mempool information leak and resource wasting attacks. by gmaxwell github BOT [6:11 PM] [bitcoin/bitcoin] Pull request submitted by sdaftuar
8076 VerifyDB: don't check blocks that have been pruned
If a pruning node ends up in a state where it has very few blocks on disk, then a node could fail to start up in VerifyDB. This pull changes the behavior for pruning nodes, so that we will just not bother trying to check blocks that have been pruned. I don't expect this edge case to be triggered much in practice currently; this is a preparatory commit for segwit (to deal with the case of pruning nodes that upgrade after segwit activation). @sipa Erik Hedman [6:20 PM] joined #commit-activity github BOT [8:46 PM] [bitcoin/bitcoin] Pull request submitted by jtimon
8077 Consensus: Decouple from chainparams.o and timedata.o
Do it for the consensus-critical functions: • CheckBlockHeader • CheckBlock • ContextualCheckBlockHeader Show more... github BOT [9:26 PM] [bitcoin:master] 3 new commits by MarcoFalke: fac9349 [qa] Remove hardcoded "4 nodes" from test_framework - MarcoFalke fad68f7 [qa] Reduce node count for some tests - MarcoFalke 8844ef1 Merge #8056: [qa] Remove hardcoded "4 nodes" from test_framework - MarcoFalke [9:27] [bitcoin/bitcoin] Pull request closed: #8056 [qa] Remove hardcoded "4 nodes" from test_framework by MarcoFalke github BOT [9:48 PM] [bitcoin/bitcoin] Pull request submitted by petertodd
8078 Disable the mempool P2P command when bloom filters disabled
Only useful to SPV peers, and attackers... like bloom is a DoS vector as far more data is sent than received. null radix [10:15 PM] joined #commit-activity github BOT [11:34 PM] [bitcoin:master] 2 new commits by MarcoFalke: fab5233 [qa] test_framework: Set wait-timeout for bitcoind procs - MarcoFalke 37f9a1f Merge #8047: [qa] test_framework: Set wait-timeout for bitcoind procs - MarcoFalke [11:34] [bitcoin/bitcoin] Pull request closed: #8047 [qa] test_framework: Set wait-timeout for bitcoind procs by MarcoFalke github BOT [11:48 PM] [bitcoin/bitcoin] Pull request closed: #7826 [Qt] show conflicts of unconfirmed transactions in the UI by jonasschnelli [11:50] [bitcoin/bitcoin] Pull request re-opened: #7826 [Qt] show conflicts of unconfirmed transactions in the UI by jonasschnelli ----- May 21st ----- Rentaro Matsukata [1:56 AM] joined #commit-activity. Also, @evilone joined, @cryptop joined, @thomas5 joined. github BOT [1:54 PM] [bitcoin/bitcoin] Pull request submitted by gmaxwell
8080 Do not use mempool for GETDATA for tx accepted after the last mempool req.
The ability to GETDATA a transaction which has not (yet) been relayed is a privacy loss vector. The use of the mempool for this was added as part of the mempool p2p message and is only needed to fetch transactions returned by it. github BOT [5:48 PM] [bitcoin/bitcoin] Pull request submitted by gmaxwell
8082 Defer inserting into maprelay until just before relaying.
Also extend the relaypool lifetime by 1 minute (6%) to 16 minutes. This reduces the rate of not founds by better matching the far end expectations, it also improves privacy by removing the ability to use getdata to probe for a node having a txn before Show more... Sergey Ukustov [9:17 PM] joined #commit-activity. Also, @stoicism joined. ----- Yesterday May 22nd, 2016 ----- github BOT [5:59 AM] [bitcoin/bitcoin] Pull request submitted by jonasschnelli
8083 Add support for dnsseeds with option to filter by servicebits
Opposite part of https://github.com/sipa/bitcoin-seedepull/36. Including new testnet seed that supports filtering. Required for SW #7910. Junseth Sock Puppet Account [6:13 AM] joined #commit-activity github BOT [1:59 PM] [bitcoin/bitcoin] Pull request submitted by gmaxwell
8084 Add recently accepted blocks and txn to AttemptToEvictConnection.
This protect any not-already-protected peers who were the most recent to relay transactions and blocks to us. This also takes increases the eviction agressiveness by making it willing to disconnect a netgroup with only one member. github BOT [5:04 PM] [bitcoin/bitcoin] Pull request submitted by theuni
8085 p2p: Begin encapsulation
This work creates CConnman. The idea is to begin moving data structures and functionality out of globals in net.h and into an instanced class, in order to avoid side-effects in networking code. Eventually, an (internal) api begins to emerge, and as long as the conditions of that api are met, the inner-workings may be a black box. For now (for ease), a single global CConnman is created. Down the road, the instance could be passed around instead. Also, CConnman should be moved out of net.h/net.cpp, Show more... github BOT [5:14 PM] [bitcoin/bitcoin] Pull request submitted by sipa
8086 Use SipHash for node eviction
github BOT [5:50 PM] [bitcoin/bitcoin] Pull request closed: #6844 [REST] Add send raw transaction by lclc ----- Today May 23rd, 2016 ----- yannie888 [5:21 AM] joined #commit-activity. Also, @myco joined, @er_sham joined, @ethdealer joined. github BOT [3:23 PM] [bitcoin/bitcoin] Pull request submitted by pstratem
8087 Introduce CBlockchain and move CheckBlockHeader
[3:23] [bitcoin/bitcoin] Pull request submitted by pstratem
8088 Avoid recalculating vchKeyedNetGroup in eviction logic.
Lazy calculate vchKeyedNetGroup in CNode::GetKeyedNetGroup.
INTRODUCTION This statement aims to explain the real reason why the so called WISP project split off from XSPEC and why we were not able to pursue the path set out in a previous announcement at this stage. I am aiming to be transparent about all aspects of how this came to be and what is happening in the near future with XSPEC. When I created this project back in 2016 it was with a view to produce a premier privacy focused proof-of-stake cryptocurrency with a mobile platform. As you all know we had a rocky start but we persevered and we launched XSPEC after a somewhat controversial ICO that did not collect enough to run the project for any length of time. I then hired @jbg to work on developing the mobile platform for XSPEC. Due to unforeseen health issues I was unable to work full time on this project and I had to undergo treatment for several months. I am happy to say that as of March 2018 I have been back to full health and I am able to work full time. Whilst I was unable to lead the project, @jbg in effect took over and the community gathered around and funded his continuing work for XSPEC, for which I am grateful. During this period @beachguy was paramount in rallying the community to fundraise for @jbg and @RKh was instrumental in growing the community and without them and other community members, XSPEC would not have survived. During this time @jbg also apparently hired a cryptographer called Bryce to work on so called “stealth staking”. I trusted @jbg and I paid around 200,000 XSPEC, 3 BTC and 22 LTC out of my own pocket directly to @jbg who then said he paid Bryce. The community also paid a large amount of money to @jbg, at least 100,000 XSPEC in my understanding to deliver his roadmap and in particular what @jbg referred to as “stealth staking”. This was never to materialise after many months of work by @jbg and Bryce. All the money was paid to @jbg directly with no accounts or details of expenditure being presented and who in turn stated that he had paid Bryce. How I came back to XSPEC Both towards the end of 2017 and in February 2018 I spoke to @jbg on occasions and I was resigned to the fact that XSPEC had a life without me and that @jbg and the community was in control to take it forward. I was a bit sad that I was no longer an active part of this as I created this project and I had put a lot of time, effort and money to get it up and running. On the other hand I saw that XSPEC had a healthy community and I believed in @jbg to take it forward so I offered to hand over the control of all the XSPEC resources to @jbg such as the web domains, the Twitter accounts etc. for a small contribution in XSPEC for my expenses. However, @jbg never made any decisions around this and I can only assume that he did not want to take on that responsibility. Therefore I stayed in control of the XSPEC resources and the original GitHub repo and was a passive participant. It did not seem appropriate at that time to take on an active role but I did not fully understand the poor state of affairs internally in the XSPEC camp as I was not part of the day to day discussions. During this time ONLY @jbg had access to the unfinished source code for the XSPEC updates and roadmap and in effect the future of the project rested on his shoulders alone and the project was in fact sustained for months on what @jbg said he would deliver but ultimately never did. In March 2018 the so called “council” consisting of among others @trainasauruswrecks and @Gandalf86 had a discussion about the chaotic state of affairs. On 03/03/2018 @jbg stated “OK @everyone I'm here my plan for next 2-3 days is to get all progress up onto github and probably some screenshots too”. They also expressed a wish for me to come back to the project and on 09/03/2018 @jbg stated “i'll talk to mandica maybe she can just try to take a really active role as the project lead again that would be fantastic”. I also communicated with @beachguy and I agreed to be active as part of XSPEC again and to support @jbg and fight of the FUD that was gathering pace due to the constant delays and the controversy surrounding Bryce. I actively and vocally supported @jbg and stood by him and tried to fight this FUD. Then after discussions with @beachguy and @jbg I agreed to step back in as the project manager to get XSPEC back on track as things were deteriorating. I also had a desire to improve on XSPEC by making the project stand up to scrutiny and make the core team and developers more accountable to the community and increase transparency. I equally wanted to foster a more professional approach to development and deliver consistency. XSPEC IMPROVEMENTS As part of that process me, @beachguy and @RKH asked @jbg to be accountable to us and the community and we asked @jbg to get us access to the unfinished code @jbg had allegedly worked on for many months. This was in an attempt to review and audit the code and to potentially hire further developers to assist in delivering what @jbg had promised the community. When this was requested of @jbg he plainly refused to let anyone see any of the code he had been paid to deliver. We felt that @jbg would not submit to any kind of constructive scrutiny and he plainly refused to be accountable with regards to how much work he had actually completed and if he had encountered any problems. Instead @jbg insisted that it was his code and that he could do what he wanted with it. @jbg made it very clear that he would not be subject to any kind of scrutiny around his work and would not be accountable and present the work he had been paid to do in any form. A decision was then made by @beachguy, @RKh and me that we would take more firm control over the project and take it out of the mire it had gotten itself into with indecision and delays. We felt that there was distrust, suspicion and justified anger at broken promises and discord within the XSPEC community, the XSPEC ‘council’ and the rest of the cryptocurrency community and that this infighting would damage XSPEC. We then made the announcement on the XSPEC Discord server that we set out a new path for XSPEC where transparency, accountability and professionalism would be key to drive the project forward. As part of that commitment to deliver and progress XSPEC we understood that we had to achieve a minimum amount of predictable funding for the project: https://cdn.discordapp.com/attachments/ 428479718786859008/428479840136462353/XSPEC_statement_1.pdf However, @jbg stated that he would not accept the idea of minimum funding from the network to develop XSPEC and @jbg would not accept greater transparency and accountability and instead rallied some parts of the XSPEC community behind him to create the so called WISP project as set out in his previous statement: https://cdn.discordapp.com/attachments/ 428479718786859008/428479888689725451/jbg-xspec-statement.txt The XSPEC core team had no choice but to accept @jbg’s position and we agreed to work together for the benefit of both projects and I agreed to approach the exchanges with a view to get both XSPEC and WISP listed past the proposes update fork. Unfortunately, when @vvc approached Cryptopia it was overhasty which immediately set off red flags with them when @vvc asked Cryptopia to simply change the XSPEC ticker to WISP and try to get listed on the exchange via the backdoor. This in addition to @jbg stoking up feelings of concern around the proposed fork as being a threat forced us to change our position. @beachguy and @RKh who are pivotal community members decided to support me in taking control, not due to the dispute over the 5% network fee but due to the fact that @jbg did not provide any proof of the work he had allegedly carried out on behalf of the community. It was becoming clear that the nascent WISP community had planned to simply change the name of XSPEC to WISP and leave our long running project out in the cold simply over @jbg’s fear of accountability and transparency. We could not accept this and made it clear to Cryptopia and to @jbg that we could not progress as planned given the circumstances. @jbg then announced that WISP would launch as a new cryptocurrency and that he would never complete the long awaited XSPEC 1.4 and never let anyone see the work he had been paid for such as “stealth staking”. Once it had been established that @jbg would break away completely and run WISP on a new and separate blockchain I asked for the unfinished code again as it would be of no further use to him or the new WISP as @jbg stated that it would be incompatible. I still believe that the unfinished code belongs to the XSPEC community but @jbg stated that he would never show the work he claimed to have worked on for months and being paid for by the community. CONCLUSION I believe that when @jbg was put under pressure to become more accountable he found a way out through so called ideological differences to continue making promises under the guise of WISP running on a version of the XSPEC blockchain. When that became impossible through their own actions @jbg found yet another way out of being accountable by announcing the creation of a new coin and paying off the community instead of presenting his work that he promised for so long. That in my opinion is the real reason for the split between XSPEC and @jbg / WISP. I am a proponent of personal freedom and I believe in the right to privacy online and the right to transact anonymously online and XSPEC was created specifically for that purpose. This split will not detract from that ideology and XSPEC will continue to develop and stay true to the stated aim; true anonymous transactions online where the participants can feel safe knowing that their identity is protected. As we are working towards a transparent and sustainable governance and funding structure we have to take measures in the interim to stay relevant and to produce a realistic roadmap for the future. I am grateful to the community that carried XSPEC through the last year or so and despite the recent turmoil we can pull through this together and make XSPEC great and growing. Immediate plans for XSPEC The XSPEC code base was laid down in 2016 and although it was most likely based around Bitcoin Core 0.10 it is extensively modified to use Proof-of-Stake (PoS) and PoS updated cryptography, Tor integration, stealth addresses and so on. So, it is difficult to make a direct comparison with the latest code bases as it is so far removed from the original Bitcoin code base. The first step we will be taking is therefore to direct the optional dev fund donation back to the control of the XSPEC core team. We will NOT fork the network at this time due to reasons explained above and we will NOT enforce the 5% network fee at this time. This has now been made clear to Livecoin and Cryptopia and XSPEC will continue to be listed and traded as normal and any further updates will be communicated to the exchanges who recognised the current XSPEC core team of @beachguy, @RKh and @Mandica. I am in the process of interviewing experienced professional candidates for an initial code review / code audit of the current XSPEC code base. I anticipate that the pro developer will start work next week on the XSPEC code base. We have produced a brief for the developer and we will focus on getting a deeper understanding of the design of the code and also the potential for vulnerabilities and weaknesses and possible exploits present in the code. This will also be required by some larger exchanges to get listed. We will ask the developer to examine and assess the following:
Determine if XSPEC could be upgraded to use the latest Bitcoin Core code base.
Assess the future viability of the so called ‘spectre token’ system and determine if the system could be improved via “new splitting/combining algorithm” as suggested by @jbg.
Assess the viability of the so called “stealth staking” concept as described by @jbg.
Assess the possibility of “forcing” the use of stealth addresses only within XSPEC.
We are determined to NOT promise something which we can not deliver. That is the reason why we have chosen to work first to fully understand the XSPEC code base and it’s potential and limitations. Once we have completed the code review we will be in a position to present a realistic roadmap to the community. The developer hired for this purpose will be working 20 hours per week on a week to week basis and report back to me. This work could take from 1-4 weeks but the community will be given updates as we go along. This will initially be paid for by me. We will publish accounts of expenses. I wish WISP the best off luck with their new project and I hope in the end that the community benefits from both projects and that @jbg can deliver the new coin and make the XSPEC community whole by still offering 1 WISP for every XSPEC as promised.
About extension blocks: increasing the max block size via a (fairly) simple softfork
For the benefit of those who are not familiar with the idea, I'd like to explain an idea called extension blocks, which is a pretty simple way of increasing the max block size via a softfork. Like some of my past posts (see , ), this is a very old idea that is well-known to experts, but not as well-known to the wider community because experts find it boring and sub-optimal, and so don't talk about it much. But I think that there's often value in considering ideas that are sub-optimal but simpler: sometimes, perfect is the enemy of good. SegWit is a special type of extension block softfork, so I'm certainly not suggesting here that an extension block softfork be done instead of SegWit, but maybe it would be appropriate sometime in the future. Here's how it works: After the softfork activates, miners are required to include within their old-style blocks the hash of the header of an additional extension block. The extension block will have no PoW of its own, and the extension block header will probably just be a transaction count and an additional Merkle root for a bunch of additional transactions. The extension block hash needs to be connected to the old-style block header, so it'll probably go into the coinbase transaction. Transactions with a version number >= some number are new-style transactions, and must go into the extension block. Transactions with a version less than that are old-style transactions, and must go into the old-style block. The 1MB block-size limit continues to apply to the old-style block. An additional larger limit is added which applies to the total size of the old-style block plus the extension block. New full nodes download the old-style block and the extension block for each block, and process all of those transactions pretty much equally. Old nodes continue to download and verify only the old-style blocks, which remain valid under the old rules. New nodes will produce new-style addresses with a new address version, and can also produce old-style addresses If you want to convert from an old wallet to a new wallet, no special transactions are necessary. After upgrading your wallet software, from now on you'll just send transactions with the new transaction version. It's not a problem that some of the UTXOs being spent are in old-style blocks, since all new nodes have those blocks. Old nodes will think that the UTXOs you're spending are remaining perpetually unspent. There are four transaction cases:
Old wallet to old wallet: The same type of transaction as today. It must go into the old-style block. It works the same as before.
New wallet to new wallet: A normal transaction with the new transaction version. It must go into the extension block.
Old wallet to new wallet: If the user of the new wallet desires compatibility, he will publish both a new address and an old address. The old wallet will send to the old address. The new wallet downloads all old-style blocks, so has no problem accepting this transaction.
New wallet to old wallet: Not possible in the simplest type of extension block softfork. (But it can be made possible if desired, as I'll explain below.)
So old wallets can keep operating without interruption for as long as there exists a group of people who want to do so. Probably 100% of transactions will move to extension blocks eventually, since there isn't really any advantage to using old-style transactions, but there's no rush. If desired, after 5 years or something when literally no one is using old wallets anymore, a hardfork could remove old-style blocks in order to simplify the network a little, transferring old-style UTXOs so that no coins are destroyed in the process. (Anyone with a wallet still sitting in cold storage would just have to import their wallet into new software.) But this hardfork is never required. The only issues for old wallets are that they'd eventually find it difficult to receive transactions, and they would also be even less able to trust 0-conf transactions: A transaction spending an old-block UTXO using an extension block will not be seen by old nodes, so any future double-spend of that UTXO will be seen as valid by old nodes, but is actually invalid and will never be confirmed. There's no problem with doing extension-block softforks multiple times. You can have multiple extension block "layers" live at the same time. It is possible to allow transactions from new wallets to old wallets, but this makes the softfork more complex. I tend to think that if extension blocks are to be done, then it's better to keep it simple, since 99% of people are going to upgrade quickly anyway. To prevent a situation in which the first users of upgraded wallets are unable to spend their BTC in most places, new addresses could initially do nothing special, resulting in the same old-style transactions. Once it's observed that new addresses are quite prevalent, wallet software could be changed to actually make use of extension blocks. The actual softfork would occur beforehand -- how addresses are handled is merely a software change, and need not be exactly coordinated. But if desired, you can allow new-to-old transactions in either of these two ways: Method 1: New wallets will show two balances, an old balance and a new balance. You can automatically convert from old to new as I described previously, but converting from new to old requires trading coins on a market, probably for worse than a 1-to-1 ratio. Sending to an old address draws on your old balance, while sending to a new address draws on your new balance. Users can figure out how to move funds between the two accounts and deal with their constraints. In practice, people would probably want to keep most of their BTC on the old side until actually needed for transactions, since BTC there would be slightly more valuable. After a while, the desire for old BTC would fade away enough that people would feel more comfortable converting all of their BTC. To simplify wallet GUIs, wallets could by default retain the current single-account mode unless they actually contain old BTC or the user changes the settings, in which case they would use the more difficult two-account mode. Method 2: You can add sidechain-style 2-way peg. Instead of simply spending old UTXOs via new-style transactions, you have to first spend the old UTXO via an old-style transaction which sends the BTC to a specially-formed output which old nodes see as anyone-can-spend but new nodes see as a different scriptPubKey specified by the sender, spendable in extension blocks. If you have only new-style UTXOs and want to send BTC to an old wallet, you send a special new-style transaction which destroys the BTC on the new side but permits you to spend an appropriate portion of the old-style anyone-can-spend UTXOs created by others. Only "deposits" into the extension block system can be "withdrawn" again later into the legacy system, like a sidechain. The rules will be verified by all new full nodes, so there is no loss in security. The reasons that extension blocks are not popular among Bitcoin experts are:
Dealing with the the issue of new-to-old transactions is messy and difficult, and especially if you want 2-way-peg, full sidechain support is probably strictly superior.
It is a max block size increase, which often isn't the real answer to scaling. The max block size is like the "maximum capacity" sign on an airplane, while the system's scalability is like how much weight the airplane can actually hold without crashing. Just replacing the sign isn't what you need, and could lead to disaster.
A hardfork max block size increase would require a lot less code and complexity, especially from the perspective of lightweight nodes. (Note that the addition of what is essentially an extension block is a necessary part of SegWit's malleability fix, so SegWit wouldn't be noticeably simplesmaller as a hardfork.)
But let's say that someday the system's real scalability increases dramatically due to block-storage sharding, compacted transactions, TXO commitments, etc., and it's widely agreed that the max block size can safely be doubled. Then the simple extension blocks softfork is something that could be done very quickly, without any of the more complicated sidechain stuff, with a high degree of backward-compatibility, and without the issues associated with hardforks. So it's something worth thinking about.
Of Wolves and Weasels - Day 760 - A Trail of Destruction
Hey all, GoodShibe here! Moolah.io, Prelude.io, Mintpal.com, Crypto.pm, Citrus.pw, Citrux.pw, Nuplay.co, Flirble.me, Escrow.pm, Lemon.sx and Nzbx.co. With Alex Green/Ryan Kennedy back in the news again I found myself reading this article and, while it's not much different from the several others that have come about in the last while, the last line or so, that laid out all of the sites that he was connected to, really grabbed my attention. 'Cause it's a weird thing to see the trail of wreckage that one person had caused laid out so casually. So I decided to take some time and look into these other sites, just to try and get a fuller picture of who this guy is, what made him tick. The more I looked around, the more I realized there's not a whole lot there to like. I was actually surprised to see just how successful he had been in wiping much of his past projects from the internet... but he wasn't entirely successful. So, if you're up for a bit of a jaunt this morning, pack a lunch and let's take a bit of time and work our way backward through the wasteland. Moolah.io had all the hallmarks of a powerful, great service - one built around Dogecoin - that seemed to have, or at least claimed to have, all the right paperwork in order. In their own words they were "... actively pursuing all legally required regulatory actions in order to ensure that we are fully compliant with various organizations such as FinCEN, HMRC and others". This was what they eventually released to the community to try and "answer some questions". But that was only after things had started to sour. In the beginning there was lots of precious sweet talk that promised the moon and more. There were features and extensions and Android apps and no shortage of new items to make investors salivate (remember the ATMs? MooFarm?). In the AMA that Alex/Ryan/Moolah_ headed up back in the day, signs that they had begun to stretch themselves thin had begun to show - Prelude.io was being mothballed for the upcoming, not-yet-announced, mintpal.com - and 'PIE' investors (who weren't "trolls" demanding specific answers) had begun to politely, openly ask for specifics. Yet before Prelude.io and Mintpal.com there was Crypto.pm. It's very interesting to read about crypto.pm after knowing about Moolah.io and Prelude.io - seeing as Crypto.pm was, allegedly, the precursor. Read this bitcointalk.org posting and the language used by "Lemon" - the UK location, the selling of 'shares' (very Proto-"PIE"). He also communicated with a moderator from [email protected] - which also linked him to nuPlay and which Ryan confirmed [email protected] as his 'Work' address. He apparently had managed to gain a dedicated follower who documented, in detail, his many transgressions here. Nuplay.co - Nuplay - created by lemonadedev (named Ryan) ended up being vaporware and upset quite a few people. Nzbx.co by most accounts, didn't last long. Their old front-end code was once offered up here though. Their twitter linked to @Lemon_SX (notably abandoned) and a lifeless @nuPlayMedia account. Interestingly, apparently @Lemon_SX had a heart attack: "Anyone in Bath, par chance? I have a friend who had a heart attack and I wanted to send him some flowers #bath @Lemon_SX #getwellsoon" - another bit of MO from Ryan/Alex, claiming poor health whenever the heat started to get turned up. This is also relevant when looking at what happened to Flirble.me. Flirble.me's twitter is an interesting read, especially their website which documents its dissolution "Due to the declining health of the primary director" and assures that "Refunds have been issued to more than 80% of customers". All along the way, a trail of disappointment and frustration as time after time after time this one unscrupulous person hopped from idea to idea, pulling people in with lots of great talk and big promises - keeping up the charade just long enough to profit before having some sort of 'health' problem (which graduated to nebulous 'hackings') and disappearing into the wind. One of the core problems with crypto, one of the obstacles to seeing it truly blossom, is the existence of predators like this - people who take their failures and choose to learn from them in order to become better scammers in the future. The Dogecoin community, even years later, has struggled to re-find its footing in the wake of Alex/Ryan/Moolah's betrayal and I believe it's roots lie in the fundamental trust that he shattered here. Oddly enough, with crypto we're told to 'trust the math' and yet cryptocurrency, at its heart, has proven to be very, very vulnerable to the whims of humans, our schemes and our politics. How we move beyond that, how we rebuild trust and grow into 2016 and beyond, is something that I believe is central to not only Dogecoin but to the mainstream acceptance that we crave. Which is why I believe that figuring out how to lower that entry ramp while protecting those new-Shibes who choose to join us is of paramount importance. Protection starts with education, knowing the red flags, knowing which questions to ask, what information to expect and when to say "it's coming" is not an acceptable answer. Sadly, all tech aside, it seems like it's this deeper level of human sophistication, one needed in order to safely navigate the cryptosphere, that ends up keeping the masses at bay. People want to use this new tech, not have it used against them - and until we figure that part out, it feels like we're all destined to sit on the sidelines. The silver lining here is that people like Moolah show us exactly where we need to grow, identify entire landscapes that we need to shape in order to lead the masses to our doors. If we're willing to do the work. It's 8:34AM and our Global Hashrate is up from ~1720 Gigahashes per second while our Difficulty is up from ~19050 to ~20420. As always, I appreciate your support! GoodShibe
Tron v9.3.0 (2016-08-25) AQ // Add automatic sub-stage code splicing; fix Steam cache corruption bug; misc other updates and fixes
Tron is a script that "fights for the User." Think of it as a "tech-on-a-thumb-drive" that automates the majority of tedious work in cleaning a Windows system. The goal is ~85% automation, with the understanding that some things are always better left to the discretion of the tech. It is built with heavy reliance on community input and updated regularly. Bug reports, critiques and suggestions are welcome (see how NOT to report bugs). If you have issues with this release, post a top-level comment and myself or one of the mods will answer, typically in <24 hours.
(significant changes in bold; full changelog on Github) v9.3.0 (2016-08-25) AQ
AQ = Released from Antarctica
+ Add automatic checking of sub-stage script versions against current versions hosted on Github. If a new version is found, Tron will automatically update the local scripts prior to beginning Stage 0 execution
+ Add check for active network connection prior to running update checker scripts. If no connection is found, update checks are skipped
Stage 1: Tempclean
+ ccleaner.ini: enable Microsoft Edge cookie wiping
+ winapp2.ini: enable BITS logs cleanup
- winapp2.ini: disable Steam DepotCache cleanup due to reports of it corrupting the Steam cache. Thanks to The_Dipster
Stage 3: Disinfect
* Update Sophos and MBAM definitions to latest
Stage 4: Repair
! Fix incorrectly named directory in pushd statement. Resolves error where Tron couldn't find the Windows Update blocker script. Thanks to DrQuack32
* Simplify and clean up OS version detection
! Fix bug where script could mistakenly run on a Windows 10 system if manually executed
Primary method: Download a self-extracting .exe pack from one of the mirrors:
Secondary: The BT Sync key is no longer published because it was having issues with large swarms (failed to replicate reliably). You can get the key from an old thread or just download from one of the static pack mirrors instead.
Tertiary: Connect to the SyncThing repo (instructions) to get fixes/updates immediately. This method has some risks and you should only use it if you know about them.
Quaternary: Source code All the code for Tron is available here on Github (Note: this doesn't include many of the utilities Tron relies on to function). If you want to view the code without downloading a ~500MB package, or want to contribute to the project, Github is a good place to do it.
Tron has full command-line support. All flags are optional, can be used simultaneously, and override their respective script default when used.
Usage: tron.bat [-a -c -d -dev -e -er -m -o -p -r -sa -sdb -sd -sdc -se -sfr -sk -sm -sp -spr -srr -ss -str -sw -v -x] | [-h] Optional flags (can be combined): -a Automatic mode (no welcome screen or prompts; implies -e) -c Config dump (display current config. Can be used with other flags to see what WOULD happen, but script will never execute if this flag is used) -d Dry run (run through script without executing any jobs) -dev Override OS detection (allow running on unsupported Windows versions) -e Accept EULA (suppress display of disclaimer warning screen) -er Email a report when finished. Requires you to configure SwithMailSettings.xml -m Preserve OEM Metro apps (don't remove them) -np Skip the pause at the end of the script -o Power off after running (overrides -r) -p Preserve power settings (don't reset power settings to default) -r Reboot automatically (auto-reboot 30 seconds after completion) -sa Skip anti-virus scans (MBAM, KVRT, Sophos) -sdb Skip de-bloat (OEM bloatware removal; implies -m) -sd Skip defrag (force Tron to ALWAYS skip Stage 5 defrag) -sdc Skip DISM component (SxS store) cleanup -se Skip Event Log clearing -sfr Skip filesystem permissions reset (saves time if you're in a hurry) -sk Skip Kaspersky Virus Rescue Tool (KVRT) scan -sm Skip Malwarebytes Anti-Malware (MBAM) installation -sp Skip patches (do not patch 7-Zip, Java Runtime, Adobe Flash or Reader) -spr Skip page file settings reset (don't set to "Let Windows manage the page file") -srr Skip registry permissions reset (saves time if you're in a hurry) -ss Skip Sophos Anti-Virus (SAV) scan -str Skip Telemetry Removal (don't remove Windows user tracking, Win7 and up only) -sw Skip Windows Updates (do not attempt to run Windows Update) -v Verbose. Show as much output as possible. NOTE: Significantly slower! -x Self-destruct. Tron deletes itself after running and leaves logs intact Misc flags (must be used alone): -h Display this help text
You can drag and drop or directly upload images from your comp.
You can upload more than one image at once.
It uses HTTPS!
All filetypes are allowed, ALL! (gif,exe,jpg,rar,ass,srt,etc,etc).
"No data is collected or logged by us. This won't change."
if any changes happen to the FAQ, "you will be informed about them".
"I will keep the site as transparent as possible. This will include any files that I remove will be publicly listed and have a copy of the DMCA notice. For more information please visit the transparency information page."
You can drag and drop or directly upload images from your comp.
You can upload more than one image at once.
Gives you the option to create a short url using tinyurl
Allows you to edit the size of your images
It supports ShareX.
My old images appear to have been deleted
No image thumbnail.
It uses HTTP.
Only JPG PNG BMP GIF are allowed.
Max upload size is only 10 MB
NyanIMG does NOT support Internet Explorer and older versions of Firefox, Chrome, Opera and Safari.
"Any file can be removed or replaced at any time for any reason".
No image feed or social aspect.
It only gives you a direct link.
No editing options.
NyanIMG.com does NOT allow the following: Images which violate copyrights or patents are not allowed. Images which contain gruesome scenes, such as dead people or mutilations.
"NyanIMG.com is provided as-is with no implied warranties of any kind. We can not be held responsible for the loss of data or other damages which may result from (and/or lack of) functionality of our service."
You can drag and drop or directly upload images from your comp.
You can upload more than one image at once.
As of 03rd November, 2015, I am unable to access the site without the Administrators login details, which I don't have. From an email to WubTheCaptain, "Because people were uploading CP and bestiality, which is against the rules. I've deleted the offending files. I won't allow other people to upload from now on and intend to keep the site to myself". As of 17th, December 2015, I can no longer connect to the site.
Max upload size is only 20MiB
Right in the middle of the page is bolded text which reads, "weed".
2 SMS texts and 2 calls (automated) within 10 minutes giving an activation code And asking me to input it? I haven't applied for anything so its not for me. Worried someone is trying to use my phone number to access services etc. Tried to call them wouldn't connect. Caller: simplexCC was on the SMS; Reply! 0. Wayne. 28 Feb 2016. Defo pin activation code I had it to verify an account I was ... Bitcoin 2016 activation code txt. Its bitcoin saves to invest now? I just download the whatsapp but they donnt send me the activation code and i pay for it, what do i have to do to get the activation code if i instale Bitcoin money adder activation code / Bitcoin movie 2017 Bitcoin Money Adder - Apie Soft: pin. Activation key for Bitcoin money adder 2017 - YouTube Activation key for Bitcoin money adder 2017 : pin. 2017 ‹ Proof › Bitcoin Adder Generator Coinbase Blockchain No HACK 2017 ‹ Proof › Bitcoin Adder Generator Coinbase Blockchain No HACK: pin. Bitcoin key bot / Best bitcoin hard wallet Link ... Welcome every one Bitcoin Generator v6.5 updated working 05/03/2017 i tested in my pc is working 100% link of Download Bitcoin Generator v6.5 with (Key Pro) link of Download Bitcoin Generator v6.5 with (Key 30Days ) Download Bitcoin Generator v6.5 with Key. Download now. Posted by Summer Smith at 5:06 AM. Email This BlogThis! Share to Twitter Share to Facebook Share to Pinterest. Labels ... Bitcoin Generator V5 1.0 Activation Key Txt Windows 8.1 Product Key Generator 2017 Aow3 Key Generator Only Password Generate Key For Map Api Movavi Video Suite 16 Activation Key Generator Cisco Asa Crypto Key Generate Rsa Modulus 2048 Destiny 2 Make Bows Not War The Key Generator Bitbucket Windows Generate Ssh Key
Pro Evolution Soccer 2016 Activation Code Download - YouTube
For Auto Diagnostics please visit http://www.diagnostic-world.com/ How to activate Microsoft Office 365 without Product Key. Step 1: you visit here to copy this code: https://getproductkey.net/microsoft-office-365-product-ke... Please Like and Subscribe Please Like and Subscribe Visit our Blog : https://dz-digital-tech.blogspot.com/ *NOTE*: You need an Intern... hello friends you can easily activate office 2016 from this technique. Download office 2016 bit.ly/37Iq1wd download notepad file from this link https://drive... visit: bit.ly/office2016txt today i will show you in 4 simple steps how to legally activate your microsoft office 2016 for free without any software. step 1:...