2011年11月27日星期日

bitcoin thoughts - the value

On bitcoin.org, value of bitcoin is claimed to depended on the requirement of bitcoin user, the more demand the higher the value, not based on the computer power required to produce (mine) bitcoins -- a myth that proposed by Labor Value Theory (LVT).

Since Marxism concluded that only labor can produce new value, and this is a critical point of marxist political economics. I am going to make my own judgement by recovering the related financial knowledges.

Asume marxism theory is correct, then the value of bitcoin is defined by the social necessary labor time needed to "mine" bitcoins, this includes the constant capital: electricity, cost of computers, bitcoin mining softwares and Internet access; and the variable capital: mining workers's labor time.

Considering the bitcoins can be produced almost at no cost if the algorithm is not a hard computing problem and without the total bitcoin number limit, the social necessary labor time of bitcoin almost equals zero. This means bitcoin are almost the same value as paper based currency, which itself has no value, but is only accepted by some goverment to exchange any thing equals the face value. The we have the following propositions:

currency value = face value = can be exchanged with any commodity the goverment has with the same value

bitcoin value = face value = can be exchanged with any commodity the bitcoin community has with the same value

So, instead of increasing bitcoins by the bitcoin network, to maintain a steady value of bitcoins, it should backed by real value possessed by bitcoin community-- such as programming hours, hosting service, ebay items etc. It's like virtual money, but the amount is a predictable computer program result, and the exchange rate with US dollar can be determined by:
1. value possessed by bitcoin community and amount of bitcoins, which determin the real "use value" of bitcoin
2. exchange value of US dollar ( such as 50 dollar = 1 programming hour of one hacker )
3. demand and supply between US dollar and bitcoin
4. There is no 4. :)

Let's try to validate above statements by reviewing:
1. With other conditions keep unchanged, if bitcoin amount is kept up with the total real value which can be provided by the community, then the value represented by bitcoin is steady. This requires the bitcoin network ( the "Sky Net" of bitcoin ) only produce new bitcoins when it needs to buy real new value from the community ( not the old value-- old value already exchanged by bitcoins). Like the Fed bank buy US government's bonds with new USD, and the government pay USD to anyone selling commodity to it. ( The amount of USD needed by the market is always less than the total value of commodity in the market, as USD is M1 of currency, the M1 formular can be found in any textbook of finance ). In practice, it may happens like that: Hacker A has coded a unix tool for 2 hrs, suppose the market value for this 2 hrs is 100 bitcoins, then customer B loan 100 bitcoins from bank C, bank C mines 100 bitcoins with no cost, but only a 100 bitcoin credit record in B's bank statement, then B buys this tool and accurally pay A 100 bitcoins. That is, the more people loan from bitcoin bank to buy new commodities, the more new bitcoins should be mined from nowhere. In bitcoin community, anyone can be a bitcoin bank, only if other users in this community trust them -- I will only trust someone who has enough wealth and very good bank operating reputation.
2. With other conditions keep unchanged, if only US dollar inflats, then one bitcoin can buy more US dollars, the bitcoin exchange rate will go high against USD.
3. With other conditions keep unchanged, if only more people need bitcoins instead of USD, then exchange value of bitcoin ( price of bitcoin in USD) goes up.

Next, I'll wait for anyone who can provide value statements with a Demand based Value Theory. Or continue provide more practical and accurate formulas of bitcoin exchange rate.




2011年8月14日星期日

ASUS TF101 EeePad root and reflash to TW firmware

The week before last week, I bought an Android Pad, the Asus TF101 CN version in Guangzhou, I need to reflash it with some oversea firmware to use google services.
After reading XDA and some other sources, I finally flashed a TW version follow these steps (US/WW version should be the same procedure):

[edit: just run the universal script to root you TF101, following text before section *Change SKU* is obsoleted, and, you don't need change SKU to have TF101 rooted]

0. Before you begin, get a Ubuntu Linux Distro as working environment, because many tool support this platform and it do not need install drivers.
0.1 Familiar with the procedure with posts 1 and 2 from XDA forum.

1. First, we need the root privilege to overwrite system boot image from a TW firmware by using android adb command tool. But the Nvidia Tegra firmware is encrypted, so we need a special nvidia dev tool to flash the BIOS (on the Nvidia Tegra ROM) with a new cracked boot.img file, Download NVFlash tool for linux, it's riped from NVIDIA Linux Dev Tool by some hacker and including the Secure Boot key of Asus TF101. If you have flashed the BIOS already, skip to rooting procedure below.

[# procedure of cracking BIOS]

1.1 Boot into XDA mode and make a backup of current firmware:
#!/bin/bash

export PATH=$PATH:.

# all code copied from http://forum.xda-developers.com/showthread.php?t=1142567

BACKUP_DIR=~/tf101-backup-`date +%Y%m%d%H%M%S`

mkdir $BACKUP_DIR

nvflash --bct transformer.bct --setbct --configfile flash.cfg --bl bootloader.bin --odmdata 0x300d8011 --sbk 0x1682CCD8 0x8A1A43EA 0xA532EEB6 0xECFE1D98 --sync

nvflash --resume --getpartitiontable $BACKUP_DIR/partitiontable.txt

nvflash --resume --read 2 $BACKUP_DIR/02_BCT_raw.img

nvflash --resume --read 3 $BACKUP_DIR/03_PT_raw.img

nvflash --resume --read 4 $BACKUP_DIR/04_EBT_raw.img #bootloader

nvflash --resume --read 5 $BACKUP_DIR/05_SOS_raw.img #recovery

nvflash --resume --read 6 $BACKUP_DIR/06_LNX_raw.img #kernel

nvflash --resume --read 7 $BACKUP_DIR/07_BAK_raw.img

nvflash --resume --read 8 $BACKUP_DIR/08_GP1_raw.img

nvflash --resume --read 9 $BACKUP_DIR/09_APP_raw.img #system

nvflash --resume --read 10 $BACKUP_DIR/10_CAC_raw.img

nvflash --resume --read 11 $BACKUP_DIR/11_MSC_raw.img

nvflash --resume --read 12 $BACKUP_DIR/12_USP_raw.img

nvflash --resume --read 13 $BACKUP_DIR/13_PER_raw.img

nvflash --resume --read 14 $BACKUP_DIR/14_YTU_raw.img

#nvflash --resume --read 15 $BACKUP_DIR/15_UDA_raw.img #media (/!\ ~14/30GB large)

nvflash --resume --read 16 $BACKUP_DIR/16_GPT_raw.img
[#rooting procedure is omited, it's as simple as replace a number in a system file, just read the universal script mentioned above]

1.2 Now we can flash the rooted boot.img:
nvflash -r --download 6 boot.img
 
[#Change SKU] 
2. After reboot, we will have a rooted system, and we can update it with any stock firmware from ASUS of any regional SKU. The command is:

升级过程:
1.解压ROM包中的blob文件到adb目录中
2.将TF101与电脑连接
3. 进入到adb文件目录中
4.输入命令 adb push blob /data/local/
5.稍等几分钟后会提示blob文件就被传送到机身存储中
6.继续输入命令 adb shell
7.此时提示符变为#
8.输入命令 dd if=/data/local/blob of=/dev/block/mmcblk0p4
9.设备会自动重启,开机即为所刷ROM.


At last, I reflashed the rooted boot image with nvflash tool to install some system apps which require a rooted device.