kodtycoon
Legendary
Offline
Activity: 1568
Merit: 1002
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 10:38:22 AM |
|
nem has 3000 original stake holders and a new proof importance algo which means that the nodes that are more important to the network "mine/forge" more than those with simply more coins. which fixes the hoarding issues inherent in nxt. 3000 stake holders will get equal amounts, there was not an ipo, its was a "pay a fee, join the movement" sort of thing. so even the ipo does no favor those with better finances. also the stake holder list went through weeks of taint analysis and auditing to remove sock puppets.
All of this you could have avoided by just using a mechanism that requires you to pay the market value for any stake, such as a PoW.. that mechanism is far less than optimal for many reasons and excludes those who don't have mining gear and favours those with higher powered mining gear. It's no different to "rich getting richer" in nxt. In that respect, pow is elitist
|
|
|
|
justusranvier
Legendary
Offline
Activity: 1400
Merit: 1013
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 11:27:15 AM |
|
that mechanism is far less than optimal for many reasons and excludes those who don't have mining gear and favours those with higher powered mining gear. It's no different to "rich getting richer" in nxt. In that respect, pow is elitist This is the problem with proof of stake: it was invented by people who have no idea what problem mining is supposed to solve and have some agenda other than solving that problem. Mining is not about allocating the issuance of new coins. The fact that they are tied together in Bitcoin is a temporary coincidence. Mining is about solving the problem of distributed consensus - how do a bunch of independent nodes spread all over the planet agree on a precise ordering of transactions when every node must operate with an incomplete view of the network and anybody might be trying to cheat? This problem has nothing to do with elitism or notions of fairness or populism. Overlaying those agendas into the solution is a great way to not solve the problem. As nodes on the network continually work to establish a consistent of narrative of what has happened in the netwowk based on their own incomplete knowledge, there will be times where two nodes disagree. Mining is nothing more than a signalling mechanism which provides an objective basis for choosing which version of history to treat as correct, whenever a conflict occurs such that more than one alternative version exist. The design criteria for what makes a good mining algorithm comes from signalling theory: Two individuals have access to different information.
They could both gain if they could honestly share this information.
However, their interests do not coincide entirely, and so each has an incentive to deceive the other.
How can honest communication be ensured? How can honest communication be ensured despite conflicting interests between a signaller and a signal receiver? Economists and biologists independently proposed that the costs associated with producing signals can provide a solution to this problem. Loosely paraphrased, the solution typically takes the following form. Suppose that signals are costly, and that for one reason or another, lies cost more than honest signals.
If telling the truth is cheap enough and telling a lie is costly enough, it may be worthwhile to communicate honestly but not to lie. There's a reason that when Wei Dai proposed b-money in 1998, he didn't even bother to explain why calculations in a proof of work system, "must be easy to determine how much computing effort it took to solve the problem and the solution must otherwise have no value, either practical or intellectual." He assumed this statement would be so obviously true that no explanation was needed. Apparently this is no longer the case. The signal sent by proof of work is the amount of opportunity cost the miner has paid in order to produce the block. The fact that mining calculations are completely useless outside the signalling system itself is what makes lies more expensive than telling the truth, thus satisfying the conditions for honest signalling. The opportunity cost the miner pays to produce a block only represents a profitable trade for the miner if the network accepts their block. So when it comes to a node in the network choosing between two valid blocks, choosing to accept the block with the higher PoW means choosing the block which produced by the miner who has the most at stake in terms of opportunity cost paid. Note that if the miner has to use specialized hardware for which there is no possible use other than mining, the signal is even better than performing otherwise-useless calculations on general purpose hardware. Higher opportunity costs = more reliable signal. Proof of work is a proof of stake system, the only one that actually works. PoS coins use the number of coins held as the basis for their signalling system. Since coins have an exchange rate, they obviously do not fulfill the criteria of having no value, either practical or intellectual. Thus PoS is not an viable mechanism for honest signalling.
|
|
|
|
cypherdoc (OP)
Legendary
Offline
Activity: 1764
Merit: 1002
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 11:44:59 AM |
|
that mechanism is far less than optimal for many reasons and excludes those who don't have mining gear and favours those with higher powered mining gear. It's no different to "rich getting richer" in nxt. In that respect, pow is elitist This is the problem with proof of stake: it was invented by people who have no idea what problem mining is supposed to solve and have some agenda other than solving that problem. Mining is not about allocating the issuance of new coins. The fact that they are tied together in Bitcoin is a temporary coincidence. Mining is about solving the problem of distributed consensus - how do a bunch of independent nodes spread all over the planet agree on a precise ordering of transactions when every node must operate with an incomplete view of the network and anybody might be trying to cheat? This problem has nothing to do with elitism or notions of fairness or populism. Overlaying those agendas into the solution is a great way to not solve the problem. As nodes on the network continually work to establish a consistent of narrative of what has happened in the netwowk based on their own incomplete knowledge, there will be times where two nodes disagree. Mining is nothing more than a signalling mechanism which provides an objective basis for choosing which version of history to treat as correct, whenever a conflict occurs such that more than one alternative version exist. The design criteria for what makes a good mining algorithm comes from signalling theory: Two individuals have access to different information.
They could both gain if they could honestly share this information.
However, their interests do not coincide entirely, and so each has an incentive to deceive the other.
How can honest communication be ensured? How can honest communication be ensured despite conflicting interests between a signaller and a signal receiver? Economists and biologists independently proposed that the costs associated with producing signals can provide a solution to this problem. Loosely paraphrased, the solution typically takes the following form. Suppose that signals are costly, and that for one reason or another, lies cost more than honest signals.
If telling the truth is cheap enough and telling a lie is costly enough, it may be worthwhile to communicate honestly but not to lie. There's a reason that when Wei Dai proposed b-money in 1998, he didn't even bother to explain why calculations in a proof of work system, "must be easy to determine how much computing effort it took to solve the problem and the solution must otherwise have no value, either practical or intellectual." He assumed this statement would be so obviously true that no explanation was needed. Apparently this is no longer the case. The signal sent by proof of work is the amount of opportunity cost the miner has paid in order to produce the block. The fact that mining calculations are completely useless outside the signalling system itself is what makes lies more expensive than telling the truth, thus satisfying the conditions for honest signalling. The opportunity cost the miner pays to produce a block only represents a profitable trade for the miner if the network accepts their block. So when it comes to a node in the network choosing between two valid blocks, choosing to accept the block with the higher PoW means choosing the block which produced by the miner who has the most at stake in terms of opportunity cost paid. Note that if the miner has to use specialized hardware for which there is no possible use other than mining, the signal is even better than performing otherwise-useless calculations on general purpose hardware. Higher opportunity costs = more reliable signal. Proof of work is a proof of stake system, the only one that actually works. PoS coins use the number of coins held as the basis for their signalling system. Since coins have an exchange rate, they obviously do not fulfill the criteria of having no value, either practical or intellectual. Thus PoS is not an viable mechanism for honest signalling. Thank you for answering that roll your eyes assertion. I clearly did not have the energy to do so. You did. Great explanation.
|
|
|
|
justusranvier
Legendary
Offline
Activity: 1400
Merit: 1013
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 12:04:02 PM |
|
Thank you for answering that roll your eyes assertion. I clearly did not have the energy to do so. You did.
Great explanation.
The reason I had the energy is that I was already working on that explanation because it's part of an article I want to write in the near future. It just so happened that kodtycoon's post was a great opportunity to create a preview/summary.
|
|
|
|
cypherdoc (OP)
Legendary
Offline
Activity: 1764
Merit: 1002
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 12:10:44 PM |
|
Thank you for answering that roll your eyes assertion. I clearly did not have the energy to do so. You did.
Great explanation.
The reason I had the energy is that I was already working on that explanation because it's part of an article I want to write in the near future. It just so happened that kodtycoon's post was a great opportunity to create a preview/summary. So if Wei Dai conceptualized that, what was Adam Back's contribution to POW?
|
|
|
|
justusranvier
Legendary
Offline
Activity: 1400
Merit: 1013
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 12:14:32 PM |
|
So if Wei Dai conceptualized that, what was Adam Back's contribution to POW?
Looks like Hashcash came out the year before b-money. Figuring out that kind of chronology is why it takes longer to write articles than making forum posts. There's a lot of information to rescue from the memory hole.
|
|
|
|
Mythul
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 12:26:21 PM |
|
This is one of the best threads ever...
|
|
|
|
Pruden
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 01:24:41 PM |
|
What is this? // START_DEFINITION /** * Fingerprint Tor authoritative directories enacting the directory protocol. */ fingerprint('anonymizer/tor/node/authority') = $tor_authority and ($tor_directory or preappid(/anonymizer\/tor\/directory/)); // END_DEFINITION
// START_DEFINITION /* Global Variable for Tor foreign directory servers. Searching for potential Tor clients connecting to the Tor foreign directory servers on ports 80 and 443. */
$tor_foreign_directory_ip = ip('193.23.244.244' or '194.109.206.212' or '86.59.21.38' or '213.115.239.118' or '212.112.245.170') and port ('80' or '443'); // END_DEFINITION
// START_DEFINITION /* this variable contains the 3 Tor directory servers hosted in FVEY countries. Please do not update this variable with non-FVEY IPs. These are held in a separate variable called $tor_foreign_directory_ip. Goal is to find potential Tor clients connecting to the Tor directory servers. */ $tor_fvey_directory_ip = ip('128.31.0.39' or '216.224.124.114' or '208.83.223.34') and port ('80' or '443'); // END_DEFINITION
// START_DEFINITION requires grammar version 5 /** * Identify clients accessing Tor bridge information. */ fingerprint('anonymizer/tor/bridge/tls') = ssl_x509_subject('bridges.torproject.org') or ssl_dns_name('bridges.torproject.org');
/** * Database Tor bridge information extracted from confirmation emails. */ fingerprint('anonymizer/tor/bridge/email') = email_address('bridges@torproject.org') and email_body('https://bridges.torproject.org/' : c++ extractors: {{ bridges[] = /bridge\s([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}):?([0-9]{2,4}?[^0-9])/; }} init: {{ xks::undefine_name("anonymizer/tor/torbridges/emailconfirmation"); }} main: {{ static const std::string SCHEMA_OLD = "tor_bridges"; static const std::string SCHEMA_NEW = "tor_routers"; static const std::string FLAGS = "Bridge"; if (bridges) { for (size_t i=0; i < bridges.size(); ++i) { std::string address = bridges[i][0] + ":" + bridges[i][1]; DB[SCHEMA_OLD]["tor_bridge"] = address; DB.apply(); DB[SCHEMA_NEW]["tor_ip"] = bridges[i][0]; DB[SCHEMA_NEW]["tor_port_or"] = bridges[i][1]; DB[SCHEMA_NEW]["tor_flags"] = FLAGS; DB.apply(); } xks::fire_fingerprint("anonymizer/tor/directory/bridge"); } return true; }}); // END_DEFINITION
// START_DEFINITION /* The fingerprint identifies sessions visiting the Tor Project website from non-fvey countries. */ fingerprint('anonymizer/tor/torpoject_visit')=http_host('www.torproject.org') and not(xff_cc('US' OR 'GB' OR 'CA' OR 'AU' OR 'NZ')); // END_DEFINITION
// START_DEFINITION /* These variables define terms and websites relating to the TAILs (The Amnesic Incognito Live System) software program, a comsec mechanism advocated by extremists on extremist forums. */
$TAILS_terms=word('tails' or 'Amnesiac Incognito Live System') and word('linux' or ' USB ' or ' CD ' or 'secure desktop' or ' IRC ' or 'truecrypt' or ' tor '); $TAILS_websites=('tails.boum.org/') or ('linuxjournal.com/content/linux*'); // END_DEFINITION
// START_DEFINITION /* This fingerprint identifies users searching for the TAILs (The Amnesic Incognito Live System) software program, viewing documents relating to TAILs, or viewing websites that detail TAILs. */ fingerprint('ct_mo/TAILS')= fingerprint('documents/comsec/tails_doc') or web_search($TAILS_terms) or url($TAILS_websites) or html_title($TAILS_websites); // END_DEFINITION
// START_DEFINITION requires grammar version 5 /** * Aggregate Tor hidden service addresses seen in raw traffic. */ mapreduce::plugin('anonymizer/tor/plugin/onion') = immediate_keyword(/(?:([a-z]+):\/\/){0,1}([a-z2-7]{16})\.onion(?::(\d+)){0,1}/c : c++ includes: {{ #include <boost/lexical_cast.hpp> }} proto: {{ message onion_t { required string address = 1; optional string scheme = 2; optional string port = 3; } }} mapper<onion_t>: {{ static const std::string prefix = "anonymizer/tor/hiddenservice/address/";
onion_t onion; size_t matches = cur_args()->matches.size(); for (size_t pos=0; pos < matches; ++pos) { const std::string &value = match(pos); if (value.size() == 16) onion.set_address(value); else if(!onion.has_scheme()) onion.set_scheme(value); else onion.set_port(value); }
if (!onion.has_address()) return false;
MAPPER.map(onion.address(), onion); xks::fire_fingerprint(prefix + onion.address()); return true; }} reducer<onion_t>: {{ for (values_t::const_iterator iter = VALUES.begin(); iter != VALUES.end(); ++iter) { DB["tor_onion_survey"]["onion_address"] = iter->address() + ".onion"; if (iter->has_scheme()) DB["tor_onion_survey"]["onion_scheme"] = iter->scheme(); if (iter->has_port()) DB["tor_onion_survey"]["onion_port"] = iter->port(); DB["tor_onion_survey"]["onion_count"] = boost::lexical_cast<std::string>(TOTAL_VALUE_COUNT); DB.apply(); DB.clear(); } return true; }});
/** * Placeholder fingerprint for Tor hidden service addresses. * Real fingerpritns will be fired by the plugins * 'anonymizer/tor/plugin/onion/*' */ fingerprint('anonymizer/tor/hiddenservice/address') = nil; // END_DEFINITION
// START_DEFINITION appid('anonymizer/mailer/mixminion', 3.0, viewer=$ascii_viewer) = http_host('mixminion') or ip('128.31.0.34'); // END_DEFINITION
|
|
|
|
kodtycoon
Legendary
Offline
Activity: 1568
Merit: 1002
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 01:35:04 PM |
|
that mechanism is far less than optimal for many reasons and excludes those who don't have mining gear and favours those with higher powered mining gear. It's no different to "rich getting richer" in nxt. In that respect, pow is elitist This is the problem with proof of stake: it was invented by people who have no idea what problem mining is supposed to solve and have some agenda other than solving that problem. Mining is not about allocating the issuance of new coins. The fact that they are tied together in Bitcoin is a temporary coincidence. Mining is about solving the problem of distributed consensus - how do a bunch of independent nodes spread all over the planet agree on a precise ordering of transactions when every node must operate with an incomplete view of the network and anybody might be trying to cheat? This problem has nothing to do with elitism or notions of fairness or populism. Overlaying those agendas into the solution is a great way to not solve the problem. As nodes on the network continually work to establish a consistent of narrative of what has happened in the netwowk based on their own incomplete knowledge, there will be times where two nodes disagree. Mining is nothing more than a signalling mechanism which provides an objective basis for choosing which version of history to treat as correct, whenever a conflict occurs such that more than one alternative version exist. The design criteria for what makes a good mining algorithm comes from signalling theory: Two individuals have access to different information.
They could both gain if they could honestly share this information.
However, their interests do not coincide entirely, and so each has an incentive to deceive the other.
How can honest communication be ensured? How can honest communication be ensured despite conflicting interests between a signaller and a signal receiver? Economists and biologists independently proposed that the costs associated with producing signals can provide a solution to this problem. Loosely paraphrased, the solution typically takes the following form. Suppose that signals are costly, and that for one reason or another, lies cost more than honest signals.
If telling the truth is cheap enough and telling a lie is costly enough, it may be worthwhile to communicate honestly but not to lie. There's a reason that when Wei Dai proposed b-money in 1998, he didn't even bother to explain why calculations in a proof of work system, "must be easy to determine how much computing effort it took to solve the problem and the solution must otherwise have no value, either practical or intellectual." He assumed this statement would be so obviously true that no explanation was needed. Apparently this is no longer the case. The signal sent by proof of work is the amount of opportunity cost the miner has paid in order to produce the block. The fact that mining calculations are completely useless outside the signalling system itself is what makes lies more expensive than telling the truth, thus satisfying the conditions for honest signalling. The opportunity cost the miner pays to produce a block only represents a profitable trade for the miner if the network accepts their block. So when it comes to a node in the network choosing between two valid blocks, choosing to accept the block with the higher PoW means choosing the block which produced by the miner who has the most at stake in terms of opportunity cost paid. Note that if the miner has to use specialized hardware for which there is no possible use other than mining, the signal is even better than performing otherwise-useless calculations on general purpose hardware. Higher opportunity costs = more reliable signal. Proof of work is a proof of stake system, the only one that actually works. PoS coins use the number of coins held as the basis for their signalling system. Since coins have an exchange rate, they obviously do not fulfill the criteria of having no value, either practical or intellectual. Thus PoS is not an viable mechanism for honest signalling. quoting this for future reference. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif)
|
|
|
|
molecular
Donator
Legendary
Offline
Activity: 2772
Merit: 1019
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 01:49:21 PM |
|
justusranvier, please let us know when your article is published and thanks for test-posting here ![Wink](https://bitcointalk.org/Smileys/default/wink.gif) I have a question: you say that coin issuance is not the problem solved by mining, distributed consesus is, and that the two just coincide. after explaining honest signaling you argue: The fact that mining calculations are completely useless outside the signalling system itself is what makes lies more expensive than telling the truth.
But isn't the fact that solving a block is being rewarded (fees, coinbase tx) also a part of making telling the truth less expensive than telling lies? So isn't the combination of consensus-finding and coin issuance (or at least some sort of reward) not merely a "temporary coincidence", but a necessity?
|
PGP key molecular F9B70769 fingerprint 9CDD C0D3 20F8 279F 6BE0 3F39 FC49 2362 F9B7 0769
|
|
|
justusranvier
Legendary
Offline
Activity: 1400
Merit: 1013
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 02:05:07 PM |
|
So isn't the combination of consensus-finding and coin issuance (or at least some sort of reward) not merely a "temporary coincidence", but a necessity? Proof of work would still work even if new coins were being minted (it had better work, because within a few decades minting will drop to insignificant levels). Imagine all the Bitcoin were premined and distributed by some other mechanism. You'd still need an objective way to determine transaction ordering. Proof of work would function the same way as I described above - whomever proves the highest expenditure of opportunity cost will have their version of the ordering preferred over another miner who has expended less opportunity cost. Without issuing new coins, you wouldn't even need a specific difficulty target to have a working system - the highest PoW would win each block. Difficulty is only needed to keep block creation near a constant rate because mining combines ledger updates with minting and having a deterministic schedule for minting is desirable.
|
|
|
|
NewLiberty
Legendary
Offline
Activity: 1204
Merit: 1002
Gresham's Lawyer
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 02:41:16 PM |
|
Yes, precisely right. Point being, it doesn't account for hash power that went into the solving (and ultimately the relay) or the amount of hashing in the pool, or any of that. It is measured after the fact. Thus preventing pools with "too high hash rate" is not even easily determinable. Also there is what I think of as the "Tusken Raider" attack that GHash.io/CEX/Bitfury is currently doing to hide the amount of hash power in different pools. But then it's also possible that the threat is overestimated by that same logic. Only if we throw out all the snapshot metrics and look at it as video. We saw the large chucks move out of Ghash and into Discus Fish and BTC Guild. They weren't trickles, they were cut-overs. The retail CEX users saw that suddenly there's no problem and by and large stayed. More joined since the problem was swept under the carpet and the cycle continues. I have nothing against Ghash and co. I wish them every success. It is merely a problem of power concentration vs decentralization.
|
|
|
|
cypherdoc (OP)
Legendary
Offline
Activity: 1764
Merit: 1002
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 02:47:46 PM |
|
Yes, precisely right. Point being, it doesn't account for hash power that went into the solving (and ultimately the relay) or the amount of hashing in the pool, or any of that. It is measured after the fact. Thus preventing pools with "too high hash rate" is not even easily determinable. Also there is what I think of as the "Tusken Raider" attack that GHash.io/CEX/Bitfury is currently doing to hide the amount of hash power in different pools. But then it's also possible that the threat is overestimated by that same logic. Only if we throw out all the snapshot metrics and look at it as video. We saw the large chucks move out of Ghash and into Discus Fish and BTC Guild. They weren't trickles, they were cut-overs. The retail CEX users saw that suddenly there's no problem and by and large stayed. More joined since the problem was swept under the carpet and the cycle continues. I have nothing against Ghash and co. I wish them every success. It is merely a problem of power concentration vs decentralization. Down to 35% ![Wink](https://bitcointalk.org/Smileys/default/wink.gif)
|
|
|
|
thezerg
Legendary
Offline
Activity: 1246
Merit: 1010
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 02:52:54 PM |
|
The new American judicial branch What is this? // START_DEFINITION /** * Fingerprint Tor authoritative directories enacting the directory protocol. */ fingerprint('anonymizer/tor/node/authority') = $tor_authority and ($tor_directory or preappid(/anonymizer\/tor\/directory/)); // END_DEFINITION
// START_DEFINITION /* Global Variable for Tor foreign directory servers. Searching for potential Tor clients connecting to the Tor foreign directory servers on ports 80 and 443. */
$tor_foreign_directory_ip = ip('193.23.244.244' or '194.109.206.212' or '86.59.21.38' or '213.115.239.118' or '212.112.245.170') and port ('80' or '443'); // END_DEFINITION
// START_DEFINITION /* this variable contains the 3 Tor directory servers hosted in FVEY countries. Please do not update this variable with non-FVEY IPs. These are held in a separate variable called $tor_foreign_directory_ip. Goal is to find potential Tor clients connecting to the Tor directory servers. */ $tor_fvey_directory_ip = ip('128.31.0.39' or '216.224.124.114' or '208.83.223.34') and port ('80' or '443'); // END_DEFINITION
// START_DEFINITION requires grammar version 5 /** * Identify clients accessing Tor bridge information. */ fingerprint('anonymizer/tor/bridge/tls') = ssl_x509_subject('bridges.torproject.org') or ssl_dns_name('bridges.torproject.org');
/** * Database Tor bridge information extracted from confirmation emails. */ fingerprint('anonymizer/tor/bridge/email') = email_address('bridges@torproject.org') and email_body('https://bridges.torproject.org/' : c++ extractors: {{ bridges[] = /bridge\s([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}):?([0-9]{2,4}?[^0-9])/; }} init: {{ xks::undefine_name("anonymizer/tor/torbridges/emailconfirmation"); }} main: {{ static const std::string SCHEMA_OLD = "tor_bridges"; static const std::string SCHEMA_NEW = "tor_routers"; static const std::string FLAGS = "Bridge"; if (bridges) { for (size_t i=0; i < bridges.size(); ++i) { std::string address = bridges[i][0] + ":" + bridges[i][1]; DB[SCHEMA_OLD]["tor_bridge"] = address; DB.apply(); DB[SCHEMA_NEW]["tor_ip"] = bridges[i][0]; DB[SCHEMA_NEW]["tor_port_or"] = bridges[i][1]; DB[SCHEMA_NEW]["tor_flags"] = FLAGS; DB.apply(); } xks::fire_fingerprint("anonymizer/tor/directory/bridge"); } return true; }}); // END_DEFINITION
// START_DEFINITION /* The fingerprint identifies sessions visiting the Tor Project website from non-fvey countries. */ fingerprint('anonymizer/tor/torpoject_visit')=http_host('www.torproject.org') and not(xff_cc('US' OR 'GB' OR 'CA' OR 'AU' OR 'NZ')); // END_DEFINITION
// START_DEFINITION /* These variables define terms and websites relating to the TAILs (The Amnesic Incognito Live System) software program, a comsec mechanism advocated by extremists on extremist forums. */
$TAILS_terms=word('tails' or 'Amnesiac Incognito Live System') and word('linux' or ' USB ' or ' CD ' or 'secure desktop' or ' IRC ' or 'truecrypt' or ' tor '); $TAILS_websites=('tails.boum.org/') or ('linuxjournal.com/content/linux*'); // END_DEFINITION
// START_DEFINITION /* This fingerprint identifies users searching for the TAILs (The Amnesic Incognito Live System) software program, viewing documents relating to TAILs, or viewing websites that detail TAILs. */ fingerprint('ct_mo/TAILS')= fingerprint('documents/comsec/tails_doc') or web_search($TAILS_terms) or url($TAILS_websites) or html_title($TAILS_websites); // END_DEFINITION
// START_DEFINITION requires grammar version 5 /** * Aggregate Tor hidden service addresses seen in raw traffic. */ mapreduce::plugin('anonymizer/tor/plugin/onion') = immediate_keyword(/(?:([a-z]+):\/\/){0,1}([a-z2-7]{16})\.onion(?::(\d+)){0,1}/c : c++ includes: {{ #include <boost/lexical_cast.hpp> }} proto: {{ message onion_t { required string address = 1; optional string scheme = 2; optional string port = 3; } }} mapper<onion_t>: {{ static const std::string prefix = "anonymizer/tor/hiddenservice/address/";
onion_t onion; size_t matches = cur_args()->matches.size(); for (size_t pos=0; pos < matches; ++pos) { const std::string &value = match(pos); if (value.size() == 16) onion.set_address(value); else if(!onion.has_scheme()) onion.set_scheme(value); else onion.set_port(value); }
if (!onion.has_address()) return false;
MAPPER.map(onion.address(), onion); xks::fire_fingerprint(prefix + onion.address()); return true; }} reducer<onion_t>: {{ for (values_t::const_iterator iter = VALUES.begin(); iter != VALUES.end(); ++iter) { DB["tor_onion_survey"]["onion_address"] = iter->address() + ".onion"; if (iter->has_scheme()) DB["tor_onion_survey"]["onion_scheme"] = iter->scheme(); if (iter->has_port()) DB["tor_onion_survey"]["onion_port"] = iter->port(); DB["tor_onion_survey"]["onion_count"] = boost::lexical_cast<std::string>(TOTAL_VALUE_COUNT); DB.apply(); DB.clear(); } return true; }});
/** * Placeholder fingerprint for Tor hidden service addresses. * Real fingerpritns will be fired by the plugins * 'anonymizer/tor/plugin/onion/*' */ fingerprint('anonymizer/tor/hiddenservice/address') = nil; // END_DEFINITION
// START_DEFINITION appid('anonymizer/mailer/mixminion', 3.0, viewer=$ascii_viewer) = http_host('mixminion') or ip('128.31.0.34'); // END_DEFINITION
|
|
|
|
cypherdoc (OP)
Legendary
Offline
Activity: 1764
Merit: 1002
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 03:27:24 PM |
|
The new American judicial branch What is this? // START_DEFINITION /** * Fingerprint Tor authoritative directories enacting the directory protocol. */ fingerprint('anonymizer/tor/node/authority') = $tor_authority and ($tor_directory or preappid(/anonymizer\/tor\/directory/)); // END_DEFINITION
// START_DEFINITION /* Global Variable for Tor foreign directory servers. Searching for potential Tor clients connecting to the Tor foreign directory servers on ports 80 and 443. */
$tor_foreign_directory_ip = ip('193.23.244.244' or '194.109.206.212' or '86.59.21.38' or '213.115.239.118' or '212.112.245.170') and port ('80' or '443'); // END_DEFINITION
// START_DEFINITION /* this variable contains the 3 Tor directory servers hosted in FVEY countries. Please do not update this variable with non-FVEY IPs. These are held in a separate variable called $tor_foreign_directory_ip. Goal is to find potential Tor clients connecting to the Tor directory servers. */ $tor_fvey_directory_ip = ip('128.31.0.39' or '216.224.124.114' or '208.83.223.34') and port ('80' or '443'); // END_DEFINITION
// START_DEFINITION requires grammar version 5 /** * Identify clients accessing Tor bridge information. */ fingerprint('anonymizer/tor/bridge/tls') = ssl_x509_subject('bridges.torproject.org') or ssl_dns_name('bridges.torproject.org');
/** * Database Tor bridge information extracted from confirmation emails. */ fingerprint('anonymizer/tor/bridge/email') = email_address('bridges@torproject.org') and email_body('https://bridges.torproject.org/' : c++ extractors: {{ bridges[] = /bridge\s([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}):?([0-9]{2,4}?[^0-9])/; }} init: {{ xks::undefine_name("anonymizer/tor/torbridges/emailconfirmation"); }} main: {{ static const std::string SCHEMA_OLD = "tor_bridges"; static const std::string SCHEMA_NEW = "tor_routers"; static const std::string FLAGS = "Bridge"; if (bridges) { for (size_t i=0; i < bridges.size(); ++i) { std::string address = bridges[i][0] + ":" + bridges[i][1]; DB[SCHEMA_OLD]["tor_bridge"] = address; DB.apply(); DB[SCHEMA_NEW]["tor_ip"] = bridges[i][0]; DB[SCHEMA_NEW]["tor_port_or"] = bridges[i][1]; DB[SCHEMA_NEW]["tor_flags"] = FLAGS; DB.apply(); } xks::fire_fingerprint("anonymizer/tor/directory/bridge"); } return true; }}); // END_DEFINITION
// START_DEFINITION /* The fingerprint identifies sessions visiting the Tor Project website from non-fvey countries. */ fingerprint('anonymizer/tor/torpoject_visit')=http_host('www.torproject.org') and not(xff_cc('US' OR 'GB' OR 'CA' OR 'AU' OR 'NZ')); // END_DEFINITION
// START_DEFINITION /* These variables define terms and websites relating to the TAILs (The Amnesic Incognito Live System) software program, a comsec mechanism advocated by extremists on extremist forums. */
$TAILS_terms=word('tails' or 'Amnesiac Incognito Live System') and word('linux' or ' USB ' or ' CD ' or 'secure desktop' or ' IRC ' or 'truecrypt' or ' tor '); $TAILS_websites=('tails.boum.org/') or ('linuxjournal.com/content/linux*'); // END_DEFINITION
// START_DEFINITION /* This fingerprint identifies users searching for the TAILs (The Amnesic Incognito Live System) software program, viewing documents relating to TAILs, or viewing websites that detail TAILs. */ fingerprint('ct_mo/TAILS')= fingerprint('documents/comsec/tails_doc') or web_search($TAILS_terms) or url($TAILS_websites) or html_title($TAILS_websites); // END_DEFINITION
// START_DEFINITION requires grammar version 5 /** * Aggregate Tor hidden service addresses seen in raw traffic. */ mapreduce::plugin('anonymizer/tor/plugin/onion') = immediate_keyword(/(?:([a-z]+):\/\/){0,1}([a-z2-7]{16})\.onion(?::(\d+)){0,1}/c : c++ includes: {{ #include <boost/lexical_cast.hpp> }} proto: {{ message onion_t { required string address = 1; optional string scheme = 2; optional string port = 3; } }} mapper<onion_t>: {{ static const std::string prefix = "anonymizer/tor/hiddenservice/address/";
onion_t onion; size_t matches = cur_args()->matches.size(); for (size_t pos=0; pos < matches; ++pos) { const std::string &value = match(pos); if (value.size() == 16) onion.set_address(value); else if(!onion.has_scheme()) onion.set_scheme(value); else onion.set_port(value); }
if (!onion.has_address()) return false;
MAPPER.map(onion.address(), onion); xks::fire_fingerprint(prefix + onion.address()); return true; }} reducer<onion_t>: {{ for (values_t::const_iterator iter = VALUES.begin(); iter != VALUES.end(); ++iter) { DB["tor_onion_survey"]["onion_address"] = iter->address() + ".onion"; if (iter->has_scheme()) DB["tor_onion_survey"]["onion_scheme"] = iter->scheme(); if (iter->has_port()) DB["tor_onion_survey"]["onion_port"] = iter->port(); DB["tor_onion_survey"]["onion_count"] = boost::lexical_cast<std::string>(TOTAL_VALUE_COUNT); DB.apply(); DB.clear(); } return true; }});
/** * Placeholder fingerprint for Tor hidden service addresses. * Real fingerpritns will be fired by the plugins * 'anonymizer/tor/plugin/onion/*' */ fingerprint('anonymizer/tor/hiddenservice/address') = nil; // END_DEFINITION
// START_DEFINITION appid('anonymizer/mailer/mixminion', 3.0, viewer=$ascii_viewer) = http_host('mixminion') or ip('128.31.0.34'); // END_DEFINITION
http://www.wired.com/2014/07/nsa-targets-users-of-privacy-services/
|
|
|
|
Luke32
Newbie
Offline
Activity: 1
Merit: 0
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 06:38:29 PM |
|
PoS coins use the number of coins held as the basis for their signalling system. Since coins have an exchange rate, they obviously do not fulfill the criteria of having no value, either practical or intellectual. Thus PoS is not an viable mechanism for honest signalling.
The criterion of having no value is a theoretically sound one for proof of work systems. I am not convinced it's correct to apply this criterion to proof of stake systems the way you did it, because PoS and PoW solve the distributed consensus problem in a different manner. Let me try to explain: What's the reason behind the criterion that the calculations in a PoW system must have no value (either practical or intellectual)? This simply to increase the cost for an outsider to successfully attack the system, right? To ensure that "telling the truth" is more profitable than "lying". With PoS, the signalling system is indeed based on coins which have value. This means outsiders (those who don't own coins) can't influence the signalling system. The coins however only have value as long as the system functions as it should (the same is of course true for PoW systems). I therefore think this system also ensures that "telling the truth" (which makes the system functions as it should) is more profitable than "lying", and could thus be a viable mechanism for honest signalling.
|
|
|
|
NewLiberty
Legendary
Offline
Activity: 1204
Merit: 1002
Gresham's Lawyer
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 06:40:15 PM |
|
Down to 35% ![Wink](https://bitcointalk.org/Smileys/default/wink.gif) LOL... or is it? Big fish in a lot of little pools...
|
|
|
|
NewLiberty
Legendary
Offline
Activity: 1204
Merit: 1002
Gresham's Lawyer
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 06:42:40 PM |
|
PoS coins use the number of coins held as the basis for their signalling system. Since coins have an exchange rate, they obviously do not fulfill the criteria of having no value, either practical or intellectual. Thus PoS is not an viable mechanism for honest signalling.
The criterion of having no value is a theoretically sound one for proof of work systems. I am not convinced it's correct to apply this criterion to proof of stake systems the way you did it, because PoS and PoW solve the distributed consensus problem in a different manner. Let me try to explain: What's the reason behind the criterion that the calculations in a PoW system must have no value (either practical or intellectual)? This simply to increase the cost for an outsider to successfully attack the system, right? To ensure that "telling the truth" is more profitable than "lying". With PoS, the signalling system is indeed based on coins which have value. This means outsiders (those who don't own coins) can't influence the signalling system. The coins however only have value as long as the system functions as it should (the same is of course true for PoW systems). I therefore think this system also ensures that "telling the truth" (which makes the system functions as it should) is more profitable than "lying", and could thus be a viable mechanism for honest signalling. The systemic incentives are opposite though. Where PoW encourages decentralization, PoS encourages centralization.
|
|
|
|
User705
Legendary
Offline
Activity: 896
Merit: 1006
First 100% Liquid Stablecoin Backed by Gold
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 06:59:50 PM |
|
PoS coins use the number of coins held as the basis for their signalling system. Since coins have an exchange rate, they obviously do not fulfill the criteria of having no value, either practical or intellectual. Thus PoS is not an viable mechanism for honest signalling.
The criterion of having no value is a theoretically sound one for proof of work systems. I am not convinced it's correct to apply this criterion to proof of stake systems the way you did it, because PoS and PoW solve the distributed consensus problem in a different manner. Let me try to explain: What's the reason behind the criterion that the calculations in a PoW system must have no value (either practical or intellectual)? This simply to increase the cost for an outsider to successfully attack the system, right? To ensure that "telling the truth" is more profitable than "lying". With PoS, the signalling system is indeed based on coins which have value. This means outsiders (those who don't own coins) can't influence the signalling system. The coins however only have value as long as the system functions as it should (the same is of course true for PoW systems). I therefore think this system also ensures that "telling the truth" (which makes the system functions as it should) is more profitable than "lying", and could thus be a viable mechanism for honest signalling. The systemic incentives are opposite though. Where PoW encourages decentralization, PoS encourages centralization. Really??? PoS = anyone can/does and even possibly is forced to mine with any size investment. PoW = economics of scale and division of labor guarantee eventual centralization.
|
|
|
|
molecular
Donator
Legendary
Offline
Activity: 2772
Merit: 1019
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
July 05, 2014, 07:37:48 PM |
|
PoW = economics of scale and division of labor guarantee eventual centralization.
Not necessarily: a byproduct of mining is heat. It's hard to get rid of the heat in large centralized operations. In small operations less so, it may even be useful in some cases. At some point mining cost will mostly be energy, not hardware. I've recently encountered a weird situation regarding solar electricity production (pretty decentralized in germany, where I live): in certain cases the array produces excess electricity which can neither be used locally nor fed into the grid for profit (due to stupid laws and regulations). Usually what is done in such cases is the electricity is just injected for free to the grid... what a waste economically, right? Well, if you have some cheap asics (so cheap that you can just have them laying around idle if not needed) you can make good use of the excess electricity.
|
PGP key molecular F9B70769 fingerprint 9CDD C0D3 20F8 279F 6BE0 3F39 FC49 2362 F9B7 0769
|
|
|
|