¿Puedo bloquear el uso de una transacción hasta que se cumpla una condición particular?

Planeo abrir un sitio web de comercio electrónico desde el cual aceptaré BTC como pago. Sin embargo, los usuarios no quieren pagar con BTC sin obtener los bienes ya que mi sitio recién se está iniciando. ¿Cuáles son las opciones que tengo?

Respuestas (2)

Su pregunta indica cierta experiencia con bitcoin, por lo que seré muy técnico. Es posible que desee buscar "contratos inteligentes" como palabras clave. En el mundo bitcoin hablamos de checklocktimeverify y checksequenceverify, junto con algo de multisig (como servicio de custodia). Hay muchos ejemplos, por ejemplo, aquí (esto es básicamente lo que publiqué en bitcointalk):

IF
    2 <Alice's pubkey> <Bob's pubkey> <Escrow's pubkey> 3 CHECKMULTISIG
ELSE
    "30d" CHECKSEQUENCEVERIFY DROP
    <Alice's pubkey> CHECKSIG
ENDIF

o algo como esto:

 if
  <merchant pubkey> checksigverify
 else
  <timestamp> checklocktimeverify drop
 endif
 <customer pubkey> checksig

En mi humilde opinión, n-of-m multisig es la forma más fácil de un contrato. El servicio de custodia es la siguiente capa (como en los ejemplos anteriores). Pueden asegurarse de que BTC solo se pague cuando se cumpla una condición específica.

Y luego uno puede crear construcciones muy específicas como:

CHECKSEQUENCEVERIFY: bloquea algunos Satoshis hasta que haya pasado un número específico de bloques, antes de poder usarlos

CHECKLOCKTIMEVERIFY: bloquee algunos Satoshis hasta que aparezca un número específico de bloque (también conocido como mi hijo tiene 18 años...), pero use un multisig 2-3 para liberar los fondos en caso de que se requieran fondos antes

Llega incluso al punto en que puede crear gastos de tx, donde el hash de una condición debe ser igual a un valor previamente definido. Veo algunas limitaciones cuando trato de usar Oracles (también conocidos como datos de "afuera"), tal vez datos de intercambios o de la vida real (en caso de muerte).

Algunos ejemplos más en el libro de Andreas "Mastering Bitcoin" (segunda edición) en el capítulo "Timelocks".

o aquí:

https://bitcointalk.org/index.php?topic=1300723.0

https://bitcointalk.org/index.php?topic=1558207.0

https://bitcointalk.org/index.php?topic=1952248.0

o aquí:

https://www.reddit.com/r/Bitcoin/comments/4kit49/is_it_safe_to_use_cltv_for_recurring_payments/

https://www.reddit.com/r/Bitcoin/comments/4p4klg/bitcoin_core_project_the_csv_soft_fork_has/d4i01he/

y aquí:

https://en.bitcoin.it/wiki/Timelock

https://en.bitcoin.it/wiki/Contratos

Soluciones posibles)

Dependiendo del tipo de bienes que venda, el tamaño de su empresa y el precio de los bienes que venda, podría buscar Ethereum y contratos inteligentes.

Si los productos no son digitales, no puede usar contratos inteligentes a menos que les agregue gemelos digitales . Los Gemelos Digitales funcionarán para automóviles , tal vez ropa de marca y productos similares, pero no para naranjas o cacahuates .

Espero poder ayudarte un poco, pero es difícil con tan poca información sobre tu sitio.

Propongo votar negativamente, porque la respuesta "mirar en Ethereum" muestra un desconocimiento fatal del entorno de bitcoin, y parece repetir un mito común, que solo Ethereum puede proporcionar contratos inteligentes. Bitcoin ya tiene contratos inteligentes que proporcionan lo que pide el usuario.
Editar la publicación con enlaces a contratos inteligentes de Bitcoin sería mucho más útil que votar negativamente. ¿El gemelo digital tampoco fue útil? Y sí: hubo un desconocimiento fatal de los contratos inteligentes de BTC de mi parte. Gracias por traer esto a mi atención. Voy a echarles un vistazo ahora mismo.
aceptado y eliminado el voto negativo. Y como Schrotti suena tan alemán: Entschuldigung. :-)