W3C home > Mailing lists > Public > public-credentials@w3.org > April 2020

Re: Potential Work Item: Blockchain-Links

From: Kim Hamilton <kimdhamilton@gmail.com>
Date: Fri, 3 Apr 2020 12:44:41 -0700
Message-ID: <CAFmmOzeOKc_=j0B+uaGm+1sanPGhskO_k97mvWfugz3xW+7LhQ@mail.gmail.com>
To: Anthony Ronning <aronning@learningmachine.com>
Cc: Markus Sabadello <markus@danubetech.com>, "W3C Credentials CG (Public List)" <public-credentials@w3.org>
> I wanted to get this out there as a potential work item that might
provide value to others in this space.

Thanks for the proposal Anthony, it looks like a good start. To officially
propose a new work item, please fill out the github work item template
(this pre-populates the necessary fields):
https://github.com/w3c-ccg/community/issues/new?assignees=ChristopherA%2C+jandrieu%2C+kimdhamilton&labels=proposed+work+items&template=ccg-new-work-item-template.md&title=%5BPROPOSED+WORK+ITEM%5D

On Fri, Apr 3, 2020 at 12:37 PM Kim Hamilton <kimdhamilton@gmail.com> wrote:

> > I see the note for BIP0136 saying “TxRef's should be not used for
> positions within the blockchain having a maturity less than 100 blocks”,
> which may be problematic.
>
> This is because you need the block height/position of a confirmed
> transaction. Degree of confidence in transaction confirmation should be
> part of your consideration no matter how it's encoded
>
> On Fri, Apr 3, 2020 at 9:14 AM Anthony Ronning <
> aronning@learningmachine.com> wrote:
>
>> Hey Markus,
>>
>> bech32bis-encoded TxRefs
>>
>> Yeah I think that’s definitely in the realm of possibilities! Is that
>> specifically for just transactions? And does TxRefs rely on block height? I
>> see the note for BIP0136 saying “TxRef's should be not used for positions
>> within the blockchain having a maturity less than 100 blocks”, which may be
>> problematic.
>>
>> All good points to bring up though, at least for a bitcoin specific blink.
>>
>> did:btcr:xz35-jznz-q6mr-7q6;btcr:block-123456=ae676e00
>>
>> I do really like this idea as well. Implementation wise, would that mean
>> that the resolver should look up that block, check the hash, and if it’s
>> not the same then return “not found” or “invalid chain”? Or if the resolver
>> really is keeping track of multiple chain splits, checking block height
>> against that split?
>>
>> In general after a short period of time, forks naturally seem to either
>> die (in the case of orphans) or get renamed. I’d imagine that in the case
>> of bitcoin cash, a DID called did:btcr-cash would be created as well.
>>
>> While I think some of this could be considered chain-specific, I do think
>> getting some common generic parameters and best practices like the DID spec
>> has is a great starting point as well.
>>
>> Anthony
>>
>> On 3 Apr 2020, at 5:35, Markus Sabadello wrote:
>>
>> Looks interesting! Two thoughts:
>>
>> 1. In the case of Bitcoin specifically, would it make sense for Blinks to
>> use the same format that BTCR DIDs are using as their method-specific-id,
>> i.e. bech32bis-encoded TxRefs?
>>
>> In other words, your example:
>>
>> blink:bitcoin:mainnet:000000000000000000010382095b5308881ddf0902b59d0328a1401548383c5a:d7a008c9f9eab701132d394410f4e9d578790fb41848013fc5ba35951acdca24
>>
>> Could also be expresses as follows to be consistent with BTCR DIDs (it's
>> much shorter):
>> blink:bitcoin:rzv7-ypyq-q5n6-7v9
>>
>> 2. In DID Resolution, we also came across the question how you handle
>> forks, e.g. see this issue:
>> https://github.com/w3c-ccg/did-resolution/issues/43
>>
>> One idea we had was that you could include a parameter in a DID URL that
>> indicates which fork you want, e.g.:
>> did:btcr:xz35-jznz-q6mr-7q6;fork=3
>>
>> ... to identify "fork 3" of Bitcoin mainnet.
>>
>> But how can you agree what "fork 3" means?
>>
>> A better idea may be to include one or more parameters that state the
>> expected hash of a certain block (which would unambiguously identify a
>> certain fork), e.g.:
>> did:btcr:xz35-jznz-q6mr-7q6;btcr:block-123456=ae676e00
>>
>> ... to identify the fork which has block hash ae676e00 at block height
>> 123456.
>>
>> all the best,
>> Markus
>> On 4/2/20 7:22 PM, Anthony Ronning wrote:
>>
>> Hello all,
>>
>> I wanted to get this out there as a potential work item that might
>> provide value to others in this space. Blockchain-Links, aka Blinks, as a
>> way to reference blockchain/dlt data in a URI format.
>>
>> https://www.blockcerts.org/blockchain-links/
>>
>> Example:
>>
>>
>> blink:bitcoin:mainnet:000000000000000000010382095b5308881ddf0902b59d0328a1401548383c5a:d7a008c9f9eab701132d394410f4e9d578790fb41848013fc5ba35951acdca24
>>
>> Manu had suggested the idea of using this concept for MerkleProof2019 (
>> https://w3c-dvcg.github.io/lds-merkle-proof-2019/) so that we could
>> minimize the size of proofValue using CBOR encoding. This also opens up
>> the possibility of referencing transactions in fields that are restricted
>> to URI’s. From my experience, referencing blockchain transactions had
>> typically been reserved for JSON or are done so in blockchain-specific ways.
>>
>> The initial draft is an attempt to get the idea out there and adapt on it
>> as needed. The idea is to take a similar approach to DID’s (as far as the
>> DID URI goes) such that the blink:chain-name parameters can be
>> specialized per blockchain or blink chain creator. It may be beneficial to
>> have a registry of existing blink chains.
>>
>> Some other considerations that might be useful to think through are:
>> - Hard forks
>> - Query/command parameters
>> - Other possible examples of defining the most common chains such as
>> bitcoin and ethereum.
>>
>> Any thoughts would be appreciated!
>>
>> Anthony Ronning
>> Learning Machine / Hyland Credentials
>>
>>
>>
Received on Friday, 3 April 2020 19:45:06 UTC

This archive was generated by hypermail 2.4.0 : Thursday, 24 March 2022 20:24:58 UTC