Threshold ECDSA Signatures

Dear community!

As there have been some discussions going in this thread related to security (protocol review, testing, QA in general etc.), let me point out to you this new discussion thread that may be of interest, at least to some of you: Security Sandboxing (Community Consideration)

With this thread, we have just started a community discussion on security sandboxing. It would be great if those of you interested in the topic would join the discussion there.

As security has had so much resonance in the ECDSA, Bitcoin, and other feature discussions, we would like to follow an approach of having a community discussion as a first step of the whole process in order to get your requirements and thoughts on security sandboxing.

We are listening.

6 Likes

Watch the community conversation on threshold ECDSA with Victor Shoup.

6 Likes

Motion passed: :white_check_mark:

https://dashboard.internetcomputer.org/proposal/21340

7 Likes

Congratulations @diegop ! Sorry 1 silly question: I read this article recently regarding Taproot upgrade for the Bitcoin network due in November where it will change its crptographical method from ECDSA to Schnorr. I’m wondering how this change will affect the integration work that is being done by Dfinity at this stage. Thanks.

3 Likes

Good question.

@Manu wrote a great answer to this question on r/dfinity, so instead of copy/pasting, I will instead link to it:

4 Likes

Thanks for reposting this!

I honestly only vaguely understood taproot. This was a very clear explanation. Very excited for direct integration.

4 Likes

Thanks @diegop ~ much appreciated and excellent post by Manu!

Not sure if I missed his comments but I cannot seem to find Manu’s comments about the IC planning to implement Schnorr in line with how BTC is switching to Schnorr (and discarding use of ECDSA unless I am completely wrong on this one). In this regard, I would presume Dfinity is on top of this and as long as the IC’s implementation of ECDSA works fine with BTC (once Schnorr is turned on) then this is probably a non-issue (and my sincere apologies for unnecessarily bringing this issue up).

4 Likes

Thanks @Alixthe!

Not sure if I missed his comments but I cannot seem to find Manu’s comments about the IC planning to implement Schnorr in line with how BTC is switching to Schnorr (and discarding use of ECDSA unless I am completely wrong on this one). In this regard, I would presume Dfinity is on top of this and as long as the IC’s implementation of ECDSA works fine with BTC (once Schnorr is turned on) then this is probably a non-issue (and my sincere apologies for unnecessarily bringing this issue up).

That’s a very good question. I think the article you linked above makes it seem like Schnorr will completely replace ECDSA, and there will be no ECDSA in bitcoin anymore after taproot. This is not the case, addresses currently protected by ECDSA signatures will continue to work as before. Schnorr is just a new option that will additionally be supported. Does that answer your question?

6 Likes

Yes ~ perfect thanks @Manu ~ much appreciated. Sorry but I must have misinterpreted the articles I have read so far which make it seem like Schnorr is going to replace ECDSA when I guess it is in addition to ECDSA. All good! :+1:

3 Likes

I thought this thread would be interested in the update about project scope and design on the Sandboxing project tread: Security Sandboxing (Community Consideration) - #3 by diegop

4 Likes

Just in case anyone here is interested. Jens Groth and I released a paper on the security of several variations of ECDSA, which is available as Cryptology ePrint Archive: Report 2021/1330. While this paper is not specifically on threshold ECDSA. In fact, variations considered are directly motivated by our current design for threshold ECDSA, and the analysis in this paper form the theoretical foundations for the security of our threshold protocol.

7 Likes

Link for the lazy like me :slight_smile: : Cryptology ePrint Archive: Report 2021/1330 - On the security of ECDSA with additive key derivation and presignatures

4 Likes

I tried to insert a link, but it wouldn’t let me.

2 Likes

That happens to me 1/3 of the time, I cannot figure out why or how. there seems to be no rhyme or reason to why discourse (the platform) does this.

2 Likes

Dear community!

Here’s an update on our progress w.r.t. the implementation efforts for the threshold ECDSA feature.

We have implemented a good part of the “foundation” for the feature such as data types, the artifact pool for t-ECDSA artifacts, creating and validating dealings etc., so far all with mock crypto. Some cryptographic primitives have been implemented in parallel, but not yet integrated with consensus so far.

The next big milestone is to get the integration between consensus and crypto for the 4-tuple generation working by around November 20. This is the core part of the protocol and a pretty complex part for consensus. We plan to get this done with some substantial “shortcuts” to get this core part of the feature working end to end. The shortcuts comprise, for example, skipping encryption, zero-knowledge proofs, and complaints. Once we are there, we will implement the functionality we have shortcut in the first iteration and remove the shortcuts one after the other. This agile way of addressing this pretty challenging implementation is the most efficient path towards a fully-working protocol implementation.

We will keep you posted on implementation progress more regularly in the future!

11 Likes

Dear community!

Let me close the week with some information on the timeline of the threshold ECDSA feature:

After setting our next milestone as mentioned in my earlier post this week, we realized that it is highly likely that the feature will only be final next year. It is hard to give a good estimate right now when in Q1 we would be able to release. This will become clearer when more of the implementation will be available. We will keep you posted on this and the implementation progress!

But now let’s get to some great news: We had our first “Bitcoin Community Developer Workshop” yesterday with key folks from DFINITY working on the threshold ECDSA and Bitcoin features and quite a notable number of our dear forum participants. See Direct Integration with Bitcoin - #101 by dieter.sommer for some of the main outcomes of this workshop. Minutes to follow!

I wish you all a great weekend!

5 Likes

I haven’t thought to ask this yet, but what about ECDSA threshold encryption? Will this be possible?

I’m thinking about possible implications for social recovery, proxy reencryption perhaps, stuff like that. It could be useful to encrypt data from within a canister

4 Likes

It looks like ECDSA stands for “Elliptic Curve Digital Signature Algorithm”, so it probably only does signatures :slight_smile:

2 Likes

Dear community!

The minutes of the community workshop of November 4, 2021 have been made available:

Thanks again for the great discussions and input at the workshop!

4 Likes

@lastmjs

It looks like ECDSA stands for “Elliptic Curve Digital Signature Algorithm”, so it probably only does signatures :slight_smile:

Yes, indeed, this feature will “only” do threshold ECDSA signatures. :wink:

Threshold decryption could be implemented as well using multi-party computation algorithms, but this would be a different feature. That is, the private key (decryption key) would be held in a secret-shared manner by all the replicas in the subnet and replicas could jointly decrypt a ciphertext. Do you have concrete use cases where this would be useful?
We have been looking at threshold decryption for backing up threshold ECDSA keys at some point in time.

6 Likes