Pages

Bitcoin Core: “lo negro es blanco y arriba es abajo”

Por Rick Falkvinge (@falkvinge)

1984Basándome en mi experiencia en programación y diseño de sistemas –empecé a programar hace 37 años– veo estas dos opciones para la escalabilidad de Bitcoin en el corto plazo:

OPCIÓN UNO: cambiar el límite superior del tamaño del bloque a dos megabytes. Una línea de código para la constante, alrededor de diez líneas de código para gatillar la activación. Requiere actualización del software de la mayoría de los servidores.

OPCIÓN DOS: Introducir SegWit (Segregated Witness). Alrededor de 500 líneas de código nuevo, de las cuales al menos 100 entrarían en la parte del código más sensible en cuanto al consenso. Requiere actualización del software de la mayoría de los servidores y el software y el hardware de todos los clientes/carteras, especialmente de aquellos que necesitan enviar dinero a una dirección arbitraria (ya que SegWit introduce un nuevo tipo de dirección que tanto el emisor como el receptor deben controlar).

Cuando los defensores de Core me dicen que su propuesta (la opción dos) es mejor porque es más segura, yo trato de comprenderlos y concluyo que o bien estoy completamente loco o la declaración es el equivalente a “lo negro es blanco y arriba es abajo”. No solo es completamente contraria a toda experiencia en gestión de riesgos en ingeniería de software; está tan lejos que ya no refleja la luz del sol.

Cuando trato de entender más y cuestiono la afirmación de que la segunda opción es más segura –para lo cual debo decir que tengo fundamentos sólidos– me dicen que debería dejar el diseño a los expertos y que no entiendo lo suficiente acerca de la compleja máquina que es Bitcoin. Sé que soy capaz de aprender cosas complejas, pero me dicen con firmeza que ni siquiera lo intente.

Esa no es la forma de hacer que la gente quiera usar tu código.

Por supuesto, la gente es libre de utilizar cualquier código que les guste. Pero los pesos y contrapesos en una comunidad de código abierto funcionan de la siguiente manera: si los líderes de un proyecto construyen algo diferente de lo que la gente quiere utilizar, la gente utilizará otra cosa. Por lo tanto, es en interés de los líderes escuchar a la comunidad para comprender qué software quiere utilizar la mayoría.

Entiendo la complejidad de los tiempos de transferencia de los bloques a través del firewall de China y que las pruebas preliminares indican que un nodo completo típico se satura con un bloque de 32 megabytes. Sin embargo, ninguno de estos límites se verá afectado por la propuesta de Bitcoin Classic. Además, cuando uno abre un camino como éste, lo razonable es trabajar en un problema a la vez –resolver un cuello de botella a la vez–. La gente ha estado insistiendo en la necesidad de aumentar el tamaño del bloque por más de un año. Más adelante será posible ampliar la capacidad de los nodos de diferentes maneras, pero ese no es el cuello de botella inminente.

Cuando una enorme cantidad de datos cruciales es ignorada (en relación a la necesidad de elevar el límite al tamaño del bloque), se pone en riesgo el proyecto.

En la comunidad Bitcoin abundan los geeks capaces de absorber y analizar cantidades monstruosas de información. Si no puedes explicar por qué tu solución es mejor que otra solución propuesta, nadie estará satisfecho con la respuesta “porque somos los expertos”. Debes asumir que hay otras personas al menos tan inteligentes y capaces de aprender como tú. Incluso es posible que si no puedes explicar tu solución a una mente abierta e inteligente, la tuya no sea en realidad una buena solución.

Leer texto original completo, en inglés

  • lalala

    Y digo yo…. para 10 líneas de codigo es necesario tanto tiempo. Por que classic se ha anunciado hace unas semanas y aún no hay una versión descargable.

    No será que están metiendo más de 10 líneas.

    • Eso será fácil de verificar. ¿Has oído hablar del software open source?

      • lalala

        Ahí le has dado majamalu… conozco el open source, pero sin duda me quedo con el software libre, lo conoces? has oido hablar alguna vez de las diferencias entre ambos?

        http://www.gnu.org/philosophy/free-software-for-freedom.es.html

        • Palamedes

          Te agradezco mucho el enlace porque he aprendido cosas con él de lo que me hace falta aprender, pero quiero decirte que no estoy de acuerdo con tu valoración de las diferencias entre open source y software libre. tu enlace lo explica así: “El código abierto es una metodología de programación, el software libre es un movimiento social”.

          A continuación, el dilema que arrastramos desde el siglo V a. C. (como si uno estuviera leyendo el Gorgias de Platón): con el open source “no se toma en consideración el bien y el mal, sino únicamente la popularidad y el éxito”.

          Es decir, el código abierto pone al ingeniero a hacer lo que sabe: programar, y luego donar libre y generosamente su trabajo para que cada cual haga con él lo que quiera y pueda, sin discursearle: si su trabajo gusta y se hace popular, entenderá que es bueno; en cambio, el ingeniero del software libre cree saber cómo es bueno que sea la sociedad, aunque de lo que él más entiende es de programación.

          ¿Qué te parece mi lectura?

          • lalala

            Querido Palamedes, siempre sorprendes con tus enfoques, pero en este caso es más sencillo.

            – Software libre, debe seguir siendo libre, tomo algo y lo devuelvo con su mismo formato, entiéndase referido a esa libertad.

            – Software de fuentes abiertas, lo cojo y hago con el lo que quiero, incluso empaquetarlo y venderlo como privado. Hay quien dice que el hecho de que incluso te lo puedas apropiar lo hace incluso más libre.

            No creo que ningún ingeniero de software libre, ni siquiera ningún ingeniero, debiese “creer saber cómo es bueno que sea la sociedad”, simplemente coge algo que cree incompleto, al menos para sus necesidades, lo completa y lo vuelve a ceder al dominio público.

            Si te apetece profundizar en el tema…

            Las cuatro libertades son los pilares del software libre.

            http://www.gnu.org/philosophy/free-sw.es.html

            Y para que veas un caso práctico de lo que intentaba explicarte.

            http://www.openbiz.com.ar/La%20Catedral%20y%20El%20Bazar.pdf

            Y ya como bonus, si quieres busca alguna conferencia del señor Richard Stallman (habla correctamente el castellano)…. te vas a encontrar verdades como puños. Es muy bueno cuando explica… no te lo voy a estropear, disfrutalo.

            Me apasiona el software libre 🙂

          • Palamedes

            Me mandas mucha lectura (le he echado un ojo), pero prometo mirarlo porque parece interesante.

          • Tania188

            Hay un documental en la red de los años 90 (creo recordar) que se llama “Codigo Linux”, esta en castellano y para mi es uno de los mejores.

            Saludos

          • Palamedes

            Gracias, ya lo he localizado.

          • Tania188

            Ya nos contaras si te a gustado.

            Saludos

          • Palamedes

            Quiero darte las gracias de nuevo por sugerirme el vídeo de estos hippies venerables que han cambiado la guitarra de Woodstock por el portátil en las rodillas y el nombre antiguo por el de “geeks”. he aprendido mucho de lo que no sabía y me lo he pasado bien.

            El vídeo me ha traído muchos pensamientos, que superan lo que debería escribir aquí y la tolerancia del que me lea, pero escribiré en forma de notas.

            Por encima de otras, me resulta muy atractiva la idea de la oportunidad para que algo triunfe. lo dice el propio Linus Torvalds cuando se felicita del momento justo en que lanzó el código a la red. hay que pensar que otras buenas ideas han quedado suspendidas en el mundo por falta de ella, pero si son buenas la acabarán encontrando (esto lo digo yo).

            Personalmente, me siento afortunado, admirado y agradecido de haber nacido en un tiempo que me permite ser usuario de Linux, sobre todo teniendo en cuenta que no soy capaz de aportar nada, salvo mis donativos.

            Como me ocurrió con el vídeo de Stallman, creo que no cabe apología del socialismo por grandezas como esta. como liberal, no es que me horrorice esa idea, como un entrevistado afirma en la película, sino que la veo desacertada, forzada y oportunista, pues la explicación de tanto altruismo está, a mi juicio, en los motivos que menciona Raymond, humanos y no sociales. el propio Miller, ese al que echaron de un laboratorio por introducir Linux, ahora que es rico, como para justificarse ante sí mismo, afirma que él no ha cambiado de personalidad por ser rico, se limita a conducir un coche mejor y a comer con más exquisitez. ¿qué cree que hace el resto de los ricos? ¿es que se los imagina gordos, con puro y comeobreros?

            Si se reconoce que un proyecto exitoso necesita un “dictador benévolo”, es que hemos vuelto a la República de Platón. ¿tendremos que recorrer todo el camino de nuevo sin tomar ningún atajo?¿no podemos aprovechar la experiencia que nos brinda la tradición?

            No entiendo la rivalidad exterminadora entre Windows y Linux. hay gente suficiente en el planeta para mantener populares a los dos sistemas (y al otro). al usuario común despolitizado le importa las funciones que uno y otro le aportan, sin mirar lo que hay debajo. se extraña el narrador de que los de Transmeta le permitieran a Linus Torvalds trabajar en lo suyo mientras trabajaba para ellos, sin pensar que quizás sea un prejuicio suyo esa extrañeza: para muestra un botón.

            Para terminar, una sugerencia mía. a mí Linus y Linux me han recordado a Don Justo Gallego, cuya obra en Mejorada del Campo (Madrid) admiro desde hace años:
            -Mientras nacía Unix en los 60, él solo empezó a levantar una catedral.
            -Después de más de 50 años sigue trabajando en ella con 91 años, pero ya no está solo, pues tiene algunos de confianza que también actúan como “dictadores benévolos”, como él.
            -La catedral es de código abierto, no existen planos inciales pero es un conjunto, y admite el trabajo de cientos de personas que acuden cada verano del mundo entero para echar unas peonadas altruistamente, movidos por las razones que explica Raymond.
            -Don Justo trabaja primero para servir a Dios, luego al prójimo y después a sí mismo.
            -Como he visto ya en Ubuntu, Don Justo también admite donativos y, de hecho, los recibe. de otro forma, ni esto ni aquello se podrían sostener.

            Le deseo a Linus la misma vida que Don Justo.

          • Palamedes

            Bueno, he sacado tiempo para escuchar a Stallman en Zacatecas. no estoy de acuerdo con sus planteamientos sociales, aunque algunas concreciones son muy atractivas y convincentes.

            Por resumir mucho, su visión social le lleva a manipular el lenguaje igualando lo privado con lo privativo y asimilando la libertad con el reparto socialista. un contrasentido.

            Está en lo cierto cuando habla del poder pedagógico del software libre (en este caso, como si dijéramos open source). me ha hecho viajar hasta mi infancia, cuando desarmé casi todos los juguetes que tuve para ver cómo funcionaban. viene de entonces mi amor al tornillo y mi aversión al remache. algunos no volvieron a funcionar.

            Me convence su propuesta de donar con un cauce ágil a los artistas en las descargas, por ejemplo con bitcoines (esto lo digo yo), pero la otra propuesta de reparto sólo se puede llevar a cabo con merma de la libertad, aunque él no se percata, cegado como está por su discurso social. la conversación de siempre entre tú y yo.

            Gracias. tal es mi ignorancia que no conocía a este señor, y eso que soy usuario de GNU y Linux.

          • lalala

            Si te ha valido de algo no hacen falta las gracias. Y q sepas, q ya sabes q al señor Stallman le ofende q no se diga GNU/Linux. Al fin y al cabo hay mucho trabajo aparte del kernel q se debe a GNU.

      • lalala

        Perdona, pero sabiendo que eres un hombre ocupado te lo resumo.

        “Todos los productos desarrollados en Software Libre así como sus derivados siempre deben ser libres, a diferencia de Open Source.”

        • ¿Qué importancia tiene esa diferencia en relación a lo que yo he dicho? Te lo recuerdo: he dicho que es fácil verificar si añaden algo más al código, si eso es lo que te preocupa.

          • lalala

            Open Source
            “La licencia no debe restringir otro software: la licencia no puede obligar a que algún otro software que sea distribuido con el software abierto deba también ser de código abierto.” 

            Podrían hacer uso de librerías que no necesariamente fuesen abiertas y por tanto no se pudiese acceder a su código. El hecho de tener esta puerta abierta, como le comentaba a Palamedes, te permite ser tan libre como quieras… hasta el punto de que puedes ocultar cosas(codigo).

          • Eres libre de usar esas librerías, pero no eres libre de ocultar que las estás usando.

          • Tania188

            Me temo que “lalala” tiene parte de razón en lo que dice y como tu has dicho: – ¿Qué importancia tiene esa diferencia en relación a lo que yo he dicho? – pues a los hechos me remito… en los software de codigo abiertos es posible la ocultación de código o mejor dicho, es posible imponer funciones ocultas a traves de “Librerias” que no estan al alcance de modificaciones-lecturas y o análisis internos. También destacar que el Codigo Abierto puede ser privativo (vease el ejemplo actual de Swift de Apple).

            En fin, que software Open Source es mejor que Propietario y Free Software es mejor todavía.

            Saludos

  • BustoSoon

    Esto no se trata sobre el tamaño de bloques, esto es un movimiento político para quitar a los core developers de en medio. En el roadmap firmado se dice que se incluirá segwit en abril. Las comisiones son 0.0001btc e incluso con los spam test no pasó del doble. De verdad es tan urgente arriesgar con un hard fork? Son los partidarios del hard fork los que tienen que convencer con argumentos técnicos de que es necesario a la mayoría. Si no es peligroso ver cómo se pueden modificar las reglas de bitcoin…

    La mejor respuesta al post del autor en reddit: https://www.reddit.com/r/Bitcoin/comments/41ipu0/some_advice_for_everybody_at_this_point_in_time/cz2vc6o

    • Hablando de política, bitcointalk y r/bitcoin están controlados por Blockstream. Allí no encontrarás debate sino el discurso autorizado por esa compañía.

      • BustoSoon

        Excelente argumetación como siempre. Mientras tanto las comisiones siguen siendo 4 cents, le hearnia parece que se ha curado, tú sigues a lo tuyo y los mineros chinos se bajan del barco de tu coin.

        http://bitledger.info/why-a-hard-fork-should-be-fought-and-its-not-evil-to-discuss/

        Un pequeño extracto por si te apetece luego abrumarnos con un par de falacias:

        In fact Hard Forks, should be practically impossible in Bitcoin, if it is truly a decentralized network.

        Above I stated that if a hard fork attempt is made on the network without self evident consensus then in fact the minority needs to view this as an attack of the network and now has a choice to make.

        The fact is, that the market has incorrectly assumed that core development is a centralizing force for not implementing a hard fork, and in fact it is not. Core Development correctly concluded that Hard Forking a protocol, without the hard fork being emergent and self evident, would be an act of centralization with the potential to break bitcoin, so they did not do it. Additionally, others have mistakenly perceived Core’s inaction as centralization, and are now themselves acting in manner to centralize the network by imposing a consensus change to the network without actual consensus.

  • BustoSoon
  • Mark VR

    ¿No será que el aumento progresivo en el tamaño de los bloques mas allá de un limite razonable hará que los nodos con mas capacidad de computo desplacen a los mas pequeños y menos poderosos?. En definitiva: ¿seguro que eso es bueno para la descentralizacion?… Y si no hay un limite superior, entonces puede pasar que de un momento a otro el tamaño se dispare y se vuelva inmanejable, cierto?… en esta “situacion teoricamente catastrofica” solo quedarán dos o tres nodos con capacidad de procesamiento suficiente para trabajar con semejantes moles de datos y entonces tendriamos un nuevo problema de centralización. ¿Estoy en lo correcto?… Asimismo es un problema imponer un limite superior ya que para imponerlo se debe tener autoridad, es decir, centralidad, ¿y quien da esa autoridad?. O sea que no tenemos un problema de centralizacion, sino dos: uno por autoridad, aquel que impone un limite superior al tamaño de los bloques para su propio beneficio. El otro por capacidad de procesamiento, si el tamaño de los bloques se dispara, solo quedarán aquellos nodos capaz de descargarlos y procesarlos integros.
    Dejenme decir que hablo desde mi mas profunda ignorancia del tema, por eso estoy acá comentando, para aprender un poco mas ya que es un tema que despierta mi interés.

      • Mark VR

        • “¿Qué
        pasaría si el mercado fijase un tamaño de bloque tan grande que sólo
        Google se pudiera permitir mantener funcionando nodos completos?”

        Este problema es real y podría llegar a
        darse, y es en realidad la razón por la que el límite al tamaño del
        bloque fue activado en primer lugar. Pero la razón por la que podría
        darse este escenario es el pobre diseño de las redes P2P: los mineros no
        necesitan pagar el coste de la retransmisión de los bloques a través de
        toda la red, con lo que este coste se convierte en una externalización
        que no se ve reflejada en el coste marginal de producción. La solución a esto es un mejor diseño de la red P2P, no una cuota
        que limite la tasa máxima de transacciones. Una descripción de cómo
        construir una mejor red P2P será parte de un futuro artículo.

  • Pingback: Por qué Blockstream está condenado a fracasar()

  • Pingback: ¿Y ahora qué? - ElBitcoin.org - Bitcoin en español()

  • Pingback: El asalto a Bitcoin y el desafío de la resistencia()