This post will serve as both a technical document explaining the thought/logic architecture behind the @Hive.Loans application as well as outline the HIVE exclusive methodology used within the program allowing for the creation of a lending model which facilitate a completely risk free lending landscape in favour of those lending their HIVE capital out to other members of the community.
A Bit About the Author
Before we dive into what is likely to be a lengthy technical post outlining the Hive.Loans projects inner workings and the theory behind it I'll share a bit of background information about myself. @KLYE is a early thirties something self educated software engineer who started out in the crypto ecosystem around 2013. Heard about Bitcoin around $3 USD a piece and was certain that the friend informing me about this fraudulent sounding digital funny money was ingesting illicit substances.
Fast forward to BTC prices around $120 USD a piece and it was around this time that my personal focus shifted from doing tradesmen work in the security, welding and electrician guilds towards the digital frontier and it was at this point I began to seriosuly look into coding. Since a young age had dabbled in software engineering but never thought it viable until cryptocurrency opened the door towards developing applications centered around what is the cutting edge of FinSec. Crypto.
Enough trips down memory lane for now however... Lets get to it!
The Financial Request Aspect of this Proposal
This proposal is seeking payment of $42 HBD paid daily for a duration of 59 days in order to alleviate the hourly development cost of time spent building, testing and polishing @Hive.Loans functionality
At a rate of $42 HBD daily it could agreed upon (and verified through a program such as RescueTime) that a minimum of 3 dedicated development hours daily working solely on the @Hive.Loans codebase for the duration of 59 days between February 15th through to April 15th of this year would be funded. In addition to daily posts of RescueTime charts, a weekly project post focused on outlining where the development time was spent and what milestones were conquered would be written each Friday in order to keep the community in the loop on the state of the project for those not watching the git repository.
If all goes extremely well development wise within the next month we could start seeing some limited public alpha testing going on however this can not be promised at this time.
This proposal if paid out in full from start to finish comes out to a total of $2468.000 HBD dispensed out over this ~2 month period, which will fund at minimum 180 hours ( @ ~$13.50 / hour ) of dedicated development time, with actual dedicated development time realistically likely looking more along the lines of doubling or tripling that amount. Any coder out there knows a project is rarely "done" as things can always be tweaked, however here we're aiming for a stable v1.0.0
( a screenshot of the early Hive.Loans prototype login screen )
The Goal is that by the end of the successfully funded 2 month proposal period in which a great number of productive programming hours are spent refining the codebase, that the @Hive.Loans application will be a polished v1.0.0 worthy of launch with the source code shared open source with the community perhaps leading to a number of users not only reporting positive audits of the codebase but adding their own optimizations into the project or utilizing parts of it in their work.
The completed Hive.Loans v1.0.0 codebase goes into service and goes on to become a staple in the ecosystem, forwarding a sizeable percentage of it's future commissions earnings back towards the DHF in order to replenish the seed capital it was granted by the will of the HIVE stake holders.
The DHF funding (hopefully) received from this successful proposal offsets the cost deficit created through the hours of coding required to build an application of this undertaking, to the point where the work can be made completely public / open sourcing which unlocks a somewhat as of yet unimplemented methodology of automated lending and escrow services allowing developers on the HIVE platform in the future to access to the underlying architecture.
This is all done in hopes that future developers given access to new ways of designing application architecture are able to come up with even more exotic and innovative blockchain level applications.
In addition to helping support the development of the @Hive.Loans through the proposal
Complete Operational Overview
The write up below has been supplied to grant the reader with the theory used to come up with a remarkably innovative solution to an issue that has gone on as long as lending has occurred..
By the end of reading through this post the hope is that you're as excited as I am about having come to realize how potentially disruptive this new model of lending is and it's future implications.
The Age Old Lending Problems...
While some users are blessed financially, having great budgeting skills and bountiful passive resource streams that lead to them never having to bother seeking out a loan.. for the rest of us, more often than not, a time arises where you need a bit of extra capital to pay a surprise bill or to fix a mechanical breakdown. Finding a place or person to supply you with a loan can be a lot of work...
Hive.Loans fixes that problem by creating a community lending board that anyone with a HIVE account can access for free. If you need a loan and you've got HP in your account.. you can cover it.
( a screenshot from the early prototype showing a freshly created lending contract )
Now we move to the lending side of things, which to some may seem like the better position in this relationship to be in.. How does a prospective lender wishing to earn some profit on his HIVE holdings hope to ensure that the individual borrowing from them is going to return their funds in a timely matter? What security, if any, does a lender generally have against being scammed out of the hard earned capital they're lending out? When some user borrows crypto from you then turns around and decides to run off, not paying the outstanding balance.. What then? As you can see neither the borrower above nor the lender here has it great when it comes to "classical" crypto lending.
Hive.Loans fixes these problems as well. By providing a secure 3rd party to act as a lending contract broker, loan auto payment scheduler and collateral escrow agent all of the stress and grunt work of traditional lending is replaced by simply creating lending contracts and having the payments automatically forwarded into your account. The Hive.Loans service does all the collecting for you with zero input or attention required. No risk set and forget lending? Sign me up immediately.
The Theory And Practice
The Hive.Loans application leverages a number of the unique software architecture design aspects of the HIVE blockchain in order to create a lender friendly landscape completely free of the hassle of finding reputable borrowers, haggling over pricing or having to endure the stress of knowingly increasing your risk exposure all while potentially losing your capital trying to get that few percent extra gain by having a borrower screw you on a loan repayment.
The way this all works boils down to one of the fundamental software security architecture choices implemented on HIVE. Each account or address has an array of 4 different Scope Keys, each allowing certain levels of privilege or functionality to be performed by the account they belong to. These Scope Keys come in the following flavours of "posting", "active", "owner" and "memo". The "posting" key being used to perform posting functions, the "active" key pertaining to operations dealing with transfers and other account functions, the "owner" key is the highest level of the scoped keys capable of being used to generate the keys below it and finally the "memo" key which is sometimes used to encrypt and decrypt messages send in the transfer operations memo field.
On HIVE it's also possible to change these Scope Keys to newly generated values in order to effectively transfer ownership of various privilege's/functionalities of an account. It is using the above principals and the supporting functionalities built into the HIVE blockchain that we're able to create conditions where it's possible for a borrower to accept a loan contract using their Hive Power and account as collateral while exposing the lender to no risk of loss or malicious action from the borrower during the course of the lending contract.
( a screencap from the early working prototype showing the a deposit page )
Borrowers, being the ones who in the "classic" lending model are the party bringing potentially unknown or unfavourable outcomes to the result of a lending agreement are the ones who must decide to put themselves in a situation where they have no possible means of generating unfavourable outcomes in a lending contract. This is achieved on the Hive.Loans service by having the borrower relinquish their account ownership to the @hive.loans custodial account keeper prior to receiving the capital of an agreed upon lending contract.
Before the @Hive.Loans service transfers the loaned HIVE to the borrower it will initiate a powerdown of the borrowers account with the recipient being the @hive.loans account, however, before initiating the powerdown of the borrowers account to ensure repayments to the lender the @Hive.Loans service will generate a new complete set of Scope Keys for the borrowers account, completely taking control & ownership of it and thereby ensuring the user borrowing HIVE has no possible means of maliciously attempting to access account functions in an attempt to change powerdown routes or access other unwanted operations that could produce unwanted outcomes for the lending contract.
To finish initializing the lending contract the borrower is sent copies of the new "posting" and "active" Scope Private Keys to be able to still blog and transfer funds around on their account normally. On top of the ownership of the borrowers account being transferred over to the @hive.loans custodial account manager for the duration of the lending contract the borrowers account is added to a watchlist of accounts that are real-time monitored for any potentially malicious operations or functions formed with malintent.
In the event where a possible or confirmed threat to the scheduling of the repayments is detected the Scope Keys pairs given to the borrower will be replaced with new keys effectively locking them out of their account entirely allowing the repayments to continue un-interrupted. In addition to the account lock out a substantial contract tampering fee (percentage undetermined) will be charged to the borrower which will be added on to the outstanding balance of the lending contract to be paid out from the borrowers remaining Hive Power.
When the lending contract is completed with no outstanding fee all Scope Keys will be returned to the borrower and they will be once again in possession of their account.
Note: prior to being allowed to accept lending contracts the borrower must set their recovery account to one specified in the whitelist on Hive.Loans website. This is to ensure that borrowers cannot circumvent the transfer of ownership via key replacement by initiating an account recovery through their recovery chaparone account. The Hive.Loans site will provide tools for changing recovery account as well as an automated account recovery tool to the public for free as well as free to use HIVE escrow interfaces. All of these will be found under the "Tools" section on Hive.Loans.
The whole process of lender creating a lending contract, borrower accepting lending contract, borrower relinquishing account ownership via keys, the service automatically initiating powerdown to the hive.loans service to repay lender, supplying the borrower with access to the new posting and active scope keys, adding borrower to watchlist to ensure no tampering of loan contract then returning the borrowers account ownership via supplying all Scope Keys may seem like a somewhat over complicated and perhaps daunting set of tasks.. However this is the absolute basics of what is necessary in order to create conditions in which the lender takes on zero risk lending out their capital while still being able to make a healthy percentage on their capital by supplying liquidity in the form of lending contracts to users who'd rather have their HIVE liquid now instead of waiting for powerdowns.
For those of you struck with literacy impotence upon gazing at that wall of text above a condensed summary of the basic logic and steps performed to ensure the Hive.Loans service protects lenders:
- Lender creates a lending contract specifying: Amount, Duration, Interest Rate
- Borrower with sufficient Hive Power collateral accepts the lending contract
- Borrower provides his master key / owner key to Hive.Loans using encrypted channels
- Hive.Loans verifies Borrowers keys, generates new keys and replaces old keys, taking ownership of borrowers account and begins a powerdown with Hive.Loans as receiving account
- Hive.Loans provides the borrower with copies of the new "posting" and "active" scope keys so they can continue to post and use their account somewhat normally
- Borrower account is added to real-time account monitoring list to detect any attempt at dishonouring or tampering with the lending contract repayment schedule
- Hive.Loans routes powerdown payouts into lenders Hive.Loans account as payments arrive
- When lending contract outstanding balance is completely paid off Hive.Loans returns borrowers keys and thus account ownership. Contract completed and both parties are whole.
The summarization above is missing a few more detailed nuances that can be found in the wall of text preluding this section but for the most part those 8 steps above are the processes taken in order to facilitate a risk free environment for those lending out HIVE in lending contracts.
The way the service functions is certainly neat, but in the next section we'll start to really open up the impeding paradigm shift on the horizon for the HIVE community and the network as a whole.
Why "Account as Collateral" on HIVE is Actually HUGE!
( a screenshot from the early prototype showing the borrowers page that will list available lending contracts )
While the term "Account as Collateral" might just come off to some as a half-baked attempt at creating the next killer crypto buzz word the actual function behind that term is where the truly innovative possibilities start coming into play. The Hive.Loans service and it's introduction of the accounts as collateral lending model now opens up new abilities on a blockchain level.
Let Me Introduce You to a New, Sexier HIVE Experience
Want to capitalize on the latest HIVE pump? Liquidate your account into liquid HIVE by agreeing to a lending contract, sell the HIVE on the market, then buy back the same amount of HIVE when the price drops and go repay your loan.. BAM, Profits. By having a tool available to help users capitalize on situations where a sudden burst of liquidity yields great likelyhoods of being profitable Hive.Loans should have everyone covered. With the option to pay off your contracts in full at any time a whole new set of possibilities become fully feasible that weren't even a thought prior.
Say you have a few hundred thousand HIVE liquid laying around and you don't want to power them up and lose the mobility of liquid HIVE? Go make a bunch of week long 1000 HIVE lending contracts at a 30% interest rate and supply liquidity to folks that might be grabbing a few lending contracts in order to perform an expedited move of powered up HIVE from one account to another, way faster than conventionally possible, all thanks to being able to borrow against their powered up HIVE.
A realm of possibilities open up and with it new strategies become feasible for the entire community. When you allow users to leverage their accounts as valid, secured collateral and allow large stakeholders to utilize their liquid HIVE to earn profit by providing access to HIVE on user populated free market inspired lending platform such as Hive.Loans.
It makes very little sense not to support the development of a utility that we honestly probably should have had years ago. Quite confident that when funded this service will be up and operation fully by the end of the proposal duration although in all reality we could likely have a working proof of concept running in some semblance of semi private alpha testing before the end of the month.
The project in it's current form is capable only of the most basic of lending contract creation and management and is still lacking necessary features to bring it into the public test realm.
The back end technologies being stack utilized for data handling are Sequelize ORM based and the application and webserver are both written in NodeJS with possible IPFS hosting in the future.
By best estimation without decent backing and financial support injected by the community via this proposal being granted in full, to get this project to a state ready for public pre-launch trials could take 3 to 6 months. Without a development budget I need to spend a lot of my time seeking out paid work and doing coding contracts here and there on the side to monetize the time in front of PC..
However when this proposal is funded it will give me enough of a development budget to make the completion of v1.0.0 of Hive.Loans my main development focus for the next 67 days or until the community is happy with the release. Features left to finish implementing or add are as follows:
- account recovery
- borrower key store management automation
- various user interface statistic display edits
- public escrow server
- user stats and gamification
- manual payment contract completion handler
While the proposal payout doesn't officially start until the 15th of this month the plan is to get the account recovery and keys storage handling implementations finished and tested. From there the plan has me pivoting over to working on converting the existing one to one contract matcher model implementation into a one to many allowed model. This will allow for an increase in the number of active lending contracts possible on HIVE at any point in time by orders of magnitudes more than the concurrent contracts theoretical limit at the moment.
When This Proposal is Funded
- Hive.Loans code will be 100% open sourced and available for anyone to fork or clone
( get all of the technology & magic, the moment it's funded, without the hours of R&D mixed with endless debugging )
- Everyone supporting the proposal at Funding gets upgrade to 'founder' rank on Hive.Loans
( -50% off fees site wide forever, cool logo & color in chat, username on special page on site, not available elsewhere / ever again )
- A recurring monthly donation of 25% the sites revenue from contract fees & tamper fines to DHF
(a "pay it forwards" of sorts, in hopes new future projects get funded in part by revenue generated from this one being funded)
- The whole HIVE ecosystem will get accelerated development of a really innovative service
( the examples above are only a fraction of the possibilities brought fourth by the community having access to this power)
Vote KLYE for Witness, Every Single Vote Helps, Thanks for the Support!
Need to get in Contact with KLYE?
Join the Official #KLYE Discord Server Today!
Looking for an Affordable, Secure & Reliable Server Host for Your Witness Server or Other Web Related Projects? Check out Privex.io!