[Bitcoin-development] Virtual Notary.

2015-05-20 Thread Emin Gün Sirer
Hi everyone,

Given the recent discussions on projects that use the Bitcoin blockchain to
record factoids, people on this list might be interested in the Virtual
Notary project. Virtual Notary is essentially an online witness (aka
attestor) to online factoids. It can provide:

  * proof of Bitcoin funds (without revealing public addresses or fund
location on the blockchain)

  * proof of Bitcoin address ownership

  * proof of Tweet

  * proof of real estate value

  * proof of DNS ownership

  * proof of existence

  * proof of web page contents

  * proof of weather conditions

The factoids can be recorded on the blockchain (if you pay for the
transaction with Bitcoin or PayPal), or they can be part of a free
attestation chain that we maintain. The website provides a permanent URL to
the factoids it generates; it also provides an X.509 certificate that you
can download and keep safe in perpetuity, independent of the website.

The link to the website is here:
  http://virtual-notary.org

The link to the writeup describing the various factoids and their use cases
is here:
  http://hackingdistributed.com/2013/06/20/virtual-notary-intro/

We are actively looking for people who are interested in developing the
service further. Specifically, if you have suggestions for how to extend
the service, for new proof/factoid types, or for how to build a business
case around the core idea, please let us know.

Best,
- egs
--
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y___
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-development


Re: [Bitcoin-development] Decentralizing ming

2014-07-18 Thread Emin Gün Sirer
I thought I'd chime in and point out some research results that might help.
Even if they don't, there is a cool underlying technique that some of you
might find interesting.

The problem being tackled here is very similar to set reconciliation,
where
peer A thinks that the set of transactions that should be in the block is
S_A,
and peer B has actually included set S_B, and S_A and S_B are expected
to not differ much. Ideally, one would like the communication complexity
between A and B to be O(delta), not O(S_B) as it is right now. And ideally,
one would like B to send a single message to A, and for A to figure out the
difference between the two sets, without any lengthy back and forth
communication. In essence, I would like to give you some magical packet
that is pretty small and communicates just the delta between what you and
I know.

This paper from Cornell describes a scheme for achieving this:
   Yaron Minsky, Ari Trachtenberg, Richard Zippel: Set reconciliation with
nearly optimal communication complexity. IEEE Transactions on Information
Theory 49(9): 2213-2218 (2003)
   http://ipsit.bu.edu/documents/ieee-it3-web.pdf

Those of you looking for a TL;DR should read the intro and then skip to
page 8 for the example. The underlying trick is very cool, comes from the
peer-to-peer/gossip literature, and it is underused. It'd be really cool if
it
could be applied to this problem to reduce the size of the packets.

This approach has three benefits over the Bloom filter approach (if I
understand the Bloom filter idea correctly):

(1) Bloom filters require packets that are still O(S_A),

(2) Bloom filters are probabilistic, so require extra complications
when there is a hash collision. In the worst case, A might get confused
about which transaction B actually included, which would lead to a
fork. (I am not sure if I followed the Bloom filter idea fully -- this may
not happen with the proposal, but it's a possibility with a naive Bloom
filter implementation)

(3) Bloom filters are interactive, so when A detects that B has included
some transactions that A does not know about, it has to send a message
to figure out what those transactions are.

Set reconciliation is O(delta), non-probabilistic, and non-interactive. The
naive version requires that one have some idea of the size of the delta,
but I think the paper has some discussion of how to handle the delta
estimate.

I have not gone through the full exercise of actually applying this trick to
the Bitcoin p2p protocol yet, but wanted to draw your attention to it.
If someone is interested in applying this stuff to Bitcoin, I'd be happy
to communicate further off list.

- egs



On Fri, Jul 18, 2014 at 6:44 AM, Jeff Garzik jgar...@bitpay.com wrote:

 Yes.  That, and several other things.  If you can figure out how to
 propagate a block without re-propagating all the transactions everyone
 already has, you address the large-blocks-slower-to-relay problem, and
 additionally create an incentive for miners to mine blocks consisting
 of publicly broadcast transactions (versus a bunch of secret ones
 mined with secret agreements).

 Democratizing transaction selection takes a bit of power away from the
 miners and gives it back to the network at large.  GBT is another
 piece of that puzzle.


 On Fri, Jul 18, 2014 at 6:43 AM, Mike Hearn m...@plan99.net wrote:
  Oops, sorry, I see the subject line changed. This is what I get for
 working
  down the thread list top to bottom :)
 
  I think the best path forward now is to finish off getblocktemplate
 support
  in the various tools so it's possible to pool for payout purposes without
  giving up control of block creation modulo the coinbase. Combined with
 the
  recent sipa performance enhancing goodness, it would hopefully persuade
 some
  non-trivial chunk of hashpower to go back to running their own node and
  start the process of turning pools merely into payout trackers rather
 than
  block selectors.
 
 
  On Fri, Jul 18, 2014 at 12:41 PM, Mike Hearn m...@plan99.net wrote:
 
  Jeff, I think the message you're replying to got clipped.
 
  Satoshi's only comment AFAIK on the topic of GPU mining was to wish for
 a
  gentlemen's agreement to postpone it as long as possible, to help make
 sure
  the distribution of coins was as even as possible. Indeed this predated
  pooled mining.
 
 



 --
 Jeff Garzik
 Bitcoin core developer and open source evangelist
 BitPay, Inc.  https://bitpay.com/


 --
 Want fast and easy access to all the code in your enterprise? Index and
 search up to 200,000 lines of code with a free copy of Black Duck
 Code Sight - the same software that powers the world's largest code
 search on Ohloh, the Black Duck Open Hub! Try it now.
 http://p.sf.net/sfu/bds
 ___
 Bitcoin-development mailing list
 Bitcoin-development@lists.sourceforge.net
 

Re: [Bitcoin-development] Decentralizing ming

2014-07-18 Thread Emin Gün Sirer
My apologies for posting to the wrong thread.



On Fri, Jul 18, 2014 at 5:51 PM, Emin Gün Sirer el33th4...@gmail.com
wrote:

 I thought I'd chime in and point out some research results that might help.
 Even if they don't, there is a cool underlying technique that some of you
 might find interesting.

 The problem being tackled here is very similar to set reconciliation,
 where
 peer A thinks that the set of transactions that should be in the block is
 S_A,
 and peer B has actually included set S_B, and S_A and S_B are expected
 to not differ much. Ideally, one would like the communication complexity
 between A and B to be O(delta), not O(S_B) as it is right now. And ideally,
 one would like B to send a single message to A, and for A to figure out the
 difference between the two sets, without any lengthy back and forth
 communication. In essence, I would like to give you some magical packet
 that is pretty small and communicates just the delta between what you and
 I know.

 This paper from Cornell describes a scheme for achieving this:
Yaron Minsky, Ari Trachtenberg, Richard Zippel: Set reconciliation with
 nearly optimal communication complexity. IEEE Transactions on Information
 Theory 49(9): 2213-2218 (2003)
http://ipsit.bu.edu/documents/ieee-it3-web.pdf

 Those of you looking for a TL;DR should read the intro and then skip to
 page 8 for the example. The underlying trick is very cool, comes from the
 peer-to-peer/gossip literature, and it is underused. It'd be really cool
 if it
 could be applied to this problem to reduce the size of the packets.

 This approach has three benefits over the Bloom filter approach (if I
 understand the Bloom filter idea correctly):

 (1) Bloom filters require packets that are still O(S_A),

 (2) Bloom filters are probabilistic, so require extra complications
 when there is a hash collision. In the worst case, A might get confused
 about which transaction B actually included, which would lead to a
 fork. (I am not sure if I followed the Bloom filter idea fully -- this may
 not happen with the proposal, but it's a possibility with a naive Bloom
 filter implementation)

  (3) Bloom filters are interactive, so when A detects that B has included
 some transactions that A does not know about, it has to send a message
 to figure out what those transactions are.

 Set reconciliation is O(delta), non-probabilistic, and non-interactive. The
 naive version requires that one have some idea of the size of the delta,
 but I think the paper has some discussion of how to handle the delta
 estimate.

 I have not gone through the full exercise of actually applying this trick
 to
 the Bitcoin p2p protocol yet, but wanted to draw your attention to it.
 If someone is interested in applying this stuff to Bitcoin, I'd be happy
 to communicate further off list.

 - egs



 On Fri, Jul 18, 2014 at 6:44 AM, Jeff Garzik jgar...@bitpay.com wrote:

 Yes.  That, and several other things.  If you can figure out how to
 propagate a block without re-propagating all the transactions everyone
 already has, you address the large-blocks-slower-to-relay problem, and
 additionally create an incentive for miners to mine blocks consisting
 of publicly broadcast transactions (versus a bunch of secret ones
 mined with secret agreements).

 Democratizing transaction selection takes a bit of power away from the
 miners and gives it back to the network at large.  GBT is another
 piece of that puzzle.


 On Fri, Jul 18, 2014 at 6:43 AM, Mike Hearn m...@plan99.net wrote:
  Oops, sorry, I see the subject line changed. This is what I get for
 working
  down the thread list top to bottom :)
 
  I think the best path forward now is to finish off getblocktemplate
 support
  in the various tools so it's possible to pool for payout purposes
 without
  giving up control of block creation modulo the coinbase. Combined with
 the
  recent sipa performance enhancing goodness, it would hopefully persuade
 some
  non-trivial chunk of hashpower to go back to running their own node and
  start the process of turning pools merely into payout trackers rather
 than
  block selectors.
 
 
  On Fri, Jul 18, 2014 at 12:41 PM, Mike Hearn m...@plan99.net wrote:
 
  Jeff, I think the message you're replying to got clipped.
 
  Satoshi's only comment AFAIK on the topic of GPU mining was to wish
 for a
  gentlemen's agreement to postpone it as long as possible, to help make
 sure
  the distribution of coins was as even as possible. Indeed this predated
  pooled mining.
 
 



 --
 Jeff Garzik
 Bitcoin core developer and open source evangelist
 BitPay, Inc.  https://bitpay.com/


 --
 Want fast and easy access to all the code in your enterprise? Index and
 search up to 200,000 lines of code with a free copy of Black Duck
 Code Sight - the same software that powers the world's largest code
 search on Ohloh, the Black Duck Open Hub! Try it now.
 http

Re: [Bitcoin-development] Squashing redundant tx data in blocks on the wire

2014-07-18 Thread Emin Gün Sirer
I thought I'd chime in and point out some research results that might help.
Even if they don't, there is a cool underlying technique that some of you
might find interesting.

The problem being tackled here is very similar to set reconciliation,
where
peer A thinks that the set of transactions that should be in the block is
S_A,
and peer B has actually included set S_B, and S_A and S_B are expected
to not differ much. Ideally, one would like the communication complexity
between A and B to be O(delta), not O(S_B) as it is right now. And ideally,
one would like B to send a single message to A, and for A to figure out the
difference between the two sets, without any lengthy back and forth
communication. In essence, I would like to give you some magical packet
that is pretty small and communicates just the delta between what you and
I know.

This paper from Cornell describes a scheme for achieving this:
   Yaron Minsky, Ari Trachtenberg, Richard Zippel: Set reconciliation with
nearly optimal communication complexity. IEEE Transactions on Information
Theory 49(9): 2213-2218 (2003)
   http://ipsit.bu.edu/documents/ieee-it3-web.pdf

Those of you looking for a TL;DR should read the intro and then skip to
page 8 for the example. The underlying trick is very cool, comes from the
peer-to-peer/gossip literature, and it is underused. It'd be really cool if
it
could be applied to this problem to reduce the size of the packets.

This approach has three benefits over the Bloom filter approach (if I
understand the Bloom filter idea correctly):

(1) Bloom filters require packets that are still O(S_A),

(2) Bloom filters are probabilistic, so require extra complications
when there is a hash collision. In the worst case, A might get confused
about which transaction B actually included, which would lead to a
fork. (I am not sure if I followed the Bloom filter idea fully -- this may
not happen with the proposal, but it's a possibility with a naive Bloom
filter implementation)

(3) Bloom filters are interactive, so when A detects that B has included
some transactions that A does not know about, it has to send a message
to figure out what those transactions are.

Set reconciliation is O(delta), non-probabilistic, and non-interactive. The
naive version requires that one have some idea of the size of the delta,
but I think the paper has some discussion of how to handle the delta
estimate.

I have not gone through the full exercise of actually applying this trick to
the Bitcoin p2p protocol yet, but wanted to draw your attention to it.
If someone is interested in applying this stuff to Bitcoin, I'd be happy
to communicate further off list.

- egs



On Fri, Jul 18, 2014 at 12:55 PM, Jeff Garzik jgar...@bitpay.com wrote:

 Related:  We must handle some legitimate miner-privately-mined cases,
 such as miner payout TXs (outside coinbase) or side chain conditional
 TXs[1].

 [1] https://bitcointalk.org/index.php?topic=676703.msg7682680#msg7682680

 On Fri, Jul 18, 2014 at 3:51 PM, Kaz Wesley kezi...@gmail.com wrote:
  I've updated the gist, and added an additional proposal that I think
  meshes well:
 
 https://gist.github.com/kazcw/43c97d3924326beca87d#ultra-fast-block-validation
 
  sparseblocks + UFBV would tighten the new-block process to this (when
  txes have been received in advance):
  - receive block (~2kB for 1000 tx)
  - check whether block contains txes known to belong to conflict-sets,
  and if so whether more than one tx from a single conflict-set has been
  included (a few operations on very small sets)
  - relay block (~2kB)
 
  The benefits of these changes only occur when the transactions have
  been seen in advance, but incentivizing ahead-of-block transaction
  propogation is a plus, as Jeff mentioned; working on a block without
  first ensuring peers have its transactions would be very expensive
  from a miner's point of view.
 
 
 --
  Want fast and easy access to all the code in your enterprise? Index and
  search up to 200,000 lines of code with a free copy of Black Duck
  Code Sight - the same software that powers the world's largest code
  search on Ohloh, the Black Duck Open Hub! Try it now.
  http://p.sf.net/sfu/bds
  ___
  Bitcoin-development mailing list
  Bitcoin-development@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/bitcoin-development



 --
 Jeff Garzik
 Bitcoin core developer and open source evangelist
 BitPay, Inc.  https://bitpay.com/


 --
 Want fast and easy access to all the code in your enterprise? Index and
 search up to 200,000 lines of code with a free copy of Black Duck
 Code Sight - the same software that powers the world's largest code
 search on Ohloh, the Black Duck Open Hub! Try it now.
 http://p.sf.net/sfu/bds
 ___