<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7350103676142872969</id><updated>2024-09-04T17:40:44.484+02:00</updated><category term="ita"/><category term="technical"/><category term="art"/><category term="eng"/><category term="bitcoin"/><category term="coding"/><category term="download"/><category term="hk"/><category term="video"/><category term="book"/><category term="citazioni"/><category term="links"/><category term="mix"/><category term="nonsense"/><category term="pop"/><category term="sport"/><category term="stories"/><title type='text'>PacMan Culture</title><subtitle type='html'>... yet another &lt;strike&gt;we&lt;/strike&gt;blog about deep web, time travels and Paris Hilton :P</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pacmanculture.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://pacmanculture.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Valentino</name><uri>http://www.blogger.com/profile/03427336780962255544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyaQ-mCMPq6Kq0KQgMU3gtfo3aSZKg_GzWK1iEsr0Y0FRfObezt7PKCRVOR5nM5Hh2gbADYWS0cf-FaEALu4ai2_Sp18VzRg_O-KvGDcLtNSRzjyNovf-t82RWWL7C/s220/bon_jovi_have_a_nice_day.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7350103676142872969.post-8475360301316077321</id><published>2014-10-29T12:16:00.001+01:00</published><updated>2014-10-29T12:16:51.946+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="eng"/><category scheme="http://www.blogger.com/atom/ns#" term="hk"/><category scheme="http://www.blogger.com/atom/ns#" term="links"/><category scheme="http://www.blogger.com/atom/ns#" term="mix"/><category scheme="http://www.blogger.com/atom/ns#" term="technical"/><title type='text'>Some (useful) &quot;list pages&quot; on Wikipedia</title><content type='html'>&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Comparison_of_single-board_computers&quot;&gt;List of single-board computers&lt;/a&gt; (Raspberry PI, Banana PI, etc.)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_wireless_router_firmware_projects&quot;&gt;List of router&#39;s firmwares&lt;/a&gt; (DD-WRT, OpenWrt, Tomato, etc.)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Pirated_movie_release_types&quot;&gt;List of pirated movies realese types&lt;/a&gt; (and in &lt;a href=&quot;http://it.wikipedia.org/wiki/Tipologie_di_film_piratati&quot;&gt;italian&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/United_Nations_list_of_Non-Self-Governing_Territories&quot;&gt;List of non-self-governing territories&lt;/a&gt; (Hong Kong, Macau, Gibiltrar, etc.)&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://pacmanculture.blogspot.com/feeds/8475360301316077321/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://pacmanculture.blogspot.com/2014/10/some-useful-list-pages-on-wikipedia.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/8475360301316077321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/8475360301316077321'/><link rel='alternate' type='text/html' href='http://pacmanculture.blogspot.com/2014/10/some-useful-list-pages-on-wikipedia.html' title='Some (useful) &quot;list pages&quot; on Wikipedia'/><author><name>Valentino</name><uri>http://www.blogger.com/profile/03427336780962255544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyaQ-mCMPq6Kq0KQgMU3gtfo3aSZKg_GzWK1iEsr0Y0FRfObezt7PKCRVOR5nM5Hh2gbADYWS0cf-FaEALu4ai2_Sp18VzRg_O-KvGDcLtNSRzjyNovf-t82RWWL7C/s220/bon_jovi_have_a_nice_day.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350103676142872969.post-2476031690865663970</id><published>2014-10-01T12:28:00.000+02:00</published><updated>2014-10-01T12:29:05.787+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="art"/><category scheme="http://www.blogger.com/atom/ns#" term="eng"/><category scheme="http://www.blogger.com/atom/ns#" term="hk"/><category scheme="http://www.blogger.com/atom/ns#" term="video"/><title type='text'>The Art behind Umbrella Revolution in Hong Kong</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/pxWK34TgR2M?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://pacmanculture.blogspot.com/feeds/2476031690865663970/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://pacmanculture.blogspot.com/2014/10/the-art-behind-umbrella-revolution-in.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/2476031690865663970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/2476031690865663970'/><link rel='alternate' type='text/html' href='http://pacmanculture.blogspot.com/2014/10/the-art-behind-umbrella-revolution-in.html' title='The Art behind Umbrella Revolution in Hong Kong'/><author><name>Valentino</name><uri>http://www.blogger.com/profile/03427336780962255544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyaQ-mCMPq6Kq0KQgMU3gtfo3aSZKg_GzWK1iEsr0Y0FRfObezt7PKCRVOR5nM5Hh2gbADYWS0cf-FaEALu4ai2_Sp18VzRg_O-KvGDcLtNSRzjyNovf-t82RWWL7C/s220/bon_jovi_have_a_nice_day.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350103676142872969.post-3174030977955200404</id><published>2014-09-04T14:24:00.003+02:00</published><updated>2014-09-04T14:24:35.595+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="art"/><category scheme="http://www.blogger.com/atom/ns#" term="pop"/><category scheme="http://www.blogger.com/atom/ns#" term="video"/><title type='text'>Not Mine (Pop Video)</title><content type='html'>&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/rhmg3tGp5S0?rel=0&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://pacmanculture.blogspot.com/feeds/3174030977955200404/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://pacmanculture.blogspot.com/2014/09/not-mine-pop-video.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/3174030977955200404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/3174030977955200404'/><link rel='alternate' type='text/html' href='http://pacmanculture.blogspot.com/2014/09/not-mine-pop-video.html' title='Not Mine (Pop Video)'/><author><name>Valentino</name><uri>http://www.blogger.com/profile/03427336780962255544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyaQ-mCMPq6Kq0KQgMU3gtfo3aSZKg_GzWK1iEsr0Y0FRfObezt7PKCRVOR5nM5Hh2gbADYWS0cf-FaEALu4ai2_Sp18VzRg_O-KvGDcLtNSRzjyNovf-t82RWWL7C/s220/bon_jovi_have_a_nice_day.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350103676142872969.post-8041760301382969000</id><published>2014-04-22T17:02:00.000+02:00</published><updated>2014-04-22T17:02:33.016+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="art"/><category scheme="http://www.blogger.com/atom/ns#" term="book"/><category scheme="http://www.blogger.com/atom/ns#" term="download"/><category scheme="http://www.blogger.com/atom/ns#" term="ita"/><title type='text'>Il PDF di &quot;Cent&#39;anni di Solitudine&quot;</title><content type='html'>Cercando su google &quot;cent&#39;anni di solitudine pdf&quot; si trova facilmente il pdf del libro di Gabriel Garcia Marquez.&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Ecco qua il &lt;a href=&quot;http://digilander.libero.it/ilmondodimacondo/centannidisolitudine.pdf&quot;&gt;link&lt;/a&gt;.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://pacmanculture.blogspot.com/feeds/8041760301382969000/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://pacmanculture.blogspot.com/2014/04/il-pdf-di-centanni-di-solitudine.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/8041760301382969000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/8041760301382969000'/><link rel='alternate' type='text/html' href='http://pacmanculture.blogspot.com/2014/04/il-pdf-di-centanni-di-solitudine.html' title='Il PDF di &quot;Cent&#39;anni di Solitudine&quot;'/><author><name>Valentino</name><uri>http://www.blogger.com/profile/03427336780962255544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyaQ-mCMPq6Kq0KQgMU3gtfo3aSZKg_GzWK1iEsr0Y0FRfObezt7PKCRVOR5nM5Hh2gbADYWS0cf-FaEALu4ai2_Sp18VzRg_O-KvGDcLtNSRzjyNovf-t82RWWL7C/s220/bon_jovi_have_a_nice_day.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350103676142872969.post-2267966472515424765</id><published>2014-03-27T10:27:00.003+01:00</published><updated>2014-03-27T10:27:44.155+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="art"/><title type='text'>Coca Cola Chinese Neolithic Vase by Ai Wei Wei</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://digitaljournal.com/img/8/3/1/7/8/5/i/1/2/8/o/Ai_Weiwei_Neolithic_Vase_with_Coca_Cola.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://digitaljournal.com/img/8/3/1/7/8/5/i/1/2/8/o/Ai_Weiwei_Neolithic_Vase_with_Coca_Cola.jpg&quot; height=&quot;212&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://pacmanculture.blogspot.com/feeds/2267966472515424765/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://pacmanculture.blogspot.com/2014/03/coca-cola-chinese-neolithic-vase-by-ai.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/2267966472515424765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/2267966472515424765'/><link rel='alternate' type='text/html' href='http://pacmanculture.blogspot.com/2014/03/coca-cola-chinese-neolithic-vase-by-ai.html' title='Coca Cola Chinese Neolithic Vase by Ai Wei Wei'/><author><name>Valentino</name><uri>http://www.blogger.com/profile/03427336780962255544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyaQ-mCMPq6Kq0KQgMU3gtfo3aSZKg_GzWK1iEsr0Y0FRfObezt7PKCRVOR5nM5Hh2gbADYWS0cf-FaEALu4ai2_Sp18VzRg_O-KvGDcLtNSRzjyNovf-t82RWWL7C/s220/bon_jovi_have_a_nice_day.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350103676142872969.post-831702751901312141</id><published>2014-03-04T23:17:00.000+01:00</published><updated>2014-03-04T23:17:02.961+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="citazioni"/><category scheme="http://www.blogger.com/atom/ns#" term="ita"/><title type='text'>Da &quot;La Grande Bellezza&quot;</title><content type='html'>&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;Ho trascorso tutte le estati della mia vita a fare propositi per Settembre. Ora non più. Ora trascorro l’estate a ricordare i propositi che facevo e che sono svaniti. Per pigrizia, per dimenticanza. Che cosa avete contro la nostalgia? È l’unico svago che resta per chi è diffidente verso il futuro. Senza pioggia, Agosto sta finendo. Settembre non comincia. E io sono così ordinario. Ma non c’è da preoccuparsi. Va bene così.&lt;/i&gt;&lt;/blockquote&gt;
</content><link rel='replies' type='application/atom+xml' href='http://pacmanculture.blogspot.com/feeds/831702751901312141/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://pacmanculture.blogspot.com/2014/03/da-la-grande-bellezza.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/831702751901312141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/831702751901312141'/><link rel='alternate' type='text/html' href='http://pacmanculture.blogspot.com/2014/03/da-la-grande-bellezza.html' title='Da &quot;La Grande Bellezza&quot;'/><author><name>Valentino</name><uri>http://www.blogger.com/profile/03427336780962255544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyaQ-mCMPq6Kq0KQgMU3gtfo3aSZKg_GzWK1iEsr0Y0FRfObezt7PKCRVOR5nM5Hh2gbADYWS0cf-FaEALu4ai2_Sp18VzRg_O-KvGDcLtNSRzjyNovf-t82RWWL7C/s220/bon_jovi_have_a_nice_day.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350103676142872969.post-5248747654174951825</id><published>2014-02-20T12:59:00.000+01:00</published><updated>2014-02-22T19:48:49.416+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bitcoin"/><category scheme="http://www.blogger.com/atom/ns#" term="ita"/><category scheme="http://www.blogger.com/atom/ns#" term="technical"/><title type='text'>Bitcoin: come funziona il protocollo (Parte 3)</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Premessa&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questo post è la parte 3 della traduzione del &lt;b&gt;&lt;a href=&quot;http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-actually-works/&quot;&gt;post di Michael Nielsen&lt;/a&gt;&lt;/b&gt; sul funzionamento del protocollo alla base di Bitcoin. Le puntate precedenti le trovi a questi links: &lt;a href=&quot;http://pacmanculture.blogspot.it/2014/02/bitcoin-come-funziona-il-protocollo.html&quot;&gt;&lt;b&gt;parte 1&lt;/b&gt;&lt;/a&gt;, &lt;a href=&quot;http://pacmanculture.blogspot.it/2014/02/bitcoin-come-funziona-il-protocollo_13.html&quot;&gt;&lt;b&gt;parte 2&lt;/b&gt;&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Proof-of-work (1/2)&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Supponiamo che Alice voglia attuare una truffa e spendere doppiamente il suo infocoin nel protocollo appena descritto. Potrebbe fare ciò &quot;impossessandosi&quot; della rete Infocoin. Ad esempio, supponiamo che Alice abbia messo in piedi un sistema automatizzato che le abbia consentito di creare un gran numero, diciamo un milione, di differenti identità nella rete Infocoin. Come prima, ella prova a spendere doppiamente il suo infocoin con Bob e Charlie. Ora, quando Bob e Charlie chiederanno alla rete di validare le loro transazioni con Alice, accadrà che la rete sarà composta da numerosissime false identità con a capo Alice. Queste, sotto il comando di Alice, risponderanno ovviamente sia a Bob che a Charlie che le loro transazioni sono valide e non fraudolente, ingannando così una o entrambe le vittime.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Fortunatamente esiste un modo ingegnoso di evitare questo problema. Tale metodo si basa su una tecnica conosciuta come&amp;nbsp;&lt;i&gt;&lt;a href=&quot;http://it.wikipedia.org/wiki/Proof-of-work&quot;&gt;proof-of-work&lt;/a&gt;&lt;/i&gt;. Quest&#39;idea può sembrare controintuitiva e coinvolge una combinazione di altre due idee: (1) rendere (artificialmente) &lt;i&gt;computazionalmente costoso&lt;/i&gt; per gli utenti della rete validare le transazioni; e (2) &lt;i&gt;premiare&lt;/i&gt; gli utenti che aiutano il processo di validazione. Il premio è usato per incentivare gli utenti della rete allo svolgere l&#39;attività di validazione delle transazioni, nonostante sia ora diventato un processo computazionalmente costoso. Il beneficio ottenuto nel rendere costoso il processo di validazione delle transazioni è che tale validazione non sarà più influenzata dal numero di identità nella rete che qualcuno controlla, bensì dal potere computazionale offerto. Come vedremo, usando un design ingegnoso, si può far si che un eventuale truffatore avrebbe bisogno di un enorme potere computazionale per mettere in pratica la sua truffa, rendendo il tutto impraticabile nella realtà.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questa è l&#39;essenza della tecnica del proof-of-work. Tuttavia, per meglio comprendere tale tecnica, abbiamo bisogno di esaminare qualche dettaglio.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ipotizziamo che Alice trasmetta in broadcast all&#39;intera rete il messaggio &quot;Io, Alice, do a Bon un infocoin, con numero seriale 1234567&quot;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Appena un utente della rete riceve questo messaggio, lo aggiunge ad una propria coda di transazioni pendenti, cioè transazioni di cui ha ricevuto notifica ma che non sono ancora state validate dalla rete. Ad esempio, un altro utente della rete chiamato David potrebbe avere la seguente lista/coda di transazioni pendenti:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&quot;Io, Tom, do a Sue un infocoin, con numero seriale 1201174&quot;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&quot;Io, Sydney, do a Cynthia un infocoin, con numero seriale 1295618&quot;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&quot;Io, Alice, do a Bob un infocoin, con numero seriale 1234567&quot;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
David, usando la propria copia della block chain, può verificare che ogni transazione è valida. Quindi, egli trasmetterà in broadcast la notizia della validità di queste transazioni.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Tuttavia, prima di far ciò, come parte del protocollo di validazione, a David è richiesto di risolvere un difficile rompicapo/problema computazionale (la proof-of-work). Senza la soluzione a questo problema (che sarà quindi trasmessa insieme al messaggio di accettazione delle transazioni), il resto della rete non accetterà il suo messaggio di validazione.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Quale problema far risolvere David? Sia &lt;i&gt;h&lt;/i&gt;&amp;nbsp;una funzione hash fissa e conosciuta da tutta la rete (è parte del protocollo). Bitcoin usa la ben conosciuta &lt;a href=&quot;http://it.wikipedia.org/wiki/Secure_Hash_Algorithm&quot;&gt;SHA-256&lt;/a&gt;, ma ogni funzione hash crittograficamente sicura fa al caso. Assegniamo l&#39;etichetta &lt;i&gt;l&lt;/i&gt; alla lista delle transazioni pendenti di David (giusto per avere un nome a cui riferirci). Supponiamo che David appena in coda a &lt;i&gt;l&lt;/i&gt;&amp;nbsp;un numero &lt;i&gt;x&lt;/i&gt;&amp;nbsp;(chiamato &lt;i&gt;nonce&lt;/i&gt;) e che valuti la funzione hash su tale combinazione. Ad esempio, se &lt;i&gt;l&lt;/i&gt;=&quot;Hello, world!&quot; (ovviamente questa non è una lista di transazioni, ma solamente una stringa usata a scopi illustrativi) e &lt;i&gt;x&lt;/i&gt;=0, allora l&#39;output esadecimale sarebbe:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;i&gt;h(&quot;Hello, world!0&quot;) =&amp;nbsp;1312af178c253f84028d480a6adc1e25e81caa44c749ec81976192e2ec934c64&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il problema che David deve risolvere (la proof-of-work) è quindi quello di trovare un numero/nonce&amp;nbsp;&lt;i&gt;x&lt;/i&gt;&amp;nbsp;tale che quando si appende &lt;i&gt;x&lt;/i&gt;&amp;nbsp;ad &lt;i&gt;l&lt;/i&gt;&amp;nbsp;e si valuta la funzione hash di questa combinazione, l&#39;hash ottenuto inizi con una lunga sequenza di zeri. Il problema può essere reso più o meno difficile variando il numero di zeri richiesti nella soluzione. Una proof-of-work relativamente semplice potrebbe richiedere giusto 3 o 4 zeri all&#39;inizio dell&#39;hash, mentre un problema più difficile potrebbe richiederne 15.&amp;nbsp;In ogni caso, l&#39;esempio precedente con &lt;i&gt;x&lt;/i&gt;=0 non rappresenta una soluzione alla proof-of-work dato che l&#39;hash ottenuto non inizia con nessun zero. Provando &lt;i&gt;x&lt;/i&gt;=1 non funziona lo stesso, infatti:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;i&gt;h(&quot;Hello, world!1&quot;) =&amp;nbsp;e9afc424b79e4f6ab42d99c81156d3a17228d6e1eef4139be78e948a9332a7d8&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Possiamo provare vari valori di nonce, &lt;i&gt;x&lt;/i&gt;=2,3,.... Alla fine, al valore &lt;i&gt;x&lt;/i&gt;=4250 otteniamo:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;i&gt;h(&quot;Hello, world!4250&quot;) =&amp;nbsp;0000c3af42fc31103f1fdc0151fa747ff87349a4714df7cc52ea464e12dcd4e9&lt;/i&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Quindi, tale nonce (4250), ci fornisce una stringa di 4 zeri all&#39;inizio dell&#39;hash. Questo è sufficiente per risolvere una semplice proof-of-work, ma non sufficiente a risolverne una difficile (con molti zeri iniziali richiesti).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ciò che rende questo problema difficile da risolvere è il fatto che l&#39;output di una funzione hash crittografica si comporta come un numero casuale: modificando l&#39;input anche di pochissimo si ottiene un output completamente modificato, così da rendere (praticamente) impossibile ogni previsione. Così, se vogliamo un valore hash che inizi con 10 zeri, allora David avrà bisogno, in media, di provare 16^10 (circa 10^12, cioè circa mille miliardi!) differenti valori per &lt;i&gt;x&lt;/i&gt;&amp;nbsp;prima di trovarne uno adatto. E&#39; per questo che tale problema richiede molta potenza computazionale.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ovviamente, è possibile rendere questo problema più o meno difficile richiedendo più o meno zeri iniziali nell&#39;output della funzione hash. In pratica, il protocollo Bitcoin possiede un livello di controllo sulla difficoltà del problema proof-of-work usando una leggera variante del metodo appena descritto. Invece di richiedere degli zeri iniziali, il proof-of-work usato da Bitcoin richiede che l&#39;hash dell&#39;header di un blocco (della block chain) sia minore o uguale ad un numero noto come &lt;i&gt;&lt;a href=&quot;https://en.bitcoin.it/wiki/Target&quot;&gt;target&lt;/a&gt;&lt;/i&gt;. Tale numero è automaticamente aggiustato per assicurare che un blocco Bitcoin richieda in media 10 minuti per essere validato (si deve aggiustare perché per la legge di Moore la potenza computazionale di un utente medio aumenta negli anni).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
(Nella pratica c&#39;è della variabilità/varianza del tempo richiesto per validare un blocco. A volte un nuovo blocco è validato in 1 o 2 minuti, altre volte potrebbero essere necessari 20 o più minuti. E&#39; tuttavia semplice modificare il protocollo Bitcoin di modo da avere un tempo di validazione con meno varianza intorno ai 10 minuti. Invece di risolvere un singolo proof-of-work si potrebbe richiederne di risolverne di più (con difficoltà più piccola) e con un po&#39; di attento design è possibile ridurre considerevolmente la varianza del tempo di validazione di un blocco di transazioni).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;... continua in un post futuro ...&lt;/b&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://pacmanculture.blogspot.com/feeds/5248747654174951825/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://pacmanculture.blogspot.com/2014/02/bitcoin-come-funziona-il-protocollo_20.html#comment-form' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/5248747654174951825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/5248747654174951825'/><link rel='alternate' type='text/html' href='http://pacmanculture.blogspot.com/2014/02/bitcoin-come-funziona-il-protocollo_20.html' title='Bitcoin: come funziona il protocollo (Parte 3)'/><author><name>Valentino</name><uri>http://www.blogger.com/profile/03427336780962255544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyaQ-mCMPq6Kq0KQgMU3gtfo3aSZKg_GzWK1iEsr0Y0FRfObezt7PKCRVOR5nM5Hh2gbADYWS0cf-FaEALu4ai2_Sp18VzRg_O-KvGDcLtNSRzjyNovf-t82RWWL7C/s220/bon_jovi_have_a_nice_day.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350103676142872969.post-6543874943681236002</id><published>2014-02-13T11:32:00.001+01:00</published><updated>2014-02-20T13:01:12.794+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bitcoin"/><category scheme="http://www.blogger.com/atom/ns#" term="ita"/><category scheme="http://www.blogger.com/atom/ns#" term="technical"/><title type='text'>Bitcoin: come funziona il protocollo (Parte 2)</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Premessa&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come già descritto nella &lt;a href=&quot;http://pacmanculture.blogspot.it/2014/02/bitcoin-come-funziona-il-protocollo.html&quot;&gt;&lt;b&gt;parte 1&lt;/b&gt;&lt;/a&gt; di questo articolo, ciò che trovi di seguito è una traduzione (dall&#39;inglese all&#39;italiano) del &lt;a href=&quot;http://www.michaelnielsen.org/ddi/&quot;&gt;&lt;b&gt;post originale su Bitcoin di Michael Nielsen&lt;/b&gt;&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Monete univocamente identificabili tramite numeri seriali&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Un problema con la precedente versione di Infocoin è che Alice potrebbe esser tentata ad inviare a Bob lo stesso messaggio più e più volte. Supponiamo ora che Bob riceva dieci copie del messaggio firmato digitalmente &quot;Io, Alice, do a Bob un infocoin&quot;. Ciò significa che Alice ha inviato a Bob dieci&amp;nbsp;&lt;i&gt;differenti &lt;/i&gt;infocoin? O magari, il messaggio potrebbe esser stato accidentalmente duplicato? Forse Alice sta tentando di ingannare Bob cercando di indurlo a credere di avergli trasmesso dieci differenti infocoin. Il messaggio prova al mondo intero che Alice intende trasferire un solo (e non meglio identificato) infocoin.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Quello che vorremmo è un modo di rendere gli infocoin unici. Associarli ad una qualche etichetta, o meglio a un numero seriale. Così il messaggio precedente, firmato da Alice, diverrebbe qualcosa tipo &quot;Io, Alice, do a Bob un infocoin, con numero seriale 8740348&quot;. Dopodiché, Alice trasmette a Bob un secondo infocoin firmando il messaggio &quot;Io, Alice, do a Bob un infocoin, con numero seriale 8770431&quot;, cosicché Bob (e chiunque altro) capirebbe che il secondo infocoin trasferito differisce dal primo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Per far funzionare questo schema abbiamo bisogno di una sorgente fidata di numeri seriali. Un modo di creare tale sorgente è di introdurre una &lt;i&gt;banca&lt;/i&gt;. La banca fornirebbe numeri seriali per gli infocoin, tenendo traccia di chi possiede ogni singolo infocoin, e verificherebbe che le transazioni siano valide e legittime.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Più dettagliatamente, supponiamo che Alice va in banca e dice &quot;Voglio prelevare un infocoin dal mio conto&quot;. La banca riduce di un infocoin il saldo del conto di Alice e le assegna un nuovo (e mai usato prima) numero seriale, diciamo 1234567. Ora, quando Alice vuole trasferire il suo infocoin a Bob, firma il messaggio &quot;Io, Alice, do a Bob un infocoin, con numero seriale 1234567&quot;. Ma Bob non accetta immediatamente l&#39;infocoin trasmessogli. Contatta la banca e verifica che: (a) l&#39;infocoin con numero seriale 1234567 appartenga ad Alice, e (b) Alice non abbia già speso quell&#39;infocoin. Se entrambe queste verifiche vanno a buon fine, allora Bob comunica alla banca che desidera accettare l&#39;infocoin. La banca quindi aggiorna i suoi archivi di modo da memorizzare il fatto che l&#39;infocoin 1234567 appartiene ora a Bob e non più ad Alice.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Sostituire la banca con la collettività (ovvero: Alice, Bob e il resto del mondo)&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Quest&#39;ultima soluzione sembra promettente. Tuttavia, proviamo a fare qualcosa di molto più ambizioso. Possiamo eliminare completamente la banca dal protocollo. Ciò cambierebbe considerevolmente la natura della valuta. Significherebbe che non c&#39;è più una singola organizzazione responsabile della valuta. E se si pensa all&#39;enorme potere che una banca centrale ha (controllo dell&#39;offerta di moneta) ciò rappresenta un cambiamento piuttosto grande.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
L&#39;idea è di far si che &lt;i&gt;tutti&amp;nbsp;&lt;/i&gt;(collettivamente) siano la banca. In particolare, assumeremo che ogni utente che usa Infocoin mantenga un archivio completo che memorizza quali infocoin appartengano a quali persone. Puoi pensare a ciò come ad un libro mastro condiviso che tiene traccia di tutte le transazioni Infocoin. Chiameremo questo libro mastro &lt;i&gt;block chain&lt;/i&gt; (catena di blocchi), dato che questo è anche il nome usato in Bitcoin.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ora, supponiamo che Alice voglia trasferire un infocoin a Bob. Ella firma il messaggio &quot;Io, Alice, do a Bob un infocoin, con numero seriale 1234567&quot; e lo trasmette a Bob. Bob può ora usare la sua copia della block chain per verificare che quell&#39;infocoin appartenga effettivamente ad Alice. Se la verifica va a buon fine, Bob trasmette in broadcast all&#39;intera rete Infocoin sia il messaggio ricevuto da Alice che la sua accettazione della transazione. Quindi, tutti possono aggiornare la loro copia della block chain.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ma abbiamo ancora un problema. Da dove vengono fuori i numeri seriali? Allo stato attuale, questo problema risulta piuttosto facile da risolvere, quindi, rimando la sua discussione alla sezione dove parlerò di Bitcoin. Un problema più stimolante è che questo protocollo permette ad Alice di truffare spendendo doppiamente (&lt;i&gt;double spending&lt;/i&gt;) il suo infocoin. Alice potrebbe prima trasmettere a Bob il messaggio firmato &quot;Io, Alice, do a Bob un infocoin, con numero seriale 1234567&quot; e poi trasmettere lo stesso messaggio a Charlie. Sia Bob che Charlie usano la loro copia della block chain per verificare che Alice davvero possieda l&#39;infocoin 1234567. Ipotizzando che entrambi svolgano la verifica grosso modo nello stesso momento (se questo non fosse il caso, il più lento avrebbe ricevuto il broadcast dell&#39;altro), entrambi verificheranno che, sì, l&#39;infocoin 1234567 appartiene ad Alice. Così, entrambi accettano la transazione e trasmettono in broadcast a tutta la rete la loro accettazione. Ora però sorge un problema. Come dovrebbero aggiornare la propria block chain gli altri utenti della rete? Potrebbe non esserci un modo facile per mantenere una condivisione consistente del libro mastro delle transazioni (block chain). E anche se tutti trovassero un accordo, rimarrebbe pur sempre il problema che uno fra Bob o Charlie è stato truffato da Alice.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A prima vista, per Alice il double spending (truffa) sembrerebbe difficile da realizzare. Dopotutto, se Alice trasmette il messaggio prima a Bob, Bob può verificarlo e comunicare a tutti gli altri nella rete (incluso Charlie) di aggiornare la loro block chain. Una volta fatto ciò, Charlie non potrebbe più essere truffato da Alice. Così, c&#39;è solo un piccolo lasso di tempo nel quale Alice potrebbe fraudolentemente praticare il double spending. Tuttavia, è comunque indesiderabile anche avere un infinitesimo lasso di tempo. Infatti, ci sono tecniche &quot;hacker&quot; che Alice potrebbe usare per dilatare questo lasso di tempo. Ella potrebbe per esempio aver fatto un&#39;analisi del traffico di rete di Bob e Charlie per capire quando è più verosimile che i due possano avere un&#39;alta latenza nelle loro comunicazioni. O magari potrebbe praticare qualche hacking per rallentare deliberatamente le comunicazioni delle due vittime (in realtà uno solo dei due è vittima, ma chi dei due è piuttosto arbitrario da capire). Anche solo qualche secondo sarebbe sufficiente a permettergli di spendere doppiamente il suo solo infocoin.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come possiamo quindi risolvere il problema del double spending? La soluzione ovvia è che quando Alice trasmette a Bob un infocoin, Bob non dovrebbe verificare la transazione da solo. Piuttosto, egli potrebbe trasmettere in broadcast all&#39;intera rete la transazione candidata e chiedere quindi a tutti i singoli utenti Infocoin di aiutarlo a legittimare o meno il messaggio di Alice. Se la rete collettivamente decide che la transazione è ok, allora Bob può accettare l&#39;infocoin e chiunque nella rete può aggiornare la propria block chain. Questo può aiutare a prevenire il problema del double spending, dato che, se Alice prova a spendere il suo infocoin sia con Bob che con Charlie, altre persone nella rete noteranno che c&#39;è un problema nella transazione e comunicheranno ciò sia a Bob che a Charlie (e a tutti gli altri utenti in realtà) così da fermare il processo di accettazione della transazione.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Più dettagliatamente, supponiamo che Alice voglia dare a Bob un infocoin. Come prima, ella firma il messaggio &quot;Io, Alice, do a Bob un infocoin, con numero seriale 1234567&quot; e lo trasmette a Bob. Ancora come prima, Bob verifica che Alice possieda davvero quell&#39;infocoin utilizzando la propria copia della block chain. Ma a questo punto il protocollo è modificato. Bob, invece di accettare direttamente la transazione come faceva prima, trasmette il messaggio di Alice all&#39;intera rete. Altri membri della rete verificano il fatto che Alice possegga realmente l&#39;infocoin 1234567. Se così è, ogni singolo &quot;verificatore&quot; trasmette in broadcast (quindi ancora una volta all&#39;intera rete) il messaggio &quot;Sì, Alice possiede l&#39;infocoin 1234567, che può ora essere trasferito a Bob&quot;. Quando &lt;i&gt;abbastanza &lt;/i&gt;persone avranno trasmesso il messaggio di conferma della verifica, ognuno aggiorna la propria block chain di modo che l&#39;infocoin 1234567 appartenga ora a Bob. La transazione è completata.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questo protocollo ha un po&#39; di elementi di imprecisione al momento. Ad esempio, cosa significa dire &quot;quando abbastanza persone avranno trasmesso il messaggio&quot;? Cosa si intende per &quot;abbastanza&quot;? Non può significare chiunque nella rete, dato che a priori non conosciamo chi e quanti utenti fanno parte della rete Infocoin. Per la stessa ragione non può significare una qualche frazione fissa degli utenti della rete. Non tenterò di rendere questa definizione precisa ora. Invece, nella prossima sezione evidenzierò un problema più serio dell&#39;approccio appena descritto. La soluzione a tale problema consentirà collateralmente di chiarire le idee precedenti.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://pacmanculture.blogspot.it/2014/02/bitcoin-come-funziona-il-protocollo_20.html&quot;&gt;... clicca qui per leggere il seguito ...&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://pacmanculture.blogspot.com/feeds/6543874943681236002/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://pacmanculture.blogspot.com/2014/02/bitcoin-come-funziona-il-protocollo_13.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/6543874943681236002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/6543874943681236002'/><link rel='alternate' type='text/html' href='http://pacmanculture.blogspot.com/2014/02/bitcoin-come-funziona-il-protocollo_13.html' title='Bitcoin: come funziona il protocollo (Parte 2)'/><author><name>Valentino</name><uri>http://www.blogger.com/profile/03427336780962255544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyaQ-mCMPq6Kq0KQgMU3gtfo3aSZKg_GzWK1iEsr0Y0FRfObezt7PKCRVOR5nM5Hh2gbADYWS0cf-FaEALu4ai2_Sp18VzRg_O-KvGDcLtNSRzjyNovf-t82RWWL7C/s220/bon_jovi_have_a_nice_day.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350103676142872969.post-3783302552785252565</id><published>2014-02-11T15:19:00.001+01:00</published><updated>2014-02-11T18:41:04.293+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="coding"/><category scheme="http://www.blogger.com/atom/ns#" term="eng"/><category scheme="http://www.blogger.com/atom/ns#" term="technical"/><title type='text'>Efficiently swap matrix rows and columns synchronously</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
It may happen (practical and usual examples?) that you have a &lt;b&gt;matrix data structure&lt;/b&gt; and you need to (synchronously) &lt;b&gt;swap rows &lt;i&gt;i &lt;/i&gt;and &lt;i&gt;j&lt;/i&gt;&amp;nbsp;together with columns &lt;i&gt;i&lt;/i&gt;&amp;nbsp;and &lt;i&gt;j&lt;/i&gt;&lt;/b&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The simple solution would require to iterate on the rows/columns entries, so it costs O(&lt;i&gt;n&lt;/i&gt;) for an &lt;i&gt;n&lt;/i&gt;&amp;nbsp;x &lt;i&gt;n &lt;/i&gt;matrix (similar considerations if the matrix is rectangular).&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A more clever solution adopts an additional vector of size &lt;i&gt;n&lt;/i&gt;&amp;nbsp;and works in O(1). The idea is to keep the additional vector &lt;i&gt;ind&lt;/i&gt;&amp;nbsp;as a sort of array of pointers to the rows/columns of the matrix &lt;i&gt;m&lt;/i&gt;. &amp;nbsp;In the following, the three main aspects of the solution:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Vector&amp;nbsp;&lt;i&gt;ind&lt;/i&gt;&amp;nbsp;has to be initialized to the &quot;identity&quot; vector (&lt;i&gt;ind&lt;/i&gt;&amp;nbsp;= &amp;lt;0, 1, ..., &lt;i&gt;n&lt;/i&gt;-1&amp;gt;).&lt;/li&gt;
&lt;li&gt;Access &lt;i&gt;m&lt;/i&gt;&amp;nbsp;entries no more directly but through &lt;i&gt;ind,&amp;nbsp;&lt;/i&gt;i.e.&amp;nbsp;&lt;i&gt;m&lt;/i&gt;[&lt;i&gt;ind&lt;/i&gt;[i],&lt;i&gt;ind&lt;/i&gt;[&lt;i&gt;j&lt;/i&gt;]] instead of the classical &lt;i&gt;m&lt;/i&gt;[&lt;i&gt;i&lt;/i&gt;,&lt;i&gt;j&lt;/i&gt;].&lt;/li&gt;
&lt;li&gt;Now, the swap of both rows and columns &lt;i&gt;i&lt;/i&gt;&amp;nbsp;and &lt;i&gt;j&lt;/i&gt;&amp;nbsp;can be done by simply swapping &lt;i&gt;ind&lt;/i&gt;[&lt;i&gt;i&lt;/i&gt;] and &lt;i&gt;ind&lt;/i&gt;[j].&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://pacmanculture.blogspot.com/feeds/3783302552785252565/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://pacmanculture.blogspot.com/2014/02/efficiently-swap-matrix-rows-and.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/3783302552785252565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/3783302552785252565'/><link rel='alternate' type='text/html' href='http://pacmanculture.blogspot.com/2014/02/efficiently-swap-matrix-rows-and.html' title='Efficiently swap matrix rows and columns synchronously'/><author><name>Valentino</name><uri>http://www.blogger.com/profile/03427336780962255544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyaQ-mCMPq6Kq0KQgMU3gtfo3aSZKg_GzWK1iEsr0Y0FRfObezt7PKCRVOR5nM5Hh2gbADYWS0cf-FaEALu4ai2_Sp18VzRg_O-KvGDcLtNSRzjyNovf-t82RWWL7C/s220/bon_jovi_have_a_nice_day.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350103676142872969.post-6636476479883650110</id><published>2014-02-10T01:00:00.000+01:00</published><updated>2014-02-10T11:36:57.201+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="coding"/><category scheme="http://www.blogger.com/atom/ns#" term="eng"/><category scheme="http://www.blogger.com/atom/ns#" term="technical"/><title type='text'>A set data structure to insert, remove and get a random element in constant time</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
If you are a coder, and you need to implement a &lt;b&gt;set data structure that requires insert, remove and &quot;get random element&quot; operations all working in constant time&lt;/b&gt;, so here the solution!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Simply use a&amp;nbsp;&lt;a href=&quot;http://en.wikipedia.org/wiki/Dynamic_array&quot;&gt;dynamic array&lt;/a&gt;&amp;nbsp;(for example: &lt;i&gt;vector&lt;/i&gt; in C++ or &lt;i&gt;ArrayList&lt;/i&gt; in Java) and an&amp;nbsp;&lt;a href=&quot;http://en.wikipedia.org/wiki/Hash_table&quot;&gt;hash table&lt;/a&gt; (for example: &lt;i&gt;unordered_map&lt;/i&gt; in C++ 11 or &lt;i&gt;HashMap&lt;/i&gt; in Java) together.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The key idea is to store the set elements consecutively in the array, and keep track of their indexes in the (inverted) hash table. Thus, the hash table keys are the array values (i.e. the set elements) and the hash table values are the array indexes.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Now the semantics of the operations.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;INSERT(val)&lt;/b&gt;: append the value at the end of the array, so at index &lt;i&gt;array.size&lt;/i&gt;-1 (if the array is 0-based), and create a new entry in the hash table with &lt;i&gt;val&lt;/i&gt; as key and &lt;i&gt;array.size&lt;/i&gt;-1 as value. Obviously, you have also to check if &lt;i&gt;val&lt;/i&gt;&amp;nbsp;is already in the set. Anyway, the complexity is always O(1) (using amortized analysis).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;REMOVE(val)&lt;/b&gt;: use the hash table to get the array index of &lt;i&gt;val&lt;/i&gt;, say it is &lt;i&gt;ind&lt;/i&gt;. Get the last element in the array (the one in position &lt;i&gt;array.size&lt;/i&gt;-1), say it is &lt;i&gt;lastval&lt;/i&gt;. Swap the array elements at positions&amp;nbsp;&lt;i&gt;ind&lt;/i&gt;&amp;nbsp;and &lt;i&gt;array.size&lt;/i&gt;-1 (so you swap the values &lt;i&gt;val &lt;/i&gt;and &lt;i&gt;lastval&lt;/i&gt;).&amp;nbsp;Decrease by 1 the array size (e.g. using &lt;i&gt;pop_back&lt;/i&gt;&amp;nbsp;in C++). Update the hash table entry for &lt;i&gt;lastval&lt;/i&gt;&amp;nbsp;with the value &lt;i&gt;ind&lt;/i&gt;. Finally, remove the entry with key&amp;nbsp;&lt;i&gt;val&lt;/i&gt;&amp;nbsp;from the hash table. Obviously, you have also to check that &lt;i&gt;val&lt;/i&gt;&amp;nbsp;is really contained in the set. Anyway, the complexity is always O(1) (using amortized analysis).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;GET_RANDOM_ELEMENT()&lt;/b&gt;: this is now the easy part. Simply pick up a random integer &lt;i&gt;r&amp;nbsp;&lt;/i&gt;between 0 and &lt;i&gt;vector.size&lt;/i&gt;-1 and return the &lt;i&gt;r&lt;/i&gt;-th value from the vector. Complexity O(1).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Other operations like random access and value check are easy and O(1) as well!&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://pacmanculture.blogspot.com/feeds/6636476479883650110/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://pacmanculture.blogspot.com/2014/02/a-set-data-structure-to-insert-remove.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/6636476479883650110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/6636476479883650110'/><link rel='alternate' type='text/html' href='http://pacmanculture.blogspot.com/2014/02/a-set-data-structure-to-insert-remove.html' title='A set data structure to insert, remove and get a random element in constant time'/><author><name>Valentino</name><uri>http://www.blogger.com/profile/03427336780962255544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyaQ-mCMPq6Kq0KQgMU3gtfo3aSZKg_GzWK1iEsr0Y0FRfObezt7PKCRVOR5nM5Hh2gbADYWS0cf-FaEALu4ai2_Sp18VzRg_O-KvGDcLtNSRzjyNovf-t82RWWL7C/s220/bon_jovi_have_a_nice_day.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350103676142872969.post-7676841459796909930</id><published>2014-02-05T18:14:00.000+01:00</published><updated>2014-02-13T11:33:18.717+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bitcoin"/><category scheme="http://www.blogger.com/atom/ns#" term="ita"/><category scheme="http://www.blogger.com/atom/ns#" term="technical"/><title type='text'>Bitcoin: come funziona il protocollo (Parte 1)</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Premessa&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Iniziamo qui una serie di post sul funzionamento di Bitcoin a livello tecnico/teorico. Credo possa interessare a molti (almeno a chi possiede un minimo di background).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ci tengo a precisare che niente è farina del mio sacco. Questi post sono delle mere &lt;strike&gt;ed imprecise&lt;/strike&gt; traduzioni del fantastico &lt;a href=&quot;http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-actually-works/&quot;&gt;&lt;b&gt;articolo su Bitcoin di Michael Nielsen&lt;/b&gt;&lt;/a&gt;&amp;nbsp;(un ricercatore di fama mondiale nel campo dell&#39;informatica). In quanto traduzioni, l&#39;uso della prima persona singolare non è ovviamente volto ad identificare me, ma, appunto, il vero autore dell&#39;articolo (che vi invito a leggere direttamente se avete familiarità con l&#39;inglese). Via alle danze!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Introduzione&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Svariati articoli sono stati scritti con l&#39;obiettivo di descrivere il funzionamento di Bitcoin, la valuta peer-to-peer online. Molti di questi, però, forniscono delle considerazioni del tutto superficiali. Altri invece vanno più a fondo ma trascurano comunque taluni punti cruciali del protocollo. L&#39;obiettivo di questo post è quindi quello di spiegare le idee principali che stanno dietro al protocollo di Bitcoin in modo chiaro, semplice e comprensibile. Partiremo da alcuni concetti iniziali di modo da costruire le basi teoriche su cui si basa il protocollo per poi far luce sui dettagli di questo ed arrivare quindi ad analizzare i dati grezzi (raw data) di una transazione Bitcoin.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Comprendere dettagliatamente il protocollo non è semplice. Forse è a causa di ciò che molti prendono il funzionamento di Bitcoin come un dogma e si perdono in riflessioni sul come diventare ricchi con Bitcoin, sul fatto che Bitcoin sia una bolla speculativa o meno, sulla fine delle commissioni bancarie e così via. Probabilmente tutte discussioni interessanti ma che limitano ed esulano dalla comprensione tecnico/teorica di Bitcoin. Capire i dettagli del protocollo permette invece di aprirsi verso nuove prospettive. In particolare, è la base per la comprensione del linguaggio di scripting built-in di Bitcoin, il quale rende possibile la creazione di nuovi strumenti finanziari, come ad esempio gli &lt;a href=&quot;http://szabo.best.vwh.net/formalize.html&quot;&gt;smart contracts&lt;/a&gt;. Tali nuovi strumenti possono a loro volta dar vita a nuovi mercati e quindi a nuove forme di interazione sociale. Ma passiamo ora alla spiegazione!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Descriverò gli script e le estensioni di Bitcoin in futuro. Invece, questo post si concentra nel descrivere gli ingranaggi del protocollo alla base di Bitcoin. Per la comprensione di questo post sono necessarie delle infarinature sui concetti di &lt;a href=&quot;http://it.wikipedia.org/wiki/Crittografia_asimmetrica&quot;&gt;crittografia a chiave pubblica&lt;/a&gt; e &lt;a href=&quot;https://it.wikipedia.org/wiki/Firma_digitale&quot;&gt;firma digitale&lt;/a&gt;. Inoltre, assumerò una vostra familiarità con gli &lt;a href=&quot;https://it.wikipedia.org/wiki/Funzione_crittografica_di_hash&quot;&gt;hash crittografici&lt;/a&gt;. Niente di particolarmente difficile, tutte cose abbordabili da uno studente al primo anno di un corso di matematica o informatica.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Può sembrare sorprendente che Bitcoin si basi sulla crittografia. Ma Bitcoin non dovrebbe essere una valuta? Oppure è un modo per spedire messaggi segreti? In effetti, i problemi che Bitcoin deve risolvere riguardano perlopiù la messa in sicurezza delle transazioni: fare sì che non ci siano furti, truffe, false identità, .... Nel mondo reale ricerchiamo la sicurezza tramite lucchetti, cassette di sicurezza, firme e caveau bancari. Nel mondo digitale, questo tipo di sicurezza è ottenuta tramite la crittografia. Questo è il motivo del cuore crittografico di Bitcoin.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La mia strategia in questo post è di &quot;costruire&quot; Bitcoin per fasi successive. Inizierò spiegando una semplice valuta digitale che chiamerò &lt;i&gt;Infocoin&lt;/i&gt;, per distinguerla da Bitcoin. La nostra prima versione di Infocoin avrà molte carenze, quindi itereremo lo sviluppo di Infocoin introducendo una o due nuove (e semplici) idee ad ogni iterazione. Dopo un po&#39; di iterazioni arriveremo al protocollo Bitcoin completo. Avremo reinventato Bitcoin!&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questa strategia può sembrare lenta e macchinosa rispetto ad altre, ma ha il grosso vantaggio di rendere chiaro il perché Bitcoin è stato progettato così com&#39;è.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Passo 1: una dichiarazione di intenti firmata&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come possiamo progettare una valuta digitale?&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A primo acchito un tale marchingegno potrebbe sembrare impossibile. Supponiamo che Alice possieda un po&#39; di moneta digitale che vuole spendere in qualche modo. Se Alice può usare una sequenza di bit come moneta, come possiamo evitare che possa usare la stessa sequenza per uno, due, cento, mille acquisti? O ancora, se potessimo in un qualche modo risolvere questo problema, come potremmo evitare che qualcun altro possa contraffare, clonare o generare la stessa sequenza di bit così da rubare denaro ad Alice?&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questi sono solamente due dei molteplici problemi che sussistono nell&#39;usare l&#39;informazione come moneta.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come prima versione di Infocoin, cerchiamo quindi di trovare un modo che permetta ad Alice di usare una sequenza di bit come forma di moneta (seppur molto primitiva ed incompleta per iniziare) che le dia almeno qualche protezione contro la&amp;nbsp;contraffazione. Supponiamo che Alice voglia dare a Bob un infocoin. Per far ciò,&amp;nbsp;Alice scrive un messaggio &quot;Io, Alice, do a Bob un infocoin&quot;. Poi, firma digitalmente il messaggio usando la sua chiave (crittografica) privata, e divulga pubblicamente la sequenza di bit corrispondente al suo messaggio firmato digitalmente.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
(Giusto un veloce appunto. Userò &quot;Infocoin&quot; per riferirmi al protocollo, e &quot;infocoin&quot; come denominazione specifica della moneta. Questo uso è comune, seppur non universalmente riconosciuto, anche nel mondo di Bitcoin.)&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Questo prototipo di valuta digitale non impressiona per niente. Ma possiede comunque alcune virtù. Chiunque al mondo (incluso Bob) può usare la chiave pubblica di Alice per verificare che Alice è davvero la persona che ha firmato il messaggio &quot;Io, Alice, do a Bob un infocoin&quot;. Nessun altro può aver creato quella sequenza di bit, nemmeno Alice stessa potrebbe più negarlo. Quindi, il protocollo stabilisce che Alice veramente intende dare a Bob un infocoin. Lo stesso argomento (nessun altro può aver creato quella sequenza di bit) fornisce ad Alice anche una limitata protezione dalla contraffazione. Certo, dopo che Alice ha pubblicato il suo messaggio è possibile che altre persone possano duplicarlo, ed in questo senso la&amp;nbsp;contraffazione&amp;nbsp;è possibile. Ma nessuno può farlo da zero (ovvero duplicare/predirre un messaggio non ancora&amp;nbsp;divulgato). Queste due proprietà, la dichiarazione di intenti di Alice, e la limitata protezione dalla&amp;nbsp;contraffazione, sono caratteristiche notevoli di questo protocollo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Non ho ancora detto cos&#39;è la moneta digitale. Per essere espliciti: è esattamente la sequenza di bit rappresentante il messaggio di dichiarazione di intenti (es: &quot;Io, Alice, do a Bob un infocoin&quot;) firmato digitalmente. Similmente, le successive versioni di Infocoin, useranno questa rappresentazione della moneta come messaggi firmati digitalmente, seppur sempre più elaborati.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://pacmanculture.blogspot.it/2014/02/bitcoin-come-funziona-il-protocollo_13.html&quot;&gt;... clicca qui per leggere il seguito ...&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://pacmanculture.blogspot.com/feeds/7676841459796909930/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://pacmanculture.blogspot.com/2014/02/bitcoin-come-funziona-il-protocollo.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/7676841459796909930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/7676841459796909930'/><link rel='alternate' type='text/html' href='http://pacmanculture.blogspot.com/2014/02/bitcoin-come-funziona-il-protocollo.html' title='Bitcoin: come funziona il protocollo (Parte 1)'/><author><name>Valentino</name><uri>http://www.blogger.com/profile/03427336780962255544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyaQ-mCMPq6Kq0KQgMU3gtfo3aSZKg_GzWK1iEsr0Y0FRfObezt7PKCRVOR5nM5Hh2gbADYWS0cf-FaEALu4ai2_Sp18VzRg_O-KvGDcLtNSRzjyNovf-t82RWWL7C/s220/bon_jovi_have_a_nice_day.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350103676142872969.post-3368078696428045918</id><published>2014-01-25T16:25:00.001+01:00</published><updated>2014-02-07T16:41:02.292+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ita"/><category scheme="http://www.blogger.com/atom/ns#" term="sport"/><category scheme="http://www.blogger.com/atom/ns#" term="stories"/><title type='text'>George Best: dribbling e drinking da Belfast a Hong Kong via Johannesburg, Brisbane, Los Angeles, ...</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;strike&gt;Maradona good&lt;/strike&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;&lt;strike&gt;Pelè better&lt;/strike&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;George Best&lt;/b&gt;, uomo di eccessi, eccesso di classe in campo, eccessivi eccessi fuori dal campo, è stato senza dubbio il più grande calciatore dell&#39;Irlanda del Nord e probabilmente uno dei migliori quattro o cinque calciatori nella storia del calcio.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://i.dailymail.co.uk/i/pix/2009/06/13/article-1192863-03929A710000044D-922_226x336.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: justify;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://i.dailymail.co.uk/i/pix/2009/06/13/article-1192863-03929A710000044D-922_226x336.jpg&quot; height=&quot;200&quot; width=&quot;134&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
George nasce a Belfast il 22 maggio 1946 e inizia a dare i suoi primi calci nel&amp;nbsp;&lt;a href=&quot;http://it.wikipedia.org/wiki/Glentoran_Football_Club&quot;&gt;Glentoran&lt;/a&gt;&amp;nbsp;(squadra locale di Belfast). Nel 1961, Bob Bishop, talent scout del Manchester United, manda il seguente telegramma all&#39;allora manager Matt Busby: &quot;&lt;i&gt;I think I&#39;ve found you a genius&lt;/i&gt;&quot;.&lt;br /&gt;
&lt;br /&gt;
Inizia la favola di George (the) Best. Numero 7. Ala destra. Difficile descriverlo meglio di così: &quot;&lt;i&gt;l&#39;ala destra era un ribelle, un sognatore e un fuggitivo. Aveva la maglia numero sette sulle spalle fragili, portava i capelli lunghi o arruffati e i calzettoni abbassati, i suoi dribbling erano arte pura, elogio della malinconia, allegria e follia&lt;/i&gt;&quot; (tratto da &lt;a href=&quot;http://www.storiedicalcio.altervista.org/darwin_pastorin_poesia_calcio.html&quot;&gt;&quot;Nostalgia dell&#39;ala destra&quot;&lt;/a&gt;&amp;nbsp;di Darwin Pastorin).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Undici stagioni di Manchester United. Innumerevoli successi. Su tutti, una coppa dei campioni ed un pallone d&#39;oro. Best diviene presto un campione, beniamino dei tifosi, leggenda sia dentro che fuori dal campo. E fuori dal campo, se possibile, riesce a distinguersi ancora più che dentro. In ordine sparso: belle donne, whisky, auto sportive, birra, bella vita, miss Canada, vizi, corse di cavalli, scommesse, notti brave, ecc.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
George inizia la sua traiettoria discendente già negli ultimi anni di Manchester. Ma questo lo sanno ormai più o meno tutti. Ciò che è meno conosciuto sono gli anni calcistici immediatamente post Manchester di George Best.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Si narra di &lt;a href=&quot;http://www.scmp.com/node/526795&quot;&gt;George Best bere tè in un locale di Hong Kong&lt;/a&gt;&amp;nbsp;(forse&amp;nbsp;in uno dei (pochi) tentativi di &quot;dealcolizzazione&quot;). Di &lt;a href=&quot;http://www.calcioromantico.com/a-spasso-nel-tempo/george-best-a-edimburgo-una-storia-in-tre-tempi/&quot;&gt;George Best partecipare al terzo tempo della nazionale di rugby francese&lt;/a&gt; e risvegliarsi in un pub di Edinburgo a poche ore dalla partita del suo &lt;a href=&quot;http://it.wikipedia.org/wiki/Hibernian_Football_Club&quot;&gt;Hibernian&lt;/a&gt;. Di George Best aprire un locale in una spiaggia di San José (California). Di George Best in Sud Africa, Australia, Scozia e ancora Irlanda.&lt;br /&gt;
&lt;br /&gt;
Ma ripercorriamo il suo vagabondare per il mondo in cerca di ingaggi, partite e contratti, spesso a gettone. Un globetrotter del calcio. Figura difficilmente immaginabile per quell&#39;epoca.&lt;br /&gt;
&lt;br /&gt;
Nel 1974 George lascia il Manchester United e si trasferisce in prestito al &lt;a href=&quot;http://en.wikipedia.org/wiki/Jewish_Guild&quot;&gt;Jewish Guild&lt;/a&gt;, formazione sud-africana di Johannesburg. Sole cinque partite e qualche scorribanda notturna. George torna in Inghilterra, allo &lt;a href=&quot;http://it.wikipedia.org/wiki/Stockport_County_Football_Club&quot;&gt;Stockport County&lt;/a&gt;. Tre partite, due goal e via di nuovo. Destinanazione:&amp;nbsp;&lt;a href=&quot;http://it.wikipedia.org/wiki/Los_Angeles_Aztecs&quot;&gt;Los Angeles Aztecs&lt;/a&gt;, North American Soccer League. Qua, in America, George è la stella del campionato locale. Ma è difficile tenerlo fermo. Fra il 1975 ed il 1981, George alterna i suoi campionati americani ad alcune apparizioni in Gran Bretagna e Irlanda. Oltre agli Aztecs, milita nelle compagini americane dei &lt;a href=&quot;http://it.wikipedia.org/wiki/Fort_Lauderdale_Strikers&quot;&gt;Fort Launderdale Strikers&lt;/a&gt; e dei &lt;a href=&quot;http://it.wikipedia.org/wiki/San_Jose_Earthquakes&quot;&gt;San José Earthquakes&lt;/a&gt;. Nei suoi ritorni &quot;at home&quot; calca invece i campi di &lt;a href=&quot;http://it.wikipedia.org/wiki/Cork_Celtic_Football_Club&quot;&gt;Cork Celtic&lt;/a&gt; (Irlanda), &lt;a href=&quot;http://it.wikipedia.org/wiki/Fulham_Football_Club&quot;&gt;Fulham&lt;/a&gt; (Londra, Inghilterra) e&amp;nbsp;&lt;a href=&quot;http://it.wikipedia.org/wiki/Hibernian_Football_Club&quot;&gt;Hibernian&lt;/a&gt; (Edimburgo, Scozia). Nell&#39;82-83 è il turno del&amp;nbsp;&lt;a href=&quot;http://it.wikipedia.org/wiki/Athletic_Football_Club_Bournemouth&quot;&gt;Bournemouth&lt;/a&gt; (Inghilterra) oltre che di alcune apparizioni negli &lt;a href=&quot;http://it.wikipedia.org/wiki/Biu_Chun_Rangers_Football_Club&quot;&gt;Hong Kong Rangers&lt;/a&gt; e nel &lt;a href=&quot;http://en.wikipedia.org/wiki/Sea_Bee&quot;&gt;Sea Bee&lt;/a&gt;, entrambe compagini del campionato di Hong Kong, l&#39;allora colonia inglese in Cina. Ma non finisce qui, George Best vanta presenze anche in Australia, quattro partite ufficiali con i&amp;nbsp;&lt;a href=&quot;http://en.wikipedia.org/wiki/Queensland_Lions_FC&quot;&gt;Brisbane Lions&lt;/a&gt;&amp;nbsp;ed altre non ufficiali con gli Osborne Park Galaeb (South Australia). Per finire poi la sua carriera con qualche apparizione nelle serie minori inglesi fra le fila del &lt;a href=&quot;http://en.wikipedia.org/wiki/Nuneaton_Town_F.C.&quot;&gt;Nuneaton Borough&lt;/a&gt; e del &lt;a href=&quot;http://en.wikipedia.org/wiki/Tobermore_United_F.C.&quot;&gt;Tobermore United&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Irlanda del Nord - Inghilterra - Sud Africa - Irlanda - Stati Uniti - Scozia - Hong Kong - Australia. &lt;/b&gt;Anche questo era George Best.&lt;br /&gt;
&lt;br /&gt;
Fonti:&lt;br /&gt;
&lt;a href=&quot;http://www.theguardian.com/football/2003/jul/14/newsstory.sport8&quot;&gt;The Guardian&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://en.wikipedia.org/wiki/George_Best&quot;&gt;Wikipedia&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Lettura consigliata:&lt;br /&gt;
&lt;a href=&quot;http://diotifaboca.wordpress.com/2013/11/11/noi-che-preghiamo-solo-george-belfast/&quot;&gt;Noi che preghiamo George Be[lfa]st&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://pacmanculture.blogspot.com/feeds/3368078696428045918/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://pacmanculture.blogspot.com/2014/01/george-best-dribbling-e-drinking-da.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/3368078696428045918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/3368078696428045918'/><link rel='alternate' type='text/html' href='http://pacmanculture.blogspot.com/2014/01/george-best-dribbling-e-drinking-da.html' title='George Best: dribbling e drinking da Belfast a Hong Kong via Johannesburg, Brisbane, Los Angeles, ...'/><author><name>Valentino</name><uri>http://www.blogger.com/profile/03427336780962255544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyaQ-mCMPq6Kq0KQgMU3gtfo3aSZKg_GzWK1iEsr0Y0FRfObezt7PKCRVOR5nM5Hh2gbADYWS0cf-FaEALu4ai2_Sp18VzRg_O-KvGDcLtNSRzjyNovf-t82RWWL7C/s220/bon_jovi_have_a_nice_day.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7350103676142872969.post-3517586403926940964</id><published>2014-01-24T12:49:00.001+01:00</published><updated>2014-01-24T16:26:58.360+01:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="nonsense"/><title type='text'>Lorem Ipsum</title><content type='html'>&lt;div style=&quot;text-align: justify;&quot;&gt;
Dry hopping bottle conditioning, lauter tun; heat exchanger ester bunghole cask conditioned ale. keg shelf life bottom fermenting yeast, barrel scotch ale, gravity lager, fermentation-- mash tun. cask barley, bock mouthfeel lauter krausen.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Candy bonbon pastry jujubes lollipop wafer biscuit biscuit. Topping brownie sesame snaps sweet roll pie. Croissant danish biscuit soufflé caramels jujubes jelly. Dragée danish caramels lemon drops dragée. Gummi bears cupcake biscuit tiramisu sugar plum pastry. Dragée gummies applicake pudding liquorice. Donut jujubes oat cake jelly-o. Dessert bear claw chocolate cake gummies lollipop sugar plum ice cream gummies cheesecake.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The path of the righteous man is beset on all sides by the iniquities of the selfish and the tyranny of evil men. Blessed is he who, in the name of charity and good will, shepherds the weak through the valley of darkness, for he is truly his brother’s keeper and the finder of lost children. And I will strike down upon thee with great vengeance and furious anger those who would attempt to poison and destroy My brothers. And you will know My name is the Lord when I lay My vengeance upon thee.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Finalmente online!&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://pacmanculture.blogspot.com/feeds/3517586403926940964/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://pacmanculture.blogspot.com/2014/01/lorem-ipsum.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/3517586403926940964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7350103676142872969/posts/default/3517586403926940964'/><link rel='alternate' type='text/html' href='http://pacmanculture.blogspot.com/2014/01/lorem-ipsum.html' title='Lorem Ipsum'/><author><name>Valentino</name><uri>http://www.blogger.com/profile/03427336780962255544</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyaQ-mCMPq6Kq0KQgMU3gtfo3aSZKg_GzWK1iEsr0Y0FRfObezt7PKCRVOR5nM5Hh2gbADYWS0cf-FaEALu4ai2_Sp18VzRg_O-KvGDcLtNSRzjyNovf-t82RWWL7C/s220/bon_jovi_have_a_nice_day.jpg'/></author><thr:total>0</thr:total></entry></feed>