summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorodinn <odinn.cyberguerrilla@riseup.net>2014-12-12 13:41:34 +0000
committerbitcoindev <bitcoindev@gnusha.org>2014-12-12 13:41:57 +0000
commit5b387e3a4cb8d6840d45a66d1d82f7154c676f42 (patch)
tree8ba3e708221a3f9b6f5b1b3284fe5a951ae12420
parent0e9c898d60ab72664e38d34bb4b39b18e7309003 (diff)
downloadpi-bitcoindev-5b387e3a4cb8d6840d45a66d1d82f7154c676f42.tar.gz
pi-bitcoindev-5b387e3a4cb8d6840d45a66d1d82f7154c676f42.zip
Re: [Bitcoin-development] Setting the record straight on Proof-of-Publication
-rw-r--r--bf/45d8cdc8d1d536792974a326e095eedde61eac482
1 files changed, 482 insertions, 0 deletions
diff --git a/bf/45d8cdc8d1d536792974a326e095eedde61eac b/bf/45d8cdc8d1d536792974a326e095eedde61eac
new file mode 100644
index 000000000..65683865f
--- /dev/null
+++ b/bf/45d8cdc8d1d536792974a326e095eedde61eac
@@ -0,0 +1,482 @@
+Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191]
+ helo=mx.sourceforge.net)
+ by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76)
+ (envelope-from <odinn.cyberguerrilla@riseup.net>) id 1XzQTh-0007Xi-1y
+ for bitcoin-development@lists.sourceforge.net;
+ Fri, 12 Dec 2014 13:41:57 +0000
+Received-SPF: pass (sog-mx-1.v43.ch3.sourceforge.com: domain of riseup.net
+ designates 198.252.153.129 as permitted sender)
+ client-ip=198.252.153.129;
+ envelope-from=odinn.cyberguerrilla@riseup.net;
+ helo=mx1.riseup.net;
+Received: from mx1.riseup.net ([198.252.153.129])
+ by sog-mx-1.v43.ch3.sourceforge.com with esmtps (TLSv1:AES256-SHA:256)
+ (Exim 4.76) id 1XzQTe-0004w2-Mr
+ for bitcoin-development@lists.sourceforge.net;
+ Fri, 12 Dec 2014 13:41:52 +0000
+Received: from berryeater.riseup.net (berryeater-pn.riseup.net [10.0.1.120])
+ (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits))
+ (Client CN "*.riseup.net",
+ Issuer "COMODO RSA Domain Validation Secure Server CA" (verified OK))
+ by mx1.riseup.net (Postfix) with ESMTPS id B5C9B40CDA
+ for <bitcoin-development@lists.sourceforge.net>;
+ Fri, 12 Dec 2014 13:41:43 +0000 (UTC)
+Received: from [127.0.0.1] (localhost [127.0.0.1])
+ (Authenticated sender: odinn.cyberguerrilla)
+ with ESMTPSA id 33D0A42798
+Message-ID: <548AF08E.6080408@riseup.net>
+Date: Fri, 12 Dec 2014 13:41:34 +0000
+From: odinn <odinn.cyberguerrilla@riseup.net>
+MIME-Version: 1.0
+To: bitcoin-development@lists.sourceforge.net
+References: <20141212090551.GA8259@muck>
+In-Reply-To: <20141212090551.GA8259@muck>
+Content-Type: text/plain; charset=windows-1252
+Content-Transfer-Encoding: 7bit
+X-Virus-Scanned: clamav-milter 0.98.4 at mx1
+X-Virus-Status: Clean
+X-Spam-Score: -1.6 (-)
+X-Spam-Report: Spam Filtering performed by mx.sourceforge.net.
+ See http://spamassassin.org/tag/ for more details.
+ -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/,
+ no trust [198.252.153.129 listed in list.dnswl.org]
+ -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for
+ sender-domain
+ -0.0 SPF_HELO_PASS SPF: HELO matches SPF record
+ -0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay
+ domain
+ -0.0 SPF_PASS SPF: sender matches SPF record
+ -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from
+ author's domain
+ 0.1 DKIM_SIGNED Message has a DKIM or DK signature,
+ not necessarily valid
+ -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature
+ 0.0 UNPARSEABLE_RELAY Informational: message has unparseable relay
+ lines
+X-Headers-End: 1XzQTe-0004w2-Mr
+Subject: Re: [Bitcoin-development] Setting the record straight on
+ Proof-of-Publication
+X-BeenThere: bitcoin-development@lists.sourceforge.net
+X-Mailman-Version: 2.1.9
+Precedence: list
+List-Id: <bitcoin-development.lists.sourceforge.net>
+List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
+ <mailto:bitcoin-development-request@lists.sourceforge.net?subject=unsubscribe>
+List-Archive: <http://sourceforge.net/mailarchive/forum.php?forum_name=bitcoin-development>
+List-Post: <mailto:bitcoin-development@lists.sourceforge.net>
+List-Help: <mailto:bitcoin-development-request@lists.sourceforge.net?subject=help>
+List-Subscribe: <https://lists.sourceforge.net/lists/listinfo/bitcoin-development>,
+ <mailto:bitcoin-development-request@lists.sourceforge.net?subject=subscribe>
+X-List-Received-Date: Fri, 12 Dec 2014 13:42:10 -0000
+
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA512
+
+Peter... It kind of sounds to me that (as fine of a position paper as
+this is) on _certain_ points, you're falling prey to the "but it's
+inefficient, but it's a scamcoin, but luke-jr told me so" argument...
+
+I think the Mastercoin devs are doing fine work and I consider the
+zerocash devs to have developed (in v2, mint and pour) to have
+developed something that will really turn the world on its ear, but
+what do I know? Nothing. Nothing at all.
+
+gmorning
+
+Peter Todd:
+> Introduction ============
+>
+> While not a new concept proof-of-publication is receiving a
+> significant amount of attention right now both as an idea, with
+> regard to the embedded consensus systems that make use of it, and
+> in regard to the sidechains model proposed by Blockstream that
+> rejects it. Here we give a clear definition of proof-of-publication
+> and its weaker predecessor timestamping, describe some usecases for
+> it, and finally dispel some of the common myths about it.
+>
+>
+> What is timestamping? =====================
+>
+> A cryptographic timestamp proves that message m existed prior to
+> some time t.
+>
+> This is the cryptographic equivalent of mailing yourself a
+> patentable idea in a sealed envelope to establish the date at which
+> the idea existed on paper.
+>
+> Traditionally this has been done with one or more trusted third
+> parties who attest to the fact that they saw m prior to the time t.
+> More recently blockchains have been used for this purpose,
+> particularly the Bitcoin blockchain, as block headers include a
+> block time which is verified by the consensus algorithm.
+>
+>
+> What is proof-of-publication? =============================
+>
+> Proof-of-publication is what solves the double-spend problem.
+>
+> Cryptographic proof-of-publication actually refers to a few
+> closely related proofs, and practical uses of it will generally
+> make use of more than one proof.
+>
+>
+> Proof-of-receipt ----------------
+>
+> Prove that every member p in of audience P has received message m.
+> A real world analogy is a legal notice being published in a major
+> newspaper - we can assume any subscriber received the message and
+> had a chance to read it.
+>
+>
+> Proof-of-non-publication ------------------------
+>
+> Prove that message m has *not* been published. Extending the above
+> real world analogy the court can easily determine that a legal
+> notice was not published when it should have been by examining
+> newspaper archives. (or equally, *because* the notice had not been
+> published, some action a litigant had taken was permissable)
+>
+>
+> Proof-of-membership -------------------
+>
+> A proof-of-non-publication isn't very useful if you can't prove
+> that some member q is in the audience P. In particular, if you are
+> to evaluate a proof-of-membership, q is yourself, and you want
+> assurance you are in that audience. In the case of our newspaper
+> analogy because we know what today's date is, and we trust the
+> newspaper never to publish two different editions with the same
+> date we can be certain we have searched all possible issues where
+> the legal notice may have been published.
+>
+>
+> Real-world proof-of-publication: The Torrens Title System
+> ---------------------------------------------------------
+>
+> Land titles are a real-world example, dating back centuries, with
+> remarkable simularities to the Bitcoin blockchain. Prior to the
+> torrens system land was transferred between owners through a chain
+> of valid title deeds going back to some "genesis" event
+> establishing rightful ownership independently of prior history. As
+> with the blockchain the title deed system has two main problems:
+> establishing that each title deed in the chain is valid in
+> isolation, and establishing that no other valid title deeds exist.
+> While the analogy isn't exact - establishing the validity of title
+> deeds isn't as crisp a process as simple checking a cryptographic
+> signature - these two basic problems are closely related to the
+> actions of checking a transaction's signatures in isolation, and
+> ensuring it hasn't been double-spent.
+>
+> To solve these problems the Torrens title system was developed,
+> first in Australia and later Canada, to establish a singular
+> central registry of deeds, or property transfers. Simplifying a bit
+> we can say inclusion - publication - in the official registery is a
+> necessary pre-condition to a given property transfer being valid.
+> Multiple competing transfers are made obvious, and the true valid
+> transfer can be determined by whichever transfer happened first.
+>
+> Similarly in places where the Torrens title system has not been
+> adopted, almost always a small number of title insurance providers
+> have taken on the same role. The title insurance provider maintains
+> a database of all known title deeds, and in practice if a given
+> title deed isn't published in the database it's not considered
+> valid.
+>
+>
+> Common myths ============
+>
+> Proof-of-publication is the same as timestamping
+> ------------------------------------------------
+>
+> No. Timestamping is a significantly weaker primitive than
+> proof-of-publication. This myth seems to persist because
+> unfortunately many members of the Bitcoin development and theory
+> community - and even members of the Blockstream project - have
+> frequently used the term "timestamping" for applications that need
+> proof-of-publication.
+>
+>
+> Publication means publishing meaningful data to the whole world
+> ---------------------------------------------------------------
+>
+> No. The data to be published can often be an otherwise meaningless
+> nonce, indistinguishable from any other random value. (e.g. an ECC
+> pubkey)
+>
+> For example colored coins can be implemented by committing the hash
+> of the map of colored inputs to outputs inside a transaction. These
+> maps can be passed from payee to payor to prove that a given output
+> is colored with a set of recursive proofs, as is done in the
+> author's Smartcolors library. The commitment itself can be a simple
+> hash, or even a pay-to-contract style derived pubkey.
+>
+> A second example is Zerocash, which depends on global consensus of
+> a set of revealed serial numbers. As this set can include
+> "false-positives" - false revealed serial numbers that do not
+> actually correspond to a real Zerocash transaction - the blockchain
+> itself can be that set. The Zerocash transactions themselves - and
+> associated proofs - can then be passed around via a p2p network
+> separate from the blockchain itself. Each Zerocash Pour proof then
+> simply needs to specify what set of priorly evaluated proofs makes
+> up its particular commitment merkle tree and the proofs are then
+> evaluated against that proof-specific tree. (in practice likely
+> some kind of DAG-like structure) (note that there is a sybil attack
+> risk here: a sybil attack reduces your k-anonymity set by the
+> number of transactions you were prevented from seeing; a weaker
+> proof-of-publication mechanism may be appropriate to prevent that
+> sybil attack).
+>
+> The published data may also not be meaningful because it is
+> encrypted. Only a small community may need to come to consensus
+> about it; everyone else can ignore it. For instance
+> proof-of-publication for decentralized asset exchange is an
+> application where you need publication to be timely, however the
+> audience may still be small. That audience can share an encryption
+> key.
+>
+>
+> Proof-of-publication is always easy to censor
+> ---------------------------------------------
+>
+> No, with some precautions. This myth is closely related to the
+> above idea that the data must be globally meaningful to be useful.
+> The colored coin and Zerocash examples above are cases where
+> censoring the publication is obviously impossible as it can be made
+> prior to giving anyone at all sufficient info to determine if the
+> publicaiton has been made; the data itself is just nonces.
+>
+> In the case of encrypted data the encryption key can also often be
+> revealed well after the publication has been made. For instance in
+> a Certificate Transparency scheme the certificate authority (CA)
+> may use proof-of-publication to prove that a certificate was in a
+> set of certificates. If that set of certificates is hashed into a
+> merkelized binary prefix tree indexed by domain name the correct
+> certificate for a given domain name - or lack thereof - is easily
+> proven. Changes to that set can be published on the blockchain by
+> publishing successive prefix tree commitments.
+>
+> If these commitments are encrypted, each commitment C_i can also
+> commit to the encryption key to be used for C_{i+1}. That key need
+> not be revealed until the commitment is published; validitity is
+> assured as every client knows that only one C_{i+1} is possible, so
+> any malfeasance is guaranteed to be revealed when C_{i+2} is
+> published.
+>
+> Secondly the published data can be timelock encrypted with
+> timelocks that take more than the average block interval to
+> decrypt. This puts would-be censoring miners into a position of
+> either delaying all transactions, or accepting that they will end
+> up mining publication proofs. The only way to circumvent this is
+> highly restrictive whitelisting.
+>
+>
+> Proof-of-publication is easier to censor than (merge)-mined
+> sidechains
+> ----------------------------------------------------------------------
+>
+> False under all circumstances. Even if the publications use no
+> anti-censorship techniques to succesfully censor a
+> proof-of-publication system at least 51% of the total hashing power
+> must decide to censor it, and they must do so by attacking the
+> other 49% of hashing power - specifically rejecting their blocks.
+> This is true no matter how "niche" the proof-of-publication system
+> is - whether it is used by two people or two million people it has
+> the same security.
+>
+> On the other hand a (merge)-mined sidechain with x% of the total
+> hashing power supporting it can be attacked at by anyone with >x%
+> hashing power. In the case of a merge-mined sidechain this cost
+> will often be near zero - only by providing miners with a
+> significant and ongoing reward can the marginal cost be made high.
+> In the case of sidechains with niche audiences this is particularly
+> true - sidechain advocates have often advocated that sidechains be
+> initially protected by centralized checkpoints until they become
+> popular enough to begin to be secure.
+>
+> Secondly sidechains can't make use of anti-censorship techniques
+> the way proof-of-publication systems can: they inherently must be
+> public for miners to be able to mine them in a decentralized
+> fashion. Of course, users of them may use anti-censorship
+> techniques, but that leads to a simple security-vs-cost tradeoff
+> between using the Bitcoin blockchain and a sidechain. (note the
+> simularity to the author's treechains proposal!)
+>
+>
+> Proof-of-publication can be made expensive
+> ------------------------------------------
+>
+> True, in some cases! By tightly constraining the Bitcoin scripting
+> system the available bytes for stenographic embedment can be
+> reduced. For instance P2SH^2 requires an brute force exponentially
+> increasing amount of hashes-per-byte-per-pushdata. However this is
+> still ineffective against publishing hashes, and to fully implement
+> it - scriptSigs included - would require highly invasive changes to
+> the entire scripting system that would greatly limit its value.
+>
+>
+> Proof-of-publication can be outsourced to untrusted third-parties
+> -----------------------------------------------------------------
+>
+> Timestamping yes, but proof-of-publication no.
+>
+> We're talking about systems that attempt to publish multiple pieces
+> of data from multiple parties with a single hash in the Bitcoin
+> blockchain, such as Factom. Essentially this works by having a
+> "child" blockchain, and the hash of that child blockchain is
+> published in the master Bitcoin blockchain. To prove publicaiton
+> you prove that your message is in that child chain, and the child
+> chain is itself published in the Bitcoin blockchain. Proving
+> membership is possible for yourself by determining if you have the
+> contents corresponding to the most recent child-chain hash.
+>
+> The problem is proving non-publication. The set of all *potential*
+> child-chain hashes must be possible to obtain by scanning the
+> Bitcoin blockchain. As a hash is meaningless by itself, these
+> hashes must be signed. That introduces a trusted third-party who
+> can also sign an invalid hash that does not correspond to a block
+> and publish it in the blockchain. This in turn makes it impossible
+> for anyone using the child blockchain to prove non-publication -
+> they can't prove they did not publish a message because the content
+> of *all* child blockchains is now unknown.
+>
+> In short, Factom and systems like it rely on trusted third parties
+> who can put you in a position where you can't prove you did not
+> commit fraud.
+>
+>
+> Proof-of-publication "bloats" the blockchain
+> --------------------------------------------
+>
+> Depends on your perspective.
+>
+> Systems that do not make use of the UTXO are no different
+> technically than any other transaction: they pay fees to publish
+> messages to the Bitcoin blockchain with no amortized increase in
+> the UTXO set. Some systems do grow the UTXO set - a potential
+> scaling problem as currently that all full nodes must have the
+> entire UTXO set - although there are a number of existing
+> mechanisms and proposals to mitigate this issue such as the
+> (crippled) OP_RETURN scriptPubKey format, the dust rule, the
+> authors TXO commitments, UTXO expiry etc.
+>
+> From an economic point of view proof-of-publication systems compete
+> with other uses of the blockchain as they pay fees; supply of
+> blockchain space is fixed so the increased demand must result in a
+> higher per-transaction price in fees. On the other hand this is
+> true of *all* uses of the blockchain, which collectively share the
+> limited transaction capacity. For instance Satoshidice and similar
+> sites have been widely condemned for doing conventional
+> transactions on Bitcoin when they could have potentially used
+> off-chain transactions.
+>
+> It's unknown what the effect on the Bitcoin price will actually be.
+> Some proof-of-publication uses have nothing to do with money at all
+> - e.g. certificate transparency. Others are only indirectly
+> related, such as securing financial audit logs such as
+> merkle-sum-trees of total Bitcoins held by exchanges. Others in
+> effect add new features to Bitcoin, such as how colored coins
+> allows the trade of assets on the blockchain, or how Zerocash makes
+> Bitcoin transactions anonymous. The sum total of all these effects
+> on the Bitcoin price is difficult to predict.
+>
+> The authors belief is that even if proof-of-publication is a
+> net-negative to Bitcoin as it is significantly more secure than
+> the alternatives and can't be effectively censored people will use
+> it regardless of effects to discourage them through social
+> pressure. Thus Bitcoin must make technical improvements to
+> scalability that negate these potentially harmful effects.
+>
+>
+> Proof-of-publication systems are inefficient
+> --------------------------------------------
+>
+> If you're talking about inefficient from the perspective of a
+> full-node that does full validation, they are no different than
+> (merge)-mined sidechain and altcoin alternatives. If you're talking
+> about efficiency from the perspective of a SPV client, then yes,
+> proof-of-publication systems will often require more resources than
+> mining-based alternatives.
+>
+> However it must be remembered that the cost of mining is the
+> introduction of a trusted third party - miners. Of course, mined
+> proof-of-publication has miners already, but trusting those miners
+> to determine the meaning of that data places significantly more
+> trust in them than mearly trusting them to create consensus on the
+> order in which data is published.
+>
+> Many usecases involve trusted third-parties anyway - the role of
+> proof-of-publication is to hold those third-parties to account and
+> keep them honest. For these use-cases - certificate transparency,
+> audit logs, financial assets - mined alternatives simply add new
+> trusted third parties and points of failure rather than remove
+> them.
+>
+> Of course, global consensus is inefficient - Bitcoin itself is
+> inefficient. But this is a fundemental problem to Bitcoin's
+> architecture that applies to all uses of it, a problem that should
+> be solved in general.
+>
+>
+> Proof-of-publication needs "scamcoins" like Mastercoin and
+> Counterparty
+> -----------------------------------------------------------------------
+>
+> First of all, whether or not a limited-supply token is a "scam" is
+> not a technical question. However some types of embedded consensus
+> systems, a specific use-case for proof-of-publication, do require
+> limited-supply tokens within the system for technical reasons, for
+> instance to support bid orders functionality in decentralized
+> marketplaces.
+>
+> Secondly using a limited-supply token in a proof-of-publicaton
+> system is what lets you have secure client side validation rather
+> than the alternative of 2-way-pegging that requires users to trust
+> miners not to steal the pegged funds. Tokens also do not need to
+> be, economically speaking, assets that can appreciate in value
+> relative to Bitcoin; one-way-pegs where Bitcoins can always be
+> turned into the token in conjunction with decentralized exchange to
+> buy and sell tokens for Bitcoins ensure the token value will always
+> closely approximate the Bitcoin value as long as the protocol
+> itself is considered valuable.
+>
+> Finally only a subset of proof-of-publication use-cases involve
+> tokens at all - many like colored coins transact directly to and
+> from Bitcoin, while other use-cases don't even involve finance at
+> all.
+>
+>
+>
+> ------------------------------------------------------------------------------
+>
+>
+Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
+> from Actuate! Instantly Supercharge Your Business Reports and
+> Dashboards with Interactivity, Sharing, Native Excel Exports, App
+> Integration & more Get technology previously reserved for
+> billion-dollar corporations, FREE
+> http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
+>
+>
+>
+>
+> _______________________________________________ Bitcoin-development
+> mailing list Bitcoin-development@lists.sourceforge.net
+> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
+>
+
+- --
+http://abis.io ~
+"a protocol concept to enable decentralization
+and expansion of a giving economy, and a new social good"
+https://keybase.io/odinn
+-----BEGIN PGP SIGNATURE-----
+
+iQEcBAEBCgAGBQJUivCNAAoJEGxwq/inSG8ChVUH/26zj2pj7AF+oa2RDkPZN980
+qFTY7x2s9w97bEuCiFfFpYjIP26mY4+snuoTWBa8yCp7gLVVsk9JKkN0dmXIboXf
+ocoJY9s/wT7QLqJMRRwWb/8XPKwjXB10PNawCRoUk++8E0Y+W6mxiH5Gs1UnYKwI
+2DHHh/hTh35mR5burwdLGEMLaVtK4BFLJTZwW+4xlWESsoWeQnxEuty799HldOaN
++wms8dvtZlzJElLUPjBGBZT6DRTaPsvqSvQ0CnHI84LYwuUObMcV89mkBcfTHlMt
+MczwaO7CCc/jmoOoQKDyIVuW1eJeXggln+LOS34qwH8rCgjdOZeT3y4PgUTZ+AM=
+=Sm96
+-----END PGP SIGNATURE-----
+
+