RIPEMD-160 - BitcoinWiki

Contrats d'exécution consensuels de VDS et processus du téléchargement à la chaîne

Résumé des contrats d’exécution consensuels
Le concept de base du contrat d’exécution consensuels
Contrats d’exécution consensuels, connu sous le nom de contrat intelligent dans l'industrie de la blockchain, mais l'équipe de VDS estime que ce terme est trop marketing, car nous n'avons pas trouvé à quel point la technologie de programmation contractuelle est intelligente jusqu'à présent, il s'agit simplement d'un système décentralisé dans le réseau distribué, la procédure prédéfinie de comportement consensuel formée par l'édition de code. Dans l'esprit de rechercher la vérité à partir des faits, nous pensons qu'il est plus approprié de renommer le contrat intelligent en tant que contrat d'exécution de consensus. Lorsque les humains combineront la technologie blockchain avec la technologie d'intelligence artificielle de AI à l'avenir, les obstacles à la compréhension des noms sont éliminés.
Le contrat d'exécution consensuel peut être appliqué à de nombreuses industries, telles que la finance, l'éducation, les systèmes administratifs, l'Internet des objets, le divertissement en ligne, etc. Grâce à la technologie de la blockchain, dans un réseau distribué spécifique, un script d'exécution qui est formé par l'édition de pré-code sans aucune intervention de tiers et le comportement de consensus des deux parties ou de plusieurs parties impliquées dans le protocole. Il garantit l’exécution sûre, stable et équitable des droits et intérêts de tous les participants au contrat.
Le contrat d'exécution consensuel a joué un rôle dans l'accélération de l'atterrissage de diverses applications pour le développement de l'industrie de la blockchain et a incité davantage de développeurs à y participer activement, révolutionnant l'expérience réelle des produits de la technologie de la blockchain. Tout découle des contributions exceptionnelles de l'équipe Ethereum, ouvrant une nouvelle porte à l'ensemble de l'industrie.
Structure de base et jonction
L’intégration de EVM
La machine virtuelle Ethereum (EVM) utilise un code machine 256 bits et est une machine virtuelle basée sur la pile utilisée pour exécuter les contrats d'exécution consensuels d'Ethereum. Étant donné que l'EVM est conçu pour le système Ethereum, le modèle de compte Ethereum (Account Model) est utilisé pour la transmission de valeurs. La conception de la chaîne VDS est basée sur le modèle Bitcoin UTXO. La raison de cette conception est, d'une part, c'est en raison de la nécessité de réaliser la fonction d'échange de résonance de VDS et la fonction d'échange inter-chaîne unidirectionnelle de bitcoin à chaîne VDS, qui peuvent réaliser la génération de deux adresses différentes de bitcoin et VDS avec une clé privée. D'autre part, l'équipe VDS estime que la structure sous-jacente des transactions Bitcoin est plus stable et fiable grâce à 10 ans de pratique sociale. Par conséquent, VDS utilise une couche d'abstraction de compte (Account Abstraction Layer) pour convertir le modèle UTXO en un modèle de compte qui peut être exécuté par EVM. De plus, VDS a ajouté une interface basée sur le modèle de compte, afin qu'EVM puisse lire directement les informations sur la chaîne VDS. Il convient de noter que la couche d'abstraction de compte peut masquer les détails de déploiement de certaines fonctions spécifiques et établir une division des préoccupations pour améliorer l'interopérabilité et l'indépendance de la plate-forme.
Dans le système Bitcoin, ce n'est qu'après la vérification du script de déverrouillage (Script Sig) et du script de verrouillage (Script Pub Key) que la sortie de transaction correspondante peut être dépensée.
Par exemple, le script de verrouillage verrouille généralement une sortie de transaction sur une adresse bitcoin (la valeur de hachage de la clé publique). Ce n'est que lorsque les conditions de configuration du script de déverrouillage et du script de verrouillage correspondent, que l'exécution du script combiné affiche le résultat sous la forme True (la valeur de retour de système est 1), de sorte que la sortie de transaction correspondante sera dépensée.
Dans le système distribué de VDS, nous soulignons l'opportunité de l'exécution du contrat d'exécution consensuel. Par conséquent, nous avons ajouté les opérateurs OP_CREATE et OP_CALL au script de verrouillage. Lorsque le système de VDS détecte cet opérateur, les nœuds de l'ensemble du réseau exécuteront la transaction. De cette façon, le rôle joué par le script Bitcoin est plus de transférer les données pertinentes vers EVM, pas seulement en tant que langage de codage. Tout comme Ethereum exécute un contrat d'exécution de consensus, le contrat déclenché par les opérateurs OP_CREATE et OP_CALL, EVM changera son état dans sa propre base de données d'état.
Compte tenu de la facilité d'utilisation du contrat d'exécution du consensus de la chaîne VDS, il est nécessaire de vérifier les données qui déclenchent le contrat et la valeur de hachage de la clé publique de la source de données.
Afin d'éviter que la proportion d'UTXO sur la chaîne de VDS ne soit trop importante, la sortie de transaction de OP_CREATE et OP_CALL est t conçue pour être dépensée. La sortie de OP_CALL peut envoyer des fonds pour d'autres contrats ou adresses de hachage de clé publique.
Tout d’abord, pour le contrat d'exécution consensuel créé sur la chaîne VDS, le système généreraune valeur de hachage de transaction pour l'appel de contrat.Le contrat nouvellement libéré a un solde initial de 0 (les contrats avec un solde initial ne sont pas 0 ne sont pas pris en charge). Afin de répondre aux besoins du contrat d'envoi de fonds, VDS utilise l'opérateur OP_CALL pour créer une sortie de transaction. Le script de sortie du contrat d'envoi de fonds est similaire à :
1: the version of the VM
10000: gas limit for the transaction
100: gas price in Qtum satoshis
0xF012: data to send to the contract (usually using the solidity ABI)
0x1452b22265803b201ac1f8bb25840cb70afe3303:
ripemd-160 hash of the contract txid OP_CALL
Ce script n'est pas compliqué et OP_CALL effectue la plupart du travail requis. VDS définit le coût spécifique de la transaction (sans tenir compte de la situation de out-of-gas) comme Output Value, qui est Gas Limit. Le mécanisme spécifique du Gas sera discuté dans les chapitres suivants. Lorsque le script de sortie ci-dessus est ajouté à la blockchain, la sortie établit une relation correspondante avec le compte du contrat et se reflète dans le solde du contrat. Le solde peut être compris comme la somme des coûts contractuels disponibles.
La sortie d'adresse de hachage de clé publique standard est utilisée pour le processus de base des transactions de contrat, et le processus de transaction entre les contrats est également généralement cohérent. En outre, vous pouvez effectuer des transactions par P2SH et des transactions non standard (non-standard transactions). Lorsque le contrat actuel doit être échangé avec un autre contrat ou une adresse de hachage de clé publique, la sortie disponible dans le compte du contrat sera consommée. Cette partie de la sortie consommée doit être présente pour la vérification des transactions dans le réseau de VDS, que nous appelons la transaction attendue du contrat (Expected Contract Transactions). Étant donné que la transaction attendue du contrat est générée lorsque le mineur vérifie et exécute la transaction, plutôt que d'être générée par l'utilisateur de la transaction, elle ne sera pas diffusée sur l'ensemble du réseau.
Le principe de fonctionnement principal de la transaction attendue du contrat est réalisé par le code OP_SPEND. OP_CREATE et OP_CALL ont deux modes de fonctionnement. Lorsque l'opérateur est utilisé comme script de sortie, EVM l'exécute, lorsque l'opérateur est utilisé comme script d'entrée, EVM ne sera pas exécuté (sinon il provoquera une exécution répétée). Dans ce cas, OP_CREATE et OP_CALL peuvent être utilisés comme Opération sans commandement. OP_CREATE et OP_CALL reçoivent la valeur de hachage de transaction transmise par OP_SPEND et renvoient 1 ou 0 (c'est-à-dire il peut être dépensé ou pas). Il montre l'importance de OP_SPEND dans la transaction attendue de l'intégralité du contrat. Plus précisément, lorsque OP_SPEND transmet la valeur de hachage de transaction à OP_CREATE et OP_CALL, OP_CREATE et OP_CALL comparent si la valeur de hachage existe dans la liste des transactions attendues du contrat. S'il existe, renvoyez 1 pour dépenser, sinon retournez 0, ce n'est pas pour dépenser. Cette logique fournit indirectement un moyen complet et sûr de garantir que les fonds du contrat ne peuvent être utilisés que par le contrat, ce qui est cohérent avec le résultat des transactions UTXO ordinaires.
Lorsque le contrat EVM envoie des fonds à l'adresse de hachage de clé publique ou à un autre contrat, une nouvelle transaction sera établie. À l'aide de l'algorithme de Consensus-critical coin picking, la sortie de transaction la plus appropriée peut être sélectionnée dans le pool de sortie disponible du contrat. La sortie de transaction sélectionnée sera utilisée comme script d'entrée pour exécuter un seul OP_SPEND, et la sortie est l'adresse cible des fonds, et les fonds restants seront renvoyés au contrat, tout en modifiant la sortie disponible pour la consommation. Ensuite, la valeur de hachage de cette transaction sera ajoutée à la liste des transactions attendues du contrat. Lorsque la transaction est exécutée, la transaction sera immédiatement ajoutée au bloc. Une fois que les mineurs de la chaîne ont vérifié et exécuté la transaction, la liste des transactions attendues du contrat est à nouveau parcourue. Une fois la vérification correcte, la valeur de hachage est supprimée de la table. De cette façon, l'utilisation de OP_SPEND peut effectivement empêcher l'utilisation de valeurs de hachage codées en dur pour modifier le coût de la sortie.
La couche d'abstraction des comptes VDS élimine la nécessité pour l'EVM d'accorder trop d'attention à coin-picking. Il lui suffit de connaître le solde du contrat et peut échanger des fonds avec d'autres contrats ou même des adresses de hachage de clé publique. De cette façon, seule une légère modification du contrat d'exécution du consensus Ethereum peut répondre aux exigences de fonctionnement du contrat VDS.
En d'autres termes, tant que le contrat d'exécution consensuel peut être exécuté sur la chaîne Ethereum, il peut s'exécuter sur la chaîne VDS.
Achèvement de AAL
La conception de la chaîne VDS est basée sur le modèle Bitcoin UTXO. La plate-forme générale de contrat d'exécution de consensus utilise le modèle de compte. Étant donné que le contrat en tant qu'entité nécessite un logo de réseau, ce logoest l'adresse du contrat, de sorte que le fonctionnement et la gestion du contrat d'exécution consensuel peuvent être effectués par cette adresse. La couche d'abstraction de compte est ajoutée à la conception du modèle (Account Abstraction Layer, AAL) de chaîne de VDS, qui est utilisée pour convertir le modèle UTXO en un modèle de compte qui peut être exécuté par le contrat.
Pour les développeurs qui exécutent des contrats par consensus, le modèle de compte de la machine virtuelle est relativement simple. Il prend en charge l'interrogation des soldes des contrats et peut également envoyer des fonds pour d'autres contrats. Bien que ces opérations semblent très simples et basiques, toutes les transactions de la chaîne VDS utilisent le langage de script Bitcoin, et il est plus compliqué que prévu d'être implémenté dans la couche d'abstraction de compte de la chaîne VDS basée sur le modèle Bitcoin UTXO. AAL a donc élargi sa base en ajoutant trois nouveaux opérateurs :
OP_CREATE est utilisé pour effectuer la création de contrats intelligents, transmettre le code d'octet transmis via la transaction à la base de données de stockage de contrats de la machine virtuelle et générer un compte de contrat.
OP_CALL est utilisé pour transférer les données pertinentes et les informations d'adresse nécessaires pour appeler le contrat et exécuter le contenu du code dans le contrat. (Cet opérateur peut également envoyer des fonds pour des contrats d'exécution consensuels).
OP_SPEND utilise la valeur de hachage de ID de contrat actuel comme transaction d'entrée HASH ou transaction HASH envoyée à l'UTXO du contrat, puis utilise OP_SPEND comme instruction de dépense pour créer un script de transaction.
Utilisation des Contrats et processus du téléchargement à la chaîne
Rédiger les contrats
Il est actuellement possible d'utiliser le langage Solidity pour rédiger des contrats d'exécution de consensus.
Utilisez Solidity Remix ou un autre Solidity IDE pour l'écriture et la compilation de code.
solidity remix(https://remix.ethereum.org/
Il est recommandé d'utiliser le mode homestead pour compiler.
Il est recommandé d'utiliser la version solidité 0.4.24 (si d'autres versions sont utilisées, cela peut provoquer des erreurs ou des échecs).
La syntaxe Solidity peut être référencée(https://solidity.readthedocs.io/en)
Compiler et déployer les contrats
Fonctionnement du contrat intelligent de vdsd
Examiner les variables de fonctionnement de l'environnement
vdsd -txindex=1 -logevents=1 -record-log-opcodes=1 -regtest=1
> Les tests sous contrat sont effectués dans l'environnement de test. Il est recommandé de tester après avoir atteint une hauteur de 440 blocs.
440 blocs hautement achevés l'opération de retour de fonds après les événements anormaux du contrat (refund) et (revert).
La commande de contrat de déploiement est :
```vds-cli deploycontract bytecode ABI parameters```
- bytecode (string, required) contract bytecode.
- ABI (string, required) ABI String must be JSON formatted.
- parameters (string, required) a JSON array of parameters.
Cette fonction est utilisée pour l'exécution du constructeur du contrat avec les paramètres entrants pour obtenir le ByteCode qui est finalement utilisé pour le déploiement.
(Cette méthode consiste à associer le bytecode à ABI et à le stocker localement pour l'enregistrement. Il peut appeler des méthodes internes localement et renvoyer le bytecode approprié)
```vds-cli createcontract bytecode (gaslimit gasprice senderaddress broadcast)```
- bytecode (string, required) contract bytecode.
- gaslimit (numeric or string, optional) gasLimit, default is DEFAULT_GAS_LIMIT, recommended value is 250000.
- gasprice (numeric or string, optional) gasprice, default is DEFAULT_GAS_PRICE, recommended value is 0.00000040.
- senderaddress (string, optional) The vds address that will be used to create the contract.
- broadcast (bool, optional, default=true) Whether to broadcast the transaction or not.
- changeToSender (bool, optional, default=true) Return the change to the sender.
La valeur de retour est : txid, éxpéditeur, hachage de l'expéditeur160, adresse du contrat
Consulter si la commande a été exécutée avec succès :
```vds-cli gettransactionreceipt txid```
La valeur de retour de txid pour les transactions non contractuelles est vide
La valeur de retour est : Les informations pertinentes de txid sur la BlockHash Hachage du bloc
- blockNumber Hauteur de bloc
- transactionHash Hachage de transaction
- transactionIndex La position de l'échange dans le bloc
- from Hachage de l’adresse de l’expéditeur 160
- to Le destinataire est l'adresse du contrat, le lieu de création de la transaction contractuelle est 00000000000000000000000000000
- cumulativeGasUsed Gas accumulé
- gasUsed Gaz réellement utilisé
- contractAddress Adresse du contrat
- excepted Y a-t-il des erreurs
- exceptedMessage Message d'erreur
-
Il convient de noter que le champ excepted n'est pas None, ce qui indique que l'exécution du contrat a échoué. Bien que la transaction puisse être vérifiée sur la chaîne, cela ne signifie pas que le contrat a été exécuté avec succès, c'est-à-dire que les frais de traitement pour l'exécution de ce contrat ne sont pas remboursables. Les frais de traitement ne seront remboursés que si la méthode revert est entrée dans le contrat, et les frais de méthode ne seront pas remboursés pour la méthode assert.
Appel des contrats
```vds-cli addcontract name contractaddress ABI decription```
- name (string required) contract name.
- contractaddress (string required) contract address.
- ABI (string, required) ABI String must be JSON formatted.
- description (string, optional) The description to this contract.
Cette fonction est utilisée pour ajouter le contrat ABI à la base de données locale.
```vds-cli getcontractinfo contractaddress```
- contractaddress (string required) contract address.
Cette fonction est utilisée pour obtenir les informations du contrat ajouté.
```vds-cli callcontractfunc contractaddress function parameters```
- contractaddress (string, required) The contract address that will receive the funds and data.
- function (string, required) The contract function.
- parameters (string, required) a JSON array of parameters.
Cette fonction renverra le résultat de l'exécution lors de l'appel de la méthode constante ordinaire, comme l'appel de la méthode d'opération de données de contrat retournera la chaîne de format hexadécimal du script d'opération.
```vds-cli sendtocontract contractaddress data (amount gaslimit gasprice senderaddress broadcast)```
- contractaddress (string, required) The contract address that will receive the funds and data.
- datahex (string, required) data to send.
- amount (numeric or string, optional) The amount in " + CURRENCY_UNIT + " to send. eg 0.1, default: 0
- gaslimit (numeric or string, optional) gasLimit, default is DEFAULT_GAS_LIMIT, recommended value is 250000.
- gasprice (numeric or string, optional) gasprice, default is DEFAULT_GAS_PRICE, recommended value is 0.00000040.
- senderaddress (string, optional) The vds address that will be used to create the contract.
- broadcast (bool, optional, default=true) Whether to broadcast the transaction or not.
- changeToSender (bool, optional, default=true) Return the change to the sender.
Cette fonction est utilisée pour envoyer le script d'opération de contrat au contrat spécifié et le faire enregistrer sur la blockchain.
Consultation des résultats d’exécution des contrats
```vds-cli gettransaction txid```
Cette commande est utilisée pour afficher les heures de confirmation de la transaction de portefeuille actuelle.
```vds-cli gettransactionreceipt txid```
Cette commande est utilisée pour vérifier les résultats d'exécution de la création de contrat et des transactions d'appel, s'il y a des exceptions levées et des consommations réelles de GAS.
`${datadir}/vmExecLogs.json` enregistrera les appels de contrat sur la blockchain. Ce fichier servira d'interface externe pour les événements de contrat.
Interface d'appel des contrats
l Interface de création de contrat createcontract
l Interface de déploiement de contrat deploycontract
l Interface d'ajout ABI addcontract
l Interface d’appel des contrats avec l’opération des fons sendtocontract
l Interface de lecture des informations sur les contrats callcontractfunc
l Interface d'acquisition d'informations sur l'exécution des transactions contractuelles gettransactionreceipt
L’expliquation des coûts d’expoitation des contrats
Les coûts de fonctionnement de la création d'un contrat sont toutes des méthodes estimées, et un succès d'exécution à 100% ne peut pas être garanti, car gas limit a une limite supérieure de 50000000, et les contrats dépassant cette limite entraîneront un échec. La chaîne de VDS utilise une méthode de rendre la monnaie, ce qui signifie que même si beaucoup de gaz est envoyé, le mineur n'utilisera pas tout le gas et restituera le gas restant. Alors ne vous inquiétez pas de dépenser trop de gas.
Le coût de création d'un contrat est approximativement de la taille du Byte Code * 300 comme gas limit, le gas price minimum est de 0.0000004, gas price * gas limit est le coût de création d'un contrat.
En ce qui concerne l'exécution de la méthode dans un contrat, le gas requis est estimé. En raison de la congestion du réseau, l'estimation ne garantit pas que 100% peuvent être téléchargés avec succès dans la chaîne. Par conséquent, je crains de tromper et de demander au développeur de vérifier les résultats.
submitted by YvanMay to u/YvanMay [link] [comments]

Comprehensive guide to safely browse the SilkRoad

Summary
I) INTRODUCTION
II) SOFTWARES & LINKS
III) ENCRYPTION USING TRUECRYPT
IV) CREATION OF A VIRTUAL MACHINE USING VBOX
V) TWEAKS TO VBOX
VI) INSTALLING AND SETTING UP LINUX
VII) INSTALLING TOR
VIII) SHORT INTRODUCTION TO PGP VIA TERMINAL
IX) ADDITIONAL THOUGHTS
I) INTRODUCTION
First of all, I'm no security expert. The following guide will be nothing but technical instructions to securing your machine to make digital information storage and transmission secure.
Your security is divided in 3 parts. Also remember your security (as in lowering chances to get caught) is only as strong and your weakest link. Those 3 parts are :
a) Money
You can (and will) get caught if you aren't careful with how you move money. Banks and LE work hand-in-hand to trace money. I won't cover that aspect but you need a bulletproof way of buying (if you are a buyer) and/or selling (if you are a seller) your bitcoins.
b) Drugs
Yes, you'll get caught if you don't handle drugs in a secure fashion, ldo. It includes shipping, stealthing, receiving packages, storing. You get the idea.
c) Information
Here is the part I'll develop in this guide. How to handle information (mostly digital information) to not get caught and be as stealthy as possible.
II) SOFTWARES USED AND LINKS
All the following softwares are :
1) Free - you don't have (and shouldn't, as sad as it sounds for security reasons) to pay anything to fully use them
2) Open source - Anyone with knowledge can see what the programs are made of. Def a security plus.
We will need (In order of use) :
a) a good anti-virus
Before even starting the job, we need to make sure we're working in a safe environnement. If you have a keylogger installed on your computer then all futur steps will be for NOTHING. So if you don't have an updated AV installed yet, get one. I personally use AVG. Here is the link but it's recommended you search it yourself using google, after all, I could be a hacker myself.
http://free.avg.com/
b) a password manager
You'll need to save at least 5 complex passwords. I strongly recommend using a password manager (with passwords creation) such as KeePass. It's multi plateform (windows/linux/android).
http://keepass.info/
c) TrueCrypt
Very powerful piece of software which allows you to encrypt files/folder or even full system partition using bulletproof algorythm such as AES.
http://www.truecrypt.org/
d) VirtualBox
Very powerful software which allows you to run a completely autonom virtual machine inside your physical machine.
https://www.virtualbox.org
e) Ubuntu 13.04
Free OS. Very safe. Not so user friendly but you'll only use it to browse SilkRoad and use PGP (more on that later).
http://www.ubuntu.com/
d) Tor Browser Bundle (TBB)
A package of pre-configured software to use TOR. Awesome.
https://www.torproject.org/projects/torbrowser.html.en
III) ENCRYPTION USING TRUECRYPT
I assume you already installed the antivirus and ran a minutious scan on your system. Your system was clean already ? Great, you can read what's next.
So first, we want to create an encrypted folder so that we can install a complete different OS in it. It'll be 100% safe and impossible (without the passphrase ldo) to know what it is you are putting in the folder.
a) Click on "Create Volume"
b) Select "Create an encrypted file container"
c) Select "Standard TrueCrypt volume"
note : Do your research on which option you want to use.
d) For Volume Location, select where you want to save the file. Type in a random name and click "save" then "Next" !! Note : You can select a USB pendrive (with at least 10GB and USB 3.0 strongly recommended) so that you have a portable, encrypted OS. Very useful since that you can physically hide it from LE in case of a search at your place) !!
e) Encryption Options
I advise to use AES. The technology is old which, in security, is a good thing since it means it has been tested by many security experts. I don't know about Hash Algorithm. I think I use RIPEMD-160 but it's up to you to do your godamn research on which option you want to use.
f) Volume Size
Pick at least 10gb, (no more than 15GB really). Note : TrueCrypt will encrypt the whole 10GB no matter what it is you put in, even empty space. So consider the number you type in (10GB here) as gone once you click "Next".
g) Volume Password
Open KeePass (!!!!!!!! with a strong masterpassword !!!!!!!!) and generate a random passphrase using at least 15 (25+ advised) characters (with lowercase, uppercase, numbers, symbols, space everything checked). Save it carefully, and copy paste it twice in TryeCrypt.
h) Large Files
Select "Yes"
i) Volume Format
Move your mouse randomly (to create randomness in the Key) a few seconds then click "Format", wait.
Congratulation, you now are the owner of an encrypted file container.
IV) CREATION OF A VIRTUAL MACHINE USING VIRTUALBOX
First, you need to mount the encrypted folder you just created. For this, open TrueCrypt, and click on random letter (remember it and always use the same to avoid corruption). I personally use R: (don't ask me why, I guess I used it the first time and it stuck). Then, click on "Select File" and browse to your newly created folder, click on "Open". Then, click on "Mount", it'll ask for your passphrase. Open it with KeePass and copy past it. Click "OK". If everything went well, you can know access your encrypted folder using Windows Explorer in computer. Truecrypt created a virtual partition.
Okay, so now, off to creating a Virtual Machine. You must have downloaded Ubuntu 13.04 (700MO or so). Good, save the .iso file somwhere.
a) Open VirtualBox, click on "New". In name, type in Ubuntu, it'll automatically select the type and version needed. Click "Next".
b) Memory Size. It's the amount of RAM you want to allocate to your virtual machine. I personally have 12GB of RAM and I allocated 4096MO to my VM (virtual machine). Note : Consider that the amount of RAM you give to your VM gone from your physical machine. Even if you don't run anything on your VM, the amount given (4096MO) won't be usable by your physical machine until you shutdown your VM. Click "Next".
c) Hard-Drive. Select "Create a virtual hard drive now", click "Create".
d) Type of hard drive file Select "VDI (Image disk VirtualBox)" Click "Next".
e) Select "Fixed Size", click "Next".
f) File location and size For location, click the yellow folder and go to the letter you mounted the file in TrueCrypt (for me R:\the-name-of-your-VM.vdi) In size, pick whatever the amount of GB you allocated to the crypted folder MINUS 1.5GB. !! Note : very important. For exemple, if your crypted folder is 10GB, you must pick 8,50 Gio. !! Click "Create" and wait a minute or two for VBox to create your VM.
V) TWEAKS TO VBOX
Here are the settings I use for my SilkRoad Machine.
To access settings, in VirtualBox, select your newly created VM and click "Configuration". Go to the onglet "System" => "Proc", select a reasonnable Value (where the green and red meets is generally ok). Type in 90% in allocated ressources. Go to the onglet "Display" => "Video", select a reasonnable Value (where the green and red meets is generally ok). Number of screen, 1 by default. You can use more screens if you have more than one. Vbox supports it beautifully. Click "OK".
VI) INSTALLING AND SETTING UP LINUX
a) Open VBox, select your virtual machine in the left and click "Start" at the top. You now are running your virtual machine.
Now you must install Linux on it. A window will pop up and ask you to select a booting disk. Click the yellow folder and browse to the Ubuntu.iso file you previously downloaded. Click on "Start".
You VM will now boot using Ubuntu. Install it, check "Download updated while installing", leave everything else as is.
Select "Erase disk and install Ubuntu". File in the settings needed. In name, type whatever you want (note : I usually just type in the same letter I used to mount the folder with TrueCrypt). Pick a password (a new fresh password, that one isn't necessarily important but make sure you remember it). Select "Require my password to log in", you don't mind extra lawyers of security. Click "Continue". Now, wait, the installation can take up to an hour or two.
When done, click on "Restart Now". When rebooting, you will be asked to if you want to boot using the installation, DON'T anything and wait. Now you have a beautiful orange/purple page asking you for your password. Type in the password you wrote during the installation process and press Enter. Welcome to Ubuntu.
b) You need to setup a few things.
First, you can go fullscreen pressing Right CTRL + F (the CTRL next to the arrows on the right of your keyboard). Better, right ?
You'll notice those black borders onto the sides. That's ugly and bad for your eyes. To remediate, you need to install a pack of drivers especially made for Virtual machines.
To do so, put your cursor to the very bottom center of your screen (if you are in fullscreen mode, else you have access to the options at the very top of the window). Click on "Peripheric", Click on "Install Guest Additions". An autorun window will open up, select "Run Software" and click "OK". Enter your Ubuntu password. Click "Authenticate". An ugly purple window will open with ugly white characters, it's the terminal. We'll use it later for different stuff. Wait a minute or two until you have the terminal says this "Press Return to close this window...". Press Return on your keyboard (above Enter) to close the window, ldo.
Reboot the virtual machine by going to the very top right of your screen. Now to go the options, on the left, you'll see a dock of icons, click the Gear with the Red hammer or whatever you call it in english (I know it's not a hammer). Double click on "Displays", pick your favorite resolution. Click "Apply" then "Keep that resolution". Much better, cierto ?
You will notice the OS seems slow and laggy, even more so if you installed your VM on a USB pendrive. To remediate, follow those steps.
Run the terminal (push ALT + F2 and type in "Terminal", double click to open it. Copy past that command :
/uslib/nux/unity_support_test -p
The following should appear :
Not software rendered: no
Not blacklisted: yes
GLX fbconfig: yes
GLX texture from pixmap: yes
GL npot or rect textures: yes
GL vertex program: yes
GL fragment program: yes
GL vertex buffer object: yes
GL framebuffer object: yes
GL version is 1.4+: yes
Unity 3D supported: no
As you can see, 3D acceleration isn't activated. To activate it, return to terminal and copy past that command, enter password when asked. When "asked to continue [Y/n] ?", type in Y then press enter.
sudo bash -c 'echo vboxvideo >> /etc/modules'
Shutdown the virtual machine (you can do it manually inside the VM or press Right CTRL + Q and select "Send extinction signal".
Go back to VirtualBox and go to configuration => display. Check Activate 3D acceleration.
Boot your VM, open terminal and type
/uslib/nux/unity_support_test -p
You should now see that Unity 3D is supported and your OS is fluid. Don't expect native performances tho, it's still an emulated OS.
VII) INSTALLING TOR
Run your VM. Open a firefox window and go to https://www.torproject.org/projects/torbrowser.html.en
Select the Linux version and download it. Close Firefox. We want to use that machine on the clearweb as little as possible.
Unpack (or drag&drop) the tor-browser_en-US folder in the folder "Home" or desktop or whervere you want.
Open the folder and double click on "start-tor-browser". It will open a weird text editor with gibberish stuff in it. Close it. We need to activate an option first.
Push ALT, in that window, type "dconf-editor" and press Enter. In dconfg-editor go to: org => gnome => nautilus =>preferences Click on "executable-text-activation" and from drop down menu select: "launch: to launch scripts as programs." Close dconf-editor.
You can now launch TOR. and browse anonymously the road. I strongly advise you to install KeePass for linux by going to Ubuntu Software Center to save passwords for Silkroad as well as your PGP passphrase.
VIII) SHORT INTRODUCTION TO PGP VIA THE LINUX TERMINAL
PGP is a powerful protocal that allows you to encrypt and decrypt messages and files. It has been used for over 15 years and is the standard all over the world for industry and governement communications.
So first, we must create our own set of keys.
A) Creating your own keys
To do so, open the terminal and type GPG. It will reply :
gpg: Go ahead and type your message ...
Ok, you've got GPG installed already, perfect.
To create your key, type :
gpg --gen-key
Type 1 then hit Enter
You'll be asked to chose between 1024 and 4096 bits. Chose 4096 (the most secure), hit Enter.
Next window, type 0, press Enter, then type Y, press Enter.
You are now asked to enter your name, it's important you don't type in your Real Name obviously but it's also important to chose something that identifies you. I chose my Silkroad name so that my contacts know the key is mine.
Email adress : [email protected] or whatever you want, shouldn't be real.
Comment : none, press Enter
Type in "O" to confirm, press Enter
Enter passphrase, very important to chose something very secure. As usual, open up KeePass and generate a strong passphrase, there is no limitation AFAIK.
Then you'll be asked to do random stuff on your computer to generate bytes to ensure randomness in your key pool. Do stuff, open a random file and type in stuff for exemple. Once it's done (it can take a few minutes), you now have your own set of keys.
What we want to do know is to export the public key so that you can share it with your sellers/buyers.
Type :
gpg --armor --export your-email-adress-used-before
Copy paste the public key in a .txt file on your desktop and share it whenever you buy/sell.
B) Importing a public key
To send a message to someone, you must important its key. To do so, create a document and copy paste the key there, close & save it.
Now, open seahorse (hit ALT and type in Seahorse, open the program called "Passwords and keys".
Put your cursor in the very top left of your screen and click file => import, select the file you saved the key in. Done.
C) Encrypting a message
Open the terminal and type :
gpg -ear name-or-email-of-your-contact < Press Enter Type your message
Press Enter, finish by typing "end" and press Enter again.
You'll have your encrypted message. Something that looks like that :
-----BEGIN PGP MESSAGE----- Version: GnuPG v1.4.12 (GNU/Linux)
hQIMA7eD31/5BBRZAQ/9Hq1r1gpOIf2r06zSIL8Ww0tUCC9PlNiMpemPwhpZsccB vO4MOMrnV41BHToTQNfh0xiZdXFxO/T6ow4oatP2Ap/BvZtipcAAjJKowP6aaTOJ Wgd7nC4FTJvRUjgkW/p3imlQsdTVb3+2dNzCPp0yrr8NocW77+4Ka/+4aoql0UmI 3mKLjo0+eof8qAnQd5jOaAcWTszhIwBd99rXVbRCjNa/jMsSQ9Vnn7L+WqYGHuAI MMdOCU3peifV/7zA6A0bMKzStWc1JIa84wus91/mmErkRcNZHqThCje8eulinzRm RthaH0yi7ty65F3IuSqbq/qdpdE9UXvwjySbFE7ANCPpnkP4jv+oL95UezyjbO2x ra1Il7XKbYvaf0oXJAz5xKsLfeHKB3kCR+Kxzt9NmdRZ4rPZ4ZjSN5WI9YeOL0t/ W7oaCyBcFD/6/m/63VNYZTrwrqBGqsWhXVFpoHalvd+09CffsdQjwDIMy9u3TtRk j+FDSGuukKrS/7exWSoajSDhTK+koSS8CIFvyocZ81EkGhnUjd4kxlIAu4UCXmG6 LiJXXo7X5PK7knGtlzZXstrtrrttr8FFeAbSHsZ0+ihdxtNSvx1EPewl TtLSKoUT9ickUrxFoPm2z1vqBwN/087EaCU6BSX8uwZ8GrxMwSKgVmQKfVyfgMDS RAGGtmuRwgfyhthrertwF0KV8nTajDnSqoGiMAgK7y+e320OEFnYXOKIXlue l7FvOHwi9jZbBAR4HHAfhgJIj78P =OT60 -----END PGP MESSAGE-----
You can now send the encrypted message to your contact.
D) Decrypting messages
Open the terminal and type :
gpg -da < Press enter, then copy paste the message you received. Press Enter, finish by tiping end then press Enter again.
You will be asked to enter the passphrase to decrypt it. Open KeePass and copy paste it. The result will be like this :
You need a passphrase to unlock the secret key for user: "abcd [email protected]" 4096-bit RSA key, ID xx, created 2013-05-08 (main key ID xxx)
gpg: encrypted with 4096-bit RSA key, ID xxx, created 2013-05-08 "abcd [email protected]" ENCRYPTED MESSAGE TO THE SILK ROAD HERE
You can now safely converse with your vendors.
IX) ADDITIONAL THOUGHTS
I hope everything worked well. Finally, the most important security advice someone can give is to use your brain. Don't do anything stupid and you should be fine.
Feel free to discuss issues you may have encontered here or by PM, I'll gladly help you getting setup.
Remember also that your security is only as good as your contacts security. For exemple, if your seller is stupid and keeps detailed informations of his buyers on file, then there isn't much you can do in case he gets caught.
I could have sold this tutorial but I chose not to because my personnal security is guaranteed only if yours is aswell. You get my point.
MUST BE ANONYMOUS
-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.12 (GNU/Linux)
mQENBFGIAIUBCAC75V2SJ50dU6+gUY7jdrHxJKmdjXjlOxWjE+CTuti+Pq8NveTK aPXWHmFZpsEtW+v7tHmPPT/cjEKlmo/B9Wxl9daFis+6gFQHnaKNRCFVmOSt9GL8 7qBxrxC/HZTeBgdE8dWf4RPSc911PRb2+iCCrdgj+5ILwp3fcM5EHoRqKiFDpb3A fybrw3prvpPx8dyt1H/p73S6Gfk+Iuwcq2+iIAMJUJQUc+CwMFFCplQ1BUeiD+nn 5o24FXF9Krcbw8w5lZCfPVPSh0GYTvNMaj1VWjEQFU4j0rCOiJ+UVckpgJ4MRrxI MbKJ8srGLSJRnCHM2syQC0Zq/2iwRuZY7zWXABEBAAG0EVdoYXRzdXA1NiA8YUBi LmM+iQE4BBMBAgAiBQJRiACFAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAK CRBioWhoc3JRsCrhB/9M2AptCTjyitpQR1ZnqwFop/NDdOIY1DtERkyQKfbHftzK 5I/LI3wxP5rhts2NY/EMVl8ziJVZ7h0J9japkoia8uOYX9Un6aMasHM0PH7Mln2K 936BeoZDQbPQV8NOCyNT4lMNt7Ajd+6GJcmAIduPmUi6xjgge716MhQlTBg5HG 94ZJT3Xm7W9tuIiJh8H9Dkr60F9UuwtIPfKPEeXyxUI25fZAQ+nyVz39ap2fjyeW EYMB6y90zxWjFPiFfpx+BfcWOmzHaXkps/bG6kSbOcVn9UJS32C0JyIFmfa96N6H +tSmk+WW98u5dSBzhIoYYiXxWPihJDOjTCUYkFC9uQENBFGIAIUBCADrkKs31LOL 4MQ6fdzhw2MvTI8zDad2bJZCd/+Gf8yGTNKhagJIHo8KEuCDINydQXHCt+aNKZZ7 d/QG09nABaybZJfqf1ffOiD5L1PivcKJMdJNozNuIhWxc4E35A7c/wCPJdDOBV0v eqf57illUo+yz7CKfyO088BYMGTrBRi/ifqmPyMuYzzC4SZcx1MJFU1mzONYU1r0 ZYj0eeKdRrbHPfJUAWQUr6MteMvJp5g8JfyYC+Th+zASEYRRfs3I52rsLb1hpxoi 87xUK89xoXdg4uLysz1Iy/PhGjmtbi61sZCv1oh+o9biNsy9zIjqwhCW7oMPwmJ6 Szh2nNTMCuNFABEBAAGJAR8EGAECAAkFAlGIAIUCGwwACgkQYqFoaHNyUbBKWAf5 AbYVbQVRNYVw5pR6+NDLw1qxlafGz/7j6YnApif0vuVzBEE9aFOUdxfKyIy+Ka8l NYjoAItym2mDTsRZqJwEm1FPbmVFu7WPAnnmn1ECyHBSV0vnJjCL5qkoMx9d/EHs WBW7htnRVtbuJEzVZzzSfddjWEYXGqYcqocebBwQpNgdfuQrHadAbkSmDwLfz+KD r17m1i9sUej8hiFLr64XGau7nl2l+iRMR2vTcVpNZDTJa/t4JlrwMINR95ORo3ze bRVKbedZIn3ifeSzyWDTsScvkNVAe4dovATaHWU/+tkNgL4ECI1UNS8XYsGqWe+r pbfj19eRRPAc4lbNfLlUKQ== =aq6t -----END PGP PUBLIC KEY BLOCK-----
edit : Fixed a few typos.Reorganized chapters using roman letters.
submitted by MUST-BE-ANONYMOUS to SilkRoad [link] [comments]

BIP Number Request: Open Asset | Nicolas Dorier | May 26 2016

Nicolas Dorier on May 26 2016:
Open Asset is a simple and well known colored coin protocol made by Flavien
Charlon, which has been around for more than two years ago.
Open Asset is OP_RETURN to store coin's color. Since then, the only
modification to the protocol has been for allowing OA data to be into any
push into an OP_RETURN.
The protocol is here:
https://github.com/OpenAssets/open-assets-protocol/blob/mastespecification.mediawiki
I asked to Flavien Charlon if he was OK if I submit the protocol to the
mailing list before posting.
Additional BIP number might be required to cover for example the "colored
address" format:
https://github.com/OpenAssets/open-assets-protocol/blob/masteaddress-format.mediawiki
But I will do it in a separate request.
Here is the core of the Open Asset specification:
Title: Open Assets Protocol (OAP/1.0)
Author: Flavien Charlon
Created: 2013-12-12
==Abstract==
This document describes a protocol used for storing and transferring
custom, non-native assets on the Blockchain. Assets are represented by
tokens called colored coins.
An issuer would first issue colored coins and associate them with a
formal or informal promise that he will redeem the coins according to
terms he has defined. Colored coins can then be transferred using
transactions that preserve the quantity of every asset.
==Motivation==
In the current Bitcoin implementation, outputs represent a quantity of
Bitcoin, secured by an output script. With the Open Assets Protocol,
outputs can encapsulate a quantity of a user-defined asset on top of
that Bitcoin amount.
There are many applications:
could then be traded frictionlessly through the Bitcoin
infrastructure.
could withdraw and deposit money in colored coins, and trade those, or
use them to pay for goods and services. The Blockchain becomes a
system allowing to transact not only in Bitcoin, but in any currency.
of colored coins. The door would only open when presented with a
wallet containing that specific coin.
==Protocol Overview==
Outputs using the Open Assets Protocol to store an asset have two new
characteristics:
asset stored on the output.
many units of that asset are stored on the output.
This document describes how the asset ID and asset quantity of an
output are calculated.
Each output in the Blockchain can be either colored or uncolored:
both undefined).
non-null asset ID.
The ID of an asset is the RIPEMD-160 hash of the SHA-256 hash of the
output script referenced by the first input of the transaction that
initially issued that asset (script_hash =
RIPEMD160(SHA256(script))). An issuer can reissue more of an
already existing asset as long as they retain the private key for that
asset ID. Assets on two different outputs can only be mixed together
if they have the same asset ID.
Like addresses, asset IDs can be represented in base 58. They must use
version byte 23 (115 in TestNet3) when represented in base 58. The
base 58 representation of an asset ID therefore starts with the
character 'A' in MainNet.
The process to generate an asset ID and the matching private key is
described in the following example:

The issuer first generates a private key:

18E14A7B6A307F426A94F8114701E7C8E774E7F9A47E2C2035DB29A206321725.

He calculates the corresponding address:

16UwLL9Risc3QfPqBUvKofHmBQ7wMtjvM.

Next, he builds the Pay-to-PubKey-Hash script associated to that

address: OP_DUP OP_HASH160
010966776006953D5567439E5E39F86A0D273BEE OP_EQUALVERIFY
OP_CHECKSIG.

The script is hashed: 36e0ea8e93eaa0285d641305f4c81e563aa570a2

Finally, the hash is converted to a base 58 string with checksum

using version byte 23:
ALn3aK1fSuG27N96UGYB1kUYUpGKRhBuBC.
The private key from the first step is required to issue assets
identified by the asset ID
ALn3aK1fSuG27N96UGYB1kUYUpGKRhBuBC. This acts as a
digital signature, and gives the guarantee that nobody else but the
original issuer is able to issue assets identified by this specific
asset ID.
==Open Assets Transactions==
Transactions relevant to the Open Assets Protocol must have a special
output called the marker output. This allows clients to recognize such
transactions. Open Assets transactions can be used to issue new
assets, or transfer ownership of assets.
Transactions that are not recognized as an Open Assets transaction are
considered as having all their outputs uncolored.
===Marker output===
The marker output can have a zero or non-zero value. The marker output
starts with the OP_RETURN opcode, and can be followed by any sequence
of opcodes, but it must contain a PUSHDATA opcode containing a
parsable Open Assets marker payload. If multiple parsable PUSHDATA
opcodes exist in the same output, the first one is used, and the other
ones are ignored.
If multiple valid marker outputs exist in the same transaction, the
first one is used and the other ones are considered as regular
outputs. If no valid marker output exists in the transaction, all
outputs are considered uncolored.
The payload as defined by the Open Assets protocol has the following format:
{|
! Field !! Description !! Size
|-
! OAP Marker || A tag indicating that this transaction is an
Open Assets transaction. It is always 0x4f41. || 2 bytes
|-
! Version number || The major revision number of the Open Assets
Protocol. For this version, it is 1 (0x0100). || 2 bytes
|-
! Asset quantity count || A
[https://en.bitcoin.it/wiki/Protocol_specification#Variable_length_integer
var-integer] representing the number of items in the asset
quantity list field. || 1-9 bytes
|-
! Asset quantity list || A list of zero or more
[http://en.wikipedia.org/wiki/LEB128 LEB128-encoded] unsigned integers
representing the asset quantity of every output in order (excluding
the marker output). || Variable
|-
! Metadata length || The
[https://en.bitcoin.it/wiki/Protocol_specification#Variable_length_integer
var-integer] encoded length of the metadata field. || 1-9
bytes
|-
! Metadata || Arbitrary metadata to be associated with
this transaction. This can be empty. || Variable
|}
Possible formats for the metadata field are outside of
scope of this protocol, and may be described in separate protocol
specifications building on top of this one.
The asset quantity list field is used to determine the
asset quantity of each output. Each integer is encoded using variable
length [http://en.wikipedia.org/wiki/LEB128 LEB128] encoding (also
used in [https://developers.google.com/protocol-buffers/docs/encoding#varints
Google Protocol Buffers]). If the LEB128-encoded asset quantity of any
output exceeds 9 bytes, the marker output is deemed invalid. The
maximum valid asset quantity for an output is 263 - 1
units.
If the marker output is malformed, it is considered non-parsable.
Coinbase transactions and transactions with zero inputs cannot have a
valid marker output, even if it would be otherwise considered valid.
If there are less items in the asset quantity list than
the number of colorable outputs (all the outputs except the marker
output), the outputs in excess receive an asset quantity of zero. If
there are more items in the asset quantity list than the
number of colorable outputs, the marker output is deemed invalid. The
marker output is always uncolored.
After the asset quantity list has been used to assign an
asset quantity to every output, asset IDs are assigned to outputs.
Outputs before the marker output are used for asset issuance, and
outputs after the marker output are used for asset transfer.
====Example====
This example illustrates how a marker output is decoded. Assuming the
marker output is output 1:
Data in the marker output Description ----------------------------- 
0x6a The OP_RETURN opcode. 0x10 The PUSHDATA opcode for a 16 bytes payload. 0x4f 0x41 The Open Assets Protocol tag. 0x01 0x00 Version 1 of the protocol. 0x03 There are 3 items in the asset quantity list. 0xac 0x02 0x00 0xe5 0x8e 0x26 The asset quantity list: - '0xac 0x02' means output 0 has an 
asset quantity of 300.
 - Output 1 is skipped and has an 
asset quantity of 0
 because it is the marker output. - '0x00' means output 2 has an 
asset quantity of 0.
 - '0xe5 0x8e 0x26' means output 3 
has an asset quantity of 624,485.
 - Outputs after output 3 (if any) 
have an asset quantity of 0.
0x04 The metadata is 4 bytes long. 0x12 0x34 0x56 0x78 Some arbitrary metadata. 
===Asset issuance outputs===
All the outputs before the marker output are used for asset issuance.
All outputs preceding the marker output and with a non-zero asset ...[message truncated here by reddit bot]...
original: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-May/012741.html
submitted by dev_list_bot to bitcoin_devlist [link] [comments]

How to steal coins if some one-way function is flawed?

Dear Bitcoin
I'm trying to grasp the different implications if any one-way function of the address creation process is flawed. I've come up with two different types of potential flaws
Both of these imaginary flaws can be found in either the specification or in an implementation. I only focus on specification flaws here, but I do think the same analysis holds for implementation flaws as well.
The tables list my understanding of what needs to be done in order to steal someone's coins, given that only the public key hash or script hash is known.
Are these tables correct? Is there any important information to add?
Version 0 addresses
Function Small output space Can craft input
Random number generator Doomed! N/A
Public key derivation Doomed! Must pre-image attack RIPEMD(SHA())
SHA256 Doomed! Must pre-image attack RIPEMD AND brute force public key derivation
RIPEMD160 Doomed! Must brute force SHA(pubkeyderivation())
Pay-to-script-hash addresses
Function Small output space Can craft input
SHA256 Doomed! If I know the script [1], I can craft a second script with same SHA256 value. If script is not known, I need to pre-image attack RIPEMD160
RIPEMD160 Doomed! Must pre-image attack SHA256
[1] is very likely. For example a party in a multisig address knows the script and can rip off the other parties.
We are doomed if any of the functions are brute-forceable. That means that the more fancy one-way functions we use, the more vulnerable we are.
Sources:
submitted by kallerosenbaum to Bitcoin [link] [comments]

Bitcoin Core 0.13.1 released | Wladimir J. van der Laan | Oct 27 2016

Wladimir J. van der Laan on Oct 27 2016:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Bitcoin Core version 0.13.1 is now available from:
https://bitcoin.org/bin/bitcoin-core-0.13.1/
Or through bittorrent:
magnet:?xt=urn:btih:dbe48c446b1113890644bbef03e361269f69c49a&dn;=bitcoin-core-0.13.1&tr;=udp%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce&tr;=udp%3A%2F%2Ftracker.publicbt.com%3A80%2Fannounce&tr;=udp%3A%2F%2Ftracker.ccc.de%3A80%2Fannounce&tr;=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr;=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&ws;=https%3A%2F%2Fbitcoin.org%2Fbin%2F
This is a new minor version release, including activation parameters for the
segwit softfork, various bugfixes and performance improvements, as well as
updated translations.
Please report bugs using the issue tracker at github:
https://github.com/bitcoin/bitcoin/issues
To receive security and update notifications, please subscribe to:
https://bitcoincore.org/en/list/announcements/join/
Compatibility

Microsoft ended support for Windows XP on April 8th, 2014,
an OS initially released in 2001. This means that not even critical security
updates will be released anymore. Without security updates, using a bitcoin
wallet on a XP machine is irresponsible at least.
In addition to that, with 0.12.x there have been varied reports of Bitcoin Core
randomly crashing on Windows XP. It is not clear
what the source of these crashes is, but it is likely that upstream
libraries such as Qt are no longer being tested on XP.
We do not have time nor resources to provide support for an OS that is
end-of-life. From 0.13.0 on, Windows XP is no longer supported. Users are
suggested to upgrade to a newer version of Windows, or install an alternative OS
that is supported.
No attempt is made to prevent installing or running the software on Windows XP,
you can still do so at your own risk, but do not expect it to work: do not
report issues about Windows XP to the issue tracker.
but severe issues with the libc++ version on 10.7.x keep it from running reliably.
0.13.1 now requires 10.8+, and will communicate that to 10.7 users, rather than crashing unexpectedly.
Notable changes

Segregated witness soft fork
Segregated witness (segwit) is a soft fork that, if activated, will
allow transaction-producing software to separate (segregate) transaction
signatures (witnesses) from the part of the data in a transaction that is
covered by the txid. This provides several immediate benefits:
Activation for the segwit soft fork is being managed using BIP9
versionbits. Segwit's version bit is bit 1, and nodes will begin
tracking which blocks signal support for segwit at the beginning of the
first retarget period after segwit's start date of 15 November 2016. If
95% of blocks within a 2,016-block retarget period (about two weeks)
signal support for segwit, the soft fork will be locked in. After
another 2,016 blocks, segwit will activate.
For more information about segwit, please see...[message truncated here by reddit bot]...
original: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-Octobe013265.html
submitted by dev_list_bot to bitcoin_devlist [link] [comments]

Using the Blockchain for Proof-of-Publication

Blockchains have other uses! You could make great use of the Bitcoin (or DogeCoin!) network without even having any coins. For example, if everyone had a wallet, you could use those private keys to sign messages so that your acquaintances would know those messages are from you (or from someone who hacked into your account, but still).
Today, I wanted to email someone a story I wrote about blockchains; but this amounts to just emailing my raw text to someone else to show around. What if someone somewhere starts taking credit for it or something, hm? You can actually embed proof-of-publication into the blockchain.
First, I made sure my story was perfect, and wouldn't need to be changed. I added my identity and a timestamp to the title. Then I took the entire text (you could use the bytestream of a file, if it was a .doc or such) and used an online tool to SHA-256 hash it thus: aeef82c50dea27dec76351a8499344daf2617144645c12c18c5a1dca73cae692
If any tiny bit of the story changed, or the identity information or the timestamp, that would become an entirely different string. If I ever needed to, I could perform the hash again on my story and get the exact same string, thus proving that this text (with my identity) was used to make that string. Now, Bitcoin and most of the altcoins make addresses by passing that through a RIPEMD-160 hash to shorten it a bit: b0bb2d8d0176bb67aecdc7b84e97e76164b262e8
Much better. I really love DogeCoin, so I used the dogechain.info tools to convert that hash into a DogeCoin address: http://dogechain.info/chain/Dogecoin/q/hashtoaddress/b0bb2d8d0176bb67aecdc7b84e97e76164b262e8
I got the following random address: DMFZhNVXUHGDN1Ek4WRd1nobtcivmqCuNn
So now all I had to do was send some token amount to that address (which I don't control, by the way, so don't send anything there), which you can see here: http://dogechain.info/address/DMFZhNVXUHGDN1Ek4WRd1nobtcivmqCuNn
It would be virtually impossible to make a sensible text file that would turn into that exact address. The fact that the hash of this story has a transaction at that time must mean that the story was finished and encoded at around that time. 2014-01-10 09:52 UTC. The beginning text of my story even states "Completed at 2014-01-10 03:52" (I live at UTC-6).
The blockchain is distributed across thousands of computers, and it would be easier to delete those embarrassing pictures of your mom from 4chan than to modify a value in the blockchain. If something weird happens, I've simply got to show people my file with my identity, let them SHA-256, RIPEMD-160, and Doge-ify it, and then show them that I sent a transaction at the proper timestamp (or at least at an earlier time than anyone else had, because they could do the same later) with an address I control.
Voila. Proof of publication.
The weakest part of this would be if the entire network goes down, which would be a $10,000,000,000 event in the case of Bitcoin.
submitted by DogeMichael to dogecoin [link] [comments]

Bitcoin btc live price analysis  price can drop 6680 usd ? Live Day Trader April 3rd 2020 24/7 Live BTC Price and Significant Trades - YouTube Hack bitcoin! Theory and practice! The program For searching for private keys Bitcoin Hacking! Overview of the program For searching for private keys Bitcoin to Die - its unavoidable. The death of crypto and the blockchain.

Bitcoin uses both SHA-256 and RIPEMD-160 hashes. Most often a double-round SHA-256 is used, but for address generating, RIPEMD-160 is used because it generates a shorter hash value. RIPEMD-160 has a ... RIPEMD-160 is a cryptographic hash function based upon the Merkle–Damgård construction. It is used in the Bitcoin standard. It is a a strengthened version of the RIPEMD algorithm which produces a 128 bit hash digest while the RIPEMD-160 algorithm produces a 160-bit output. The compression function is made up of 80 stages made up of 5 blocks that run 16 times each. This pattern runs twice ... RIPEMD-160 is a cryptographic hash function based upon the Merkle–Damgård construction. It is used in the Bitcoin standard. It is a a strengthened version of the RIPEMD algorithm which produces a 128 bit hash digest while the RIPEMD-160 algorithm produces a 160-bit output. The compression function is made up of 80 stages made up of 5 blocks that run 16 times each. This pattern runs twice ... RIPEMD-160 is a cryptographic hash function based upon the Merkle–Damgård construction. It is used in the Bitcoin standard. It is a a strengthened version of the RIPEMD algorithm which produces a 128 bit hash digest while the RIPEMD-160 algorithm produces a 160-bit output. The compression function is made up of 80 stages made up of 5 blocks ... RIPEMD-160 is another hash function; it computes a 160-bit message digest.. There is a RIPEMD-160 home page, with test vectors and pseudocode for RIPEMD-160.For padding the message, RIPEMD-160 acts like MD4 ().. Find the RIPEMD-160 message digest of a string of octets.Use the ASCII encoded string “Rosetta Code”.You may either call an RIPEMD-160 library, or implement RIPEMD-160 in your ...

[index] [28128] [20401] [14678] [19568] [5295] [1404] [20262] [29870] [8641] [38008]

Bitcoin btc live price analysis price can drop 6680 usd ? Live Day Trader April 3rd 2020

The program does not require an Internet connection, since the generation of bitcoin addresses with private keys occurs, SHA 256, RIPEMD-160 , base58 are already built into the program Loading... Session VIII - Hash Functions 25th International Conference on Fast Software Encryption (Bruges, Belgium, 2018) 24/7 Live Bitcoin Price and BTC Significant Trades This stream shows the Bitcoin Price, BTC Price on global exchanges, and BTC trading! This is an automated ... How to hack bitcoin address! The program for the selection of private keys bi bitcoin! Program to search for private keys Brute force +1.3 million (1300000) ... The program does not require an Internet connection, since the generation of bitcoin addresses with private keys occurs, SHA 256, RIPEMD-160 , base58 are already built into the program Category ...

#