FLOT BKS Operations (buy side)

Continuing the discussion from [Passed] Nusafe - An 30k hedge of Tier 4 funds in USD:

Following the message from @Dhume this is the thread in which the creation of the BKS 3-of-5 multisig address will be created, tested and funded.

edit:
BKS multisig address 97zQy9VWLYcM6BeYGBv7bEJpRdxAy5cvEH:

addmultisigaddress 3 '["0234139729dd413c84a71a0bfd6f236790be861b37311cef3240277c940e4b0c07", "023c41edc461814e825a0847f9031fddf9b2610bb91992724920107f5fd07b4922", "029684f165042b44197bce605d81e3e9b22acb8ae677ea4ea3412307b3ff26ea6e", "0304571109f4e9dd3ce67133df452375597d20f583894cdd8ed09c65a3a3e3be5a", "034b0bd0f653d4ac0a2e9e81eb1863bb8e5743f6cb1ea40d845b939c225a1a80ff"]'

redeem script for 97zQy9VWLYcM6BeYGBv7bEJpRdxAy5cvEH:

53210234139729dd413c84a71a0bfd6f236790be861b37311cef3240277c940e4b0c0721023c41edc461814e825a0847f9031fddf9b2610bb91992724920107f5fd07b492221029684f165042b44197bce605d81e3e9b22acb8ae677ea4ea3412307b3ff26ea6e210304571109f4e9dd3ce67133df452375597d20f583894cdd8ed09c65a3a3e3be5a21034b0bd0f653d4ac0a2e9e81eb1863bb8e5743f6cb1ea40d845b939c225a1a80ff55ae

To ping relevant FLOT members:
@jooize, @cryptog, @mhps, @woodstockmerkle, @dysconnect

Reference post:

1 Like

Is there a confirmation that 5 of 7 is feasible for BKS, unlike for NBT and NSR?

I don’t know.
@sigmike or @erasmospunk might know off the top of their head what limits BKS multisig has.

I created a random 5-of-7 BKS multisig address with Cointoolkit.
It looks like the 482 characters of the redeem script require 241 Bytes space (4 Bits or half a Byte per character, right?).
Is that too much for the blockchain?

If @sigmike and @erasmospunk are not available, we can try to find it out by testing.

I still see this in the code:

bool CTransaction::IsStandard() const
{
  BOOST_FOREACH(const CTxIn& txin, vin)
  {
 // Biggest 'standard' txin is a 3-signature 3-of-3 CHECKMULTISIG
 // pay-to-script-hash, which is 3 ~80-byte signatures, 3
 // ~65-byte public keys, plus a few script ops.
    if (txin.scriptSig.size() > 500)
      return false;
    if (!txin.scriptSig.IsPushOnly())
      return false;
  }
  ...
}

Which means BCE can only reliably handle 3-of-5 at the moment.

Thank you for digging in the code.
If 3-of-5 is the maximum, we need to work with that.
But that means that the 5 FLOT members need to be determined in some way.

Would “first come, first serve” do?
Or are there any constraints? I wouldn’t know how to determine who’s signer and who isn’t…

Just out of curiosity:
would 3-of-6 or 3-of-7 work as well (although that wouldn’t increase the security and merely the chances to redeem the funds)?
The limit is the 3 signatures of the input tx (which needs to be <= 500 Bytes), right?

The pub keys also need to be stored in scriptSig. Both 3-of-6 and 3-of-7 can be done, according to erasmospunk’s rule of thumb, but something like 3-of-9 is probably infeasible.

For the sake of load balancing I recommend me, jooize, woodstockmerkle, mhps and cryptog.

2 Likes

Thank you very much for that offer. I will delete my pubkey from the initial post hoping that jooize, woodstockmerkle, mhps and cryptog agree.

I am fine.

1 Like

@woodstockmerkle @mhps and @jooize would you be willing to join @cryptog and @dysconnect fora 3 out of 5 BKS multisig address? Also could all of you post you BKS pub key so we can create an address.

Sorry I have been busy. I will send the pubkey (generated by cointookit) by PM. I don’t have problem signing for nusafe although I don’t feel it’s necessarily FLOT’s duty.

You are right. It isn’t necessarily FLOT’s duty. But as FLOT members are (hopefully) more active and involved in Nu’s liquidity process than other community members (for sure not true for all, but at average), the choice isn’t bad either.

A fairer way is to give FLOT some extra commission out of the expenses of NuSafe. On the other hand, FLOT motions also dictate that each of us abide by motions passed by shareholders.

Anyway, I’m still using the same key:
034b0bd0f653d4ac0a2e9e81eb1863bb8e5743f6cb1ea40d845b939c225a1a80ff

Public Key for BKS operations:

0304571109f4e9dd3ce67133df452375597d20f583894cdd8ed09c65a3a3e3be5a

0234139729dd413c84a71a0bfd6f236790be861b37311cef3240277c940e4b0c07

Thank you all for you swift replies! Now we only need @cryptog pub key to create the BKS address.

Sorry for the delay.

023c41edc461814e825a0847f9031fddf9b2610bb91992724920107f5fd07b4922

Generated with Cointoolkit:
BKS multisig address 97vgjUf9ccmRoyuKRoJgaPAmPA4HhjQd1R.
Does that work (never tried that before!)?

edit: I forgot to put the pubkeys of this BKS multisig address in lexicographical order. They are in order of appearance.
That renders this multisig address unusable or at least not very reliably usable unless the order of the pubkeys is the same when creating transactions.
Sorry for that.

If you use the createmultisig and addmultisig RPCs to generate the multisig address then you use “P2SH multisig” and the current limit is 1-of-12, 2-of-10, 3-of-8 or 4-of-6.

This limit can be increased to 15-of-15 without a change in the protocol because it’s enforced when transactions are relayed, not when they’re included in a block.

You can find the explanation about the limits here:

2 Likes

What’s up here? We have @woodstockmerkle @mhps @jooize @cryptog and @dysconnect. If we also use @Dhume then we can do a 4-of-6 to do what @sigmike said:

1 Like

I urge all involved parties to speeding up this process.
Nu is in the face of Bitcoin’s recent volatility selling a lot of NBT - taking all the BTC volatility risk once more.

@woodstockmerkle, @mhps, @jooize, @cryptog and @dysconnect, please proceed with the BKS multisig that is required for NuSafe

Nu needs to allow @Dhume hedging volatility for at least some of the T4 funds.