bitcoin

Is python-ecdsa signature size correct?

与世无争的帅哥 提交于 2020-04-11 05:03:23
问题 On the bitcoin wiki I found that bitcoin uses the ECDSA algorithm with the Secp256k1 curve. Relevant Links: https://en.bitcoin.it/wiki/Elliptic_Curve_Digital_Signature_Algorithm https://en.bitcoin.it/wiki/Secp256k1 On the first link, it says private key should be 32 bytes, public key 64 bytes, and the signature typically between 71-73 bytes. It says the signature can be smaller with small probability. However, when I run the following python3 code >>> from ecdsa import SigningKey, SECP256k1 >

Quantstrat: Ordersize function

放肆的年华 提交于 2020-03-25 13:40:29
问题 I'm new to R and I'm trying to figure out how to get quantstrat to work with a custom ordersize function. The idea is to always invest all available equity in Bitcoin so that it will be comparable to a B&H strategy. I have provided reproducible code. At first it seems to be working fine but the problem arises when I look at my orderbook. Maybe their is some mismatch between Closing prices but quantstrat doesn't order the amount of Bitcoin in accordance with the available equity. E.g. (from=

学习区块链技术要多长时间和掌握什么?

£可爱£侵袭症+ 提交于 2020-03-23 17:23:10
3 月,跳不动了?>>> 最近因为项目需要,都在学习区块链,提到区块链,大家第一反应肯定是比特币,在我最刚开始学习的时候是去看的比特币的相关知识。这次先讲解大概的概念。后续再写详细的技术内容。 零基础学区块链要多久  1、了解层面。很多区块链从业者并非技术开发,但是在这个圈子里面,一定要了解最基本的区块链核心知识,也就是区块链的原理以及目前流行区块链的发展状况,主要分析区块链的原理,比特币以及以太坊的案例介绍。如果你懂程序IT的话一般情况下一个月以内就可以完全掌握。   2、技术从业方面。这个层面就需要学习这完全掌握区块链所有的技术知识点以及原理。一般情况下需要学习3-6个月的时间。主要看大家采用什么方式学习。如果仅仅依靠自学,那预计时间是在6个月甚至6个月以上的时间;如果是参加线下培训,一般是4个月左右,外汇跟单 www.gendan5.com而如果参加博学谷线上课程,学习者可以自由安排时间学习。非常适合目前在职想提升的朋友。一般学习时间在3-6个月期间,主要看学习者目前的技术水平了。 ## 比特币地址是什么呢? 其实比特币地址就像一个物理地址或者电子邮件地址。这是别人付给你比特币时你唯一需要提供的信息。然而一个重要的区别是,每个地址应该只能用于单笔交易。 Bit: 是标明一个比特币的次级单位的常用单位 -1,000,000 bit 等于1 比特币 (BTC或B)

比特币命令速查表

烈酒焚心 提交于 2020-03-18 08:56:05
某厂面试归来,发现自己落伍了!>>> 本文包含完整的超过100个比特币命令,分为区块链管理、节点控制、挖矿出块、交易编解码等7个大类,可以在使用bitcoin-cli管理bitcoin core节点时作为比特币命令的速查手册利用。 1、比特币命令:区块链数据管理 区块链数据管理类的比特币命令,主要用于管理比特币节点本地的区块链数据。例如查询指定的区块: ~$ bitcoin-cli getblock 00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048 结果如下: { "hash": "00000000839a8e6886ab5951d76f411475428afc90947ee320161bbf18eb6048", "confirmations": 447014, "strippedsize": 215, "size": 215, "weight": 860, "height": 1, "version": 1, "versionHex": "00000001", "merkleroot": "0e3e2357e806b6cdb1f70b54c3a3a17b6714ee1f0e68bebb44a74b1efd512098", "tx": [

区块链基本概念一览

你说的曾经没有我的故事 提交于 2020-02-27 01:57:11
本文翻译自 中本聪 ( Satoshi Nakamoto) 提供的资料 区块链:点对点电子金融服务系统。(Bitcoin: A Peer-to-Peer Electronic Cash System ) 允许在线从甲方向乙方支付,而无需提供格外 的证据。这样可以避免维护信息安全而支付额外的成本。 The network timestamps transactions by hashing them into an ongoing chain of hash-based proof-of-work, forming a record that cannot be changed without redoing the proof-of-work. The longest chain not only serves as proof of the sequence of events witnessed, but proof that it came from the largest pool of CPU power. As long as a majority of CPU power is controlled by nodes that are not cooperating to attack the network, they'll generate the longest

Bitcoin 的基本原理

江枫思渺然 提交于 2020-02-27 00:08:40
Bitcoin 的基本原理 昨天读到了 Bitcoin 的中文介绍,觉得非常有意思。不过上面这篇文章解释的非常不靠谱,我花了一晚上去 Bitcoin的官方网站 仔细研究了一下,总算理解了其原理。感觉非常有启发,尤其是对虚拟货币的流通和发行有许多借鉴意义。今天写这篇 Blog 理一下。 什么是货币呢?货币就是商品(包括服务)交换的媒介。现在我们通行的货币是由有信誉的银行发行的,基本上是由其信誉来担保的。只要用的人都认可,那么我们就可以用它来交易。货币有一定的保值特性,我把我的劳动/服务/所有的商品换成货币后,银行担保我在日后的某一天,我还可以用它交换会差不多等值的东西。这个保证的前提是,银行不会滥发新的货币以及大家都信任这一点。 以前,我们用贵金属做货币。因为贵金属产量不高,货币新增加的速度有限,而经济体在不断增大,市场需要更多的货币来让商品尽量的流通。有需求就有价值,从这个意义上来说,贵金属本身制造别的东西具备的价值是次要的,经济体需要货币来流通商品这个需求才是主要的。而贵金属产量有限,且曾经流通着的贵金属货币由于各种原因会退出市场,那么即使是新造的贵金属货币也有同样甚至更高的价值。 Bitcoin 为什么保值,BTC (Bitcoin 的货币简称)存在于一个庞大的 p2p 网络中。使用 Bitcoin 的群体公认了一种算法,这种算法在现今的条件下,每小时只会新产生大约 6 组新的

钱包开发经验分享:BTC篇

泪湿孤枕 提交于 2020-02-25 21:27:17
钱包开发经验分享:BTC篇 BTC节点搭建 关于BTC的第一步,自然是搭建节点。由于BTC流行最久最广,网络上关于BTC的节点搭建,或者在同步节点时出现问题的相关文章很多,我这里就不赘述了(主要是没有环境用来搭建节点)。这里推荐一篇文章: 区块链-Linux下Bitcoin测试节点搭建 。没有搭建节点的可以考虑一下两个网站: blockcypher 、 blockchain 。 BTC的账户模型——UTXO 关于UTXO的含义阐述可以参考 理解比特币的 UTXO、地址和交易 ,这篇文章对UTXO的阐述我觉得挺全面的。在里面提到: 在比特币种,一笔交易的每一条输入和输出实际上都是 UTXO,输入 UTXO 就是以前交易剩下的, 更准确的说是以前交易的输出 UTXO 。这句阐述得从JSON数据去理解。 每一笔交易包含了大于等于一个输出,如下图: 输出列表包含了输出数量(value)、输入脚本(script)、地址(addresses)和脚本类型(script_type),我们主要关注输入数量。 每一笔交易的JSON都包含了大于等于零个输入(挖矿收益没有输入),如下图: 输入列表包含这笔输入对应的上一笔交易的哈希(prev_hash)、这笔输入对应的上一笔交易输出的下标(output_index),输入脚本(script)、脚本类型(scrip_type)等字段

bitcoin源码解析---比特币单位

99封情书 提交于 2020-02-20 17:52:31
在法币中,有以下换算单位: 一元=100分 在比特币中有三种单位: 1枚比特币 = 100比特分 一比特分 = 100万聪 1枚比特币 = 1亿聪 源码如下: amount . h // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2016 The Bitcoin Core developers // Distributed under the MIT software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. # ifndef BITCOIN_AMOUNT_H # define BITCOIN_AMOUNT_H # include <stdint.h> /** Amount in satoshis (Can be negative) */ typedef int64_t CAmount ; static const CAmount COIN = 100000000 ; // 一枚比特币=1亿聪 static const CAmount CENT = 1000000 ; // 一分比特币=100万聪 /** No amount larger

有关Bitcoin的椭圆曲线-secp256k1

痞子三分冷 提交于 2020-02-12 00:28:59
简介 椭圆曲线加密法是一种基于离散对数问题的非对称(或公钥) 加密法, 可以用对椭圆曲线上的点进行加法或乘法运算来表达。在Bitcoin中使用的是secp256k1这条椭圆曲线 椭圆曲线 y 2 mod p = x 2 +ax+b mod p a、b满足:4a 3 +27b 2 mod p!=0 这保证了x 3 +ax+b不包含重复的因子,所以该曲线就可用于生成一个群组 在一个有限域Fp,素数阶p的有限域内 p=2 256 -2 32 -2 9 -2 8 -2 7 -2 6 -2 4 -1 椭圆曲线上的加法 P3=P1+P2 计算方法:P1和P2之间画一条线,恰好与椭圆曲线上的一点相交,记此点为:P3’=(x,y),然后再x轴做映射的:P3=(x,-y) 特殊的情况 P1与P2为同一点,P1和P2之间的连线为P1的切线,曲线上有且只有一个新的点与该切线相交 P1和P2具有相同的x值,但不同的y值,则切线会垂直,这种情况下,P3=“无穷远点” 若一点是无穷远点,则与其相加不变,无穷远点类比0处理 secp256k1 y 2 =x 3 +ax+b,其中a=0且b=7,就是曲线secp256k1 G是生成元,n是G的素数阶 则任取k,Q=k*G,则k为私钥,Q为公钥 优点 占用很少的带宽和存储资源,秘钥的长度很短 让所有的用户都可以使用同样的操作完成域运算 小结

bitcoin(3)

南笙酒味 提交于 2020-02-08 18:43:52
1.proof of stake ——【pow】mining pool:miner联合进行挖矿,不符合去中心化的原则 1」validator —the creating the coin is called validator (=miner) selection algorithm 进行随机选择validator, ——再参与制造比特币之前validator必须投入一定的 deposite 作为stake ,并且 size of deposite 决定了被选中的几率(即stake越大被选中的几率越高) ——一旦这被选择;这个validator的stake被放进账户里面,并且这个validator有了 制造bitcoin的权利 ——其他没有被选中的validator不会浪费不必要的算力去计算nonce, 节省电力 ——如果选中的validator需要 检查block 里面的所有交易是否合理,检查完毕后放入链中,并且会得到一笔 reward=sum of each transaction fee ——并且如果选中的validator有不好的行为(misbaheve),将会失去之前拿出来的stake(deposite),所以 必须诚实 2」缺陷(flaw) 51%attack:当miner联合起来超过全网的51%则可以控制整个网络,但是由于网络的结构,只要超过1/3就有可能控制真个网络