File Formats

From CloudCoin Wiki
Jump to: navigation, search

Structure of CloudCoins

Name RANGE DESCRIPTION
NN (Network Number) To start with must be 1 Could increase later if CloudCoins Split
SN (Serial Number) 1 through 16,777,215 The SN determines the denomination (1,5,25,100 or 250)
AN (Authenticity Numbers) GUID without hyphens (e.g. f451c86363da406cb23674b9e3987694) There are 25 of these
AOID ( Array Of Idiosyncratic Data ) Array of key/value pairs Optional. Used to make CloudCoins extensible.
POWN (Last Pown results) 25 symbols, u (unknown), p (pass), e (error) or f (fail) like 'pppppppfpppppppeppppppppp' Optional. Used to show the RAIDA status the last time the money was checked for Authenticity (may not be true)
Expiration Date An integer that represents the number of months after August 2016 (zero month) Optional. CloudCoins must be checked for Authenticity every two years because they are scavenged every two years for lost CloudCoins.(may not be true)

Denominations of CloudCoins

SN Start SN End Denomination
1 2,097,152 One
2,097,153 4,194,304 Five
4,194,305 6,291,456 Twenty Five
6,291,457 14,680,064 One Hundred
14,680,065 16,777,216 Two Hundred Fifty

JPEG File Format for CloudCoins

Jpegformat.jpg

CloudCoin JPEG File Naming Convention V 5.5.2017

Users may name the jpegs what every they like.

Uncirculated coins are as follows: Denomination "CloudCoin", NN, SN, a user tag and ".jpg" separated by dots.

APP0 Marker FFD8 FFE0 01C3 4A46494600 0101 01 0060 0060 1D 05 20 Bytes Long.

Byte Numbers Starting with Zero Bytes Name File Bytes Mandatory Hex Value Value varies?
0 & 1 2 SOI (Start of Image) Always the first bytes FF D8 No
2 & 3 2 Start of APP0 Marker The APP0 is Used to identify the file a a JPEG FIF file. This is the start of this marker FF E0 No
4 & 5 2 APP0 Length Shows the Length of the APP0 Marker Excluding the first 2 bytes. In CloudCoins, this Equals 16+ 435 16 is fixed APPO stuff and 435 is the CloudCoin. 01 c3 No
6 => 10 5 File identity Writes "JFIF" in ASCII, terminated by a null byte 4A 46 49 46 00 No
11 & 12 2 Version First byte for major version, second byte for minor version (01 02 for 1.02) 01 01 No
13 1 Density units 00 or 01 = pixels per inch. 02 = pixels per centimeter. 01 No
14 & 15 2 Xdensity ? 00 60 No
16 & 17 2 Ydensity ? 00 60 No
18 1 Thumbnail Horizontal Pixel Count CloudCoin data is in the thumbnail and is 29 pixels wide 1D No
19 1 Thumbnail Vertical Pixel Count CloudCoin data is in the thumbnail and is 5 pixels high 05 No
CloudCoin in Thumbnail: Each pixel holds three bytes. So 29 pixels by 5 pixels = 45 pixels. 45* 3 bytes each = 435 bytes for the entire CloudCoin.
20 => 419 400 ANs: 25 Authenticity Numbers 25 GUIDs without hyphens. The Jpeg thumbnail dimensions are 29 pixels * 5 pixels * 3 bytes each = 435 bytes. Each AN is 16 bytes and 25 x 16 = 400 bytes so there are 35 bytes left for other info (AOID, Has Comment, Health Status, Expiration Date, Network Number and Serial Number. Too Large to show Yes
420 => 435 16 AOID: Account / Owner ID Bytes can be used by the owner for their uses. Too Large to show Yes
436 =>448 13 POWN: Results of last pown attempt 0 (unknown), 1 (pass),2 (no Response), E (error) or F (fail) '. Hex 11111011001f11111111211e199 The last nibble can be ignorred Yes
449 1 HC: Has comments? Indicates if there are any other information in the comments section of the Jpeg that is used by applications. 00 = No, More than zero = Yes (Program should look in the comments section of JPEG for more owner information). There is room for 255 codes so if you need to put some data it could fit here. Yes
450 1 ED: Expiration Date Months from zero month (August 2016). Hex 18 = 24 months since zero or August 2018 Yes
451 1 NN: Network Number 1 Through 256 01 Yes
452, 453 & 454 3 SN: Serial Number sn in Hex 6 bytes FF FFFF = 16,777,215 FF FFFF Yes
Rest of JPEG Image. Size will vary

JSON File Format V 5.5.2017

CloudCoin JSON File Naming Convention:

Total Amount of CloudCoins in file, ".CloudCoin" , then a random number or use defined tab in case there are other stack/chests with the same amount of CloudCoins separated by dots. The extension could be Chest or stack.

Example: 12750.cloudcoin.mytag.stack

Stack files are for the public. Chest files are for founders uncirculated coins. 12750.cloudcoin.userTagHere.chest CloudCoins should be stored in folders that reflect their status. Or, if they are all kept in the same folder then If the stack is full of counterfeit CloudCoins then it may have a .counterfeit extension. If the stack is full of lost coins then it may have the .lost extension. If the stack has a .fracked extension, it is full of fracked coins. If the coins are enctypted using software, then it does not matter.

CloudCoin JSON File Naming Convention: Total Amount of CloudCoins in file, ".CloudCoin" , then a random number or use defined tab in case there are other stack/chests with the same amount of CloudCoins separated by dots. The extension could be Chest or stack. Example: 12750.cloudcoin.mytag.stack. Stack files are for the public. Chest files are for founders uncirculated coins. 12750.cloudcoin.userTagHere.chest If the stack is full of counterfeit CloudCoins then it may have a .counterfeit extension. If the stack is full of lost coins then it may have the .lost extension. If the stack has a .fracked extension, it is full of fracked coins.

Key Sample Value Notes
NN 1 Network Number (1-256)
SN 16,777,216 Serial Number (1-16,777,216)
ANs 2E2720222C231C1C2837292C30313434 Array of 25 ANs.
ED 9-2016 Expiration Date. Month and year separated with a hyphen.
POWN (Optional) ppfpppppppppppupppppeppp Last Health Status. Tracking the status of detection attempts. p = passed, f= failed, e=error, u = undetected, n = No response from RAIDA
AOID from_email=Sean@Worthington.com Array of key value pairs created by the user for the user. Ok to leave blank but at least add [].

Here is a sample JSON file with two CloudCoins in it:

{
	"cloudcoin": [{
		"nn": "1",
		"sn": "16777215",
		"an": ["6A415F1CC541353C9AA5CE6FEAFC15B3", "1F07C89ACEF44EFC936C3685EF013D32",
 "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",
 "6A415F1CC541353C9AA5CE6FEAFC15B3", 
                       "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",
 "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",
 "6A415F1CC541353C9AA5CE6FEAFC15B3", 
                       "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",
 "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",
 "6A415F1CC541353C9AA5CE6FEAFC15B3", 
                       "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",
 "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",
 "6A415F1CC541353C9AA5CE6FEAFC15B3", 
                       "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",
 "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",
 "6A415F1CC541353C9AA5CE6FEAFC15B3"],
		"ed": "9-2016",
                        "pown":"ppeppppppfppppppnpppupppp",
		"aoid": []
	}, {
		"nn": "1",
		"sn": "24589",
		"an": ["7A415F1CC541353C9AA5CE6FEAFC15B3", "1F07C89ACEF44EFC936C3685EF013D32",
 "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",

 "6A415F1CC541353C9AA5CE6FEAFC15B3", 
                       "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",

 "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",
 "6A415F1CC541353C9AA5CE6FEAFC15B3",

                       "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",
 "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",
 "6A415F1CC541353C9AA5CE6FEAFC15B3", 
                       "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",
 "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",
 "6A415F1CC541353C9AA5CE6FEAFC15B3", 
                       "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",
 "6A415F1CC541353C9AA5CE6FEAFC15B3", "6A415F1CC541353C9AA5CE6FEAFC15B3",
 "6A415F1CC541353C9AA5CE6FEAFC15B3"],
		"ed": "9-2016",
		"aoid": ["from_email=Sean@Worthington.com", "account=859562525630"]
	}]
}

AOID Standards

The AOID is a place that the owner of the CloudCoin can store data. This can be anything at all. But it is an array of strings. AOID used internally for applications. AOID can be ignored by apps and data should be stripped when importing. Here is a standard for internal user

Key Sample Value Explanation
fracked ppfpppppppppppupppppeppp Tracking the status of detection attempts. p = passed, f= failed, e=error, u = undetected
app_status Sample Value Statuses include "suspect", "fracked", "authentic", "counterfeit", "exported","lost"
from_email Sean@Worthington.com The email of the person who sent the money
from_name Sample Value Who gave it to you.
from_account 568545221474 Whos account it is for?
memo Can I write anything here? Yes you can
date_recieved 2016-09-15 5:30:20" Date the coin was recieved
date_sent 2016-09-15 5:30:20" Date you sent it to someone else
escrow_id 85521144 If the money is kept for escrow
fund Vacation What every pupose the money will be used for.

When is a CloudCoin Considered Powned?

Powned

  1. Powned means knowing 20 of 25 ANs
  2. To seize control of a CloudCoin you must know as few as 6 of the 25 authenticity numbers.
  3. To know that you own a CloudCoin, you must have exclusive knowledge of 20 out of 25 ANs.
  4. If during the detection process there are more than five fails then the coin must be treated as hostile
  5. If software accepts a coin that has more than five fails (as authentic), it is possible for the previous owner to seize it back.
  6. Therefore, if there are more than five fracks, the software must do one of two things:
    • Consider any coin with more than five fails as counterfeit and reject it.
    • Check the pown pattern to see if it has any of the four patters that could be used to seize control of the coin:
      1. UP_LEFT = "ff***f";
      2. UP_RIGHT = "ff***pf";
      3. DOWN_LEFT = "fp***ff";
      4. DOWN_RIGHT = "pf***ff";
      5. If one of the threat patterns is recognized then consider it Counterfeit. Or
      6. Fix the fracks and then detected it again until the number falls below five fails. Note, it is important to detect again in the slight chance the past owner is trying to fix fracked at the same time the new owner is.

Fracked

Fracked means that up to 19 of the ANs failed detection. If there are more than 5 fracks, the fracked coin is suspect because it maybe counterfeit, lost or, the coin could still be powned after frack fixing.

Counterfeit

Counterfeit means that a coin cannot be powned by a new owner even after fixing all the possible fracks.

Lost

Lost means that nobody is able to pown the coin any more.

Standard Money images

250 CloudCoin Note.jpg

Jpeg1002.jpg

100 CloudCoin Note with Ayn Rand.jpg

Jpeg25.jpg

Jpeg5.jpg

Jpeg1.jpg

Jpeg1-1.jpg

Mind Storage V 6.20.2017

CloudCoin are the first currency that can be stored in your mind. Here are the standards for create ANs based on what you know:

Mind storage provides maximum security the user may store the Serial Numbers of their CloudCoins on paper and then the ANs in their mind..

Requires two Pass-phrase.

Both are turned into Hex String.

Pass-phrase: rules:

  1. Cannot start with white space. Cannot end with white space. All all other codes are allowed. White space includes carriage returns, spaces, tabs, etc.
  2. Paraphrases cannot be the same.
  3. The two paraphrases combined must have a length of over 17 bytes.

Note: For better security, it is advised that Westerners should use 8 byte encoding. Others should use Unicode 16 byte encoding.

Examples:

First Pass-phrase:

We love CloudCoins!

Second Pass-phrase:

I store them in my mind.

Pass-phrase 1 converted to a Hexadecimal String:

5765206c6f766520436c6f7564436f696e7321

Pass-phrase 2 converted to a Hexadecimal String:

492073746f7265207468656d20696e206d79206d696e642e

The pass phrases are merged into a composite string:

Pass-phrase 1 becomes the odd indexes an pass-phrase 2 becomes the even indexes (note the first number is index 1):

Left overs from the longer string are added to the end (hyphen added for better visualization of the end)

54796250270367c466ff776266552200473466c866f5765d624046396ef260966de-6d696e642e

String is the repeated until there are 800 characters. Any extra characters are cut off:

54796250270367c466ff776266552200473466c866f5765d624046396ef260966de6d696e642e54796250270367c466ff77
6266552200473466c866f5765d624046396ef260966de6d696e642e54796250270367c466ff776266552200473466c866f5
765d624046396ef260966de6d696e642e54796250270367c466ff776266552200473466c866f5765d624046396ef260966d
e6d696e642e54796250270367c466ff776266552200473466c866f5765d624046396ef260966de6d696e642e54796250270
367c466ff776266552200473466c866f5765d624046396ef260966de6d696e642e54796250270367c466ff7762665522004
73466c866f5765d624046396ef260966de6d696e642e54796250270367c466ff776266552200473466c866f5765d6240463
76ef260966de6d696e642e54796250270367c466ff776266552200473466c866f5765d624046396ef260966de6d696e642e
54796250270367c466ff776266552200473466c866f5765d624046396ef260966de6d696e642e54796250270367c466ff77
62665522

The 800 characters are cut into 25 different PANs with a length of 32 characters each.

Each PAN is used during detection so that it becomes the new AN.

Schemes to generate passphrases.

There is one standard scheme to generate the two passphrases.

The standard calls for the user to enter a username, password and email address.

The first passphrase becomes the username and password concatenated: usernamepassword

The second passphrase becomes the email address.

Note that the username and email are made to go lowercase before they are used.