File Formats
Contents
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
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
- Powned means knowing 20 of 25 ANs
- To seize control of a CloudCoin you must know as few as 6 of the 25 authenticity numbers.
- To know that you own a CloudCoin, you must have exclusive knowledge of 20 out of 25 ANs.
- If during the detection process there are more than five fails then the coin must be treated as hostile
- If software accepts a coin that has more than five fails (as authentic), it is possible for the previous owner to seize it back.
- 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:
- UP_LEFT = "ff***f";
- UP_RIGHT = "ff***pf";
- DOWN_LEFT = "fp***ff";
- DOWN_RIGHT = "pf***ff";
- If one of the threat patterns is recognized then consider it Counterfeit. Or
- 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
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:
- Cannot start with white space. Cannot end with white space. All all other codes are allowed. White space includes carriage returns, spaces, tabs, etc.
- Paraphrases cannot be the same.
- 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.