Swiscoin developed the an open source software project released under user license which gives you the power to run, modify, and copy the software and to distribute, at your option, modified copies of the software. The software is released in a transparent process that allows for independent verification of binaries and their corresponding source code.
Swistech Org develops the open source for crypto wallet users.
Open source is program whose source code is available for modification or enhancement by anyone.
"Source code" is the part of program that most computer users don't ever see; it's the code computer programmers can manipulate to change how a piece of software—a "program" or "application"—works. Programmers who have access to a computer program's source code can improve that program by adding features to it or fixing parts that don't always work correctly.
User can create their payment wallet by integrating the open source program for their crypto transactions site and serves their clients.
Swiscoin is developing its own wallet. Wallet encryption allows you to secure your wallet, so that you can view transactions and your account balance, but are required to enter your password before spending Swiscoins. This provides protection from wallet-stealing viruses and trojans as well as a sanity check before sending payments.
Swiscoin uses the Electro Digitization Mining algorithm
Block hashing algorithm
Swiscoin mining uses the hash cash proof of work function; the hash cash algorithm requires the following parameters: a service string, a nonce, and a counter. In Swiscoin the service string is encoded in the block header data structure, and includes a version field, the hash of the previous block, the root hash of the merkle tree of all transactions in the block, the current time, and the difficulty. Swiscoin stores the nonce in the extra Nonce field which is part of the coin base transaction, which is stored as the left most leaf node in the merkle tree (the coin base is the special first transaction in the block). The counter parameter is small at 32-bits so each time it wraps the extra Nonce field must be incremented (or otherwise changed) to avoid repeating work. The basics of the hash cash algorithm are quite easy to understand and it is described in more detail here. When mining Swiscoin, the hash cash algorithm repeatedly hashes the block header while incrementing the counter & extra Nonce fields. Incrementing the extra Nonce field entails re-computing the merkle tree, as the coin base transaction is the left most leaf node. The block is also occasionally updated as you are working on it.
A block header contains these fields:
Field
|
Purpose
|
Updated when...
|
Size (Bytes)
|
Version
|
Block version number
|
You upgrade the software and it specifies a new version
|
4
|
hashPrevBlock
|
256-bit hash of the previous block header
|
256-bit hash of the previous block header A new block comes in
|
32
|
hashMerkleRoot
|
256-bit hash based on all of the transactions in the block
|
A transaction is accepted
|
32
|
Time
|
Current timestamp as seconds since 1970-01-01T00:00 UTC
|
Every few seconds
|
4
|
Bits
|
Current target in compact format
|
The difficulty is adjusted
|
4
|
Nonce
|
32-bit number (starts at 0)
|
A hash is tried (increments)
|
4
|
The body of the block contains the transactions. These are hashed only indirectly through the Merkle root. Because transactions aren't hashed directly, hashing a block with 1 transaction takes exactly the same amount of effort as hashing a block with 10,000 transactions.
The compact format of target is a special kind of floating-point encoding using 3 bytes mantissa, the leading byte as exponent (where only the 5 lowest bits are used) and its base is 256. Most of these fields will be the same for all users. There might be some minor variation in the timestamps. The nonce will usually be different, but it increases in a strictly linear way. "Nonce" starts at 0 and is incremented for each hash. Whenever Nonce overflows (which it does frequently), the extra Nonce portion of the generation transaction is incremented, which changes the Merkle root.
Moreover, it is extremely unlikely for two people to have the same Merkle root because the first transaction in your block is a generation "sent" to one of your unique Swiscoin addresses. Since your block is different from everyone else's blocks, you are (nearly) guaranteed to produce different hashes. Every hash you calculate has the same chance of winning as every other hash calculated by the network.
Swiscoin uses: SCRYPT (Scrypt (Block_Header)) but you have to be careful about byte-order.