Bitcoin at the end of 2014
bitcoin is just a game. If it is promoted as a tool to get rich, it can be regarded as a fraud. Just like the currency in other online games, the only difference is that bitcoin has been standardized since the game was first formulated. It can't be issued indiscriminately, so it can keep its value better than other virtual game props. It is equivalent to the online collection. Bitcoin is a prop in the game, and its value is reflected in the recognition of bitcoin by players: more people play, the value of props in the game is higher; The risk is that he is not the only game, and his algorithm is not the only one. Maybe someone will be able to make other special coins soon. All you need to do is promote the game and sell your props. As for money, bitcoin does not have the basic attributes of money, such as unfair initial distribution and insecure circulation. Money needs to be maintained by the state machine
the concept of bitcoin was first proposed by Nakamoto in 2009. According to Nakamoto's ideas, the open source software and the P2P network on it were designed and released. Bitcoin is a kind of P2P digital currency. Point to point transmission means a decentralized payment system. Unlike most currencies, bitcoin does not rely on specific currency institutions to issue. It is generated by a large number of calculations based on specific algorithms. Bitcoin economy uses a distributed database composed of many nodes in the whole P2P network to confirm and record all transactions, and uses cryptography design to ensure the security of all aspects of money circulation. The decentralized nature and algorithm of P2P can ensure that it is impossible to artificially manipulate the value of bitcoin through mass proction
1. Bitcoin (bitcoin) is a kind of network virtual currency, which can buy real-life goods. It is characterized by decentralization, anonymity, and can only be used in the digital world. It does not belong to any country or financial institution, and is not subject to geographical restrictions. It can be exchanged anywhere in the world. Therefore, it is used as a money laundering tool by some criminals
2. On January 7, 2014, Taobao announced that it would ban the sale of Internet virtual currencies such as bitcoin and lightcoin from January 14. On February 26, 2014, Democratic Senator Joe Manchin of West Virginia issued an open letter to a number of regulatory authorities of the federal government of the United States, hoping that relevant institutions would pay attention to the status quo of bitcoin encouraging illegal activities and disrupting the financial order, and demanded that actions be taken as soon as possible to completely ban the electronic currency
3. On May 12, 2017, a global outbreak of bitcoin virus madly attacked public and commercial systems! Nearly 74 countries in the world have been seriously attacked
4. From August 1, 2017, global bitcoin trading platform will suspend recharge and withdrawal services. Bitcoin China digital asset trading platform will stop new user registration on September 14, and all trading businesses will be stopped on September 30
< H2 > reference materials: network bitcoin
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <netdb.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/ip.h>
#include <netinet/in.h>
#include <netinet/if_ether.h>
#include <netpacket/packet.h>
#include <net/ethernet.h>
#include <net/if.h>
#include <arpa/inet.h>
#include <errno.h>
/* 接收缓冲区大小 */
#define RCV_BUF_SIZE 1024 * 5
/* 接收缓冲区 */
static int g_iRecvBufSize = RCV_BUF_SIZE;
static char g_acRecvBuf[RCV_BUF_SIZE] = {0};
/* 物理网卡接口,需要根据具体情况修改 */
static const char *g_szIfName = "eth1";
/* 以太网帧封装的协议类型 */
static const int g_iEthProId[] = { ETHERTYPE_PUP,
ETHERTYPE_SPRITE,
ETHERTYPE_IP,
ETHERTYPE_ARP,
ETHERTYPE_REVARP,
ETHERTYPE_AT,
ETHERTYPE_AARP,
ETHERTYPE_VLAN,
ETHERTYPE_IPX,
ETHERTYPE_IPV6,
ETHERTYPE_LOOPBACK
};
static const char g_szProName[][24] = {
"none", "xerox pup", "sprite", "ip", "arp",
"rarp", "apple-protocol", "apple-arp",
"802.1q", "ipx", "ipv6", "loopback"
};
/* 输出MAC地址 */
static void ethmp_showMac(const int iType, const char acHWAddr[])
{ int i = 0;
if (0 == iType)
{
printf("SMAC=[");
}
else
{
printf("DMAC=[");
}
for(i = 0; i < ETHER_ADDR_LEN - 1; i++)
{
printf("%02x:", *((unsigned char *)&(acHWAddr[i])));
}
printf("%02x] ", *((unsigned char *)&(acHWAddr[i])));
}
/* 物理网卡混杂模式属性操作 */
static int ethmp_setPromisc(const char *pcIfName, int fd, int iFlags)
{ int iRet = -1;
struct ifreq stIfr;
/* 获取接口属性标志位 */
strcpy(stIfr.ifr_name, pcIfName);
iRet = ioctl(fd, SIOCGIFFLAGS, &stIfr);
if (0 > iRet)
{ perror("[Error]Get Interface Flags");
return -1;
}
if (0 == iFlags)
{ /* 取消混杂模式 */
stIfr.ifr_flags &= ~IFF_PROMISC;
}
else
{ /* 设置为混杂模式 */
stIfr.ifr_flags |= IFF_PROMISC;
}
iRet = ioctl(fd, SIOCSIFFLAGS, &stIfr);
if (0 > iRet)
{ perror("[Error]Set Interface Flags");
return -1;
}
return 0;
}
/* 获取L2帧封装的协议类型 */
static char *ethmp_getProName(const int iProNum)
{ int iIndex = 0;
for(iIndex = 0; iIndex < sizeof(g_iEthProId) / sizeof(g_iEthProId[0]); iIndex++)
{ if (iProNum == g_iEthProId[iIndex])
{
break;
}
}
return (char *)(g_szProName[iIndex + 1]);
}
/* Init L2 Socket */
static int ethmp_initSocket()
{ int iRet = -1;
int fd = -1;
struct ifreq stIf;
struct sockaddr_ll stLocal = {0};
/* 创建SOCKET */
fd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
if (0 > fd)
{ perror("[Error]Initinate L2 raw socket");
return -1;
}
/* 网卡混杂模式设置 */
ethmp_setPromisc(g_szIfName, fd, 1);
/* 设置SOCKET选项 */
iRet = setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &g_iRecvBufSize,sizeof(int));
if (0 > iRet)
{ perror("[Error]Set socket option");
close(fd);
return -1;
}
/* 获取物理网卡接口索引 */
strcpy(stIf.ifr_name, g_szIfName);
iRet = ioctl(fd, SIOCGIFINDEX, &stIf);
if (0 > iRet)
{ perror("[Error]Ioctl operation");
close(fd);
return -1;
}
/* 绑定物理网卡 */
stLocal.sll_family = PF_PACKET;
stLocal.sll_ifindex = stIf.ifr_ifindex;
stLocal.sll_protocol = htons(ETH_P_ALL);
iRet = bind(fd, (struct sockaddr *)&stLocal, sizeof(stLocal));
if (0 > iRet)
{ perror("[Error]Bind the interface");
close(fd);
return -1;
}
return fd;
}
/* 解析Ethernet帧首部 */
static int ethmp_parseEthHead(const struct ether_header *pstEthHead)
{ unsigned short usEthPktType;
if (NULL == pstEthHead)
{ return -1;}
/* 协议类型、源MAC、目的MAC */
usEthPktType = ntohs(pstEthHead->ether_type);
printf(">>>\nEth-Pkt-Type:0x%04x(%s) ", usEthPktType, ethmp_getProName(usEthPktType));
ethmp_showMac(0, pstEthHead->ether_shost);
ethmp_showMac(1, pstEthHead->ether_dhost);
return 0;
}
/* 解析IP数据包头 */
static int ethmp_parseIpHead(const struct ip *pstIpHead)
{ struct protoent *pstIpProto = NULL;
if (NULL == pstIpHead)
{ return -1;}
/* 协议类型、源IP地址、目的IP地址 */
pstIpProto = getprotobynumber(pstIpHead->ip_p);
if(NULL != pstIpProto)
{ printf("\nIP-Pkt-Type:%d(%s) ", pstIpHead->ip_p, pstIpProto->p_name); }
else
{ printf("\nIP-Pkt-Type:%d(%s) ", pstIpHead->ip_p, "None");}
printf("SAddr=[%s] ", inet_ntoa(pstIpHead->ip_src));
printf("DAddr=[%s]\n", inet_ntoa(pstIpHead->ip_dst));
return 0;
}
/* 数据帧解析函数 */
static int ethmp_parseFrame(const char *pcFrameData)
{ int iRet = -1;
struct ether_header *pstEthHead = NULL;
struct ip *pstIpHead = NULL;
/* Ethnet帧头解析 */
pstEthHead = (struct ether_header*)g_acRecvBuf;
iRet = ethmp_parseEthHead(pstEthHead);
if (0 > iRet)
{ return iRet;}
/* IP数据包类型 */
pstIpHead = (struct ip *)(pstEthHead + 1);
iRet = ethmp_parseIpHead(pstIpHead);
return iRet;
}
/* 捕获网卡数据帧 */
static void ethmp_startCapture(const int fd)
{ int iRet = -1;
socklen_t stFromLen = 0;
/* 循环监听 */
while(1)
{ /* 清空接收缓冲区 */
memset(g_acRecvBuf, 0, RCV_BUF_SIZE);
/* 接收数据帧 */
iRet = recvfrom(fd, g_acRecvBuf, g_iRecvBufSize, 0, NULL, &stFromLen);
if (0 > iRet)
{ continue;}
/* 解析数据帧 */
ethmp_parseFrame(g_acRecvBuf);
}
}
/* Main */
int main(int argc, char *argv[])
{ int iRet = -1;
int fd = -1;
/* 初始化SOCKET */
fd = ethmp_initSocket();
if(0 > fd) {
return -1;
}
/* 捕获数据包 */
ethmp_startCapture(fd);
/* 关闭SOCKET */
close(fd);
return 0;
}
编译命令
gcc -o a a.c
./a
实现效果图
...
>>>Eth-Pkt-Type:0x0800(ip) SMAC=[00:1a:92:ef:b6:dd] DMAC=[00:24:7e:dc:99:18] IP-Pkt-Type:6(tcp) SAddr=[192.168.0.111] DAddr=[192.168.0.100]
>>> Eth-Pkt-Type:0x0800(ip) SMAC=[00:24:7e:dc:99:18] DMAC=[00:1a:92:ef:b6:dd] IP-Pkt-Type:6(tcp) SAddr=[192.168.0.100] DAddr=[192.168.0.111]
>>> Eth-Pkt-Type:0x0800(ip) SMAC=[00:24:7e:dc:99:18] DMAC=[00:1a:92:ef:b6:dd] IP-Pkt-Type:1(icmp) SAddr=[192.168.0.100] DAddr=[192.168.0.111]
>>> Eth-Pkt-Type:0x0800(ip) SMAC=[00:1a:92:ef:b6:dd] DMAC=[00:24:7e:dc:99:18] IP-Pkt-Type:1(icmp) SAddr=[192.168.0.111] DAddr=[192.168.0.100]
>>> Eth-Pkt-Type:0x0800(ip) SMAC=[00:1a:92:ef:b6:dd] DMAC=[00:24:7e:dc:99:18] IP-Pkt-Type:6(tcp) SAddr=[192.168.0.111] DAddr=[192.168.0.100]
...
pi network aims to realize a low access and low-cost cryptocurrency network that everyone can participate in. Anyone can start mining as long as they download the app of the official website with their mobile phone, and all the users can enjoy the benefits π All are g out by users themselves.
generally speaking, the value of money depends on its activity: the central bank prints a lot of money and puts it into the economy with high-speed monetary activity. Therefore, we find that if the value of money decreases, we will be more inclined to sell in the future, resulting in a further decline in the quoted price. This cycle will lead to a runaway effect
for bitcoin, there is no high speed activity of bitcoin. Only the speculative bubble burst, and the quotations get closer to the mall balance point. This leads to a humorous question: where is the balance? First of all, let's make some assumptions. If in the future, no one in the world will hoard bitcoin at all: no one believes that bitcoin will rise, but will only fall in the future. Therefore, in the near future, we will only purchase procts by purchasing just enough bitcoin. In this way, the quotation of bitcoin depends entirely on the demand (the amount of bitcoin that people spend on purchasing procts and services) and the supply (the amount of bitcoin that exists). We are going to test to set up a lower bound: there will be some conjecture data in it, so we are going to choose the more extreme (disappointed) data. Data results are relatively small, and are affected by many factors, but data results can let us roughly know the magnitude of the answer to the question. In addition, we have the same assumption that everyone has lost interest in all counterfeit coins: we only pay attention to the bitcoin quotation supported by the bitcoin demand brought by real procts and services, that is to say, we do not use the statistical data of business channels to count the demand
let's get started. It is an excellent representative of the total demand of bitcoin for procts and services. It is the total activity of coinbase and bitpay, the two largest bitcoin payment processors in the bitcoin instry. Of course, bitcoin for procts and services also occurs in other places (this does not include the bitcoin compensation paid by some companies). The total bitcoin traffic of these two payment processors can exceed 50% of the bitcoin demand in all bitcoin businesses: the service of all large-scale commercial bitcoin transactions is coinbase or bitpay
surprisingly, neither coinbase nor bitpay clearly revealed their detailed business data. Fortunately, we can make a reasonable and accurate guess about the implied meaning of some articles announced by them. For example, we know that bitpay's business volume in 2013 was $100 million, and we also know that its business volume in 2012 was $3 million. Bitpay was founded in 2011, so we can reasonably guess that the total business volume of bitpay at the end of 2013 will be at least $94 million. Coinbase didn't disclose similar data, but both sides made clear the detailed number of cooperative businesses: bitpay is "more than 30000 businesses", coinbase is "31000 businesses". If we assume that the average bitcoin business volume of each of the two payment processors is similar, then the revenue of coinbase and bitpay are very similar. Let's calculate according to this. They are all US $100 million per year, or the remaining 50% of bitcoin needs that do not flow through coinbase and bitpay will bring us $300 million per year. In fact, since it is almost certain that there will be a continuous increase in 2014, these figures are likely to be higher. Since it is difficult to evaluate the detailed increase, let's leave it alone and simply assume that it will be $300 million in 2014
according to the current quotation of bitcoin (US $474), the total value of bitcoin mall is about US $6 billion, so US $300 million only accounts for 5%. That is to say, 95% of the total demand for bitcoin is speculative. Therefore, our estimation of the lower bound of bitcoin price is 23 US dollars. At this moment, the natural market's strength will prevent the price from further falling
let's analyze the above achievements reasonably. Our approximate data comes from bitpay and coinbase's bitcoin traffic (2013), and the bitcoin traffic of the three major business channels is accounted for by the partners working in coindesk. The channel traffic of bitcoin business is mainly speculative business (and counterfeit money business), which can hardly represent the business needs of bitcoin brought by any procts and services. At the same time, the three major business channels in the world (Mt. GOx, bitstamp, btc-e) account for 93% of the total amount of bitcoin shopping malls, and 7% are not included. We think that it is appropriate for the real commercial bitcoin demand to account for 5%
but will bitcoin really fall to $23? Very likely not. Let's assume that bitpay and coinbase did not increase in 2014, which is 100% wrong. Overstock, a US online retailer, Dell, a global PC retailer, and Xindan, a US e-commerce channel, announced in 2014 that they had accepted bitcoin payment, so the real amount could be several times higher. In addition, no one can store bitcoin and counterfeit coins at all. Therefore, this achievement is likely to be far lower than the low bound of the actual quotation, but it also gives us a general idea of where the equilibrium point of the market can exist, and the current bitcoin quotation is actually unsustainable.
as for how to judge whether bitcoin has bottomed out, there was a saying on bitcoin before that it depends on whether there is a large amount of money and whether there are many people coming into the market to buy the bottom. I always think it's not safe. I still believe that in probability, the bottom should come quietly, in fear, so that people in fear don't realize it's the bottom.
