A. Geth实现以太账户之间转账
1、打开控制台
F:\Geth>geth --datadir "data" console
2、查看目前所拥有的账户列表
> eth.accounts
[""]
3、新建账户
> personal.newAccount('123456')
""
4、查看目前所拥有的账户列表
> eth.accounts
["", "
efed9a8240"]
5、查看账户余额
> eth.getBalance(eth.accounts[0])
665000000000000000000
> eth.getBalance(eth.accounts[1])
0
6、定义变量
> var acc1=eth.accounts[0]
undefined
> acc1
""
> var acc2=eth.accounts[1]
undefined
> acc2
""
7、转账
> eth.sendTransaction({from: acc1 , to: acc2, value: web3.toWei(10,"ether")})
Error: authentication needed: password or unlock
at web3.js:3143:20
at web3.js:6347:15
at web3.js:5081:36
at <anonymous>:1:1
(账户被锁报错)
8、解锁账户
> personal.unlockAccount(acc1,"123456")
true
9、转账
> eth.sendTransaction({from: acc1 , to: acc2, value: web3.toWei(10,"ether")})
INFO [11-14|14:34:24.526] Setting new local account address=0xF4f
INFO [11-14|14:34:24.551] Submitted transaction fullhash=0x98
recipient=0x1DfA2
"0x98"
10、查看账户余额
> eth.getBalance(acc1)
665000000000000000000
> eth.getBalance(acc2)
0
11、挖矿
>miner.start(1);admin.sleepBlocks(20);miner.stop();
12、挖矿结束查看账户余额
> eth.getBalance(acc2)
10000000000000000000
(欢迎打赏,一分也是爱)
B. 2018TPC必火,全解析
TPC 诞生背景:
TPC的诞生区别于现有模式,一般模式是先开发区块链应用并在区块链中产生,用来在区块链中作为记账单位而存在。然后依据应用的发展再炒高的价值。
显然,目前所有区块链都是这样的现状。而目前在所有可以用互联网技术服务的行业中基本处于饱和或垄断状态,所以目前区块链技术在真实的应用当中比较难落地,因为目前区块链整体行业处于萌芽状态中,对很多事物仍然处于探索之中。所以目前形势,区块链应该是一个重商业运营的技术服务,而非重技术服务轻商业运营。
缅甸银行业现状与支付系统的可行性
缅甸目前13家外资银行,本土银行24家,2016年央行对所有银行全部实现电算化,这对支付行业的外部环境是一个非常好的喜讯。缅甸6000万人口,有3000+万智能手机,却没有本土的APP,在这之前外部环境与第三方支付不在,所以基于互联网的创业基本都失败了。正是因为如此,第三方支付才能够成为缅甸的新经济基石。
缅甸3000+万智能手机用户,仅以仰光为例,每年600+亿美金的消费额度,线上消费更是难以估量,未来5亿的投放量,从0.14美金来看,如果线下市场占有率为10%就有60亿美金的流通,还未包含线上,其上涨空间甚至超过20倍。Grab在缅甸投资5亿美金就是缅甸移动互联网市场最好的写照。当第三方支付用户达到500万用户的时候,其资本估值将达到几十亿美金以上。
TPC
TPC基于以太坊智能合约,TPC就是以太坊的一条侧链,同时也是主链,而后续的所有基于金融、理财、基金等等的开发与探索将都依托TPC进行,其后的所有开发将都是TPC的侧链。TPC目前可以在imToken等以太坊钱包均可以进行收发,并预留未来开发接口:
其token完整版:
[ { "constant": true, "inputs": [], "name": "name", "outputs": [ { "name": "", "type": "string", "value": "TPC" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "name": "", "type": "uint256", "value": "10000000000000" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "name": "", "type": "uint8", "value": "4" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "name": "", "type": "uint256", "value": "0" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address", "value": "" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "symbol", "outputs": [ { "name": "", "type": "string", "value": "TPC" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_to", "type": "address" }, { "name": "_value", "type": "uint256" } ], "name": "transfer", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [ { "name": "", "type": "address" } ], "name": "frozenAccount", "outputs": [ { "name": "", "type": "bool", "value": false } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "target", "type": "address" }, { "name": "freeze", "type": "bool" } ], "name": "freezeAccount", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "name": "tokenName", "type": "string", "index": 0, "typeShort": "string", "bits": "", "displayName": "token Name", "template": "elements_input_string", "value": "TPC" }, { "name": "tokenSymbol", "type": "string", "index": 1, "typeShort": "string", "bits": "", "displayName": "token Symbol", "template": "elements_input_string", "value": "TPC" }, { "name": "decimalUnits", "type": "uint8", "index": 2, "typeShort": "uint", "bits": "8", "displayName": "decimal Units", "template": "elements_input_uint", "value": "4" }, { "name": "initialSupply", "type": "uint256", "index": 3, "typeShort": "uint", "bits": "256", "displayName": "initial Supply", "template": "elements_input_uint", "value": "10000000000000" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "target", "type": "address" }, { "indexed": false, "name": "frozen", "type": "bool" } ], "name": "FrozenFunds", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "from", "type": "address" }, { "indexed": true, "name": "to", "type": "address" }, { "indexed": false, "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" } ]
完整内容会发布在GitHub中。
TPC选择以太坊是因为以太坊是一个成熟的开发平台,在区块链应用中可以节省大量时间,并为后续开发降低难度。独自开发私有链需要大量技术人员进行迭代更新,其维护成本、应用成本、使用成本、时间成本、开发成本、价值成本不成比例,因为TPC是为商业模式而诞生。最大限度去挖掘商业价值。
TPC 的未来
缅甸银行业的落后并不能阻挡TPC的布局,TPC将优先进驻银行,商场,通过已有钱包进行收发。第三方支付平台已经进入最后调试阶段,上线后再与之打通,成为必要的支付方式。TPC通过智能合约为银行、保险、数据分析、基金、现货、期货等金融行业提供数据解决方案,并共享信用数据,同时作为奖励为数据进行奖励支出。因为本身TPC就是智能合约,通过其接口的开放可以为未来所有的金融产业做数据支持。而TPC的未来会成为理财产品,其覆盖人群将会超过1500万人,未来的价值空间将会呈现一个几何式的增长。价格也会随之而爆发。
TPC 总量
总量为10亿,其中5亿作为政府基金存在逐步释放到市场进行流通,而后5亿将逐步用于支付市场的流通。
TPC 商业价值
TPC最大的价值在于打通与第三方支付与理财应用的信用数据。通过嵌入在第三方支付体系当中可以使TPC进行用于线上、线下支付,打通最重要的流通环节,因为之所以有价格就是因为其价值,而其价值背后就是流通属性。当有流通后就会产生买卖需求,所以才会有不同的价格走向。如果不能解决的流通性,那么就是空气币,TPC的商业价值就在于用商业思维解决区块链--应用的闭环模式。在TPC中,三者相对独立而又结合。但公开、透明、安全。
这就好比比特币一样,比特币之所以在2010年之前默默无闻不是因为没人知道,做极客的那一小撮人很早就知道了比特币的存在,但是他不具备流通属性而一直不值钱,2010年那个程序员拿1000个比特币换了一个披萨的新闻还不时被我们作为笑话,其实这就是背后流通性的不畅导致的。2011年丝绸之路的诞生2年时间150亿美金的交易额全部来自比特币,才让比特币成为了众人皆知。可以说丝绸之路是让沉睡的比特币觉醒的一剂猛药。
TPC 的商业生态
第三方支付 - 电商生态 - 游戏生态 - 社交生态
第三方支付相当于一个承接TPC的平台,因为缅甸目前没有第三方支付,所以第三方支付在实际运作中会成为类似支付宝或者paypal的应用,那支付宝或paypal的价值因为第三方支付支付平台的诞生只是商业生态中的第一步,正是因为支付平台的诞生,TPC才可以进行流通。而第三方支付平台的出现才可以解决目前缅甸没有电商、社交、游戏等等APP的局面,之前非常多的人都在缅甸建立电商、分类信息、游戏等平台,但是都倒闭了。其最重要的原因就是没有第三方支付平台,第三方支付平台可成为缅甸线上、线下的一个新支付通道。当第三方支付平台的建立之后,所有其他公司的应用都会将其作为一种支付渠道接入,而TPC作为一种货币基金就会充分成为流通需求而出现。
TPC 为什么依托以太坊而不是独自开发
1.以太坊开发平台成熟,稳定
2.开发难度低,使用方便,面向人群更广
TPC 运营团队
丁林,CEO,缅籍华侨,主导投资Grandland以及一系列投资方案,累计投资超过7000万美金。貌明,COO,缅籍华侨,原telenor缅甸高级经理,运营、执行能力强势。负责整体运营与市场销售。还有之前负责市场运营、市场调研员、文化分析员等大量优秀伙伴。
开发团队由新加坡郑忆安担任主研,精通JAVA与nodejs,10年开发经验,并且由来自中国、捷克的团队一起进行技术探索。TPC研究室为其提供基础支持。
TPC 分配方案
8%-----用于私募,早期投资者和对TPC前景看好的会员。
12%——ICO公募众筹投资者,战略投资伙伴。
10%——研究室基金,对技术的探索和未来应用落地
5%——-市场推广,宣传分发,战略合作
15%——-商业落地部署,商业合作,市场开拓
50%——存放政府,根据市场逐步释放
市场流通少,价值又可以落地实现。价格一定会几何级增长
如果用一句话讲 TPC
存在于第三方支付之中,未来覆盖与使用人群会在千万级以上,而现在能接近千万级的只有比特币,以太坊。
C. 什么是ZK-Rollup(零知识汇总)
ZK-Rollup(零知识汇总)基于zero-knowledge proof(零知识证明),在发往主链的交易包里包含了一个对应的零知识证明,主链上的rollup(汇总)智能合约只需验证这个零知识证明。
这个零知识证明不会透露任何交易细节,但能通过与智能合约不断交互,证明上链的所有数据的有效性和真实性。
优点:
l高度的去中心化
l隐私性好:零知识证明不会透露任何交易细节
l上链效率高:一次性提交多笔操作的结果,节约时间和gas fee
l验证效率高:无需等待期,快速完成资产取出动作
l安全性极高:zk技术保证了提交给主链的数据真实有效,同时主链可随时还原侧链发生的交易细节(即拥有主链的数据可用性),因此拥有以太坊级别的安全性
缺点:
l技术开发难度大
l难兼容不同智能合约
l需要大量运算
代表项目:
l路印:成熟的zk技术运用,获得4500万美元私募,当前市值超8亿美元
lZKSync:旨在为以太坊带来 Visa 级别、每秒数千笔交易的吞吐量
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
D. 匿名币被 *** 点名,强制下架的背后因素
加密货币世界中,匿名币算是比较少被提起的币种。但是在近期,韩国交易所Korbit率先下架DASH,Monero与Zcash三大匿名币,日本的Coincheck也同步执行,原因为何?
首先,我们要先了解「匿名币」与「加密货币」之间的差异。
加密货币(Cryptocurrency)的重要定义有几点,「分散式系统」、「不可更改性」、「匿名性」。
分散式系统:意指资料库的存在形式是散布在世界各个角落的,这不会因为某个中央化的资料库损毁,而造成资料流失。不可更改性:代表着交易后的纪录无法被窜改,这与系统本身所特有的共识机制有关系。匿名性:代表交易的双方无法被直接辨别。笔者又粗略将加密货币分为两类,「一般加密货币」与「匿名币」,以下介绍:
所谓「匿名」,就字面上直观解释为「不 *** 实姓名或没有名字」,前者通常会有别称或代号,后者则什么资讯都没有。同样的,在加密货币的世界里,依照匿名的程度(匿名性),也可使货币被区分为两种,「一般加密货币」与「匿名币」:
交易上不使用真实姓名,即「一般加密货币」交易上完全不使用任何名字,即「匿名币」
第一种方式,是所谓的「半匿名」英文称为「Pseudonymous」
第二种方式,「匿名」,英文用做「Anonymous」
要解释第一种方式,「半匿名」,我们拿最具代表性的「比特币」来做事例:
比特币的起始,来自于中本聪的论文,其中,簿记账的观念呈现在整个区块链的纪录当中。白话来说,就是在比特币的交易行为中,除了交易者的真名无法取得,其他资讯都是公开的,任何人都可以追溯其交易纪录,比如交易金额、交易时间等等。这就像是你在PTT、Dcard上面有自己的帐号,乡民们可以借由IP位置发现到这个人是不是在校园中使用,但是没有人晓得帐号后面的人长什么样貌。
同理推断,「比特币」的「半匿名」特性,就像是你知道附近屋子(钱包位址)里面有多少钱、与哪些钱包在做交易、交易金额、交易次数等资讯,但是不知道屋主(拥有者)是谁。而且依照此特性,可以推断出钱包拥有者大概的轮廓。这样的「半匿名」特性,一旦有部分资讯被他人掌握的时候,便有机会藉着相关线索找到钱包拥有者。
正是这样的「半匿名」特性,让 *** 监管「一般加密货币」的期望成为可能。所以当使用者要注册、使用加密货币交易所的时候,相关帐号都要通过要KYC(KnowYourCustomer)认证。
「半匿名」特性的好处是,交易纪录公开,并且交易的安全性与公正性由「矿工」认证完成,所以双方不得有任何异议外,如果没有任何线索可以连结钱包位址与使用者真实身份,那么「匿名性」是没问题的。但是,每个人都查得到你的钱包位址,等于有机会辨别你的实际财富状况,一旦被辨别出钱包与使用者的相关性,会产生很多现实生活中的安全性问题。想像一下,日常生活中,你会希望每笔交易都被亲朋好友知道吗?想想看你刷信用卡购物之后,爸妈叫你过去跟他对帐的时候吧!
所以,「比特币」这类加密货币的匿名性,只存在于你的钱包位址并未被第三方知道、从未与法币有所连结的时候。只要知道了钱包位址,再加上KYC的帮助,就有办法找到使用者本人。
事实真的是如此吗?我们来看看区块链上的交易纪录实例:
1.笔者随意找了一个钱包位址「」
2.于区块链上查询此钱包
区块链透露了一些资讯,像是这个钱包总共有5笔交易,目前拥有0.7881枚比特币,总共拥有过29.8411枚比特币。交易纪录显示,最早这钱包出现在2018/01/14日,并由「」钱包汇入,这代表了这两个钱包之间一定有某种连结。blockchain.info/address/3.发现到此钱包的交易纪录
此用户付款给「」钱包三次,总共支出28枚左右的比特币4.有心人士即可透过相关资讯,去推断此钱包使用者的真实身份
当拥有这样的交易纪录,配上国际反洗钱法所推行的KYC之后,就有办法执行后续的各种行动;像是「征税」。同样的道理,在「以太坊」「莱特币」等相关数位货币上面的交易纪录也一样透明。若要拿这类容易被追溯的数位货币来进行各种地下经济作业,实在是没有什么道理。
有些人会认为当原有的钱包位址和个人资讯被曝光后,只要换了一个钱包(即钱包位址)就没事了,但实际上,若新旧钱包之间有资金转换时,资讯一样会存在于区块链上,也一样会被溯源。因此,即便拥有多个钱包,也必需要保证钱包与钱包之间不能出现交易,否则相关性就会被定义出来。况且,管理多个钱包的时候,记帐成本其实相当高呢。
题外话,加密货币的交易可借由各类加密货币或法币来完成,若以法币进行交易,即进入了 *** 所掌控的金融系统,因此笔者曾听闻有些人为了反追踪(想避税或降低价差等因素)而不想透过加密货币服务商做交易,反而采取线下面交等方式,但这其实很危险的,不但被骗时无从追溯,可能还有人身安全的问题。想像一下电影中的黑市交易情节,一边交货一边给钱,而且是很多的钱,在缺乏第三方的保护下,若是被骗可能只是某一方拿到钱拔腿就跑,但如果是起冲突,双方就开始火拼!哇,这也太 *** 了。
回到正题,比特币的匿名性不够强,不记名的「匿名币」就拥有了真实的应用情境与需求。
以公司法人与公司法人之间的交易做比喻,「一般加密货币」如同公司间的所有的交易资讯都被看得清清楚楚。想像一下,鸿海与旗下供应商的每笔订单交易纪录都公开的时候,对企业本身和对「股市」带来的影响该有多 *** ?再看看「匿名币」,就像是你听闻科技业的大小企业间分分秒秒都有交易在跑,但是你看不到企业名、交易金额、交易时间等等,但你身为第三方,只看得到一些无关痛痒的认证纪录。
由此可见,匿名币隐去「钱包位址」与「交易金额」这两项要素的特性,除了一般需求外,同时符合地下经济的需求,因为除了交易双方,其余人士都无法得知详细内容。这正是「匿名币」,会被特别点名出来的主要因素。
至于「匿名币」是否如上述的那么神奇?我们以Monero的区块链当作范例:
1.随意选去任一区块链交易纪录
区块链的公开资讯,仅有「FormBlock」、「Fee」、「Size」、「Mixin」,你要是没有PaymentID的金匙,根本什么也看不出来。2.无法得知交易金额与钱包位址
Input与Output的交易金额总数都显示为0,外人什么都无法得知。统整上述使用「匿名币」的需求动机:
需要达到现在银行体系提供给我们的隐私保护级别,降低资讯被披露所带来的风险。需要超越现有金融体系所带给我们的隐私保护级别。但是「匿名币」的使用动机,以 *** 监管的角度来说,是件难以处理的事情。笔者认为,这正是「匿名币」被要求下架之因素,因为没办法管,所以只能降低其流动性。
「匿名币」的后续还有太多可以了解的部分,有兴趣的读者可以前往笔者网志「林小狗研究室」与笔者一同做更多的学习与研究。如果比较不了解加密货币的读者,可以先前往阅读「数位货币懒人包」系列文章或是留下您的资讯,以供后续与各位更新。
笔者整理出几个为提升「匿名性」常见的方法,供读者进一步查询。
StealthaddressesMix(混币)RingCT(环形签名)Zero-knowledgeSuccinctNon-(zk-SNARKs)(零知识证明)Tor未来还有很多主题可供探讨,笔者先举列几个题目,有兴趣的读者可以留言给我。
匿名币在「匿名性」程度上的差异「隐私保护技术」的方法论现在有哪些匿名币存在于世上?匿名币中有矿工的存在吗?
E. 7.9 用vsftpd 配置基于IP的虚拟FTP 服务器
配置虚拟IP 地址
建立虚拟FTP 的服务器目录并设置适当的权限
建立虚拟FTP 的服务器的xinetd 配置文件
建立虚拟FTP 的服务器的主配置文件
配置独立启动的虚拟FTP 的服务器要有单独的主配置文件,即原主机的主配置文件和虚拟主机的配置文件不能重名。
⑴查看本机现有的IP 地址
# ifconfig |grep -1 eth0
eth0 Link encap:Ethernet HWaddr 00:50:56:C7:22:DF
inet addr:192.168.1.222 Bcast:192.168.1.255 Mask:255.255.255.0
//可以看出本机的第一个网络接口eth0 的IP 为192.168.1.222
⑵下面配置一个虚拟网络接口eth0:1
# ifconfig eth0:1 192.168.1.234 up
⑶下面建立虚拟FTP 的服务器目录
# mkdir -p /var/ftp2/pub
//确保目录具有如下的权限
# ll -d /var/ftp2
drwxr-xr-x 3 root root 4096 3 月12 03:00 /var/ftp2
# ll -d /var/ftp2/pub
drwxr-xr-x 2 root root 4096 3 月12 03:00 /var/ftp2/pub
⑷在下载目录中生成测试文件
# echo "hello">/var/ftp2/pub/test_file
⑸下面创建此虚拟服务器的匿名用户所映射的本地用户ftp2
# useradd -d /var/ftp2 -M ftp2
⑹ 修改原独立运行服务器的配置文件/etc/vsftpd/vsftpd.conf
# vi /etc/ vsftpd/vsftpd.conf
// 添加listen = 192.168.1.222
// 将原FTP 服务绑定到eth0 接口,之后保存退出vi
⑺ 生成新的虚拟FTP 服务器的配置文件/etc/vsftpd/vsftpd2.conf
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd2.conf
⑻ 更改新的配置文件/etc/vsftpd/vsftpd2.conf
# vi /etc/vsftpd/vsftpd2.conf
//在此文件添加
//listen_address= 192.168.1.234
//将虚拟FTP 服务绑定到eth0:1 接口
⑼ 修改如下的配置语句行:
// ftpd_banner=This FTP server is anonymous only.
//修改为:
// ftpd_banner=This is the alternative FTP site.
⑽添加如下的配置语句:
// ftp_username=ftp2
//使此虚拟服务器的匿名用户映射到本地用户ftp2
//这样匿名用户登录后才能进入本地用户ftp2 的/var/ftp2 目录
//修改后,保存退出vi
⑾ 重启服务器:
service vsftpd restart
启动虚拟FTP服务器
Vsftpd /etc/vsftpd/vsftpd2.conf