mirror of k0in.com     j@omegakoin.com

Every person has the right to safe money. Omegakoin hopes to be a safe internet money for many without such access. Nations have a moral obligation to allow such a currency if they cannot provide their own safe currency. Citizens should still support reasonable laws and taxes, but all deserve fair reliable money.

I am only one person with a simple vision that may never be accomplished. Creating a 'safe' money is quite involved but is pretty simple at its core. Bitcoin serves this role right now with some success, but lacks mechanisms for stable value, linked identity, fair trade and user governance.

Stable Value: A money whose value is wildly fluctuating is undependable.
Linked Identity: While anonymity is important, so is the ability to easily link yourself with your account. While not mandatory, attaching identity is useful on so many levels.
Fair Trade: Basically there needs to be an easy way to ensure liquidity and invest. This might entail a kind of built in stock market.
User Governance: Each user should have a say and be able to help elect those leading code changes.

Finally a safe money tries to be safe and legal. It attempts to improve trade, privacy and welath without causing harm. It has tools sensitive to all cultures, religions and nations.

Since such a currency or smart money does not exist and many are living without this fundamental need of a safe reliable money, it seems reasonable to try to build omegakoin or this vision. Other notes.


The next problem to focus on is how to make an internet smart money so easy to use, everyone wants to use it.

We need to make an open system. Sending data via internet is very simple. Banks and financial institutions work with processing companies to provide revolving credit to individuals. But a standard protocol could allow all types, be it circle, square, android, apple, visa, american express, asian smart-technology or blockchain. I believe that we owe a debt of gratitude for past payment processing and the invention of visa, but that bank and processing fees could be free minus is charged for lending credit and being trusted.

Until this happens we can work with large payment processing companies or create new technology and convince others to use it. It is best if blockchain tools are totally backwards compatible with current financial systems. Other notes.

Simple. It must be simple. For large or sensitive payments, typical blockchain tools allow you to verify how much you are truly paying. Otherwise, we can, for convenience, trust merchants and overseeing systems to handle everything. Payment can be made automatically through a smart radio device in our pocket, or in other ways.


Cryptocurrency

Let me introduce the first smart ledger or cryptocurrency. Bitcoin is basically an internet money that anyone can use to hold or transfer monetary value. It is simply an immutable ledger, a payment system anyone can access directly through a simple computer program or protocol.

Mainstreaming

Although there are many strategies for spreading such a cryptocurrency, I do not wish to discuss all my ideas, except to say that much effort will be required to mainstream koin. The key is to build it and let it evolve for itself.

Programming And Implementing

Creating koin technology will be somewhat difficult, programming-wise. But all the key ideas are there and most the needed cryptography has already been invented.

Laws or a lack thereof do not seem to be preventing the creation of koin.

Just as difficult is creating the physical infrastructure that must surround it. Much of this can grow on its own, like it has with bitcoin, but the ideas must be sold and spread.

It will take time for the koin network to get its system of governance up and running smoothly. If you build it they will come, I suppose.

Building Infrastructure

Anchor is the word I choose to use to refer to ways in which an electronic money connects with real world things.

Bitcoin rewards those that keep its network running by giving them newly minted coins. It like a big computer program that runs on thousands of computers, keeping track of everyone's money amounts. But as it is only a big public ledger, it is subject to market forces and monopolistic powers without any government or other intervention except for its evolution of code changes.

Some would say complete autonomy is good, but omega koin capitalizes on providing anchors or mechanisms whereby the online network can interact with real-world resources.

The only time Koin sends out a external request hoping for an answer, is when it probes or uses the bitcoin network. And it does this to help run its distributed currency auction and market, hopefully a minor operation whose main purpose is stabilizing koin value.

Koin governance allows private keys to be given to certain entities who simply verify identity for user accounts. This means they have the ability to label a public key as uniquely representing someone.

One aspect of the koin infrastructure is its distributed or certified commodity backing. This is done in local ways where people know or check on sources, or by certified companies.

Another ability of the koin network is to facilitate borrowing and lending. The reason this exists at all is to measure and reward those who promote liquidity by making their funds available rather than hoarding them. This is actually quite complicated, but it may allow for very simple lending and a healthier currency.

Security Model

The most proven security model of any cryptocurrency is that of Bitcoin. Nothing on earth has the same intricate 'proof of work' transaction history as Bitcoin. Koin may also end up having a lattice of computer work to shore up against blockchain recreation. More thoughts.

Despite this possibility, the koin technology papers explain how consensus is reached using a sort of voting process. Nodes vote and agree together on blocks using a somewhat deterministic process. Since they basically vote on what is the next block, these nodes should be identity-linked. In other words, to prevent an anonymous voting attack, unique but possibly protected user accounts are the basis of mining nodes. More thoughts on privacy.


Next Step

Here are some guidelines I'm thinking about, as someone who programming ability but little to no experience with Bitcoin code. I want most of koin to be built in 1000-2000 lines of code, even if a new language or sublanguage must be created. This combined with the actual cryptography, some of which may be new can make up the code base. I'm hoping for about 5000 lines of code. It should be tiny. That way anyone can read it.

All of outside code will include how to speak to other computers through networks and such, or how to store data and everything else. If a protocol is created, the code base can be written in its own language and call functions with clear standards but no exact code. I keep telling myself this is a silly idea, but the idea continues.

All numbers, text or formulas coming into the main code are strictly checked to see they follow protocol. Same happens as values leave. It does not matter for example how the list of node miners is kept, as long as it is, with data being available when needed. When code changes are recommended by koin leadersihp and user voting, it will apply to those 1600 lines or so of main code. (Versions may be saved on the blockchain, as a kind of history.)

The rest is up to experts in each language, whether it be C, Java, PHP, Basic, Python, Ruby, JavaScript, Pascal or Cobal. I expect there to be problems, errors made in some languages, but that failure will be restricted to a minority of miner nodes. The cryptography can be done in a similar way, but I expect that for speed purposes, it should be eventually migrated to a few languages purely.

Code Brainstorming

Really Rough Draft of initial ideas of how to do code. Sorry if it looks clumsy, it's just to jostle around the brain possible tasks to be done. Almost everything done is in response to a message of some type. Messages broadly mean transactions or information from another node or outside entity. Sometimes it specifically is human readable text. Creating this list of functions helps one to imagine how code may be divided. I call these the OnceUponATime functions, since they are all waiting for some trigger to launch and can work mostly independent from each other.


UponMessagePay 		//typical transaction

UponMessageVote		//like transaction but signed vote for occasional voting situation

UponMessageMsg		//human language

UponMessageWarn		//nodes telling merchant,node prob

UponMessageReq		//for code 1 //large explorer data 2

UponMessageBlock	//actual block info recievng

UponMessageMini		//info receivd when among 'chosen'

UponMessageGov		//so many but split to only 3 groups

UponMessageFlaw		//strange behavior of a node broadcast

UponMessageSug		//suggest change custom settings or other s

UponMessageArrv		//request if trans arrived //or maybe small block chain inqueries

UponMessageStatus	//request to get node status

UponMessageConf		//check confirmation level of anything 

UponMessageExt		//request node perform external purpose (smart to use separate comp)
Inspired by a non-loop paradigm found in iphone and other programming, it seems this makes sense for the main core code. The language lower-level can handle the loop and creating processes and all that… This needs to be done right but may be different, as long as it follows the protocols. There may be a better way, or eventually it can be written entirely in or migrated to a low language such as C++. But I like the idea of no one language/os having a majority, so to find a key flaw means outsmarting the pretty simple and straightforward high level code. (language within a language idea…)

A very nice messaging user interface could be part of the non-essential code for miners or users.

Most of these 'Upon Message' functions have an exact counterpart send function.


merchants/users:

UponMessageArrv - getArrivedStatus
UponMessageConf - getConfirmation
UponMessagePay - sendPayment

nodes:

SendNodeVote 	(similar to transaction, for 'miner' voting)
			
SendMessage	(human  can send messages, this is how communc with miners) 
SendPrvMessage	(more functionality maybe for miner exclusive or private messages)
SendWarning	(tell fellow nodes of suspicious behavior of node or maybe merchant/user)
SendRequest	(download from network - special dl nodes - the chain or signed codebase)
			Note - some nodes focus mostly on providing downlink large download
			All essential and most assisting code is documented/signed on blockchain
SendBlock		(selected miners/nodes send out block)
SendMini		(mini block may actually be very similar in size to block)
SendUserMsg	(send typical user human-message)
SendUserAcc	(send user account notes or data or response to action)
SendConfArrv	(send merchant/user confirmation of block or transaction arrival/existance)
SendGovMessage		(not sure if human readable message or otherwise all is same process)
SendGovProcess		(If one of the 7 or other chairs, etc - send out code changes, vote req etc) 
SendGovImportant	(Emergency channel for immediate limited temporary code change) 
SendReportFlaw		(maybe warning more for trans and this for nodes, or higher level)
SendSuggestion		(possibly process to improve network, all nodes comm data on speed etc)
			nodes work together to sharpen speed such as diff roles, acyclic network
SendStatus		(send settings/data/etc to nodes/ others working to improve network etc)
SendExternal	(limited set of approvd functionality to allow nodes do outside work)
			ask to do computing maybe or colaberating on outside purpose such as 
			related exchange or 3rd-party system w/ specfc protocols/ aprovd code
			—By external mean beyond normal blockchain, but included in the koin governance is 
			ability to give third-parties keys for confirming identity, running the 
			auction /exchange, doing backing, etc
SendTrueExternal	(not directly supporting koin system, probably not needing verified keys)
			But truly external to koin, may include a private exchange or merchant
 			activities.  This can be pushed off to another computer for safety reasons maybe