The Lightning Network ELIDHDICACS*

(Explain Like I Don’t Have Degrees in Cryptography and Computer Science)

This article will attempt to explain how the Lightning Network operates, by making extensive use of analogy and avoiding intricate details of the underlying cryptography which validates the entire system. The goal here is to give the layperson a general understanding of how the Lightning Network operates by using, as close as possible, a real world analogy. Needless to say, such an explanation is going to leave out a lot of important details which are already well covered in the Lightning Network technical documentation. At times, the metaphors used may seem a bit stretched since, in most cases, the real world analog would be wildly impractical. By using analogies we are attempting to describe operations which happen on computer networks capable of executing contracts hundreds of thousands of times a second and with perfection.

So, let us begin by imagining a small town where everyone carries their gold in their pockets to buy and sell everything. It should be clear that such a situation would work just fine, since it has worked in human society for thousands of years. There is the question, however, of just how difficult it is to carry gold with you everywhere, because of security concerns, and the challenge of constantly having to make small change all of the time.

For this example, let us imagine that we do what early banks did during the days of the Wild West.

Instead of carrying gold with you everywhere, you could deposit your gold in the bank and carry sheets of paper which represent it; paper which is redeemable for actual gold at the bank as well. As we all know, this is how things used to work back in the Old West. Individual banks would each issue their own gold certificates of deposit which could be exchanged for goods and services around town. Since everyone in town accepted these notes as ‘good as gold’, this method functioned well for many years. People did not need to carry heavy gold with them everywhere they went, nor had to make change by carving it up into ever smaller amounts. It is important to note these paper certificates could be redeemed for actual physical gold at the bank; payable to whomever presented them. Since anyone could redeem these notes, it didn’t solve the basic security issue of simply being robbed. In contrast, the Lightning Network solves this problem of security very well.

Now, using this analogy, let’s try to understand how the Lightning Network operates. To be clear, at first glance it may seem dramatically more complicated than the Old West system, but keep in mind that things which are complex to you and I are not necessarily an issue for computers. A modern computer can multiply, add, subtract, or divide any two arbitrarily complex numbers about a billion times a second or so; something no human could ever do.

In this analogy the following holds true:

Bitcoin represents the Gold

The Bitcoin network and blockchain represents the Bank, but, unlike a regular bank, it cannot practice fractional reserve banking (lending out more money than it holds). Every single claim represents actual gold (i.e. bitcoin) in 100% perfect and immutable reserve. So, in our fictional Old West town, we have something which also doesn’t exist in the real world, a perfectly honest and incorruptible bank with 100% matching gold reserves.

The following properties are true in this analogy: The bank is the absolute arbiter of truth; the bank holds all of the gold; the bank decides who gets the gold and in what distribution; the bank has absolute power when determining between truth or lies; you cannot lie to the bank because this bank knows with absolute certainty, whether a signed contract is true or untrue—something that cannot be forged. This is a lot to accept at face value, but these points are all actually true on the bitcoin network due to the power of cryptography and can be mathematically proven. The details of this proof include a lot of nasty technical points that we are trying to avoid bringing into the presentation. So, let’s forego all the mathematical details and keep things simple. If you want to understand more thoroughly what makes these things possible, feel free to take an advanced course in cryptography at your local University.

In our fictional Old West town, things work a little bit differently with the Lightning Network model as a payment system. There is no paper money which is freely exchanged among businesses. Also, the ‘certificates of deposit’ that anyone can redeem at the bank don’t exist in the Lightning Network model as well. Instead, there are legal contracts between individuals; legal contracts which are enforced by the bank using a very strict and ironclad (programmatic) set of rules.

Let’s say that your name is Bob the Farmer, and you want to do regular business with the town's General Store. Under the Lightning Network model, Bob the Farmer and the General Store would enter into a contract with the bank. First, they would each deposit a certain amount of gold at the bank. Let’s say Farmer Bob deposits $100 worth of gold to do business with the General Store. In this first example, the General Store doesn’t deposit anything, but they could if they wanted to. Both Bob and the General Store agree to a contract, with a particular set of rules, that will be enforced by the bank. Before they leave the bank, the two parties exchange an initial receipt with each other, a receipt stating the initial balance, with $100 belonging to Farmer Bob and, at this time, nothing to the General Store; we’ll talk more on this later.

Once they have opened up this joint account at the bank, Bob can now start buying goods at the General Store; up to the $100 worth of gold that he deposited at the bank to begin with.

On the first day, Bob goes to the General Store and he buys a hammer worth $5. Rather than Bob handing over $5 worth of gold, or even paper money, he signs a note that says, "Of the $100 I have deposited in the bank, $5 now belongs to the General Store, and $95 belongs to me." Both he and the General Store sign the other’s copy of this receipt, and they each keep a copy for themselves. Farmer Bob’s copy of the receipt is signed by the General Store and the General Store’s copy of the receipt is signed by Farmer Bob. Neither of them sign their own name yet, they wait to do that until they present it to the bank to close out the account. As you can see, no actual money has changed hands. Instead, they have simply made a notation in their personal ledgers. Also note, that the bank knows nothing about this transaction, nor does the bank need to know anything about this transaction either. In fact, even if Farmer Bob and the General Store perform a thousand transactions, all the bank cares about, or needs to know, is the current final balance between them.

The next day, Bob goes back to the store and buys some nails for $1. Now, the same procedure happens as the day before. Two copies of a new receipt are written up, that states that the General Store gets $6 of the $100 deposited at the bank, and Bob gets the remaining $94. Each party signs and dates the other’s receipt, but they don’t sign their own copy yet.

Now, here is an interesting point. The note from the day before, which stated that the store had $5 and Bob had $95, can be thrown away! It is no longer needed. Other than for personal accounting purposes, this signed note with the old balance can be thrown in the trash since it no longer reflects the currently agreed-upon balance, and is null and void (exactly how it becomes voided will be discussed in more detail later).

At any time, either Bob or the General Store can close their account with one another. They each have a valid signed copy of the balance, and the bank will honor it because, remember, the bank has the awesome super cryptographic power of knowing with absolute certainty that the signatures are correct. For reasons of security, the party that wishes to close the account does not sign their copy of the receipt until they are at the bank. The bank verifies that the signatures are valid, and divvies up the gold they were holding on behalf of the clients, according to the signed agreement on the note (this doesn’t happen immediately, we will discuss this later). The bank doesn’t need to know the transaction history between Bob or the store. The bank really doesn’t care. All the bank needs to know, is that the final balance signed by both parties, is valid.

The bank isn’t a charity. For the service of opening and then closing the account, they will charge a small fee. However, for the purposes of this discussion, fees are not particularly relevant; it just means that when the bank settles up the account, they might give the General Store $5.95 (instead of the $6) and Farmer Bob $93.95 (instead of $94), keeping the 10 cent difference as a fee for providing the service of executing the contract and holding the gold. Of course, the General Store could choose to pay the entire ten cent fee as the cost of doing business if they want. The two parties can simply agree to the appropriate fee when they set up the account..

Hopefully, with this analogy, you can understand how this system could work. So long as the General Store and Farmer Bob maintain a current balance between the two of them, they: (a) don’t need to actually exchange any money (just signed and dated receipts representing the current balance); and (b), the bank doesn’t need to know about any of the individual transactions between the two parties. The bank only needs to know the final balance to settle up the bill at the end. It does assume that the bank is 100% trustworthy and infallible—which, as we know in real life, is an absurd assumption. However—and this is the amazing part—with the power of the bitcoin blockchain and smart contracts, this actually is completely true!

Each time Bob buys something at the General Store, and exchanges a copy of the receipt, each party signs the other one’s receipt. However, it is very important to note that they do not sign their own copy yet! The reason for this is because once a receipt has been signed by both parties, it can be presented to the bank, by anyone, and it will be executed. If Bob signs his copy of the receipt right away, then what happens if he loses it? Let’s say Bob signs his receipt and drops it on the ground. If someone else finds it, that means they can present the receipt signed by both parties to the bank to initiate a settlement of the funds prematurely. It is important to note that this 3rd party cannot, in any way, steal any of the money. The contract with the bank states that Bob gets his share of the money and the General Store, theirs. By presenting the receipt, the bank will begin to close the account but will not, and cannot, redirect the funds to someone else. So, why would a 3rd party present a signed receipt if they can’t benefit financially from it? The answer is simple — even in the Wild West, some people are just jerks.

This is the reason neither party signs their copy of the receipt until they are actually ready to present it to the bank. A receipt signed by only one party is completely safe from meddlesome people who might manage to steal a copy. In fact, not only is it safe, but Bob could even make multiple copies of each receipt and store them in different locations. The receipts are extremely valuable to Bob and the General Store, because if either of them loses their receipt, they can no longer initiate a settlement transaction with the bank. So, for the purposes of backup and redundancy, both Bob and the General Store can freely keep multiple copies of their receipts just to be completely safe and secure; they are protected even if they hand those receipts over to a 3rd party for safekeeping.

By now, this thought may have occurred to you: What is to prevent Farmer Bob from presenting one of the older signed receipts to the bank? In fact, what if, after receiving $100 worth of goods from the General Store, he tries to present the initial receipt that was exchanged back when the account was originally opened? How does the bank know that they should not honor this one? Here is where things get a bit tricky. If either party requests to close out the account, the bank will not pay out the funds immediately, even though the receipt is properly signed. Before they honor the receipt, giving Bob money he doesn’t deserve, the bank will first contact the General Store and ask, "Hey, Farmer Bob is trying to close out his account with the following receipt. Is this cool?" The bank continues, “Farmer Bob says that the last time you two did a transaction was on this date and he doesn’t owe you anything.” At this point, the General Store says, “Hell no, that’s not right! The most recent balance between us, is that he owes me $100 and (through the magic of cryptography) I can prove it!” The General Store presents the most recent signed receipt and the bank says, “Yep, you are right. Bob is a stinking liar and scam artist. For attempting to defraud you, he forfeits the entire $100; you get it all!”

The penalty for submitting an invalid receipt, is the complete loss of all funds, which are handed over to the counterparty.

This is probably the most critical part of how the system works. Even though anyone can present a valid receipt to the bank at any time, the bank will wait a short period so that the counterparty can contest the receipt, simply by presenting proof of a newer one. Remember that Farmer Bob cryptographically signed the newer receipt, and his signature confirms that this transaction is newer than the bogus one he presented to the bank. Again, this is an example of something that would be almost impossible in the material world, but can be irrevocably proven using cryptographic systems. Without this window of time for the counterparty to object, this entire system would not work. The bitcoin network is the world's most powerful time-stamping system and the Lightning Network leverages against it to make this kind of a payment system an actuality.

Considering the penalty for presenting a false receipt to the bank, Farmer Bob is highly motivated not to lie to the bank.

At this point, we should probably note that this analogy wouldn’t work very well in the real world because, in the real world, being able to perfectly validate dates and signatures, with 100% certainty, is not so easy. Yet, with computer networks and the power of cryptographic signatures, this is entirely possible.

Now, let’s look at a couple more edge cases. What happens if Farmer Bob presents the invalid receipt, the General Store is notified, but they don’t say anything about it? In that case, the transaction will still go through since it has valid signatures of both parties—because no one objected. The time window, where the second party is notified, is what prevents people from defrauding someone else; it is because of the threateningly high risk of losing all of their money on deposit. In the real world, the bank notifying the store might come in the form of a phone call. In bitcoin, that notification comes in the form of a transaction published to the bitcoin network; this transaction is not valid until a certain amount of time has passed, but everyone can see and monitor it, including, in this analogy, the General Store.

You might be wondering what would happen if Farmer Bob presents an invalid receipt only to have the bank fail to contact the General Store for confirmation. Then what? Who knows, maybe the General Store is closed for the holidays and Farmer Bob thinks he can take advantage of this to get his invalid receipt accepted. This is, indeed, a problem. If the counterparty fails to properly monitor any attempts to close the account prematurely with an invalid receipt, and misses the deadline, they could definitely be defrauded. With the Lightning Network, there are multiple redundant systems running 24/7, which monitor the closing transactions submitted to the bitcoin network in order to make sure that this cannot happen. The mechanism which enforces this is as follows. Each time the two parties update their balance receipts, they both create a side contract; we will call this the ‘claiming transaction’. This is a signed contract which is only valid if the counterparty attempts to close the account fraudulently. That is the only condition where this contract holds true; in fair account closure, there is no need to readdress this claiming transaction. Within this side contract, the counterparty agrees to pay a small bounty to whoever presents the contract to the bank. By sharing this contract with a group of bounty hunters, there is an incentive for them to police any attempts to commit a fraudulent closing transaction on your account, because they would get rewarded for doing so. If this were ever to occur, as it is a rare or infrequent event, you can be assured that the claiming transaction ensures the securing of your funds; even if you were unavailable to do so yourself at the time.

So far, we have presented an explanation for how two people could perform financial transactions without actually having to exchange any money directly. But what if Farmer Bob wants to pay someone who he does not already have an existing account with? If it is someone he regularly does business with, he could consider making a new deposit with the bank and transact with them the same way that he has being doing with the General Store. However, if Farmer Bob wanted to pay Seamstress Alice just this one time, it is a lot of trouble to create a whole new deposit and contractual relationship with the bank for just one payment. Luckily, he doesn’t have to go to all this trouble. In this particular Old West town, for exemplar purposes, almost everyone does regular business with the General Store. Both Bob and Alice already have existing business relationships with the store. Therefore, Bob can pay Alice through the General Store as an intermediary. The solution is actually relatively straightforward. Farmer Bob can send $10 to Seamstress Alice by asking the General Store to forward it to her. First, Farmer Bob adjusts his balance with the General Store and, in turn, the General Store can adjust its balance with Alice for the same amount. As you can see, no actual money changes hands, but parties along the chain merely update balances between them to get the same effect.

We can even take this scenario a step further. Let’s say that Alice DOESN’T have an open account with the General Store. However, let’s say that she does have one with the Blacksmith, who, in turn, has an account open with the General Store. In this scenario, Bob could pay Alice by adjusting his balance with the General Store, who then in turn, adjusts their balance with the Blacksmith, who then adjusts his balance with Alice. There is an often-quoted ‘six degrees of separation’ theory, which posits that everyone knows every other person on the planet within just six logical connections. Likewise, with the Lightning Network, every person can pay anyone else within just one, two, or maybe three hops along the way. In fact, it is this process of connecting people along existing open payment channels, that creates the underlying ‘network’ that the Lightning Network operates upon. Using the Lightning Network, anyone can pay another simply by forwarding funds and without the need to create any new deposits at the bank. By adjusting everyone’s balance sheet in accordance to everyone involved, you can effectively move money around without moving any physical money at all.

It may seem like this system is too highly complex and inefficient to equip everyone with the ability to pay everyone else; yes, in the real world, this would be the case. The hassle of having to update everyone’s outstanding balance just to ‘move some money around’ may seem like an impractical burden. However, just as multiplying a billion numbers in one second is fairly unrealistic for the average person to do, such a task is trivial for a computer.

So far, we have avoided diving too deeply into the technical details about how this system actually works. We have been able to explain, through a fairly straightforward analogy, how two people or businesses can perform financial transactions securely without needing to exchange any physical money—so long as they have a deposit backing it up. Unfortunately, trying to explain how multi-hop payments (payments forwarded through intermediaries) can be done securely, through an Old West analogy, is not quite so easy to do. Therefore, the following explanation will act only as a very rough approximation of how the multi-hop payment system actually works.

Let us return to the simple example of Bob wanting to pay Alice, with the General Store as an intermediary. What is needed, is a way to guarantee Bob and Alice that his funds were properly forwarded and credited to Alice. The way this is accomplished is by creating a temporary side contract between each party. First, Alice directly informs Bob of a secret; for the sake of this example, let’s say that it is a riddle question. Next, Bob creates a contract with the General Store and that contract includes the riddle as a dependent clause; the General Store can only keep the money he is holding onto for Alice if he can provide the answer to the riddle, but the General Store is unaware of the answer—Alice is the only person who can provide an answer to this riddle. When Alice attains the copy of the contract from the General store, she can redeem her riddle answer for the money. If there are multiple people in the chain to Alice, none of them will be able to obtain the money since none of them have the answer. Each person in the chain forwards the contract, with the riddle question as a dependent clause, until it reaches Alice in this example. Here is the sequence of events explaining this example:

Bob wants to pay Alice $10 Alice gives Bob a riddle directly. Bob discloses the riddle question to the General Store and asks the General Store to forward $10 to Alice. Now the General Store creates a side contract for $10 with Alice, providing the riddle question in the terms, which proves that he got the money from Bob because the only way he could know the riddle question is if he got it from Bob. Once Alice confirms that the payment was forwarded from Bob, she then gives the answer to the riddle to the General Store, which fulfils the contract terms. Now, everyone is settled up (to be clear, what actually happens with the Lighting Network, is that instead of a ‘riddle’ and an ‘answer’, there is a mathematical equation to be solved containing two components; one component serves as the ‘riddle question’ and the other serves as the confirmed mathematical result). Once everyone knows both the riddle and the answer, this proves that the money was properly forwarded along the chain. At this point, the side-contract can be discarded and the two parties simply adjust their normal balance.

The Lightning Network is a system for exchanging signed contracts, which entitles various entities access to previously-deposited funds, in a safe and secure way. The bitcoin network acts as the perfect Judge. The bitcoin network can validate any contract with absolute authority and veracity. These contracts essentially act as a mathematical equation to be solved, and the bitcoin network can rigorously and perfectly enforce the terms of any contract submitted to it.

This, in a nutshell, is the genius of the Lightning Network. It is an ambitious and audacious application of ‘smart contracts’; contracts which are not enforced by a real-world judge, but are instead enforced by the power of the bitcoin trust network and impossible-to-hack mathematics.

Avoiding the Old West analogy for a moment, here is a summary of what the Lightning Network actually ‘is’:

● The Lightning Network is an extension of the bitcoin network which uses time-locked, hashed smart contracts to safely exchange value.

● All Lightning Network transactions ARE bitcoin transactions. Admittedly, they are unconfirmed transactions. However, these are transactions which are dependent upon an already-existing and confirmed funding transaction that resides on the blockchain.

● By using smart contracts, Lightning Network ‘transactions’ are not transactions in the traditional sense. Participants are merely signing a contract representing an agreed-upon balance in an existing account. This can be done safely and securely. Not only that, but it also avoids having to publish every intervening transaction to the blockchain. This enhances privacy, security, and has a multiplier effect on the main bitcoin blockchain. It is important to avoid thinking about Lightning Network transactions as something separate from bitcoin transactions—they are not. They actually are bitcoin transactions, and the only thing the ‘network’ part of the term ‘Lightning Network’ does, is facilitate the mechanics of safely/securely signing and forwarding these bitcoin transactions among participants of the system.

There are some things that the Lightning Network does extremely well, and there are other areas that still have some rough edges to smooth out.

Things which the Lightning Network does well

● The Lighting Network is capable of supporting billions upon billions of transactions for free (or nearly free), since the only thing that is happening between parties, is the updating of a balance sheet between two individuals, and revision of signed contracts. It does, however, require that the main bitcoin network has a sufficient transaction capacity equal to the number of individuals and businesses who wish to open and close channels. Currently, the bitcoin network blocksize restriction limits the actual number of people capable of opening and closing channels, to only a few million. The bitcoin network itself will, naturally, need to grow larger in order to support the expected influx of active users over time; it will need to grow large enough to allow every user of the Lightning Network to regularly open and close payment channels.

● The Lighting Network enables the transfer of value in extremely tiny quantities. In the real world, moving around value equivalent to one one-hundredth of a penny would be both wildly impractical and cost prohibitive. But, over the Lightning Network, this is a trivial operation and is essentially free. You might wonder what good is such a miniscule exchange? The reality, is that in our ever more connected world, there not only are billions of humans interconnected via their mobile devices and the Internet, but soon, there will be billions upon billions of ‘things’ connected as well. The ability for billions of devices to exchange miniscule amounts of value, essentially for free, is going to transform our world in a multitude of ways. For example, what if you could pay a fraction of a penny each time you listen to a song, watch a video, or read an article on the Internet? In this way, you would be able to directly fund the artist behind that work and, in aggregate, all of those fractions of a penny can really add up (@see ‘Office Space’). In exchange for making these tiny payments, you could opt-out of obnoxious advertising without necessitating enrollment in some sort of ‘subscription’ service. You could pay for Wi-Fi service, or any other streaming service, ‘by the nanosecond’ if you wanted to. Simply pay for what you use, and it can all happen seamlessly over the Internet. Now, imagine that you are a musician who just created a new song. You might allow anyone to listen to your song for the low, low price of just one one-tenth of a penny per listen. Maybe, your song turns out to be a really great and popular song. People dig the hook, and it just so happens that a few hundred thousand people listen to the song a few times each, for a total of one million plays. In return, the artist would receive $1,000 for just that one song alone! With no middlemen and virtually no fees, it would all come into his payment channel one one-tenth of a penny at a time. And, who wouldn’t pay one one-hundredth of a penny to listen to a good song? As you can see, extremely high-frequency and low-value microtransactions enable a whole new way to pay for nearly everything on the Internet.

Potential concerns with the Lightning Network

Since all payments over the Lightning Network are based on a certain amount of value ‘on deposit’ with the Bitcoin blockchain, you run into ‘aliasing’ problems. If you have a channel open with $100 on deposit, but want to send $101 dollars, you simply cannot do so. First, you’d have to close that channel and open a new one with at least $101. Clearly, this can be a major inconvenience. This aliasing problem requires that you ‘guess’ how much money you will need at any given time, and lock those funds up for that timespan. On top of that, opening and closing a new channel is not instantaneous; it takes time and there are inherent delays built into it to resolve the settlement transaction securely.

When opening a channel, either party or both parties, can fund the initial deposit. Without doubt, there will be numerous businesses happy to open channels with customers. Those businesses will be willing to dedicate a certain amount of value to each person. What this means for the business, is that an enormous amount of capital will be ‘locked up’ in channels simply to accommodate the level of economic activity potentially needed by each participant. Since you cannot send value larger than what is available on an open channel, everyone needs to seriously consider overestimating the maximum amount that they will need for the time period that the channel is open. In turn, this will further increase the ‘locked up’ value and reduce overall liquidity across the network.

Anyone using the Lightning Network effectively has a ‘hot-wallet’, meaning their transactions are being signed by a piece of software connected to the Internet. Best practices in the industry today are to keep most bitcoin reserves in a multi-signature cold storage account which has never been accessed on the Internet, or to use a hardware wallet like the Trezor to do offline signing. However, if the Lightning Network becomes very popular and is used to transact a lot of value, this would become a lightning rod for hackers to attack users machines, in an attempt to compromise them such that they could get away with authorizing payments against their wishes. While the risk may be low, we know from history that any time someone runs software which is authorized to automatically sign transactions, they are at risk.

Probably one of the biggest open questions surrounding the Lightning Network, relates to legal concerns. Governments around the world have a large repertoire of rules and regulations governing financial networks. However, since the Lightning Network is fairly recent and has a very original idea, its difference to traditional transaction systems renders application of these laws difficult. That said, you can be absolutely certain that the State will attempt to apply old laws to this new invention and create a regulatory burden of nightmarish proportions. Even though no one on the Lightning Network technically ‘holds’ anyone else's funds, it is doubtful that will matter much to regulators. It is probably safe to say that any business which is providing a substantial amount of liquidity (by funding payment channels) or otherwise acting as the middleman for significant amounts of value transfer, will be treated as a money-services business and be required to be fully AML/KYC compliant.

Ideally, the Lightning Network, like the bitcoin network, would be fully decentralized. However, due to the ‘liquidity problem’ (meaning you have to open a channel with at least as much value as the maximum payment you will ever want to make), there is going to be a natural tendency for large businesses to centralize around providing that liquidity. In theory, every single Bob, Dave, or Alice could provide their own liquidity to others (by tying up their own personal bitcoin to open payment channels as a service). In practice, though, only larger organizations will be able to do this at scale.

In conclusion, the Lightning Network is an incredible invention. It shows the almost mind boggling power of smart contracts; contracts which have mathematical certainty and are executed with absolute precision and security by the bitcoin network. Over time, systems based on this technology will completely and utterly transform the entire financial system of the planet and enable the ‘internet of things’; a world containing billions of interconnected devices capable of directly exchanging value and performing tasks and duties for the services they provide.

The Lightning Network is not a competitor of the bitcoin network in any way. Rather, it is an extension of the network itself—one that enables new kinds of value transfer, backed up by the most powerful decentralized trust system in human history!

(About the Author : John W. Ratcliff is a Principal Engineer with NVIDIA Corporation, a long time veteran of the video game industry, and has a strong personal interest in bitcoin and related cryptocurrency technologies. Special thanks to Alffranco, an artist from Venezuela who did the illustrations for this article and was paid, whether he knew it or not, via bitcoin on fiverr. Proofreading was done by Indigo Skies, an immunology student in Canada, also paid in bitcoin via fiverr)

Views: 55,524