Skip to main content

The Essence of Blockchain

A blockchain is a chronicle of signatures. Everyone can see the signatures but no one can afford to alter them. As a new block of signatures joins in as time passes the blockchain security as a whole becomes stronger. Blockchain is protected by public cryptography with no need of a central supervision. By design, altering any of the signature will be a very expensive undertaking. So expensive as comparable to the cost of breaking a vault of gold, which act of breaking in is much more expensive than the gold itself. All signatures are well-verified prior to being kept secured into a blockchain. Hence, all signatures in a blockchain can be trusted without requiring any third party verification.

The principle of blockchain was made popular through the Bitcoin whitepaper by an illusive Satoshi Nakamoto. Even though the two words block and chain were never mentioned as one word in the whitepaper the essence of blockchain was described through out the document.

The Bitcoin blockchain was designed to keep the cryptocurrency spending signatures. A spending is a simple statement saying that A spent his Bitcoins to B. From all spending statements the ownership of all Bitcoins can be summed up. The distributed consensus of Bitcoin prevents A from double spending which means A cannot spend or duplicate the same Bitcoins to both B and C. i.e. If A has only 10 Bitcoins he cannot make two statements saying that he spent 10 Bitcoins to B and also spent 10 Bitcoins to C. Double spending problem is only inherent in decentralized cryptocurrency. The so-called 51% attack will unfortunately enable double spending. The attack is not about altering existing signatures but creating new double-spending signatures. Altering an existing signature is still very expensive for a 51% attacker.

A blockchain can securely keep any type of signatures not just cryptocurrency spending signatures. If it does not involve cryptocurrency than it does not need distributed consensus because the issue of the so-called 51% attack does not arise. Hence, a private non-consensus blockchain is viable.

In an ordinary information system a blockchain can be applied as a chronicle of usage signatures. Each time an information system is used a signature of the usage can be kept in the blockchain so that no one can dispute that the usage had indeed occurred. An information system usage can be in the form of creating a new record or viewing or updating an existing one. All signatures of authorized uses or alteration of the information system can be kept in the blockchain. Hence, any attempt to alter the information system through backdoor can easily be detected and corrected. Implementing a blockchain is equivalent to closing all backdoors. An information system with no backdoor is the most secured system. It can prevent the system from being brought down by internal or external malicious actors. A blockchain can make any ordinary information system temper-proof as it had made Bitcoin temper-proof.

The chronicle of signatures is the solution to the backdoor problem of all existing information systems including the ones used in the banking and financial industries. All central banks hate cryptocurrency but they are eager to seize the blockchain.



Comments

Popular posts from this blog

Setting Up PyScripter for Quantum GIS

PyScripter is a general purpose Python Integrated Development Environment (IDE). Quantum GIS (QGIS) is a desktop GIS application that can be extended with Python plugins. Both are open source softwares. We intend to use PyScripter as an IDE to build QGIS Python plugin. We are using PyScripter 2.4.1.0 and QGIS 1.6.0 in Windows. PyScripter does not come with Python. On the other hand, QGIS is built in with Python. Thus, we will setup up PyScripter to use the build in Python in QGIS. We assume both PyScripter and QGIS are already installed. Preparing PyScripter batch file We assume that QGIS is installed in C:\OSGeo4W\ folder and PyScripter is installed in C:\Program Files\PyScripter\ . 1. Copy qgis.bat in C:\OSGeo4W\ bin to pyscripter.bat 2. Edit pyscripter.bat to remove the last line that read something like this start "Quantum GIS" /B "%OSGEO4W_ROOT%"\apps\qgis\bin\qgis.exe %* and replace it with this in one line Start "PyScripter" /B "C:\Progr

Sending Emails via SMTP

msmtp  requires a minimal setup for sending emails via SMTP compared to sendmail. Here is a configuration for you to send emails from a web host to an external SMTP server. Prior to doing that, you must check whether there is a clear communication channel between your web host and the SMTP server. You can use Telnet . Set up msmtp You are going to set msmtp as an MTA . Hence, you need to remove all other MTAs such as postfix and sendmail: $ sudo apt-get --purge autoremove postfix sendmail Install msmtp and related utilities: $ sudo apt-get install msmtp msmtp-mta mailutils Configure msmtp: $ sudo nano /etc/msmtprc # Set default values for all following accounts. defaults # Use the mail submission port 587 instead of the SMTP port 25. port 587 # Always use TLS. tls on # Set a list of trusted CAs for TLS. The default is to use system settings, but # you can select your own file. tls_trust_file /etc/ssl/certs/ca-certificates.crt # The SMTP server account mx host mail.mx.example

fatal: Couldn't find remote ref master

If you are using Github then  master is now known as main . Whatever you want to do with a master must now be referred to a main . If you search for this error message on the Internet then you will encounter with a lot of old discussions on how to set up your master properly which is probably not what you are looking for. The master  is your problem. Rename it to main . I wrote Git My Way about two years ago. Today I created another Github repository. I got this  "fatal: Couldn't find remote ref master"  error message when I wanted to sync the new repo for the first time with my notebook using the notes I wrote in the blog. All the discussions around the error message I found on the Internet were perplexing. Then I recalled that Github had renamed master to main  due to the master-slave connotation. We always have a master copy of a code, never a slave copy. Now suddenly a word context has been diminished for good. What is going to happen to the existing vast documen