¿Qué es P2SH?
Ventajas de la implementación de P2SH
Direcciones multifirmas
La activación de P2SH le permite a los usuarios del sistema Bitcoin poder realizar o recibir transacciones en direcciones multifirmas. De hecho, esta es la aplicación más común que se conoce para el formato P2SH. Ya que las direcciones con formato P2SH están diseñadas para admitir un conjunto de firmas que sea igual o menor que la cantidad de claves privadas que están vinculadas o asociadas a ellas. Es decir, en una dirección multifirma que tenga 3 claves asociadas, las 3 claves pueden ser los firmantes, o en su defecto sólo 2 o 1 de ellas.
Por otra parte, las direcciones de Bitcoin que utilizan el formato P2SH se identifican fácilmente ya que inician con el número 3. Pero aunque su uso frecuente sea para crear direcciones multifirma, no siempre que una dirección comience con este número significa que se trata de una dirección multifirma. Una dirección que inicie con el número 3 siempre será una dirección P2SH, pero no siempre se tratará de una dirección multifirma.
Seguridad y Privacidad
A través del formato P2SH un usuario puede financiar cualquier script sin conocer cuáles son las condiciones de gasto que están vinculadas a ese script. Es decir, el usuario puede enviar o compartir los scripts asociados a una transacción sin tener conocimiento parcial o total sobre la configuración de estas condiciones o instrucciones de seguridad.
Por lo que en el caso de ser remitente, el usuario sólo deberá enviar las transacciones que desee realizar a la dirección P2SH. Sin necesidad de saber cómo serán gastados los fondos que ha enviado. Mientras que en el caso de ser receptor o destinatario, el usuario sí debe conocer las condiciones de gastos asociadas con esa transacción. Que pueden variar entre la necesidad de multifirma, contraseña u otro, para poder acceder a las criptomonedas que le han sido enviadas.
Así mismo, si el script de bloqueo P2SH sólo contiene un hash del script, es imposible saber qué tipo de script que proviene de ese hash. Haciendo impoisible que un usuario pueda conocer si una transacción proviene de una dirección particular o de una multifirma.
Salidas no gastadas más pequeñas
Como todas las salidas no gastadas o UTXOs de Bitcoin se almacenan en la memoria RAM de los nodos, es importante ahorrar este espacio de almacenamiento. Así, al emplear scripts de bloqueo P2SH con secuencias más pequeñas, las UTXOs requerirán un espacio menor para ser almacenadas, permitiendo que los nodos sean computacionalmente más eficientes y que trabajen de forma ágil y competente en la validación de las transacciones de la red.
Tarifas de comisión más bajas
Como las tarifas de comisión que son cobradas en Bitcoin no están relacionadas con las cantidades transferidas sino con el tamaño de las transacciones, un hash de script con una longitud más pequeña le permite al remitente de una transacción poder enviar sus fondos a direcciones P2SH sin tener que pagar tarifas de comisión elevadas. Como sí ocurriría en el caso de utilizar los scripts completos.
Aunque esto en la actualidad puede no significar un problema grave, es posible que sí lo sea en el futuro; cuando las recompensas por minería se reduzcan y los nodos se mantengan con las tarifas de comisión por transacción.
SegWit
Las direcciones con formato P2SH son compatibles tanto con direcciones SegWit como con las que no lo son. Por lo que los usuarios pueden enviar sus fondos y realizar transacciones en ambos monederos con facilidad.
Desventajas de la implementación de P2SH
La verdad es que P2SH tiene muy pocas desventajas o limitaciones. Debido a que P2SH fue implementado tiempo después del desarrollo de los scripts originales de Bitcoin, por lo que los desarrolladores tuvieron oportunidad de corregir las limitaciones que se presentaban en la red para ese entonces. No obstante, las limitaciones que presenta P2SH son:
Tamaño de los datos
P2SH ocupa mayor espacio dentro de la blockchain. Lo que puede llegar a ocasionar congestión e influir en la capacidad de operación de la red. Esto se debe a que durante el bloqueo de bitcoins en P2SH se añaden 25 bytes más al script original, dejando a un script multifirma 2 de 3 que utilice P2SH con 278 bytes. En comparación con los 253 bytes que tendría el mismo script multifirma 2 de 3 que utilice P2MS.