Alle bilder er AI generert av Lasse Meholm fra www.Shutterstock.com
Skrevet av Lasse Meholm, Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere javaskript for å kunne se den.
Med Bitcoin kom teknologien Blockchain, eller blokkjedeteknologi som vi kaller det på Norsk. Til tross for at teknologien er 15 år gammel er den i veldig liten grad blitt benyttet til digitale løsninger utenom kryptomarkedet. Kryptoaktiva som Bitcoin og de mange tusen andre med en rekke svindler og illegale betalinger har muligens skremt seriøse aktører fra å benytte mulighetene teknologien gir. Slik historikk har for eksempel ikke Microsoft dotnet eller Java teknologiene. Men blokkjedeteknologien/DLT har en rekke fordeler som andre teknologier ikke har. Jeg skal derfor gå gjennom noen av disse i mer detalj og sammenligne med dagens løsninger.
Kan ikke endres
Når en betaling/transaksjon er verifisert av en node/miner og transaksjonen blir lagt inn i en blokk sammen med mange andre transaksjoner kan den av praktiske grunner ikke endres. I blokkjedeteknologi samles mange transaksjoner sammen, ofte noen tusen, som verifiseres at alt er OK, pakkes sammen i blokker og lagres i databasen, det som på engelsk kalles ledger. Hver transaksjon lagres med en såkalt «hash» som krypterer og omgjør klar tekst til en lang heksadesimal kodestreng. Når en ny transaksjon skal behandles/verifiseres benyttes hash fra den forrige transaksjonen som en del av den nye hash’en. Dermed er alle transaksjonene knyttet sammen via algoritmene i kryptografien. Effekten av dette medfører at transaksjoner som er verifisert og lagret i en blokk av praktiske grunner rett og slett ikke kan endres. Det er litt som å strikke, om du ønsker å gjøre en endringer må du nøste opp fra begynnelsen. I tradisjonelle databaser som Microsoft SQL vil det alltid være mulig for en programmerer å endre, og til og med slette, transaksjoner som ligger lagret.
Person til person (P2P)
For Satoshi Nakamoto var det avgjørende at det var mulig å betale fra en person til en annen, uten at det var en bank imellom. Ingen «mann-i-midten». Satoshi er et pseudonym for skaperen/e av Bitcoin og blokkjedeteknologi, som ingen i offentligheten vet hvem er. Det ble gjort ved at en og samme transaksjon tar ut Bitcoin fra betalers lommebok (Wallet), samtidig som den samme Bitcoin blir tilført mottakers lommebok (Wallet). Hver Bitcoin har alltid en eier, enten betaler eller mottaker. Dette er i stor kontrast til hvordan betaling med kontopenger i banken fungerer i dag. Når en betaling gjennomføres vil betaler-banken ta penger ut a konto til betaler. Så vil betaler-banken sende beskjed til mottaker-banken om å sette penger inn på mottakers bankkonto. I mellomtiden oppbevarer bankene pengene. Det er mye mer komplisert enn som så i virkeligheten. Poenget er at i blokkjedeteknologien kan ikke pengene bli borte på veien fordi de aldri er noe annet sted enn hos betaler eller mottaker. Og betalingen går rett fra betaler til mottaker, P2P. Enkelte DLT teknologier roter det litt til ved å gjennomføre betalingen via bankens wallet, men jeg går ikke inn på det her.
En versjon av sannheten
La oss anta at selskap A kjøper noe av selskap B. Selskap B sender en faktura til selskap A på 100 kroner. Selskap A har ikke fått faktura enda og vet ikke hva beløpet er. Om du ringer selskap B vil de si at A skylder dem 100 kroner. Om du ringer selskap A vil de si at de ikke vet hvor mye de skylder selskap B. Begge disse svarene er riktig, det er to ulike versjoner for den samme sannheten. Dette kan ikke hende i en blokkjedeteknologi fordi den ene fakturaen blir lagret i wallet for begge selskapene samtidig, sender og mottaker P2P. Det er alltid bare en versjon av sannheten. Det er en effekt av P2P transaksjoner.
Programmerbare verdier og smartkontrakter
Verdiene i blokkjedeteknologi har en felles betegnelse, token. Jeg har i en tidligere blogg forklart begrepet token i relasjon til penger, så jeg går ikke inn på det nå. Den mest brukte blokkjedeteknologien i forbindelse med forretningssystemer er Ethereum. Token i Ethereum er basert på noe som kalles smartkontrakter, for eksempel ERC-20. En smartkontrakt er et dataprogram, ofte et lite dataprogram på opp mot noen hundre kodelinjer. Dermed kan token programmeres. For eksempel kan man programmere at denne token bare kan være eid av noen som finnes på en spesiell liste av mottakere. Når en transaksjon starter vil dataprogrammet i token sjekke om mottaker finnes på denne listen. Dersom JA vil transaksjonen gjennomføres, dersom NEI vil transaksjonen stoppe og token vil fremdeles befinne seg hos avsender. Dette kalles «whitelisting» og er mye brukt i blokkjedeteknologi. Det er i prinsippet bare kreativiteten til programmerere som begrenser hva slike smartkontrakter kan utføre.
Datasystemer i store bedrifter inneholder ofte mange tusen linjer programkode. Å gjøre endringer i slik kode koster ofte mange hundre tusen kroner, for ikke å snakke om millioner for relativt små endringer. Koden skal gjennomgås av IT arkitekter og den skal testes. Dersom man lykkes med å flytte forretningslogikk over til smartkontraktene vil det være mulig å få langt større fleksibilitet i IT systemene og samtidig redusere kostnadene. Som en ekstra fordel medfører det at det vil ta vesentlig kortere tid å sette i produksjon hele nye tjenester i forhold til med tradisjonell teknologi (time-to-market).
Tillit
Omtrent uansett hva som omsettes av ulike aktiva i dag benyttes det en megler eller en mellommann. Kjøper man aksjer på en aksjebørs benyttes to ulike meglere, en for selger og en for kjøper. Dersom selger tar imot betalingen men ikke leverer aksjene, forventes det at meglere rydder opp. Det samme med omsetning av boliger. Megler sørger for tillit i handelen. Også ved betalinger av kontopenger benyttes en mellommann i form av en eller flere banker som sørger for at pengene flyttes fra betaler til mottaker. Igjen er tillit gitt ved at man stoler på at bankene gjør jobben sin.
En av utfordringene til Satoshi var å skape tillit til at transaksjonen ble gjennomført uten å involvere en mellommann. Satoshi lykkes ikke helt, men kom ganske langt på veien ved å overlate jobben til dataprogrammene som utgjør verifikasjon av transaksjonen, det som kalles «mining» av hver blokk. I tillegg la Satoshi ut programkoden offentlig slik at alle kan se hvordan dataprogrammene i en «miner» fungerer. En utfordring når koden ligger ute offentlig er at det er mulig å laste ned koden, gjøre endringer, kompilere den og benytte dataprogrammet til å slippe gjennom falske transaksjoner. For å unngå en slik situasjon skapte Satoshi en konkurranse blant minere som gjør at det er umulig å gjette hvem av de mange minere som skal verifisere transaksjonene i den neste blokken. Ettersom konkurransen de sist ti-årene har blitt så stor, og datasentrene blir så voldsomt energikrevende, gjør denne sikkerhetsmekanismen også at Bitcoin forbruker katastrofalt mye energi (PoW). Ethereum og andre blokkjedeteknologier benytter etter hvert en annen mekanisme som forbruker veldig lite energi (PoS) fordi konkurransen flyttes et steg tidligere i prosessen. Uansett gjør dette at vi kan ha tillit til at transaksjonen gjennomfører på en riktig måte uten at det finnes en megler eller mellommann.
Distribuerte data
En utfordring med dagens digitale løsninger er at det dannes en sentralisert eller kjeder av «single point of failure». Ta for eksempel en betaling fra en kunde av DNB til en kunde av Nordea. Datasystemene i DNB vil sørge for å starte prosessen med å ta ut beløpet fra betalers bankkonto. Deretter vil datasystemet til DNB gi beskjed til oppgjørssystemet i Norges Bank om å overføre sentralbankreserver fra DNB til Nordea. Deretter vil datasystemene i Nordea sørge for at mottaker får penger på konto. Dette er en veldig forenklet versjon av prosessen. Dersom en av de tre datasystemene svikter stopper hele prosessen opp. Hver av disse tre er en «single point of failure». Heldigvis skjer dette svært sjeldent i Norge. I blokkjedeteknologi som i Bitcoin finnes det mange, ofte mer enn hundre «minere» og alle kan sørge for at transaksjonen kan gjennomføres uavhengig av hverandre. Databasen med historiske transaksjoner finnes hos alle «minere». Det medfører at selv om mange «minere» i nettverket får problemer, mister strømmen eller blir borte fra internett, kommer transaksjonene til å bli gjennomført av alle de andre som fremdeles er i drift. Dette er en unik styrke i teknologier som blokkjedeteknologi fordi data og prosessorkraft er distribuert.
Felles distribuerte regnskap
På engelsk kalles databasen i blokkjedeteknologi «ledger». Den beste oversettelsen til norsk er regnskap eller reskontro. Alle som deltar som minere bruker den samme distribuerte databasen som blir oppdatert samtidig og med de samme data for alle, alltid. I eksempelet med betaling fra DNB via Norges Bank til Nordea er minst tre helt ulike datasystemer og databaser involvert. Det er ingen som helst kobling mellom databasene hos bankene annet enn transaksjonene som sendes mellom dem. Felles ledger er en helt unik fordel med blokkjedeteknologi og sikrer at alle har tilgang til nøyaktig den samme informasjonen. Likevel kan de ulike brukere ha ulike tjenester ettersom tjenestene utvikles i wallet, det som på norsk kan kalles digital lommebok.
Bruken av wallets (digitale lommebøker)
En viktig, men lite diskutert, mekanisme er bruken av wallet i blokkjedeteknologi. I tradisjonell teknologi finnes data lagret i en eller flere databaser, ofte sentralisert. Når noen utvikler datasystemer benyttes en direkte kobling mot databasene dersom applikasjonen finnes i samme nettverk, mens koblinger oftest går via API når data og applikasjoner finnes i ulike nettverk. Men i en blokkjedeteknologi foretas alle prosesser direkte mot den originale databasen, som riktignok er distribuert. Det kan finnes en mengde ulike wallets med helt ulike funksjoner koblet mot den samme ledger. Også her kalles applikasjonene ofte smartkontrakter. Det gjør at hele verdikjeden av hendelser kan ha langt større innovasjonskraft dersom arkitekturen i øko-systemer designes riktig.
Motpartsrisiko og atomic transaksjoner
Det koster mye for banker og større bedrifter å sikre seg mot problemer hos motparten i en handel. For eksempel når en bank i Norge selger NOK mot USD til en bank i USA for en milliarder kroner fordi en kunde trenger USD i forbindelse med import. Risikoen er at den norske banken overfører kronebeløpet, men at den amerikanske banken ikke evner å overføre dollar av ulike grunner. Det kalles motpartsrisiko. I en blokkjedeteknologi vil disse to valutaene være to ulike token i en og samme ledger. Transaksjonen går P2P som tidligere beskrevet. Dersom ikke den norske banken mottar dollar vil heller ikke den amerikanske banken motta kroner. Transaksjonen gjør to ting samtidig, det som kalles atomic transaksjon. Det kalles også alt-eller-ikke-noe. Dette er en unik funksjon i blokkjedeteknologien som er vanskelig å få til i tradisjonell teknologi.
Interoperabilitet
En stor utfordring med blokkjedeteknologi er den ekstreme fragmenteringen. Teknologiene er fragmenterte ved at det finnes Bitcoin, Ethereum, Algorand, Cardano, Solana, Hyperledger, Corda, IOTA og noen ti-talls til. Innenfor mange av disse finnes private nettverk og offentlige nettverk samt 2. og 3. lag teknologi. Og alle teknologiene har sine egne ledger som ikke «snakker» med de andre. Derfor utvikles det såkalte broer mellom teknologiene, noe som ikke er spesielt modent enda. Dette i motsetning til tradisjonell teknologi som stort sett bruker noen varianter av dotnet, java og SQL databaser. Mangfoldet, eller fragmenteringen, bremser utbredelsen og gjør det utfordrende å velge. Skal for eksempel digitale sentralbankpenger (DSP) fungere grensekryssende må landene ha teknologi og representasjon av penger (token) som er interoperabile, slik at betalingene kan gjennomføres. Brukes blokkjedeteknologi i forbindelse med «trade finance» (import og eksport) må både eksportør og importør bruke teknologi og representasjon av dokumenter og verdier som er interoperabile. Skal blokkjedeteknologi bruker i forbindelse med omsetning av verdipapirer må alle deltagere bruke teknologi som henger sammen. En grunn til at internett ble suksess var at alle benyttet samme standard i kjernen som f.eks. TCP/IP og hyperlenker. Så konkurrerer man om tjeneste på toppen av kjernen. I blokkjedeteknologi er konkurransen fortsatt om kjernen, det er kontraproduktivt. Noe av «problemet» er nok at teknologien også inneholder en verdibærer, Bitcoin, ETH (Ethereum), SOL (Solana), ADA (Cardano) etc. som kjøpes og selges i forbindelse med spekulasjon.
Sentralbanker
De fleste sentralbanker som tester det som kalles digitale sentralbankpenger (DSP) benytter noen form av blokkjedeteknologi eller DLT. Samtlige bruker såkalte private ledger eller «permission». Det nye de siste 2-3 årene er at sentralbankene utvikler nye teknologier som ikke er ren blokkjedeteknologi eller DLT. Kina startet dette når de planla e-CNY i 2018 som ble satt i pilot ute i befolkningen april 2020. USA har gjort det samme med prosjekt Hamilton. Hong Kong, Thailand, Kina og de forente arabiske emirater har gjort det samme i prosjekt mbride. Felles er at de konkluderer med at de teknologiene som finnes standard ikke er tilstrekkelig for et sikkert og skalerbart øko-system for betalinger. Alle henter likevel elementer fra blokkjedeteknologi som kryptografiske signaturer og i en viss grad desentrale databaser. Kravet til hastighet i store land er ofte opp mot en million transaksjoner i sekundet, noe ingen av dagens blokkjedeteknologier/DLT kan levere.
GOOGLE TRANSLATED FROM NORWEGIAN TO ENGLISH WITH A FEW CORRECTIONS.
Written by Lasse Meholm, Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere javaskript for å kunne se den.
Graph AI generated from www.Shutterstock.com
With Bitcoin came the Blockchain technology. Despite the fact that the technology is 15 years old, it has been used to a very small extent for digital solutions outside the crypto market. Crypto-assets such as Bitcoin and the many thousands of others with a number of scams and illegal payments have possibly scared off serious players from taking advantage of the opportunities the technology offers. For example, Microsoft dotnet or the Java technologies have such a terrible history. But the blockchain technology/DLT has a number of advantages that other technologies do not have. I will therefore go through some of these in more detail and compare them with current solutions.
Can not be changed
When a payment/transaction is verified by a node/miner and the transaction is entered into a block together with many other transactions, it cannot be changed for practical reasons. In blockchain technology, many transactions are gathered together, often a few thousand, which are verified that everything is OK, packed together in blocks and stored in the database, what is called a ledger. Each transaction is stored with a so-called "hash" that encrypts and converts clear text into a long hexadecimal code string. When a new transaction is to be processed/verified, the hash from the previous transaction is used as part of the new hash. Thus, all the transactions are linked together via the algorithms in the cryptography. The effect of this is that transactions that have been verified and stored in a block for practical reasons simply cannot be changed. It's a bit like knitting, if you want to make a change you have to unravel from the beginning. In traditional databases such as Microsoft SQL, it will always be possible for a programmer to change, and even delete, stored transactions.
Person to Person (P2P)
For Satoshi Nakamoto, it was crucial that it was possible to pay from one person to another, without a bank in between. No "man-in-the-middle". Satoshi is a pseudonym for the creator(s) of Bitcoin and blockchain technology, whose identity no one in the public knows. It was done by one and the same transaction withdrawing Bitcoin from the payer's wallet , at the same time as the same Bitcoin is added to the recipient's wallet. Every Bitcoin always has an owner, either payer or receiver. This is in stark contrast to how payment with bank account money in the bank works today. When a payment is made, the payer's bank will withdraw money from the payer's bank account. The payer bank will then send a message to the recipient bank to deposit money into the recipient's bank account. In the meantime, the banks keep the money. It is much more complicated than that in reality. The point is that in blockchain the money cannot get lost on the road because it is never anywhere else but with the payer or recipient. And the payment goes directly from payer to recipient, P2P. Certain DLT technologies mess it up a bit by making the payment via the bank's wallet, but I won't go into that here.
One version of the truth
Let's assume that company A buys something from company B. Company B sends an invoice to company A for NOK 100. Company A has not received the invoice yet and does not know what the amount is. If you call company B, they will say that A owes them NOK 100. If you call company A, they will say they don't know how much they owe company B. Both of these answers are correct, they are two different versions of the same truth. This cannot happen in a blockchain technology because the one invoice is stored in the wallet for both companies at the same time, sender and receiver P2P. It is always only one version of the truth. It is an effect of P2P transactions.
Programmable values and smart contracts
The values in blockchain have a common designation, token. I have explained the concept of token in relation to money in a previous blog, so I will not go into it now. The most widely used blockchain technology in connection with business systems is Ethereum. Tokens in Ethereum are based on something called smart contracts, such as ERC-20. A smart contract is a computer program, often a small computer program of up to a few hundred lines of code. Thus, the token can be programmed. For example, one can program that this token can only be owned by someone who is on a special list of recipients. When a transaction starts, the computer program in the token will check whether the recipient is on this list. If YES, the transaction will be carried out, if NO, the transaction will stop and the token will still be with the sender. This is called "whitelisting" and is widely used in blockchain technology. In principle, it is only the creativity of programmers that limits what such smart contracts can perform.
Computer systems in large companies often contain many thousands of lines of program code. Making changes to such code often costs many hundreds of thousands of kroner, not to mention millions for relatively small changes. The code must be reviewed by IT architects and it must be tested. If you succeed in moving business logic over to the smart contracts, it will be possible to get far greater flexibility in the IT systems and at the same time reduce costs. As an additional advantage, it means that it will take significantly less time to put into production entirely new services compared to traditional technology (time-to-market).
Trust
Almost regardless of what is traded in various assets today, a broker or an intermediary is used. If you buy shares on a stock exchange, two different brokers are used, one for the seller and one for the buyer. If the seller accepts the payment but does not deliver the shares, brokers are expected to clean up. The same with sales of housing. Broker ensures trust in the trade. An intermediary in the form of one or more banks is also used for payments of bank account money, which ensures that the money is moved from the payer to the recipient. Again, trust is given by trusting the banks to do their job.
One of the challenges for Satoshi was to create trust that the transaction was completed without involving an intermediary. Satoshi did not succeed completely, but got quite far along the way by leaving the job to the computer programs that make up the verification of the transaction, what is called "mining" of each block. In addition, Satoshi published the program code publicly so that everyone can see how the computer programs in a "miner" work. A challenge when the code is out in the open is that it is possible to download the code, make changes, compile it and use the computer program to slip through fake transactions. To avoid such a situation, Satoshi created a competition among miners that makes it impossible to guess which of the many miners will verify the transactions in the next block. As the competition in the last ten years has become so great, and the data centers are becoming so energy-intensive, this security mechanism also means that Bitcoin consumes a catastrophic amount of energy (PoW). Ethereum and other blockchain technologies eventually use a different mechanism that consumes very little energy (PoS) because the competition is moved one step earlier in the process. In any case, this means that we can have confidence that the transaction will be carried out in the right way without a broker or intermediary.
Distributed data
A challenge with today's digital solutions is that a centralized or chains of "single point of failure" are formed. Take, for example, a payment from a customer of DNB (a bank) to a customer of Nordea (a bank). The computer systems in DNB will ensure that the process of withdrawing the amount from the payer's bank account is started. DNB's computer system will then notify the settlement system at central bank to transfer central bank reserves from DNB to Nordea. The computer systems in Nordea will then ensure that the recipient receives money in their account. This is a very simplified version of the process. If one of the three computer systems fails, the entire process stops. Each of these three is a "single point of failure". Fortunately, this happens very rarely in Norway. In blockchain, as in Bitcoin, there are many, often more than a hundred "miners" and all of them can ensure that the transaction can be carried out independently of each other. The database of historical transactions is available at all "miners". This means that even if many "miners" in the network have problems, lose power or are lost from the internet, the transactions will be carried out by all the others that are still in operation. This is a unique strength in technologies such as blockchain because data and processing power are distributed.
Shared distributed ledger
In English, the database in blockchain is called "ledger". Everyone who participates as miners uses the same distributed database that is updated simultaneously and with the same data for everyone, always. In the example of payment from DNB via central bank to Nordea, at least three completely different computer systems and databases are involved. There is no link whatsoever between the banks' databases other than the transactions sent between them. Shared ledger is a completely unique advantage of blockchain and ensures that everyone has access to exactly the same information. Nevertheless, the different users can have different services as the services are developed in wallets.
The use of wallets (digital wallets)
An important, but little discussed, mechanism is the use of wallets in blockchain technology. In traditional technology, data is stored in one or more databases, often centralized. When someone develops computer systems, a direct connection to the databases is used if the application is in the same network, while connections are most often via API when data and applications are in different networks. But in a blockchain technology, all processes are made directly against the original database, which is admittedly distributed. There can be a number of different wallets with completely different functions connected to the same ledger. Here, too, the applications are often called smart contracts. This means that the entire value chain of events can have far greater innovation power if the architecture of eco-systems is designed correctly.
Counterparty risk and atomic transactions
It costs a lot for banks and larger companies to protect themselves against problems with the counterparty in a trade. For example, when a bank in Norway sells NOK against USD to a bank in the USA for one billion kroner because a customer needs USD in connection with imports. The risk is that the Norwegian bank transfers the krone amount, but that the American bank is unable to transfer dollars for various reasons. This is called counterparty risk. In a blockchain technology, these two currencies will be two different tokens in one and the same ledger. The transaction goes P2P as previously described. If the Norwegian bank does not receive dollars, the American bank will not receive kroner either. One transaction does two things at the same time, what is called an atomic transaction. It is also called all-or-nothing. This is a unique feature of blockchain that is difficult to achieve in traditional technology.
Interoperability
A major challenge with blockchain technology is the extreme fragmentation. The technologies are fragmented in that there are Bitcoin, Ethereum, Algorand, Cardano, Solana, Hyperledger, Corda, IOTA and tens of others. Within many of these there are private networks and public networks as well as 2nd and 3rd layer technology. And all the technologies have their own ledgers that do not "talk" to the others. Therefore, so-called bridges are being developed between the technologies, which is not particularly mature yet. This is in contrast to traditional technology which mostly uses some variants of dotnet, java and SQL databases. The diversity, or fragmentation, slows down the spread of innovation and makes it challenging to choose. For example, if digital central bank money (CBDC) is to function across borders, the countries must have technology and representation of money (token) that are interoperable, so that payments can be made. If blockchain is used in connection with "trade finance" (import and export), both exporter and importer must use technology and representation of documents and values that are interoperable. If blockchain is to be used in connection with the trading of securities, all participants must use technology that is connected. One reason why the internet became successful was that everyone used the same standard at the core, such as e.g. TCP/IP and hyperlinks. Then one compete for service at the top of the core. In blockchain, the competition is still for the core, it is counterproductive. Part of the "problem" is probably that the technology also contains a value carrier, Bitcoin, ETH (Ethereum), SOL (Solana), ADA (Cardano) etc. which are bought and sold in connection with speculation.
Central banks
Most central banks testing what is called central bank digital currency (CBDC) use some form of blockchain or DLT. All use so-called private ledgers or "permissioned". What is new in the last 2-3 years is that the central banks are developing new technologies that are not pure blockchain technology or DLT. China started this when they planned e-CNY in 2018, which was piloted in the population in April 2020. The US has done the same with Project Hamilton. Hong Kong, Thailand, China and the United Arab Emirates have done the same in project mbride. What they have in common is that they conclude that the standard technologies are not sufficient for a secure and scalable eco-system for payments. All nevertheless derive elements from blockchain such as cryptographic signatures and to some extent decentralized databases. The requirement for speed in large countries is often up to a million transactions per second, which none of today's blockchain technologies/DLT can deliver.