Author

Topic: [SKY] Skycoin Launch Announcement - page 125. (Read 381579 times)

hero member
Activity: 770
Merit: 500
January 21, 2015, 10:38:51 AM
Great to be following your progress.

Please make sure you have Windows and Linux wallets as well as source before you start the IPO.
YES, we need the source before IPO.
legendary
Activity: 1386
Merit: 1000
January 21, 2015, 03:56:54 AM
Great to be following your progress.

Please make sure you have Windows and Linux wallets as well as source before you start the IPO.
hero member
Activity: 498
Merit: 500
January 20, 2015, 08:54:58 PM
Pre-IPO Update:

Here is todo list. Help appreciated. https://piratepad.ca/p/skycoin_todo

We will try to write more todo lists.



There is a major problem. All of the coins are in the genesis address and I cannot spend them for an unknown reason. The output is not being found. I working on this.
- the unit tests, test for this and the genesis spend test passes and the later spends work. This should not be occuring.
- the problem may be in the wallet code I changed yesterday
- More functions are being added to troubleshoot. The whole blockchain explorer can run inside of the local webclient if enough API functions are added.
- The balance function may have broken.

The software is evolving and becoming smaller, simpler and more elegant. At great cost of suffering and refactoring. I tried to make very large changes and refactoring was too frustrating. Now I am making small incisions and making sure it compiles and runs. This avoids being stuck in an impossible refactoring situation for weeks. However, the process of refactoring is now several hundred small changes.

The modules are becoming more single purpose and the dependencies they import are being minimized. Daemon is at the top level, but Visor will eventually be at top level and Visor will pull in the networking library (Visor becomes a Skywire application, with Skywire replacing Daemon).

This requires moving
- almost everything out of Daemon not related to networking
- severing the Daemon -> Gui -> Daemon -> Visor -> Wallet call chain and having Gui access wallet directly with Gui -> Wallet
- removing wallet dependencies from Daemon and eventually from Skywire
- moving the JSON RPC server from Daemon to Visor
- moving balance checking and spending functions to the /src/gui or maybe /src/wallet.
- Visor will only export a thin client API for querying address outputs and injecting transactions and then the API will build on this
- Javascript may stop us from running the visor API on another port and then querying it from the GUI if the gui server is running on separate port because of javascript cross scripting. We may need to have a hook in or export the visor web-server to

Then there are several other improvements that can be done
- improvements to block storage (a slotted structure that accommodates the outer wrapper)
- a dedicated module that handles block storage and allows you to get blocks by header hash (blockdb?)
- a blockchain explorer and history module that interfaces with the block storage module
hero member
Activity: 770
Merit: 500
January 20, 2015, 08:44:37 PM
Let me be the first to post an address here  Grin

23sw5syv2STbTYaygWRrsmqNnWfhebYXSKi
26Gf9pKD194PUzeuHHGXsnNRtqGfbgdD6w3
X6sV7GNPy4bFfSNcWqCVmdK8pFXREi4Nsj
7Srj8JaZQeyaEgEQ7dQT1SaksJCpyf2Dgz
2Xx2xHB6KL4hdsXJmwcXRkVrZksGFNw6DQS

Can I have some mock coins ?
I am posting this here since the cryptocat channel is silent ...
should we post the address here?
not be forbidden?
jr. member
Activity: 44
Merit: 13
January 20, 2015, 07:40:53 PM
My address is :

3LDSoCqJegCiQ6ajPVHokHdzw1vWHc7Yvr
afuVH3bhjnjnu3zywCTsrVV5Dtg928QxFb
2SdVJeJdarx7cxkeyenPtZAcG4HF3rGSA7C
D3VgbUcS8YYBZZuAqEzBB4Lu4RmEuS8yBg
7iotbfpdZUH2GsSZVE3ofp7uhwAG8sikcf


When Can I test?
hero member
Activity: 637
Merit: 500
January 20, 2015, 10:46:31 AM
Let me be the first to post an address here  Grin

23sw5syv2STbTYaygWRrsmqNnWfhebYXSKi
26Gf9pKD194PUzeuHHGXsnNRtqGfbgdD6w3
X6sV7GNPy4bFfSNcWqCVmdK8pFXREi4Nsj
7Srj8JaZQeyaEgEQ7dQT1SaksJCpyf2Dgz
2Xx2xHB6KL4hdsXJmwcXRkVrZksGFNw6DQS

Can I have some mock coins ?
I am posting this here since the cryptocat channel is silent ...
hero member
Activity: 742
Merit: 500
January 20, 2015, 10:07:55 AM
thank you for offering the IPO,
I will look carefully before to invest.
hero member
Activity: 980
Merit: 1001
January 20, 2015, 02:44:03 AM
So If someone wants to take part in the IPO they'll have to follow these https://piratepad.ca/p/skycoin to run a node/create an address and receive their coins ?
Any estimates about price or is the price following those instructions ? Smiley
hero member
Activity: 498
Merit: 500
January 19, 2015, 11:47:11 PM
Is there a program that lets people on windows open up an emulated linux environment? We could cross compile a thin client and cross compile the full Skycoin node binary.

Depends on what you need. If you need a fully working Linux on Windows, VMWare or Virtualbox or QEMU can run full GNU/Linux distros on a virtual machine.

If you just want a cross-compile environment then Minimalist GNU for Windows may be what you're looking for.

Thanks. We have cross compilation scripts. We should be able to compile for OSX, Linux and Windows from linux.

We will have support for this eventually. I think we still have a cgo dependency
- gobuild.io

Pre-IPO Update

We had a productive day yesterday. Some people were able to get builds working immediately. Other people had problems with golang and path issues we are working through.

We launched the blockchain after a few hours of work. Fixed half a dozen bugs.
- several changes to build script
- updated gvm curl build flags
- updated to go1.4
- fixed bug with genesis block timestamp not accepting configuration setting
- documentation here: https://piratepad.ca/p/skycoin
- improved transaction malleability (more on this later)
- fixed fprintf formatting bug in wallet names

Now
- I am refactoring /src/gui
- the wallet format on disc is JSON. This avoids the dependency issues in Bitcoin's wallet storage format. However, it is not pretty printing the JSON, so fixing that.
- adding function for querying outputs for arbitrary addresses
- /src/gui calls to /src/daemon which calls to /src/visor for wallet operations, which calls to /src/wallet. I am refactoring so that /src/gui calls to /src/wallet directly. This will remove 1,500 lines of code without reducing functionality. This is something I have been trying to do for months.
- then I will call in the GUI/web wallet dev to update the wallet HTML/javascript/angular.js
- then test coins will be transacting across the network

Then we will live code the trading bot, test it with Bitcoin. Then start trading for real!

Skycoin: Transaction Malleability

A crypt-coin does two things
- check balance
- send

So as an application, a coin is very boring by itself.
- Ethereum tries to make it more exciting by adding new features and infrastructure.
- Dogecoin tries to make it more exciting through marketing, memes and emphasis on the user community
- Ripple tries to be something that is optimized to be purchased and controlled by Visa (all the consensus nodes controlled by banks and so on)
- BitShares X (Bytemaster) adds new types of assets and asset pegs, creating USD and gold equivalents which are collateralized by Bitcoin
- StoreJ adds a service offering to drive capital inflows into the coin

Skycoin has combinations of these
- a service offering
- an application infrastructure and set of libraries. Ethereum is at one extreme of putting everything inside of the blockchain (a full turing complete language on the ledger). Skycoin is at that other extreme of putting nothing in the blockchain except coins and transactions (pushing contracts onto personal blockchain and off the main ledger).

More fundamental, the majority of the work and design in Skycoin so far has been on the extremely boring fundamentals of
- check balance
- send

This may seem trivial but it is actually done poor by every existing coin
- Bitcoin's default client is unusable. People have coins stolen daily because they are forced to use insecure web-wallets over usability concerns.
- Bitcoin is not easy to understand and people often lose coins because of differences between what it does and what they think it does (such as losing coins when loading a wallet from backup after 200 transactions).
- Bitcoin's long term survival is not a matter of mathematics, but a matter of social institutions and the honesty of a small number of mining pools.
- Mining pools selling off 500k/day of Bitcoin are pushing the price down and this might not good for the long term.
- There are severe issues in Bitcoin that cannot be fixed. Only a small number of experts care about these edge cases but they become important in a crisis.

The inner details of Skycoin's blockchain design and it differs from Bitcoin only interest a very small number of developers. The improvements Skycoin makes in these areas are not visible, like improvements to the wallet GUI. They only become apparent or important in a crisis.

Transactions:

Overview of Skycoin/Bitcoin. Most people do not understand what a "transaction" is in Bitcoin.
- There are unspent outputs. they contain coins.
- A transaction consumes outputs
- A transaction produces new outputs

You must spend a whole output. If there are 10 coins, the whole output is consumed. You cannot partially spend the output. So to send 5 coins to someone, you send them 5 coins and send 5 coins back to yourself.

- you have 5 coins in an output and want to send 2 coins to someone.
- You create a transaction that spends the output, creating two new outputs
- one of the outputs sends 3 coins back to yourself (change)
- one of the outputs sends 2 coins to the recipient

- Outputs are tied to addresses.
- To authorize the spending of an output, you need the secret key for the address the output is tied to.
- You dont "own" Bitcoin in the same way you own gold (by possessing it). Instead of "owning" 10 bitcoin, someone "knows 10 bitcoin".
- They know the secret that allows them to authorize transactions with the Bitcoin in those addresses.  
- "Ownership" of bitcoin is about "knowing" rather than "controlling".
- The Bitcoin do not exist on your computer, but only the secret key needed to authorize valid transactions from an address.
- The balance of the address is the number of coins in "unspent outputs" for that address

Outputs are named by hashes. In Bitcoin a transaction might be identified as
590f7f552aedb219ff814331201a97c3467b08d590016991c4d31dfdcd4b88ce

The transaction may have three outputs.
590f7f552aedb219ff814331201a97c3467b08d590016991c4d31dfdcd4b88ce:0
590f7f552aedb219ff814331201a97c3467b08d590016991c4d31dfdcd4b88ce:1
590f7f552aedb219ff814331201a97c3467b08d590016991c4d31dfdcd4b88ce:2

In Skycoin, there is an explicit output set. Outputs are actual data objects and part of the blockchain "state". Transactions are functions that act upon the blockchain state. Transactions consume outputs in the state and create new outputs.

Malleability

Malleability means that someone can take a transaction and modify it, so that it is still valid but the hash is changed.
- in Bitcoin, the output is named by the transaction hash
- in Bitcoin, anyone can take a transaction and modify it, so that it is still valid but has a different hash. Even if they do not know the secret keys for any address for any of the inputs used in the transaction. This is non-intuitive and subtle but has implications in a crisis, such as a blockchain fork.

If there is a chain of transactions
T1
T2
T3
And each transaction spends, outputs created by an earlier transaction. Then if the hash of T2 is modified, transaction T3 becomes invalid. T3 is trying to spend an output that does not exist. This only becomes a problem in a blockchain fork or 51% attack scenario.

There are three levels transaction malleability
- anyone can modify anyone else's transaction output hashes, without being a party to the transaction. This is the level Bitcoin is at.
- any party to the transaction can modify the output hashes. At least one private key for an output address spent in the transaction is required.
- The transaction outputs are mutable. A new transaction can be created, but the outputs cannot be changed by anyone. This is level enforced by Skycoin.

In the event of a major attack or blockchain fork on Bitcoin
- anyone can modify anyone else's bitcoin transactions when copying them to the fork of the chain. This will invalidate swaths of later transactions, which depend on the hashes of the now modified transactions. The scope for damages is unlimited and everyone performing transactions over the interval of the attack, will have unpredictable coin balances after the attack.

Effect of Signature Malleability on Loss Ratio in Crisis Scenario

A transaction invalidation attack, is any attack where a previously executed transaction is revocated and some of the outputs spend by the transaction are spent into different outputs. This only happens during blockchain reorgs, forks or other crisis scenarios.

In Skycoin
- if the chain forks or an attack occurs (which should be impossible, but may occur anyways), then your transactions can always be copied from the old chain and executed on the new chain and the resulting balances will always be the same, as long as certain conditions are met.
- Only chains of transactions that involve a malicious party, who specifically and intentionally spends a particular output to a different address on fork A than occurred on fork B affect final balances. If you did not transact with the malicious party and your outputs did not originate through a transaction chain involving the malicious party, your balances cannot be affected. The private key for spending at-least one input for a transaction is required to effect an attack on a particular transaction (which may affect later transactions).
- A user can only perform this attack on transactions involving outputs whose addresses they control the private key for
- This means that a 51% attack or fork has limited scope for damages for most users and especially users who take precautions. The damages in Skycoin are limited and controllable, where as they are potentially unlimited in Bitcoin (potentially all transactions are affected as anyone can change the output hashes when copying the transactions between the blockchains). Services such as exchanges, which are performing high volume transactions with large numbers of users will be hit the hardest by this crisis scenario.
- If there are weekly checkpoints that are immutable, then an absolute guarantee against loss is possible. Example: A large transaction is received and is not moved until the next checkpoint. No attack is possible that would now redirect that balance to a different address or invalidate the transaction creating it.
- Skycoin loss ratios are computable. It is possible to to calculate the worse case loss of coins in the event of a blockchain invalidation or fork, from a transaction invalidation.
- Segregation of funds can reduce loss ratios. Funds received from random users at high risk malicious behavior can be segregated from transactions and funds of trusted counterparties (banks, exchanges, peers).
- Funds from each user can be segregated. If thousands of users have deposits in an exchange and receive addresses are segregated, then loss of funds from a transaction invalidation attack, may be recovered from individual users whose transaction chains were affected (participants in the attack), rather than from the whole pool of users.
- If an exchange mixes outputs from 1000 users and the private keys of 5 users are involved in the attack, then the impact of transaction invalidation is greater if the outputs received from each user are mixed, rather than segregated by user.
- The beneficiaries of the attack can be clearly identified and are district from honest users.
- The malicious branch of the chain tree where outputs have been retroactively modified can often be clearly identified as an attempt at an attack. Especially when the chain contains a large number of coinjoin transactions.
- The "quality" and "risk" of each received coin output can be calculated. An output generated from outputs, which are older or past the last immutability checkpoint, have significantly lower risk of invalidation in an attack than outputs which are dependent on large chains of transactions since the last checkpoint. Exchanges may require longer holding periods before releasing full balance for coins at higher risk.

This is extremely important. In a crisis, the number of users affected is limited
- users which did not transaction during the crisis did not have their balances affected
- only a minority of users are affected or have changed balances, limiting scope for damage
- the impact on the price of the coin is limited
- controllable risk is better than uncontrollable risk

Survival of Crisis

Transaction malleability has effects

In Skycoin, if an attack succeeds at introducing a fork then there are several remedies
- the differing outputs between the chains will be limited
- cold store will be unaffected
- personal transactions between people or companies not involved in the attack will be unaffected
- high volume, automated transaction processors will be affected the most
- dont choose between chains. Run both chains. A transaction is only considered executed if its in both chains
- coins in outputs that differ between the chains should be frozen. Blocks that have transactions which attempt to spend contentious outputs should be rejected in the consensus process  
- have users figure out which branch is the attack branch and then prune it. This has to be done by hand and through human choice, instead of algorithm.
- we may not have to resolve forks algorithmic at all
- the nodes involved in the attack need to be identified and flagged. People should prune connections to these nodes from their subscriptions

There are several steps to prevent it from getting this far, such as local timestamps, distributed timestamps.

In Bitcoin, if there is a fork
- every transaction is up for revocation because of multiple forms of malleability. The victims will be random and potentially every transaction on the time interval of the attack.
- cold store will be unaffected
- personal transactions between people or companies will be affected if they spend the outputs (transaction malleability)
- high volume, automated transaction processors will be affected the most
- Bitcoin price will drop as people panic sell
- Mining difficulty will drop as price drops as miners turn off equipment
- A person who rents, already owns or acquires at firesale prices 20% of mining capacity can now 51% attack the network repeatedly if hash rate drops to 20%
- a 51% attack over less than 8 blocks from the head, can be made irrelevant if clients are patched to not make transactions that spend outputs that do not have atleast 8 confirmations.
- an attack spanning over a day or more of transactions would cause problems for high volume services.
- Bitcoin would be patched and probably survive, but volatility would be increased.

Bitcoin has a simple failure case, but when it does fail it is very difficult to "fix". There is not an effective response or remedy to an attack and there is only limited scope for preventing similar future attacks.
hero member
Activity: 770
Merit: 500
January 19, 2015, 08:40:08 PM
IPO Update

We are starting a mock IPO right now. To verify that everything works and make sure everyone can get it working.
- not everything is ready, so we are live coding it as we go
- we distribute a bunch of fake coins, so people can do transactions, make sure everything works
- so people can can learn to do transactions by hand and as tutorial on public key cryptography
- will make sure bitcoin functions work and live code trading bot
- blockchain will be reset (all Skycoins coins wiped out), then can start real IPO

The real IPO will be like "N coins per hour". It wont be a huge one shot IPO, but will drag on for weeks, with number of new coins decreasing over time. There might be a large block of coins for the early people near the start.

There are still changes being made to the blockchain that will break binary compatibility. We found a new merkle tree construction that allows proof that a particular block is part of a chain of blocks, using log(N) block headers containing the root hash of the merkle tree. Its not ready yetWe want want to add this later, but it will change the hash of the blockheaders and so require blockchain reset.

Skycoin transaction and output hashes are designed to be independent of the blockchain they are embedded in. This means that we can export the transactions from one chain as json, then import them to the new chain. So all the balances will be preserved if we need to fix a bug that would change blockheader hashes. However, we do not have a mechanism in place yet to notify people to update their clients.

IPO checklist

Get pastebin, piratepad, google docs or notes ready to help other people
We are in cryptocat channel "Skycoin" right now

We wanted to use TOX group chat, but it is not ready. The usability is horrible.
We tried using freenode IRC, but frustrating because does not work with TOR and other issues people had.
Cryptocat works, but there is no software for running a bot. So we cant have a trading bot in cryptocat
We are moving on to XMPP

We are starting the blockchain, then will distribute a bunch of fake coins for testing. Then once everyone has problems sorted out, will reset blockchain and do it again for real.

- you need to be able to generate a skycoin public key, so we can send you coins
- we need a little webapp that runs locally, that lets you generate keys, addresses, encrypt messages. We will live code this.
- get it working in the command line, then work way up to web app in golang
- we need to make sure the JSON interface has the functions required for IPO and that they are working.
- someone should live code a JSON thin client, that lets you get outputs, create/sign transactions and inject them, using a public Skycoin node someone else is running. This just requires importing Skycoin Cipher module, then opening TCP connection to the node. Then you can query outputs for an address, inject transactions.

Is there a program that lets people on windows open up an emulated linux environment? We could cross compile a thin client and cross compile the full Skycoin node binary.

In this mock IPO you will learn to create skycoin public keys and addresses by hand, query address outputs by hand and construct transactions manually, sign them and inject them into network.

cryptocat channel "Skycoin" right now
any detail guide to do the IPO?
sr. member
Activity: 490
Merit: 250
I don't really come from outer space.
January 18, 2015, 03:47:33 PM
Is there a program that lets people on windows open up an emulated linux environment? We could cross compile a thin client and cross compile the full Skycoin node binary.

Depends on what you need. If you need a fully working Linux on Windows, VMWare or Virtualbox or QEMU can run full GNU/Linux distros on a virtual machine.

If you just want a cross-compile environment then Minimalist GNU for Windows may be what you're looking for.
hero member
Activity: 498
Merit: 500
January 18, 2015, 01:10:16 PM
After six hours of work, blockchain is running. We are troubling shooting changes to installation script for gvm and go1.4 that are causing problems for some users. About to test transactions. Then will distribute some test coins and live code a trader bot.

hero member
Activity: 498
Merit: 500
January 18, 2015, 09:22:59 AM
IPO Update

We are starting a mock IPO right now. To verify that everything works and make sure everyone can get it working.
- not everything is ready, so we are live coding it as we go
- we distribute a bunch of fake coins, so people can do transactions, make sure everything works
- so people can can learn to do transactions by hand and as tutorial on public key cryptography
- will make sure bitcoin functions work and live code trading bot
- blockchain will be reset (all Skycoins coins wiped out), then can start real IPO

The real IPO will be like "N coins per hour". It wont be a huge one shot IPO, but will drag on for weeks, with number of new coins decreasing over time. There might be a large block of coins for the early people near the start.

There are still changes being made to the blockchain that will break binary compatibility. We found a new merkle tree construction that allows proof that a particular block is part of a chain of blocks, using log(N) block headers containing the root hash of the merkle tree. Its not ready yetWe want want to add this later, but it will change the hash of the blockheaders and so require blockchain reset.

Skycoin transaction and output hashes are designed to be independent of the blockchain they are embedded in. This means that we can export the transactions from one chain as json, then import them to the new chain. So all the balances will be preserved if we need to fix a bug that would change blockheader hashes. However, we do not have a mechanism in place yet to notify people to update their clients.

IPO checklist

Get pastebin, piratepad, google docs or notes ready to help other people
We are in cryptocat channel "Skycoin" right now

We wanted to use TOX group chat, but it is not ready. The usability is horrible.
We tried using freenode IRC, but frustrating because does not work with TOR and other issues people had.
Cryptocat works, but there is no software for running a bot. So we cant have a trading bot in cryptocat
We are moving on to XMPP

We are starting the blockchain, then will distribute a bunch of fake coins for testing. Then once everyone has problems sorted out, will reset blockchain and do it again for real.

- you need to be able to generate a skycoin public key, so we can send you coins
- we need a little webapp that runs locally, that lets you generate keys, addresses, encrypt messages. We will live code this.
- get it working in the command line, then work way up to web app in golang
- we need to make sure the JSON interface has the functions required for IPO and that they are working.
- someone should live code a JSON thin client, that lets you get outputs, create/sign transactions and inject them, using a public Skycoin node someone else is running. This just requires importing Skycoin Cipher module, then opening TCP connection to the node. Then you can query outputs for an address, inject transactions.

Is there a program that lets people on windows open up an emulated linux environment? We could cross compile a thin client and cross compile the full Skycoin node binary.

In this mock IPO you will learn to create skycoin public keys and addresses by hand, query address outputs by hand and construct transactions manually, sign them and inject them into network.

cryptocat channel "Skycoin" right now
hero member
Activity: 688
Merit: 500
January 16, 2015, 03:59:05 PM
iot is the the merely correct direction of cryptocurrency.

all skycoin and the current altcoins are shit.

keep an eye on tilecoin.
member
Activity: 97
Merit: 10
January 16, 2015, 11:04:03 AM
Google Ara is adding an RF bus to the endo for connecting modules to an antenna elsewhere on the phone in MDK 0.2. Current version only allows one RF channel, but they did mention adding more channels in the future. Also, initial roll-out of Ara will be in Puerto Rico. There is a large area without cell coverage in the interior of the island which can benefit from mesh networking to extend service. In discussions with a chip manufacturer, we can get TV whitespace down to WiFi costs with orders of 5 million units. BOM cost of 1 million units is $50. We're pursuing SDR like HackRF as an interim solution. It would be offered as a hobbyist product like HackRF but lower cost, then developed into a mesh networking product.
hero member
Activity: 770
Merit: 500
January 15, 2015, 06:28:47 AM
Any comments on the current BTC price?
it doesn't matter to SKYcoin.
hero member
Activity: 1792
Merit: 507
January 14, 2015, 11:30:02 AM
This coin still in surgery  Shocked
hero member
Activity: 637
Merit: 500
January 14, 2015, 03:53:53 AM
Update:

Ubiquiti has  802.11N 2×2 MIMO on 900 Mhz.
http://www.muniwireless.com/2010/11/02/who-needs-white-space/

White space is definately the future of Mesh networking, hope we can overcome the regulatory burdens (in europe at least).


Never heard of using GPS coordinates to optimize mesh routing, nice link, and considering the low cost of GPS modules, it's an interesting idea if the performance boost outweighs the privacy and satellite dependency drawbacks.
newbie
Activity: 2
Merit: 0
January 13, 2015, 11:38:10 PM
are u gonna launch or what, you gonna procrastinate again?
hero member
Activity: 763
Merit: 500
January 13, 2015, 09:37:34 AM
Any comments on the current BTC price?
Jump to: