Classification:Network-else

Classification (Network-else)'s result:

SSH配置免密码登录及注意点

原理 //图片来源于zhihu Ubuntu A sudo apt-get install openssh-server /etc/ssh/ssh_config RSAAuthentication yes PubkeyAuthenticationyes #AuthorizedKeysFile %h/.ssh/authorized_keys chmod 644 authorized_keys chmod 700 -R .ssh   Win7 B ssh-keygen   chmod 600 lsb_id_rsa   B复制id_rsa.pub为A的.ssh/authorized_keys 1.ssh-copy-id(方便不用手工控制权限,小心覆盖原来的authorized_keys文件)ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@<host> 2.scp 3.手动复制   注意点: 如果添加公钥后,还是无法访问,也可能是ServerB主机上面的一个文件known_hosts中已经存在ServerA的ip信息,删除重新访问即可。 Connection closed by $IP 可能是超过系统默认失败次数了,然后清理就ok了~【faillog -a;faillog -r】 在前面步骤都正确无误的情况下,每次远程登录还是提示让输入密码,这时候有可能是权限问题: chmod 644 authorized_keys再次登录就ok了~【如果是Red Hat 5.6的话,最好改成600,否则认为是不安全的~】 证书如果有passphrase则第一次key登录要输入这个密码 要保证.ssh和authorized_keys都只有用户自己有写权限。否则验证无效 使用私钥生成公钥 ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub   在远程登录的时候可能会发现,在输入完用户名后需要等很长一段时间才会提示输入密码。其实这是由于 sshd 需要反查客户端的 dns 信息导致的。可以通过禁用这个特性来大幅提高登录的速度。首先,打开 sshd_config 文件: sudo nano /etc/ssh/sshd_config 找到 GSSAPI options 这一节,将下面两行注释掉: #GSSAPIAuthentication yes #GSSAPIDelegateCredentials no然后重新启动 ssh 服务即可。   参考资料 https://blog.csdn.net/u012031380/article/details/80569217 https://blog.csdn.net/netwalk/article/details/12952051    

linux/windows命令行设置代理

Windows set http_proxy=http://127.0.0.1:8888 set https_proxy=http://127.0.0.1:8888   set http_proxy_user=test set http_proxy_pass=123456   set http_proxy=socks5://127.0.0.1:1080 set https_proxy=socks5://127.0.0.1:1080   http_proxy=http://userName:password@proxyAddress:port =空就是取消   Linux $ export http_proxy=http://127.0.0.1:8888 $ export https_proxy=http://127.0.0.1:8888   $ export http_proxy=socks5://127.0.0.1:1080 $ export https_proxy=socks5://127.0.0.1:1080   $ export ALL_PROXY=socks5://127.0.0.1:1080   $ unset http_proxy $ unset https_proxy $ unset ALL_RPOXY   proxychain   GIT git config –global http.proxy http://127.0.0.1:8888 git config –global https.proxy http://127.0.0.1:8888   git config –global http.proxy socks5://127.0.0.1:1080 git config –global https.proxy socks5://127.0.0.1:1080   git config –global –unset http.proxy git config –global –unset https.proxy   参考资料 https://blog.fazero.me/2015/09/15/让终端走代理的几种方法/  

聊聊比特币(bitcoin)钱包

//浅析比特币运行原理 硬件钱包(冷) 硬件钱包是一个实体电子设备,仅仅是为了比特币安全而创建。 其核心创新是在消费比特币之前,必须要将比特币钱包连上你的电脑、电话或者平板设备。 使用硬件钱包来离线生成和存储私钥可以确保黑客无法偷走你的比特币。 黑客必须要偷走硬件钱包,即使如此,它也被个人识别码所保护。 不要担心你的硬件钱包会被偷、丢失、或者被损毁;只要你创建一个私钥备份,你就可以重新找回你的比特币。 —https://www.buybitcoinworldwide.com/zh-cn/bitcoin-wallets/   Ledger Nano S KeepKey Trezor   软件钱包(热) 热钱包也是一种比特币钱包,其运行在联网的设备上,比如电脑、移动电话或者平板设备。 私钥是一串加密代码。因为热钱包是在联网设备上生成私钥,所以这些私钥不能被认为是百分之百的安全。 —https://www.buybitcoinworldwide.com/zh-cn/bitcoin-wallets/ 建议:开源+平台不保存私钥+免费+不占空间内存+易用+多功能+多平台+双重验证+多重签名+HD 比特派(android/ios) imToken(android/ios) Jaxx(android/ios/desktop,网站访问量低) Blockchain(android/ios,平台保存私钥) Coinbase(android/ios,平台保存私钥) Ownbit(android/ios) Electrum(android/ios/desktop,只支持btc) kcash Bitcoin Core(desktop,全节点,占用大量空间) Tokenall huobi GreenAddress Armory(高级,中心化,冷) Copay(开源,android/ios/desktop,有黑记录) MultiBit(desktop,不维护了) Bitcoin-Qt(占大量空间内存) bither(开源,android/ios/desktop)   在线/交易所钱包 BlockChain、火币、币安、OTCBTC、OKEX、Bigone、GDAX,inputs.io,greenaddress   纸钱包 将私钥打印到纸上离线保存,是冷存储。   脑钱包 脑钱包是基于确定性钱包,在创建种子时,不使用随机数,而通过用户输入的短语来创建,这样用户就可以仅记住自己的短语,就可以在任何时候借助工具恢复整个钱包。不过这个概念已经被废弃了。因为虽然简单但暴露了巨大安全问题。通过穷举短语就可以发现大量钱包,并盗取资金。不过这项技术确实有一定价值。 —https://www.zhihu.com/question/21478404/answer/391989244 https://www.yanshiba.com/code/hanwallet/   火币网交易   国内建议用rmb买usdt,再用usdt买btc 法币交易(rmb-虚拟币) 币币交易(虚拟币-虚拟币) 提现: 划转到法币交易再出售   相关资料 https://bitcoin.org/

了解cgi/fast-cgi/php-cgi/php-fpm

0x00 什么是cgi 即Common Gateway Interface 公共网关接口,是协议!!! 运行在服务器上的程序,fork-and-execute 模式,因为web服务器只能处理静态html/css,需要动态的就要交给cgi ,有标准输入,输出和环境变量的语言都可以编写,如C,PHP,python,shell,perl等。 //网上找的两张图,比较直观描述了cgi. cgi通过环境变量获得传递的参数,相关环境变量如下: 环境变量          意义 SERVER_NAME CGI脚本运行时的主机名和IP地址. SERVER_SOFTWARE 你的服务器的类型如: CERN/3.0 或 NCSA/1.3. GATEWAY_INTERFACE 运行的CGI版本. 对于UNIX服务器, 这是CGI/1.1. SERVER_PROTOCOL 服务器运行的HTTP协议. 这里当是HTTP/1.0. SERVER_PORT 服务器运行的TCP口,通常Web服务器是80. REQUEST_METHOD POST 或 GET, 取决于你的表单是怎样递交的. HTTP_ACCEPT 浏览器能直接接收的Content-types, 可以有HTTP Accept header定义. HTTP_USER_AGENT 递交表单的浏览器的名称、版本 和其他平台性的附加信息。 HTTP_REFERER 递交表单的文本的 URL,不是所有的浏览器都发出这个信息,不要依赖它 PATH_INFO 附加的路径信息, 由浏览器通过GET方法发出. PATH_TRANSLATED 在PATH_INFO中系统规定的路径信息. SCRIPT_NAME 指向这个CGI脚本的路径, 是在URL中显示的(如, /cgi-bin/thescript). QUERY_STRING 脚本参数或者表单输入项(如果是用GET递交). QUERY_STRING 包含URL中问号后面的参数. REMOTE_HOST 递交脚本的主机名,这个值不能被设置. REMOTE_ADDR 递交脚本的主机IP地址. REMOTE_USER 递交脚本的用户名. 如果服务器的authentication被激活,这个值可以设置。 REMOTE_IDENT 如果Web服务器是在ident (一种确认用户连接你的协议)运行, 递交表单的系统也在运行ident, 这个变量就含有ident返回值. CONTENT_TYPE 如果表单是用POST递交, 这个值将是 application/x-www-form-urlencoded. 在上载文件的表单中, content-type 是个 multipart/form-data. CONTENT_LENGTH 对于用POST递交的表单, 标准输入口的字节数.   0x01 什么是fast-cgi cgi进程管理器,cgi升级版,也是一个协议。将cgi保存在内存中以提高性能(不用像cgi一样每次请求都解析php.ini)。可独立于服务器。 工作原理: 1. Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module) 2. FastCGI进程管理器自身(master)初始化,解析配置文件,初始化执行环境,启动多个CGI解释器进程(可见多个php-cgi/worker)并等待来自Web Server的连接。 3. 当客户端请求到达Web Server时,FastCGI进程管理器(master)选择并连接到一个CGI解释器(worker)。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。 4. FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了) 当worker不够用时,master可以根据配置预先启动几个worker等着,同时如果发现空闲worker太多时,也会停掉一些,这样就提高了性能,也节约了资源 而对应的是,只要是遵循了这个协议标准实现的程序,就可以称之为FastCGI程序 这就是fastcgi的对进程的管理。   0x02 什么是php-cgi cgi解释器进程,解释PHP脚本。   0x03 什么是php-fpm PHP fast-cgi,对fast-cgi的PHP实现,可调度php-cgi进程。可以平滑重载配置。   0x04 cgi安全问题 1. shellsock 参考 重温经典:shellshock漏洞重现及分析   2. 解析漏洞 环境:vulhub 以nginx为例进行重现: 判断漏洞,在任意图片后加/xxx.php 图片被解析 在上传图片马即可(尝试phpinfo): 更多解析漏洞参考: 解析漏洞总结   0x05 结语 时不时还能看到cgi-bin,整理下相关概念,不至于太混乱。   0x06 参考资料 https://www.jdon.com/idea/cgi.htm https://www.zhihu.com/question/19998865 www.nowamagic.net/librarys/veda/detail/1319 www.cnblogs.com/wanghetao/p/3934350.html https://segmentfault.com/q/1010000000256516 www.cnblogs.com/LittleHann/p/4561462.html https://www.leavesongs.com/PENETRATION/fastcgi-and-php-fpm.html#    

web服务器、中间件、web容器的区别

有时会弄混这三者的区别,现总结区分。 Web服务器:提供www服务,处理http协议,响应静态页面的请求,页面跳转,也可以把动态请求委托其他程序(中间件/容器),返回信息给客户端。 中间件:提供系统软件和应用软件之间的连接,为应用程序提供容器。 Web容器:给其中的应用程序组件提供环境,中间件的组成部分,实现了对动态语言的解析,如tomcat有jsp容器去解析jsp。 ################## 常见web服务器:IIS(微软)、Apache、nginx、tomcat、weblogic(oracle)、websphere(IBM) 常见中间件:tomcat、weblogic、websphere 常见web容器:jsp容器、servlet容器、asp容器 有重复是因为中间件也可以提供web服务,充当web服务器的功能。 ##################

HTTP 状态码大全

0x00 概述 1xx:收到请求 2xx:请求成功 3xx:重定向 4xx:客户端错误 5xx:服务端错误   0x01 状态码解释 100:继续 101:切换协议 ############################## 200:请求成功 201:已创建 202:已接受 203:非授权信息 204:无内容 205:重置内容 206:部分内容 ############################### 300:多种选择 301:永久移动 302:临时移动 304:未修改 305:用代理 307:临时移动 ################################### 400:语法错误 401:身份认证 403:拒绝 404:Not Found 405:方法禁止 406:无法完成 407:代理认证 408:超时 409:put请求冲突 410:已不存在 411:要content-length 412:先决错误 413:实体过大 414:url过长 415:无法处理的媒体格式 416:范围无效 417:无法满足expect ################################ 500:内部错误 501:无法完成 502:bad gateway 503:服务不可用 504:gateway time-out 505:不支持的http版本 更详细的解释可看参考资料。   0x02 参考资料 www.runoob.com/http/http-status-codes.html tool.oschina.net/commons?type=5 tools.jb51.net/table/http_status_code blog.csdn.net/woshihaiyong168/article/details/52438839                

概览开源协议

0x00 什么是开源协议 简单的说,就是规定别人用你的开源代码可以做什么,可以修改什么,可以怎么用,用的时候要达到啥要求的一个条约。协议可以维护代码原作者的权利,尊重原作者劳动成果。开源协议有很多种,自己也可以写一份,但是如果没有特别需求,还是选一个已经写好的协议较为方便。   0x01 主要的开源协议 1. MIT:此协议允许别人以任何方式使用你的代码同时署名原作者,但原作者不承担代码使用后的风险。保留版权,而无任何其他限制。 关键词:保留版权,其他随意 代表:jQuery,.NET core,Rails   2. Apache:与MIT类似的协议,但它简单指明了作品归属者对用户专利上的一些授权。 (1)需要给代码的用户一份Apache Licence (2)如果你修改了代码,需要再被修改的文件中说明。 (3)在延伸的代码中(修改和有源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。 (4)如果再发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。 关键词:专利授权,商业友好 代表:Android,apache,swift   3. BSD: (1)如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD协议。 (2)如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。 (3)不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。 关键词:商业友好。   4. GPL:此协议要求代码分发者或者以此代码为基础开发出来的衍生作品需要以同样的协议来发布。不允许修改后和衍生的代 码做为闭源的商业软件发布和销售。 关键词:开源,免费,传染 代表:linux,bash,GIMP   5. LGPL:允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。LGPL开源代码很适合作为第三方类库被商业软件引用。 关键词:库引用,可商业   0x02 主要协议图表说明 图片来源:www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html 图片来源:www.gcssloop.com/tips/choose-license 更详细的协议内容可以参考: 英文版:https://choosealicense.com 中文版:choosealicense.online   0x03 结语 尊重作品作者的劳动是基本道德素养,才能营造出良好的开源环境。每个人都应该尊重版权,尊重他人劳动,不仅是开源代码作品,其他作品也一样。本博客也积极做到不能转载的不转,可以转的按要求转(一些文章没写能否转载的本人默认可以转载),引用的地方注明引用源,参考到的文章都在参考资料里写出,欢迎大家监督,如果有无意侵权的地方,请联系本人LSA,大家共同维护互联网纯净和谐的环境。   0x04 参考资料 www.cnblogs.com/Wayou/p/how_to_choose_a_license.html www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html blog.csdn.net/u012150179/article/details/25490535 univasity.iteye.com/blog/1292658 https://baike.baidu.com/item/开源协议/10642383?fr=aladdin https://www.zhihu.com/question/19568896 www.gcssloop.com/tips/choose-license https://creativecommons.org/choose/ choosealicense.online/licenses/ https://choosealicense.com  

简谈X-Forwarded-For的一些事

X-Forwarded-For(XFF)是HTTP请求头字段之一。 格式:X-Forwarded-For: client1, proxy1, proxy2, proxy3 只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。 请求从client1发出,XFF为空,再到从proxy1发出,请求里XFF就添加了client1,再从proxy2发出,请求里XFF就添加了proxy1,再到proxy3,再从proxy3发出,请求里XFF就添加了proxy2,注意这里porxy3不会添加到XFF,因为proxy3就是在tcp包的源IP。 一些程序如C#和php获取客户端IP会这样写: C#:string client1 = Request.ServerVariables[“HTTP_X_FORWARDED_FOR”]; PHP: getenv(‘HTTP_X_FORWARDED_FOR’) 看起来好像很正常,但是X-Forwarded-For是可以被伪造的(如刷票之类),只需在请求头中添加即可,如 C#: request.Headers.Add(“X_FORWARDED_FOR”, “6.6.6.6”); PHP: $headers = array( ‘X-Forwarded-For:’.6.6.6.6, ); curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);   Python: Header = { ‘X-Forwarded-For’: ‘6.6.6.6’, }

浅析比特币运行原理

0x01 前言 前段时间wannacry把比特币推向了一个高潮,本人决定稍微深入了解一下比特币,得出此文,适合于比特币零基础或不甚了解的读者。 //本文图片皆来源于网络 0x02 什么是比特币(bitcoin) 虚拟电子加密货币的一种,使用P2P技术,去中心化,高度匿名,无需信任,分布式账本,实体相当于账本,交易记录相当于货币。 0x03 相关术语解释 1.比特币地址:这是别人付给你比特币时你唯一需要提供的信息,形如1EXspSdXa9BQ6znxrU23eUBHjfuHiNJWso(开头是1),和公钥要极强的相关性,可认为地址就是公钥,建议比特币持有者为每项交易设立一个独立的地址,以保护账户的隐私和安全性。 2.区块:一个区块就是若干交易数据的集合,它会被标记上时间戳和之前一个区块的独特标记(hash值)。区块经过哈希运算后会生成一份工作量证明,从而验证区块中的交易。有效的区块经过全网络的共识后会被追加到区块链中。平均约每10分钟就有一个包含交易的新区块通过挖矿的方式添加到区块链中。 3.区块链:是一串通过验证的区块,当中的每一个区块都与上一个相连,一直连到第一个区块,由所有比特币用户共享。它被用来验证比特币交易的永久性并防止双重消费。 4.工作量证明:指通过有效计算得到的一小块数据。具体到比特币,矿工必须要在满足全网目标难度的情况下求解SHA-256算法,算出下文提到的幸运数字,使得区块SHA-256后的值开头有规定的N个零,这个N有变化机制,以维持10分钟产生一个新区块,难度随矿工的增加而增大。 5.挖矿:将待确认的交易数据包含到块链中,从而完成对这些交易的确认,矿工可以得到他们所确认的交易中包含的手续费,以及新创建的奖励的比特币(目前2017年08月是5BTC奖励)。简而言之就是接受交易信息,建造区块。 6.矿工:通过不断重复哈希(SHA-256)运算来产生工作量证明的各网络节点。 7.确认:当一项交易被区块收录时,我们可以说它有一次确认(约10分钟)。矿工们在此区块之后每再产生一个区块,此项交易的确认数就再加一。当确认数达到六及以上时,通常认为这笔交易比较安全并难以逆转。 8.双重消费:如果一个不怀好意的用户试图将比特币同时支付给两个不同的收款人,就被称为双重消费。 9.P2P:P2P网络(peer-to-peer,简称为P2P),又称为对等式网络,也叫说点对点网络。这是一种无中心服务器、完全由客户端交换信息的互联网体系。一个用户端即是一个客户节点,又具有服务器的功能。P2P网络的一个重要的目标就是让所有的客户端都能提供资源,包括带宽,存储空间和计算能力。 0x04 浅析原理 看了网上有些文章以一种比喻和故事的形式来说明比特币的原理,本人认为虽然这样较为通俗易懂,但是不可避免的与真正的原理有所偏差,并且会掩盖一些细节,所以接下来将以一次完整的比特币交易流程来分析比特币运行原理。 //建议先了解公钥加密,哈希,数字签名等相关前置知识 以密码学的两位主角 Alice 给 Bob 5BTC为例。 Alice和Bob首先用客户端(比特币钱包)生成密钥对(公钥和私钥,椭圆曲线),这个客户端会先下载比特币所有的交易记录,用来验证余额。公钥经过单向加密哈希函数(SHA256和RIPEMD160)和编码(Base58Check)形成比特币地址,这里不考虑转换,那么公钥就是比特币地址(收款地址),私钥由比特币钱包随机生成,用来做数字签名,由于私钥数量异常巨大,可以认为不会重复,要自己保密藏好不能泄漏,一旦泄漏就相当于现实中的钱包丢了,别人有了你的私钥,可以推出公钥,也就可以用你比特币钱包里的比特币了。 Alice在付款地址输入Bob的公钥,付款金额输入5BTC,这5BTC就用Bob的公钥加密了,只有Bob用私钥才能解密,接着这就形成了一条交易记录,交易数据结构大概如下: #################################### input: txn: 这笔交易转出的金额的来源 scriptSig: Alice的数字签名 output: Amount: 转出金额 scriptPubSig: 用Bob公钥生成的锁定脚本 #################################### 比特币系统要通过txn找到Alice上一个交易中的公钥,再和scriptSig中Alice的私钥验证,验证成功Alice才有权使用这5BTC。Alice的数字签名证明了这条交易是由Alice发出,并且和交易信息的某种独有ID关联,这就避免了伪造和篡改。 交易发生后,将广播全网,一个节点通知附近的其他节点,很短的时间内,全网所有的节点会接到这笔交易。接到这笔交易后,每个节点会先先把交易放入内存,然后对交易进行合法性检验,检验通过后,就形成未确认的交易,这笔交易进入有效交易池,等待被装入区块。比特币网络中矿工节点会从内存的有效交易池中抽取近千笔未确认交易,然后进行打包(区块)。开始不断的计算着幸运数字(关键点1:如何计算?)。当某个节点计算出了这个幸运数字,将计算Hash值所使用的信息组装成一个新区块,记录在自己的硬盘上,并发起一次全网记账。周围的节点在收到广播的消息后,也都记录下这个新区块。由于矿工节点每次都会使用含有上一个区块Hash值的文本来计算当前区块的Hash值,这使得区块链难以被伪造篡改。 矿工需要收听每一笔的交易,普通用户只需要收听计算好的新区块即可(关键点2:如果自己的区块链出现分叉怎么办?)。这时Alice给Bob 5BTC的交易记录所在区块正好被一个矿工节点计算出了幸运数字并广播全网接着加入了节点各自的区块链中,但是要经过约60分钟(6次确认)才能确定这笔交易是真实合理的并且这条交易所在区块的区块链是比特币网络中大家公认的全局区块链。这样,就完成了一次比特币交易。 关键点1:如何计算幸运数字 将有效交易池里的近千笔交易(包括自己获得奖励的交易记录),上一个区块被计算出的Hash值,幸运数字参数组合成一个文本,然后计算这个文本的Hash值。这里使用的哈希算法是SHA-256,通过不断暴力猜解去猜幸运数字,使得这个文本的hash值前有N个零,这就是工作量证明。这个N有变化机制,要维持整个比特币网络在10分钟左右才猜出这个幸运数字。这也就是挖矿的过程,成功计算出幸运数字的矿工将获得凭空的比特币奖励。 关键点2:如果自己的区块链出现分叉怎么办? 相信最大工作量,也就是分叉较长的那一条区块链。所以不必立刻相信收听到的区块,可以再收听大概6个区块,如果没有更长的分叉,说明这条链就是比特币网络大家公认的链。 0x05 如何避免双重消费 首先回顾一下区块的构成,上一个区块的hash+一堆交易记录+幸运数字。 假设Alice在付款5BTC给Bob的同时也给自己另一个钱包付款5BTC(假设Alice只有5BTC),这时,第一条合理交易的区块被计算出幸运数字加入区块链,Alice也不甘示弱,用自己的计算力计算出了第二条欺诈交易的区块的幸运数字(Alice此时运气超好),这样就形成了两个不同的分叉区块,它们的上一个区块的hash都一样。 接着全场矿工继续计算幸运数字生产新区块加入到区块链中,由于比特币规则相信最长的即最大工作量的那条链,所以为了自己的欺诈交易是公认的,Alice也要不断计算幸运数字生产新区块。除非Alice有超级强大的计算力,能以一节点之力战胜全部矿工节点的计算力,也就是51%攻击,否则在经过多个确认之后,Alice苦心计算的欺诈分叉将被否认。 0x06 比特币安全保护 物理防护:存放私钥的设备要做好抗震防雷之类。 环境安全:确保私钥所在环境是无病毒,后门的。 备份:私钥分开存放,如U盘,移动硬盘或一些网络仓库,最好定期备份。 加密:私钥加密存放,一些加密软件可以做到这一点。 冷钱包:最安全,一些比特币钱包带有冷存储的功能。 总之,要全方面防护私钥。 0x07 其他 1.每 210000 个 block ,生产新 block 的人被认可凭空获得的 BTC 数量比之前的少一半,现在(201708)是5BTC。 2.由1可只,矿工最终将不能凭空获得奖励,那矿工收入怎么来?答案是交易税,交易方为了使自己的交易能尽快被加入区块,尽快被比特币网络最终确认,会在交易记录里加上给矿工的税,鼓励矿工尽快把自己的交易记录加入区块。 3.比特币最终会达到总量约2100万。 4.如果因为电脑崩溃或损坏导致私钥(无备份)丢失,那所拥有的比特币就没人能转走,不能流通,相当于永远消失了。 5.一个区块交易记录上限约2400笔 6.推荐大家去看看比特币原始论文 7.再附上两张网上找的脑图,挺好的 0x08 结语 其实还有很多,如比特币洗钱,投资,赌博之类的就不介绍了,至于比特币的使用和挖矿,我可能会单独写一篇文章来介绍,本人才疏学浅,文章可能会有错漏之处,欢迎指正!一起交流学习! 如果觉得文章不错或者有帮助,点个赞吧。 您的支持就是我前进的动力! 0x09 参考资料 https://bitcoin.org/bitcoin.pdf https://bitcoin.org https://www.zhihu.com/question/20941124 https://www.bilibili.com/video/av12465079/?from=search&seid=6907804228267930743 http://zhibimo.com/read/wang-miao/mastering-bitcoin/Chapter02.html https://blog.codingnow.com/2011/05/bitcoin.html https://zh-cn.bitcoin.it/wiki/保护你的钱包