I learnt how to code in Python during the lockdown.
After close to 50 hours of coding, I emerge triumphant from my assignments.
I had the opportunity during the lockdown to take a programming course in Python Fundamentals, taught by Eric Camplin. I selected Python because of its minimalist language, scalability and as a good foundation for database programming. I did all my coding in Azure. I'm so grateful that Python is open source, as it enabled me to spend a lot of time studying the code of other developers on sites like GitHub and Stack Overflow, refining my own coding skills in the process. I've come across some really elegant code by Python programmers -- well-documented, easy to understand; a joy to read. Plus, you get to access all these free libraries and more.
Programming has also given me a fresh perspective and a deeper appreciation on how the Internet evolved into IoT, and how it currently intersects with blockchain technology, the industry I work in. In addition to decentralization, IoT is loosely defined as "a system of interrelated computing devices, mechanical and digital machines provided with unique identifiers (UIDs) and the ability to transfer data over a network without requiring human-to-human or human-to-computer interaction", with growing security risks enabling blockchain technology applications to rise to prominence. The main attributes of blockchain technology are: decentralized, auditable, tamper-proof, secure and reliable, focusing on cryptographic techniques.
As the world becomes increasingly digitalized, the explosion of P2P IoT as more smartphones and other internet-linked devices come online has raised more security vulnerabilities. A well-known vulnerability is the Heartbleed Bug in the popular OpenSSL cryptographic software library. Discovered in 2014, this weakness allows stealing of protected information by the SSL/TLS encryption used to secure the Internet. Long before the hype of blockchain, the internet had already been utilizing cryptographic technology, which is the key proposition in blockchain technology to protect user anonymity, transaction information, and more. In TLS' documentation, cryptographic attributes include: digital signing, stream cipher encryption, block cipher encryption, authenticated encryption with additional data (AEAD) encryption, and public key encryption. In blockchain, cryptographic techniques employed include hash algorithm, asymmetric encryption algorithm and digital signatures.
Google's Trillian project on Certification Transparency for the web, which aims to make the issuance and existence of SSL certificates open to scrutiny by domain owners, Certificate Authorities, and domain users, utilizes similar logic to blockchain technology, starts with a rather amusing preamble in their documentation: "These technologies are strongly related to the much-hyped blockchain. The reality, of course, is that there isn't a "the" blockchain, and that decentralisation is not always the answer. We are not making "the" blockchain, and we do not claim to support decentralisation."
Speculation on whether blockchain projects can fully replace SSL remains. Namecoin was one of the earliest proponents of a fully decentralized internet, but has yet to reach mass adoption. The migration effort to move all CAs on-chain is also another massive undertaking. Whatever the technology used, central authorities still have the trust of their citizens in providing them guarantees on property and money. Trillian aims to enable the trust ecosystem to trust BUT verify with CAs, with some blockchain involved.
My next personal project with Python is to attempt to replicate blockchain logic, and there's already GitHub documentation for Python 3 on this here.
As Eric would say, happy coding!