Posts

Updated Witness Application

avatar of @anyx
25
@anyx
·
0 views
·
7 min read

As an academic at heart, I find myself often at odds with the "popularity contest" that Steem witness positions most often converge to. While I’m a quiet person more often than not, as @lukestokes has often pointed out to me that without information being neatly presented in a consumable fashion, most voters often don’t have the time to fully research the reasons they should vote for someone -- and hence, word of mouth and popularity reign supreme.

I have a hard time writing about myself (I often believe actions speak louder than words), but the goal of this post is to give an updated account of why you, as a holder of Steem, should vote for me as a witness; a bite size summary of the value that I offer and why I believe it’s important. Since it’s been quite some time since my original witness application, this updated post should help modernize information about my contributions.

To get started, it's crucial to understand the election process in Steem: the witnesses that you vote for are the ones who determine consensus of the ecosystem. They are, as I like to put it, the custodians of the blockchain. As a voter, you are delegating your trust to these actors. Therefore, the primary consideration in your votes should be your level of trust in that actor: specifically, trust for their ability to enforce security of the system.


An Academic and Technical Background

To start off, I’ll provide some background about me. I am currently a PhD Candidate in Computer Engineering. My research topic for my dissertation is mostly on Distributed Systems, Parallelism, and Graph Processing. I also have done quite a bit of Machine Learning, though outside my dissertation. That might sound a bit technical, so to simplify things: my field is mostly about understanding, building, and analyzing systems and data. Steem is, in fact, an excellent example of such a system: it is both a distributed system, and its data can be represented as a time series graph. It’s right up my alley.

As an academic, I'm a uniquely qualified expert in this domain: I have authored multiple peer reviewed publications at conferences such as Supercomputing and IPDPS (International Parallel and Distributed Processing Symposium). These conferences are highly regarded in the field of Computer Science and Engineering. Furthermore, I've previously worked in the research divisions of top tech companies like Intel and Facebook. As part of my graduate studies, I even help teach university courses on Distributed Systems. While many people in the cryptocurrency space certainly claim domain expertise, I do have the credentials to back it up.

Why is this background important or relevant? Well, simply put, I have expert knowledge in how Steem works, at its fundamentals. The ability to understand and identify security at its core is, in my opinion, crucial to the success of protecting the network. As an example, I published this post on Vote Incentivization and how it degrades Delegated Proof of Stake, a serious issue that can arise in DPoS.

Further, my expertise as a Computer Engineer (both academic and in industry) is also a key point: I speak C++, the language that the Steem software is implemented in. The value of the ability to identify, track, and repair issues in the code cannot be understated.

As an example, I recently discovered and fixed an issue in steem that caused witnesses to miss blocks seemingly randomly. The issue was in how the P2P protocol identified and handled error scenarios. I patched this issue, and most witnesses are already running this patch. Fixing issues like this is often done quietly and in the background: you, the average user, most often do not care about these kinds of software bugs. However, you should most certainly entrust your votes to people who can fix anything broken, so that the system you use can continue to operate smoothly. Now, obviously, I cannot claim or promise to be able to solve unknown future security issues, but I do believe having the right the skillset should be an important consideration when voting.

Of course, speaking the language of the code has also allowed me to implement or port features into Steem. I recently added to Steem the feature of using Unix sockets for API nodes. Again, this is a technical thing, and one that's certainly not interesting to the average user. Yet, none the less, it is progress that goes on in the background to improve the performance of the Steem ecosystem.

Finally, my technical background allows me to operate and run on dedicated computer hardware, rather than rent servers from a third party, like most witnesses do (opting for custodian services like Hetzner or OVH). A common phrase in the crypto community is “not your keys, not your crypto” -- and in my opinion, this extends to the ownership of the hardware securing the keys, too. My hardware is proudly Canadian, owned and operated securely by me, in the great white north.


Pushing Towards Improved Decentralization

Recently, a large amount of pressure and questions have risen from the community in the form of how decentralized the Steem ecosystem truly is. As some people are acutely aware, Steemit Inc has de-facto control over the Steem blockchain, and our witness positions exist simply because they currently allow it. With recent talks about “forking out Steemit stake,” something to be made clear is that such a fork would not be “Steem”. Although I am a staunch supporter of improving decentralization, I am not convinced this is the right method to do so. Yet, I do agree that actions should be taken to reduce reliance on Steemit Inc., and I have done and will continue to push this.

I have already put in a lot of effort and made strides to improve the decentralization of the Steem ecosystem and reduce this reliance; in a few blog posts (What Makes a ‘dApp’ a ‘dApp’? and Fully Decentralizing dApps), I previously outlined the importance and ability to have fully decentralized applications.

However, this is not all just talk or discussion. In my efforts to promote this, I launched a public full-node infrastructure for any application to use. I purchased tens of thousands of dollars’ worth of hardware, and pay hosting fees of over $300/month to support this infrastructure, for the sole reason of improving the decentralization of Steem. As a result, this infrastructure has proven itself to be a reliable and performant alternative to Steemit Inc's own provided infrastructure.

While the benefits of my push towards decentralization are often not visible to the end users, the impact to the ecosystem is already clear. As an example, the @steemmonsters application has moved over to run on this infrastructure, enabling them to become completely independent of Steemit Inc. Did you know @steemmonsters does more Steem transactions than Steemit does? Further, it is one of the few resources left that supports the popular Steem desktop wallet, Vessel.

Not only does this operation requires continuous maintenance, but I still am working towards improving its performance and ensuring a reliable alternative to the current centralized Steemit Inc. solution. For example, my infrastructure design has already discarded Steemit’s “Jussi” in favour of my own custom solution built in Golang.


Demonstrating Trust: My Commitment to Reducing Fraud

As the original founder of the @steemcleaners project, I remain the primary manager of the group, and the primary supporter of its financing -- regularly redistributing hundreds if not thousands of dollars weekly to community helpers. This organization has existed for over two and a half years, working daily to help reduce fraud, identity theft, and plagiarism here on Steem. While sometimes controversial, we regularly interact with the community, and those familiar with the level of work being done can attest to positive impact it has had and continues to provide.

As many also already know, I developed and continue to maintain the @cheetah bot, a service that looks through a post for similar content already existing on the web, in an effort to expose potential fraud. @cheetah is unfortunately quite expensive: the ability to scour the whole web for matching content does not come cheap. Historically, @cheetah's cost varies with activity on the steem blockchain -- i.e., how many posts she needs to review -- costing over $200 per day in some cases. Despite the current downturn in activity due to the cryptocurrency bear market we are in, she still costs about $50 per day to operate ($1500/month), or about twice the revenue generated by the logs posted on the account. The rest of the financing is subsidized by my witness pay.

Another service I provide is @guard, a rapid response bot that identifies malicious links (such as to phishing sites) and informs users of the issue. Security of your cryptocurrency keys is a huge barrier for most people, and limiting the spread of phishing is crucial to wider adoption.

While these anti-fraud initiatives that I spearhead are admittedly not perfect, I have continued to ensure that they improve over time. While these systems are not able to censor or remove content on Steem, their goal is instead to inform users and reduce the incentives for fraud in our community. I believe they are successful, and have gone a long way to reduce fraud, phishing, and plagiarism on this platform, and continue to do so every day.



TL;DR / Summary.

My technical and academic background as a PhD Candidate in Computer Engineering, with actual domain expertise, I believe uniquely qualifies me as a trusted actor to secure the Steem blockchain. Further, I have demonstrated my ability to author software fixes and feature implementations on top of Steem.

My push for decentralization has not only been talk, but also show, by providing infrastructure support that has already enabled applications like @steemmonsters to entirely remove their reliance on Steemit Inc.

Finally, my hard stance on fraud and my initiatives to address it may come controversial to some, but for many, having a system in place that attempts to address it allows other projects to spend more time on their positive and constructive goals.

While a quiet person in general, I will continue to work in the background to improve the Steem ecosystem. If I’ve convinced you to vote for me, I’d encourage you to do so, here.