What is Bitok
What if Bitcoin had stayed CPU-mineable with complete Satoshi-era codebase? No features added. No ideology injected. No attempt to "fix" Bitcoin according to modern tastes.
I've been running an experiment - the original v0.3.19 codebase. The same rules. The same behavior. One major change: a mining algorithm that GPUs and ASICs can't easily dominate. All critical security fixes in place from day one. Adapted only as much as required to run on modern operating systems and resist GPU mining.
Key Changes from Bitcoin v0.3.19
✓ Modern System Compatibility
Updated build system for OpenSSL 3.x, Boost 1.74+, GCC 11+, wxWidgets 3.2
✓ Yespower Proof-of-Work
Replaced SHA-256 with Yespower 1.0 for CPU-friendly, GPU/ASIC-resistant mining
✓ New Genesis Block
Separate network. No confusion with BTC. No replay attacks. Clean slate.
✓ Security Fixes
All Satoshi-era security fixes present from launch
What's Identical to Bitcoin v0.3.19
- Same transaction format
- Same script system
- Same networking code
- Same wallet behavior
- 21M supply cap
- Halving schedule
- 10 minute blocks
Technical Specifications
| Algorithm | Yespower 1.0 (N=2048, r=32, personalization="BitokPoW") |
| Block Time | 10 minutes (600 seconds) |
| Block Reward | 50 BITOK, halving every 210,000 blocks |
| Max Supply | 21,000,000 BITOK |
| Difficulty Adjustment | Every 2016 blocks (~2 weeks) |
| Coinbase Maturity | 100 blocks |
| P2P Port | 18333 |
| RPC Port | 8332 |
Genesis Block
Hash: 0x0290400ea28d3fe79d102ca6b7cd11cee5eba9f17f2046c303d92f65d6ed2617
Message: "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks"
nBits: 0x1effffff
nNonce: 37137
Mining Bitok
Bitok uses Yespower proof-of-work, designed to keep mining accessible to regular users with regular computers.
Start Mining
Daemon (Command Line)
# Mine with all CPU cores
./bitokd -gen
# Mine with specific number of cores
./bitokd -gen -genproclimit=4
# Start daemon in background with mining
./bitokd -daemon -gen
GUI Wallet
Click "Generate Coins" button to enable mining and adjust the processor limit if desired.
Mining Commands (RPC)
# Enable mining with 4 threads
./bitokd setgenerate true 4
# Check mining status
./bitokd getgenerate
# Get network difficulty
./bitokd getdifficulty
# Get general info (includes mining status)
./bitokd getinfo
Mining Pool Integration
Existing CPU miners like cpuminer-multi or cpuminer-opt support Yespower with proper parameters:
./cpuminer \
--algo=yespower \
--param-n=2048 \
--param-r=32 \
--param-key="BitokPoW" \
--url=http://127.0.0.1:8332 \
--user=rpcuser \
--pass=rpcpassword
Building from Source
Ubuntu / Debian Build
Compatible with Ubuntu 24.04 LTS and modern toolchains (GCC 11+, OpenSSL 3.x, Boost 1.74+)
Install Dependencies
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libssl-dev
sudo apt-get install libdb-dev libdb5.3-dev
sudo apt-get install libboost-all-dev
# Optional: For GUI wallet
sudo apt-get install libwxgtk3.2-dev
sudo apt-get install libgtk-3-dev
Build
# Daemon only
make -f makefile.unix
# GUI wallet
make -f makefile.unix gui
# Both
make -f makefile.unix all
CPU Optimization
Default builds use -march=native for maximum performance.
For distribution binaries:
# Modern CPUs (2015+)
make -f makefile.unix all YESPOWER_ARCH=x86-64-v3
# Maximum compatibility
make -f makefile.unix all YESPOWER_ARCH=x86-64
Install
sudo make -f makefile.unix install
Data Directory
~/.bitok/
~/.bitok/wallet.dat regularly!
macOS Build (11.0+ Big Sur)
Supports both Apple Silicon (arm64) and Intel (x86_64)
Install Xcode Command Line Tools
xcode-select --install
Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Install Dependencies
brew install boost berkeley-db@4 openssl@3 wxwidgets
Build
# Daemon
make -f makefile.osx bitokd
# GUI wallet
make -f makefile.osx bitok
# Both
make -f makefile.osx all
# Create .app Bundle
make -f makefile.osx bundle
Install
# Install daemon
sudo make -f makefile.osx install
# Install GUI to /Applications
sudo make -f makefile.osx install-gui
Data Directory
~/Library/Application Support/Bitok/
wallet.dat regularly!
Windows Build (10+ 64-bit)
Method 1: Cross-Compile from Ubuntu
Install Prerequisites
sudo apt-get update
sudo apt-get install -y mingw-w64 g++-mingw-w64-x86-64 wine64
Build
# GUI wallet
make -f makefile.mingw gui MARCH=x86-64-v3
x86_64-w64-mingw32-strip bitok.exe
Method 2: Native Windows Build (MSYS2)
Download from https://www.msys2.org/
Install Dependencies
pacman -Syu
pacman -S --needed mingw-w64-x86_64-gcc mingw-w64-x86_64-boost \
mingw-w64-x86_64-openssl mingw-w64-x86_64-db \
mingw-w64-x86_64-wxWidgets3.2 make
Build
make -f makefile.mingw gui MARCH=x86-64-v3
Data Directory
%APPDATA%\Bitok\
wallet.dat regularly!
RPC API Reference
JSON-RPC 1.0 interface for programmatic access. Essential for exchanges, mining pools, block explorers, and integrations.
| Protocol | JSON-RPC 1.0 |
| Transport | HTTP POST |
| Default Port | 8332 |
| Binding | 127.0.0.1 (localhost only) |
| Authentication | HTTP Basic Auth |
Connection
# Start daemon with RPC enabled
./bitokd -rpcuser=yourusername -rpcpassword=yourpassword -server
# Execute RPC command
./bitokd -rpcuser=yourusername -rpcpassword=yourpassword getinfo
General Commands
help
Lists all available RPC commands.
./bitokd help
getinfo
Returns general information about the node and wallet.
./bitokd getinfo
stop
Gracefully shuts down the Bitok server.
./bitokd stop
Blockchain Commands
getblockcount
Returns the total number of blocks in the longest block chain.
./bitokd getblockcount
getblockhash <index>
Returns the hash of the block at a specific height.
./bitokd getblockhash 0
getblock <hash>
Returns detailed information about a block given its hash.
./bitokd getblock "000007a5d9c7..."
getdifficulty
Returns the current proof-of-work difficulty.
./bitokd getdifficulty
Wallet Commands
getbalance
Returns the total available balance in the wallet.
./bitokd getbalance
getnewaddress [label]
Generates a new Bitok address for receiving payments.
./bitokd getnewaddress
./bitokd getnewaddress "customer123"
sendtoaddress <address> <amount>
Sends BITOK to a specified address.
./bitokd sendtoaddress "1A1zP1eP5..." 10.50
Mining Commands
getgenerate
Returns the current mining status.
./bitokd getgenerate
setgenerate <generate> [genproclimit]
Enables or disables mining.
# Enable mining with 4 cores
./bitokd setgenerate true 4
# Disable mining
./bitokd setgenerate false
Python Example
import requests
import json
class BitokRPC:
def __init__(self, user, password, host='127.0.0.1', port=8332):
self.url = f'http://{host}:{port}/'
self.auth = (user, password)
self.headers = {'content-type': 'application/json'}
self.id = 0
def call(self, method, params=[]):
self.id += 1
payload = {
'jsonrpc': '1.0',
'id': self.id,
'method': method,
'params': params
}
response = requests.post(
self.url,
data=json.dumps(payload),
headers=self.headers,
auth=self.auth
)
return response.json()['result']
# Usage
rpc = BitokRPC('yourusername', 'yourpassword')
info = rpc.call('getinfo')
print(f"Balance: {info['balance']} BITOK")
print(f"Blocks: {info['blocks']}")
BitokPOW - Yespower Algorithm
CPU-optimized, GPU/ASIC-resistant mining as Satoshi intended.
Overview
Bitok replaces Bitcoin's SHA-256 proof-of-work with Yespower 1.0, a memory-hard, CPU-optimized hashing algorithm designed to resist GPU and ASIC acceleration.
"We should have a gentleman's agreement to postpone the GPU arms race as long as we can for the good of the network."
- Satoshi Nakamoto, December 12, 2010
What Changed
The entire change is swapping one hash function for another. Everything else - difficulty adjustment, block validation, consensus rules - remains exactly as Satoshi wrote it.
Bitcoin (SHA-256)
uint256 hash = block.GetHash();
if (hash <= target) {
/* block found */
}
Bitok (Yespower)
uint256 hash = YespowerHashBlock(&block, 80);
if (hash <= target) {
/* block found */
}
Yespower Parameters
yespower_params_t {
.version = YESPOWER_1_0,
.N = 2048, // Memory cost (~128KB)
.r = 32, // Block size parameter
.pers = "BitokPoW", // Personalization string
.perslen = 8
}
Design Goals
| Goal | SHA-256 | Yespower |
| CPU-friendly | No | Yes |
| GPU-resistant | No | Yes |
| ASIC-resistant | No | Yes |
| Laptop mining viable | No | Yes |
| Memory-hard | No | Yes |
Key Features
- Sequential Memory Initialization: Must fill 128KB before starting. Cannot be parallelized.
- Random Memory Access: Pseudo-random reads from 128KB buffer. Memory latency becomes the bottleneck.
- SIMD Optimizations: Uses SSE2, AVX, AVX2, and AVX512 instructions automatically.
- Domain Separation: "BitokPoW" personalization prevents cross-chain hash reuse.
Why GPUs Can't Win
- Memory Bandwidth: GPUs have high bandwidth but poor latency for random access patterns.
- SIMD Instructions: Modern x86 CPUs have AVX2/AVX512 which Yespower leverages.
- Power Efficiency: A CPU uses 50-100W for reasonable hashrate. A GPU uses 250-350W for only 2-3x improvement.
Conclusion
Yespower proof-of-work implements Satoshi's vision of accessible CPU mining. Anyone with a laptop can participate in securing the network without specialized hardware.
This is not innovation. This is restoration.
Bitok Manifesto
An experiment in what Bitcoin would look like if Satoshi's vision of CPU mining had held up.
What Happened to Bitcoin
Bitcoin worked in 2010. You downloaded the software, clicked "Generate Coins," and your laptop found blocks. The network grew because participation was free and easy.
Then GPUs happened. Then mining pools. Then FPGAs, ASICs. The barrier to entry went from "own a computer" to "have access to cheap electricity and specialized hardware."
This was not a conspiracy. It was economics. SHA-256 happens to be very fast on parallel hardware. Someone was always going to optimize it.
What Satoshi Said About It
"We should have a gentleman's agreement to postpone the GPU arms race as long as we can for the good of the network. It's much easier to get new users up to speed if they don't have to worry about GPU drivers and compatibility. It's nice how anyone with just a CPU can compete fairly equally right now."
- Satoshi Nakamoto, December 12, 2010
"GPUs are much less evenly distributed, so the generated coins only go towards rewarding 20% of the people for joining the network instead of 100%."
- To Laszlo Hanyecz (the pizza guy)
He knew. He just didn't have a solution at the time.
What Bitok Changes
- Yespower instead of SHA-256 - GPU miners don't get 1000x advantage anymore. More like 2x, if that.
- New genesis block - Separate network. No confusion with BTC. No replay attacks. Clean slate.
- Modern build system - Compiles on Ubuntu 24.04, macOS, Windows.
Everything else is exactly as Satoshi left it. Same 21 million cap. Same 10 minute blocks. Same halving schedule. Same transaction format. Same script system. Same wallet behavior.
What Bitok Does NOT Change
- No new opcodes
- No SegWit
- No block size increase
- No layer 2
- No BIPs
- No governance
- No foundation
- No roadmap
The protocol is frozen at December 2010.
Why
I wanted to mine Bitcoin with my laptop. Not buy ASICs. Not join pools. Not pay for cloud hashrate.
I couldn't, because of physics and economics.
So I made this instead.
The Philosophy Part
Bitcoin's whitepaper is 9 pages. Most of it is math. Satoshi didn't write manifestos. He wrote code that worked and let people figure out what it meant.
The code said: anyone can transact. Anyone can mine. No intermediaries. No permission.
Somewhere along the way, "anyone can mine" became "anyone with industrial-scale infrastructure can mine." That happened gradually and probably inevitably.
Bitok is an experiment in what Bitcoin would look like if the mining algorithm had been different from the start.
Nothing more profound than that.
Will This Succeed
Define "succeed."
- If you mean: will the software compile and run? Yes. I tested it.
- If you mean: will people use it? Some might. Most won't. That's fine.
- If you mean: will it be worth money? I genuinely don't know. Markets are weird.
- If you mean: will it stay decentralized? That depends on whether enough people run nodes.
No Promises
I'm not going to tell you this will change the world. I'm not going to tell you to buy it. I'm not going to tell you anything you want to hear just because it sounds good.
Here's software. It does what it says. Run it or don't.
"Writing a description for this thing is bloody hard. There's nothing to quite relate it to."
- Satoshi Nakamoto, January 2009
Still true.
Security Fixes Included
All security fixes from Bitcoin v0.3.19 are present:
- Value overflow protection (the 184 billion coin bug)
- Blockchain checkpoints
- DoS limits
- IsStandard() transaction filtering
Bitcoin forked once in August 2010 to fix the overflow bug. Bitok launches with all fixes in place. No forks needed.
Run the code.
That is the manifesto.