Author

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

hero member
Activity: 498
Merit: 500
October 31, 2014, 03:50:28 AM
i doubt it will ever launch heh

Ya. We could have done the IPO in January. I cant remember what stopped the IPO from happening.

The IPO does not mean its done, or even that it works. It just means the coin is trading publicly. If Skycoin succeeds, it will spawn fifty clone-coins before we even have the software working.

Bitcoin took the form it did (a single large, global world internet currency) because of mining. Only the coin with the most hashing power can be secure. Bitcoin ended up being radically different than the intention many people had for cryptocurrencies. Bitcoin is still a stepping stone to the next stage. Bitcoin is priming the pump. Almost all the mined coins are pump and dumps. A very few of them are very innovative however.

There are groups of people of various sizes and they want to start their own digital currencies. They have looked at Bitcoin, but they cannot afford enough mining equipment to make it work. As soon as mining is eliminated and unnecessary, the landscape will change. You will see a lot of "community currencies", towns, websites and smaller groups like American Indians on reservations issuing their own coins. Every private Bitorrent tracker will have their own coin. You may even see companies begin to issues currencies to customers and suppliers.

These coins will be more local and relevant. Most of them will fail, but a few will make it. These coins are going to be inter-operable from day one. It wont matter if a merchant accepts Dogecoin or Litecoin or Bitcoin, whatever you have in your wallet will convert over at the spot price and users will not even think about it. Merchants may choose to hold profits in one currency and users may have a completely different set of currencies they hold. It will be a two-sided market.

There will not be a "litecoin ATM" or a "Bitcoin ATM", it will just be called an ATM. As routine transactions become automated, income, debt and credit will start to creep in. Very few people right now have income in Bitcoin and the things you can buy with Bitcoin are still limited, but that will change as we go into stage two.

Stage three will probably be an attack on the idea of currency itself. Bitcoin is a small technical achievement. Regulators can handle it. Libertarians were screaming and making scary noises about how "revolutionary" and "threatening" Bitcoin was and the regulators calmed down when they realized that Bitcoin is same as cash or gold. Its just another commodity. Bitcoin is not any more "threatening" than someone trading a gold ETF back and forth between two accounts. Governments will just put some reporting requirements on it and make sure they get their tax money when you buy anything.

Stage three is already laying the technical foundation for computer mediated systems of exchange that are radically and conceptually different than anything that has existed. Look at Ripplepay and the idea that money itself is just credit and debt. In Ripplepay money transcends its origin as a commodity and becomes a system of contracts and relations in a network. The role of money as a commodity inevitably becomes separated from the role of money as a unit of account.

Technology is enabling the creation of new objects, with new properties and relations that no previous object had. To own a gold bar is to possess it. To transfer ownership you physical move the bar into the possession of someone. In Bitcoin, "ownership" was transformed from its physical form, to knowledge. The "owner" of the Bitcoin is the one who "knows" the private key to authorize transfer of the Bitcoin.

If a coin is secured by two public keys, held by two parties and one party publishes the private key for their public key, the other person and now only that person can authorize the transfer of the coins. The "ownership" has changed without the coin having even moved. Merely the state of knowledge in the world has changed, without even touching the blockchain and yet the Bitcoin has changed hands.

Bitcoin would need a 2 trillion dollar marketcap to even represent one percentage point of global wealth (the foundation of security provided by the mining process will be severely threatened before we get there) . The end game is not 2 million dollar clone-coin pump and dumps. It is systems of exchange that will represent single or double percentage points of global assets and financial wealth. The correct investment horizon is probably five to twenty years.  In the excitement of two new coins launching every day, people are forgetting how far off the end goal is and underestimate the sacrifices required to get there.
hero member
Activity: 498
Merit: 500
October 31, 2014, 02:27:33 AM
Project Update:

Everything is going very rapidly. We will be out of new things to code within a finite amount of time on the current trajectory. All the project goals will have been achieved and then we need to figure out what happens next.

1> We must finish the developer documentation and tutorials.
2> We must do the IPO.

When we started development, Golang was experimental and frustrating. Build reproducability was difficult, developers were stepping on each others toes and debugging goroutines was impossible. The Golang tool chain is maturing rapidly. Many problems we had a year ago are solved.

For organization, we found the best thing is to put everything on github. Use the github wiki, use the github issue tracker for bounties. The project is being split up into coherent logical blocks. We did not know the best way to split up the components of the project until everything was implemented.

Reflections on Consensus:

In the last year there has more formal research into Skycoin type consensus algorithms. We are confident that mining will soon no longer be a requirement for blockchain security or consensus. There is on going explosion of formal research (see: SybilLimit https://www.comp.nus.edu.sg/~yuhf/yuh-sybillimit.pdf ).

As we developed and refined the consensus algorithm, it went from simple to complex and then back to simple. One of the requirements is that it worked and was only a few thousand lines of code (so that it could be audited) and edge cases and flow paths were minimized. As the algorithm was examined through different facets, we found the core and were able to determine what class of attacks were acceptable and which attacks were existential and unacceptable (primarily attacks resulting in financial loses). The elegance of implementation is only possible because the implementation rests upon several layers of libraries for implementing new cryptographic and networking constructs.

The last of these primitives are designed and implementation is proceeding. Documentation is becoming important as Skycoin is not the only application that requires these components.

Reflections on Requirements for Distributed Applications:

There have been advances in containerization and sandboxed runtime environments (Docker, pNaCl). Recent application sandboxes are coming close to meeting Skycoin project security requirements. Many things that we believed we would need to write ourselves, have begun appearing.

The basic requirement for the Skycoin distributed application and "personal cloud" infrastructure were
- ability to run sandboxed services (processes identified by a public-key)
- separation between configuration and data storage for services
- sandboxed networking (networking only through execution environment API)
- sandboxed disc access (each process occupies its own encapsilated disc environment, shared storage by remote application exposing the disc as a service over the network)
- ability to run process in full emulation (for untrusted code), with option to compile down to native code for performance
- sound, video and other privileged services exposed by services (processes) over network
- LLVM intermediate representation for deterministic builds for C, C++, Golang (platform independent when builds are run within emulated build environment through bootstrapping process).

Tools such as emscripten allow us to achieve this easily in a javascript emulation environment for C,C++, Golang and Python. A full tool-chain may be possible with a simple emulator and single LLVM backend from LLVM intermediate form to the emulator language. The emulator language itself will be stripped down version of LLVM intermediate form.

The existing sandbox executes javascript with Google's V8 interpreter and does not have disc or network access.  Distributed applications are still waiting on implementation of infrastructure components required to build a useful application.

Reflections on Skycoin Communication Infrastructure:

Tox has solved many of problems we are facing, for messaging nodes by public-key. Tox was forced to use the Kadmellia type DHT and leaks metadata and timing information, which is undesirable. We have a document for new DHT infrastructure that would alleviate many of these problems.

As Tox is working and duplicates functionality required by Skywire, we are using it for prototyping the darknet. Tox does not protect IP identities of the public key. However, the functionality for finding and messaging nodes by public key is working which is the important thing.

We may introduce a "Connection" interface class to allow new connection types in the future, deprecate TCP/IP and move all existing Skycoin/Skywire communications over Tox. The dependencies are minimal and it appears that Tox can be built by the golang built tool.

The Tox project is very close to what we will end up with, however with a few changes.
Tox uses NaCl, Curve25519, Salsa20, SHA512.
- We would recommend Secp256k1,ChaCha20, SHA256
-- for standardization with Skycoin primitives.
-- for 32 bit performance
-- secp256k1 acts as a "coal mine canary". When algorithm becomes broken, Bitcoins will be stolen.
- We would recommend implementation of new type of DHT to replace existing peer look-up system
-- value is not Hash(key) but where the key is 20 byte hash of secp256k1 public key and the value is {KEY}, { POW, SEQ, EXPIRE, DATAHASH, SIGNATURE}, {DATA}.  (There is Key, Header, Value).
--- POW is a 20 byte proof of work (anti-spam)
--- SEQ is 32 bit number that is incremented on update (DHT nodes replicate value with highest SEQ number for the key. SEQ may be unix time at publication)
--- EXPIRE is the expiration date in unix time
--- DATAHASH is SHA256 of binary data in the key-value entry.
--- DATA is the 32 bit length prefixed contents of the key -> value
-- DHT nodes replicate tuples peer-to-peer. Invalid headers are discarded.
-- The public key is extracted from the sigature. The public key is hashed. The key must be hash of public key.
- The signature is set to zero and serialization hashed with SHA256. Alternatively a subset of the fields is hashed (insuring immutability, inability of 3rd parties to modify data without invalidating the signature/hash). The signature must be a valid signature for the extracted pubkey and for the resulting hash.
- Tuple Serialization / Network Format:
-- For serialization of structs/headers, for future proofing and cross platform implementation, { KEY, POW, SEQ, EXPIRE, HEADERHASH, SIGNATURE, DATA } is serialized as a map. [(int16,int16,data), (int16,int16,data), ...].  Each element has int (ex. KEY = 1, POW = 2, SEQ = 3, EXPIRE = 4, DATAHASE = 5, SIGNATURE = 6), length prefix for binary data, then binary data follows as bytes.
-- New fields may be added or removed as protocol evolves, without breaking compatibility / serialization.
- Cryptography Serialization
-- Signatures are 64+1 bytes (compressed secp256k1 signature plus recovery byte. Only non-malleable signatures are valid)
-- Pubkey Keys are 33 bytes (compressed secpk256k1 pubkeys. Compression is required.)
-- Pubkey hashes (Addresses) are 20 bytes. Address = {ripmd160(SHA256(SHA256(Pubkey)), VersionByte}. A one byte version byte is post-fixed to end of address (for upgrading curve in future). Default version byte value is 0.
-- Address serialization is base64. The 21 byte address serializes to 28 characters. ex. LS0tIFBPVyBpcyBhIDIwIGJ5dGU
- Peer Discovery Through DHT
-- This system allows contents of the DHT entry to be updated (unlike Kadmelia DHT). However it requires a new protcol to be throughout for friend requests. This needs to be worked out
- DHT Replication
-- Each DHT node should fully replicate every DHT entry in network (full replication, not Kademlia)
-- privacy (currently sybil attack appears successful at determining nodes making queries for particular pubkeys)
-- simpler replication, reduced complexity from Kadmelia. Increased bandwidth/storage usage.
-- DHT replication can now run "within TOX" through TOX network, without external UDP queries leaking metadata
-- There may be optional "Selector" in DHT
--- some nodes may choose to only replicate portion of network, when cost of full replication becomes too great (support single application DHT key sets). Alternatively, nodes may start dropping the entry with lowest POW.
-- Format supports multiple types of DHT and evolving DHT implementations as required.

This new DHT system is very similar to Bitmessage. However, instead of sending messages it gives each public key an area it can write to and update. You could call it a bitmessage-DNS system. This system supports the case where you want only people who know your pubkey to know things and when you want to publish something publicly to everyone (such as route information).

We will end up reimplementing something with same functionality as Tox, but slightly different. However for now, we can prototype the higher layers on top of Tox and save time.

We intially thought there were two layers to the darknet routing network. However, the lowest layer ended up being nodes with public keys which are identified with published IP addresses and accept connections from the public. Then there are nodes that are only privately peered. The network topology is mostly public for the purpose of finding routes, but there is no correspondence between the public keys of the node and an IP address.

This produces a new kind of pseudonyous networking. There are two kind of pseudonymity.
- There is no relationship between IP addresses and node public keys (unless the node is publicly advertising and peering with the public).
- A node passing traffic can only identify the previous and next hop for the traffic, not the origin or the destination for the traffic.

However this type of pseudonymity creates three problems
1. Resource exhaustion attacks, route exhaustion (one node creating 10,000 routes cannot be differentiated from 10,000 nodes creating 1 route)
2. in a pseudonymous network, nothing stops leaching so the performance will be bad without a financial incentive
3. Nodes may lie about performance or route information. Bots may lie.

#1 is difficult. The attack requires as much resources for the attacker as the person being attacked. IP/TCP/UDP suffers from a similar attack. If a router can switch 10 Gb/s to a particular port and you send 10 Gb/s to an IP with destination on that port, it will cause packets to drop. The failure case for stateful networking is not dropped packets, but is that attempts to create new routes through that node will fail. However, many of these attacks only affect nodes with public peering.
#2 can be solved through coin incentives. This is relatively easy. Leachers will end up competing with other leachers for bandwidth in the leacher pool, but leachers wont be competing with the non-leachers for bandwidth.
#3 is difficult. You need one or more trusted source of 3rd party route and performance information. There is no "trust-less" way of doing this. It might be as simple as having bunch of people crawl the network and publishing data. A solution to this will develop over time. It will be incremental.

Once implementation is done, we have to deal with other problems. It is not clear why Tor is more successful than I2P. Tor has about 2 million users a day, so its still niche. Just getting the network working and ensuring it is well designed is not enough. We have to ensure that there are applications that will drive adaption.
legendary
Activity: 1722
Merit: 1000
October 30, 2014, 10:43:28 PM
I believe the project is kicking and well alive. Consider that this is not just a QT Wallet for a coin, this is a whole new ecosystem of apps and protocols that will eventually work in unison. Certainly not something that can be done overnight. I'm not trying to compare here but as an example look at Maidsafe, they raised money and nothing much I've heard of since.

Before they even announce the IPO (I'm not a fan of them but they are needed to raise funds for development) better be sure the basics are working and set for a smooth start. For a project of this nature to scale up and get support from the community, it needs very solid foundations.

This is only my opinion. I followed this thread since the start and would love to see the project coming to fruition. I much prefer a dev team working quietly, without distractions, that launches with something concrete and functional.
sr. member
Activity: 248
Merit: 250
hero member
Activity: 910
Merit: 1000
Decentralized Jihad
October 28, 2014, 10:30:38 AM
i doubt it will ever launch heh

yeah, but if it launches, it's gonna go to pluto...
No, not in these times. The time has run out.
sr. member
Activity: 248
Merit: 250
October 27, 2014, 11:15:17 PM
sr. member
Activity: 384
Merit: 250
October 22, 2014, 12:42:32 AM
i doubt it will ever launch heh

yeah, but if it launches, it's gonna go to pluto...
hero member
Activity: 672
Merit: 500
http://fuk.io - check it out!
October 21, 2014, 08:08:09 PM
i doubt it will ever launch heh
member
Activity: 103
Merit: 10
October 18, 2014, 11:26:18 PM
Been following this for months.
I think it looks very promising.
Well done on all of your hard work.
legendary
Activity: 1722
Merit: 1000
October 17, 2014, 10:03:33 PM
Appreciate the update!
Not in a rush for the IPO, I like the fact the project keeps moving.
At every update we seem to get closer and closer to launch.
Keep up the good work! Smiley Wink

 
sr. member
Activity: 483
Merit: 250
October 17, 2014, 06:24:46 PM
Very and very innovative coin. I am in!
hero member
Activity: 498
Merit: 500
October 17, 2014, 04:53:49 AM
Update:

Consensus Simulation:

Here is basic python simulation of the Skycoin consensus process http://pastebin.com/5DJ9d29D

We dont have much time for academic details until its done, but found that Ben-Or's consensus process could be modeled used a mathematical model called a "spin glass". https://en.wikipedia.org/wiki/Spin_glass

Each node has a state. Each node is subscribed to a subset of nodes in the network. There is a local function (a function of the node's state and the state of the nodes it is subscribed to) that can be called "energy". The "energy" of the network is the sum of the energy of each node. The network has achieved consensus (all nodes are in the same state), when the energy is minimized. A node changes its state at each round, to minimize its energy function. Through local energy minimization, it can be proved that the global energy reaches a minimum within a finite time bound for a particular type of network topology and update rule.

Spin glass are mathematically equivalent to 2-SAT/3-SAT optimization problems and several messaging passing algorithms on graphs have been proposed with known scaling laws and performance guarantees. This leads into analogies of Belief Propagation and Survey Propagation, where nodes pass more powerful state information to each other and the network can reach a convergent state faster. Normally, it can require exponential time for a network to reach the ground state if the energy function is too complicated (3-SAT). However, in Skycoin type consensus network the energy function is a 2-SAT problem at worse and actually more trivial than that (convergence through local hill climbing). Worse case network topology for 2-SAT makes number of rounds to convergence linear in the number of nodes (linear time in number of rounds for distributed process of N nodes, but quadratic time big O runtime for a centralized process). For "average" random graph the problem appears to be trivial and the system reaches the minimum through message passing, extremely quickly for even most basic stochastic local hill climbing update rule.

We do not have a proof yet, but the time to consensus seems to scales no worse than the square root of the number of nodes for a random graph at worse, but is usually logarithmic in the number of nodes in the network for most update rules. For a graph with a power law connection rule with preferential attachment, the convergence time appears very good in simulation. It does not change noticeably with graph size.

We have found that almost all the update rules for message passing result in network convergence. However, some rules are not "robust" in the sense that a relatively small number of colluding nodes are able to prevent network convergence and delay convergence indefinitely. In the real world, this may not matter because the required tie condition occurs rarely (worse case) and nodes blocking convergence would be detected and people would remove them from their trust lists. Some rule sets result in faster convergence, but may make it easier for malicious nodes to influence the network.

There are suggestions that there exist messages with augmented state information that would allow faster convergence and allow a node to partition the nodes they are following into two sets and apply meta-rules for adding/removing node relationships, expelling "bad" nodes to a disconnected/disjoint sub-graph.

There will be many changes after launch. This is a whole new area that needs work.

Measuring the Influence of Nodes

In Bitcoin, the two largest mining pools completely control the network. Together they control 51% of the hash rate and could attack the network, exchanges and gambling sites if they chose to. Mining has led to a severe concentration of power in the hands of a small group. The number of people who must collude to attack the network is much smaller than Satoshi intended.

In Skycoin the objective is to keep network control decentralized enough that a successful attack requires collusion of at-least a few hundred highly respected and trusted people (an unlikely conspiracy) and then minimizing the scope of damage that could result even then.

We need a measure of power or influence, in the Skycoin network, that allows us to compute whether a sub-graph of nodes has enough influence to carry out an attack in collusion. We would also like a visible measure of power of individual nodes, so that people can re-balance their node subscriptions to prevent any node in the network from obtaining too much influence.

We believe the influence of a node in the simple consensus system, can be approximated well using a page rank type algorithm. The link adjacency matrix is constructed, such that A_ij equals 1 if node i subscribes to node j and is zero otherwise. We normalize each row to 1 to get the modified link adjacency matrix. The "page rank" or power rating of the ith node is the ith entry of the dominate eigenvector of the modified adjacency matrix for the network graph.

The dominant eigenvector of the modified link adjacency matrix A, can be quickly computed by choosing a random vector, applying A to it by multiplication, normalizing the result and repeating successively with the resulting vector as the new input, until convergence.
Example x <- A*x / ||A*x||, while || x - (A*x / ||A*x||) || < ε  (multiply A*x, normalize result, feed it back in)

This simple metric gives an approximate ordering of the most trusted and influential nodes in the network.

Development News

I am not sure what is left until the IPO. I think the Python scripts are done.
- python scripts
- verify that loading deterministic wallet loading is working in the GUI
- start IPO?

There is a split between the active development branch and the IPO branch because of a networking library golang dependency. The IPO branch daemon wont compile with the updated networking library and the new Daemon is not ready to replace the Daemon implementation in the IPO branch. However, this should not affect the IPO as the existing client should still compile and run. Doing a huge refactor instead of a series of very small refactors that kept the software working was a major mistake and setback.

The darknet prototype is now running over Tox. Tox allows communication via public key, has UDP hole-punch working and has good binary data performance and latency. Using Tox as start point will allow us to get a prototype working faster and defer implementing public key to IP address DHT look-up. It also allows back-communication to distributed service servers over the darknet, before the asynchronous messaging implementation is done (which was a major problem/hurdle for implementing darknet application servers).

In a typical darknet application, you have a website with static pages. The public key owning the pages signs the data with their private key and the data is replicated peer-to-peer between the subscribers to the application. This is good for publishing static content and files. However, sometimes you need to make an API call to the application server (such as updating a wiki page). It was possible to subscribe, but not to communicate back to the public key controlling the server. Now the application can give a Tox public key that can be used as a communication end-point for API calls on the application server.

Skycoin distributed applications previously used Ether, then Aether but now uses Merkle-DAG as the standard format. Implementation documentation and the Merkle-DAG spec is being written up now.

Merkle-DAG is Skycoin's distributed file system. Merkle-DAG is like Bitorrent, but lets you make updates to files after publication. You generate a public key, then sign updates with your private key. The updates are replicated peer-to-peer between subscribers. Merkle-DAG replaces the ad-hoc replication that was previously used for publishing personal block-chains and distributed applications.
sr. member
Activity: 248
Merit: 250
October 10, 2014, 05:10:54 AM
wait for ipo  Grin
sr. member
Activity: 308
Merit: 250
October 09, 2014, 08:32:25 AM
hero member
Activity: 703
Merit: 500
October 09, 2014, 05:38:23 AM
Details on how to join IPO would be good
still no details for the IPO?
sr. member
Activity: 462
Merit: 250
October 06, 2014, 11:36:11 AM
Details on how to join IPO would be good
member
Activity: 78
Merit: 10
October 06, 2014, 10:11:48 AM
Is the IPO starting anytime soon or what? It's been a while now, waiting for an update.


When will run IPO?
sr. member
Activity: 364
Merit: 250
October 06, 2014, 08:55:03 AM
Is the IPO starting anytime soon or what? It's been a while now, waiting for an update.
hero member
Activity: 703
Merit: 500
October 05, 2014, 09:01:49 PM
Update

Blockchain is still syncing It is on block 304,608. 36,000 blocks to go, before we can check Bitcoin address balances.

The wiki is getting filled in. We are putting tutorials here and technical documentation for components that need implementation (bounties). https://github.com/skycoin/skycoin/wiki

we will wait for the update.
Jump to: