Bitcoin Forum
May 06, 2024, 10:27:13 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Алгоритм дистрибуции монет блокчейна  (Read 417 times)
Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
May 08, 2018, 11:20:28 AM
Last edit: July 19, 2018, 06:14:15 PM by Vtools
Merited by noname71rus (1)
 #1

Эмиссия монет.

Общеизвестно, что чем более популярной становится криптовалюта, тем больше у нее узлов (нод) в сети и тем больше в ней совершается транзакций. Понятно, что чем больше нод подключается к сети, тем больше тратится общей вычислительной мощности для осуществления транзакций. Например, когда в сети было 100 нод, то сеть обрабатывала 100 транзакций в день и, например, эмитировано в день 100 монет. Логично ожидать, что когда в сети будет 1 млн нод и в сети будет обрабатываться 1 млн транзакций, то эмиссия монет будет 1 млн монет, т.к. вычислительные затраты выросли пропорционально.

Представьте следующие начальные условия:
1) Есть блокчейн с высокой скоростью транзакций (от тысячи TPS).
2) Алгоритм консенсуса максимально децентрализованный - т.е. чистый PoW

Требуется придумать максимально честный алгоритм эмиссии монет. Под честностью понимаю "что-то", что позволит максимально широко распространится в массах, например можно сделать, чтобы пользователи присоединившиеся позже получили такие же условия майнинга (эмиссии монет) как и более ранние пользователи.

Я вижу решение такое - число монет выдаваемое в качестве награды за блок должно зависеть от уровня сложности PoW.
Например можно сделать:
1)Линейная зависимость. Награда за блок равна среднему хешрейту сети в данный момент (т.е. равна: 2 в степени числа нулей в "красивом" хеше найденного блока)
2)Квадратный корень. Тоже что и 1, только берется квадратный корень
3)Логарифмическая. Тупо берется число первых нулей красивого хеша.


На примере биткоина:
Block #521743  хеш: 00000000000000000016c6647923244f520ad7ca6ccdf07325e2113e667708a8
В нем 75 первых бит равны 0
1) Линейный способ - не хватает разрядности числа, это главный недостаток
2) 2^(75/2) = 194368031998 - тоже многовато, даже если считать в сатоши. Интересно, что если взять кубический корень, то 2^(75/3) = 33554432 сатоши (0.3 биткоина)
3) 75


Стоит заметить что есть два варианта развития:
1) Инфляционный вариант. Если эта идея станет популярной в массах, то экономика будет совсем непривычной - цена монеты не будет сильно расти. Наверно основной упор будет сделан на стабильности стоимости монеты и на совершении транзакций.
2) Без инфляционный вариант. Но с другой стороны ничего не мешает ограничить эмиссию монет сверху, например, при достижении эмиссии 100 млн монет, правила меняются меняются - заменяются на классический вариант с автоматическим понижением в 2 раза каждые N блоков


UPDATE:
Плюс описанного подхода:
Можно более точно заложить объем денег, требуемых для сети. Особенность криптовалют такая, что один раз установив правила игры, их уже практически нельзя поменять. Размер эмиссии - это рыночный показатель, зависящий от числа пользователей. Логично заложить эту зависимость в саму формулу.


UPD2

Алгоритм реализован в блокчейне TERA
https://bitcointalk.org/index.php?topic=4573801
Consensus: PoW
Algorithm:  sha3 + meshhash (ASIC resistent hashing)
Max emission: 1 bln (TER)
Reward for block: 1-20 coins, depends on network power (one billionth of the remainder of undistributed amount of coins and multiplied by the hundredth part of the square of the logarithm of the network power)
Block size 120 KB
Premine: 5%
Development fund: 1% of the mining amount
Block generation time: 1 second
Block confirmation time: 8 seconds
Speed: from 1000 transactions per second
Commission: free of charge



Restart of the TERA project in 2022
Web ܀ ANN ܀ Discord ܀ Telegram ܀ Twitter
Activity + Trust + Earned Merit == The Most Recognized Users on Bitcointalk
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715034433
Hero Member
*
Offline Offline

Posts: 1715034433

View Profile Personal Message (Offline)

Ignore
1715034433
Reply with quote  #2

1715034433
Report to moderator
1715034433
Hero Member
*
Offline Offline

Posts: 1715034433

View Profile Personal Message (Offline)

Ignore
1715034433
Reply with quote  #2

1715034433
Report to moderator
MrDarkElf
Member
**
Offline Offline

Activity: 294
Merit: 10


View Profile
May 08, 2018, 05:41:42 PM
 #2

По хорошему это ничего не поменяет, если провести аналогию с биткоином, то зависимость награды за блок от сложности существует и на выходе мы получем практически тоже самое. Разве нет?

Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
May 08, 2018, 06:17:36 PM
 #3

По хорошему это ничего не поменяет, если провести аналогию с биткоином, то зависимость награды за блок от сложности существует и на выходе мы получем практически тоже самое. Разве нет?

На практике в биткоине обратная зависимость. Становится сложнее искать блок и становиться меньше награда (в монетах). Но они не связаны между собой причинно следственной связью. Просто больше людей присоединилось к сети и также прошло много времени, а алгоритм уже который раз вдвое сократил награду. Но если исходить их стоимости в долларах, то частично вы правы.

Вообще я исходил не из денежных принципов, а из принципов стимулирования работы сети. Т.е. если забыть что монеты можно продать/купить на бирже, а считать их только средством оплаты за транзакции внутри сети, то таким образом создается баланс монет и услуг.

Restart of the TERA project in 2022
Web ܀ ANN ܀ Discord ܀ Telegram ܀ Twitter
Sabrina-Roller
Newbie
*
Offline Offline

Activity: 204
Merit: 0


View Profile
May 09, 2018, 07:02:10 AM
 #4

Эмиссия монет.

Общеизвестно, что чем более популярной становится криптовалюта, тем больше у нее узлов (нод) в сети и тем больше в ней совершается транзакций. Понятно, что чем больше нод подключается к сети, тем больше тратится общей вычислительной мощности для осуществления транзакций. Например, когда в сети было 100 нод, то сеть обрабатывала 100 транзакций в день и, например, эмитировано в день 100 монет. Логично ожидать, что когда в сети будет 1 млн нод и в сети будет обрабатываться 1 млн транзакций, то эмиссия монет будет 1 млн монет, т.к. вычислительные затраты выросли пропорционально.

Представьте следующие начальные условия:
1) Есть блокчейн с высокой скоростью транзакций (от тысячи TPS).
2) Алгоритм консенсуса максимально децентрализованный - т.е. чистый PoW

Требуется придумать максимально честный алгоритм эмиссии монет. Под честностью понимаю "что-то", что позволит максимально широко распространится в массах, например можно сделать, чтобы пользователи присоединившиеся позже получили такие же условия майнинга (эмиссии монет) как и более ранние пользователи.

Я вижу решение такое - число монет выдаваемое в качестве награды за блок должно зависеть от уровня сложности PoW.
Например можно сделать:
1)Линейная зависимость. Награда за блок равна среднему хешрейту сети в данный момент (т.е. равна: 2 в степени числа нулей в "красивом" хеше найденного блока)
2)Квадратный корень. Тоже что и 1, только берется квадратный корень
3)Логарифмическая. Тупо берется число первых нулей красивого хеша.


На примере биткоина:
Block #521743  хеш: 00000000000000000016c6647923244f520ad7ca6ccdf07325e2113e667708a8
В нем 75 первых бит равны 0
1) Линейный способ - не хватает разрядности числа, это главный недостаток
2) 2^(75/2) = 194368031998 - тоже многовато, даже если считать в сатоши. Интересно, что если взять кубический корень, то 2^(75/3) = 33554432 сатоши (0.3 биткоина)
3) 75


Стоит заметить что есть два варианта развития:
1) Инфляционный вариант. Если эта идея станет популярной в массах, то экономика будет совсем непривычной - цена монеты не будет сильно расти. Наверно основной упор будет сделан на стабильности стоимости монеты и на совершении транзакций.
2) Без инфляционный вариант. Но с другой стороны ничего не мешает ограничить эмиссию монет сверху, например, при достижении эмиссии 100 млн монет, правила меняются меняются - заменяются на классический вариант с автоматическим понижением в 2 раза каждые N блоков


первый вариант сразу понизит интерес,все ставят на бурный рост
A-Bolt
Legendary
*
Offline Offline

Activity: 2315
Merit: 2312


View Profile
May 09, 2018, 09:39:39 AM
Merited by chimk (2)
 #5

Я вижу решение такое - число монет выдаваемое в качестве награды за блок должно зависеть от уровня сложности PoW.
Например можно сделать:
1)Линейная зависимость. Награда за блок равна среднему хешрейту сети в данный момент (т.е. равна: 2 в степени числа нулей в "красивом" хеше найденного блока)
2)Квадратный корень. Тоже что и 1, только берется квадратный корень
3)Логарифмическая. Тупо берется число первых нулей красивого хеша.

Вы, похоже, никогда не слышали и не задумывались об таком понятии, как устойчивость. В технических вузах не зря изучается такой раздел математики, как теория устойчивости Ляпунова.

Теперь по существу вашего подхода:
1. Чем выше сложность - тем больше вознаграждение
2. Чем больше вознаграждение - тем больше привлекается мощностей
3. Чем больше мощность сети - тем выше сложность
4. GOTO в пункт 1

В системах автоматического управления такая схема называется положительной обратной связью (чем больше X - тем больше Y, чем больше Y - тем больше Х). Положительная обратная связь приводит к неустойчивости системы.

Ваш алгоритм зависимости вознаграждения от сложности может привести к тому, что майнеры быстро высосут всю эмиссию (у вас эмиссия ограничена?). Присутствие корня в зависимости несколько сгладит ситуацию, но не настолько принципиально.
Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
May 10, 2018, 08:20:53 AM
 #6

Я вижу решение такое - число монет выдаваемое в качестве награды за блок должно зависеть от уровня сложности PoW.
Например можно сделать:
1)Линейная зависимость. Награда за блок равна среднему хешрейту сети в данный момент (т.е. равна: 2 в степени числа нулей в "красивом" хеше найденного блока)
2)Квадратный корень. Тоже что и 1, только берется квадратный корень
3)Логарифмическая. Тупо берется число первых нулей красивого хеша.

Вы, похоже, никогда не слышали и не задумывались об таком понятии, как устойчивость. В технических вузах не зря изучается такой раздел математики, как теория устойчивости Ляпунова.

Теперь по существу вашего подхода:
1. Чем выше сложность - тем больше вознаграждение
2. Чем больше вознаграждение - тем больше привлекается мощностей
3. Чем больше мощность сети - тем выше сложность
4. GOTO в пункт 1

В системах автоматического управления такая схема называется положительной обратной связью (чем больше X - тем больше Y, чем больше Y - тем больше Х). Положительная обратная связь приводит к неустойчивости системы.

Ваш алгоритм зависимости вознаграждения от сложности может привести к тому, что майнеры быстро высосут всю эмиссию (у вас эмиссия ограничена?). Присутствие корня в зависимости несколько сгладит ситуацию, но не настолько принципиально.


Это замечательно. Но акцент не на этом. Все зависит от желаемых целей. Нужен ли стабильный эквивалент полезности для сети, нужен ли взрывной рост популярности и т.д. ...

Дополнения, к алгоритму:
Рост эмиссии можно ограничить сверху временем - т.е. будет введен понижающий коэффициент - как степень от времени по аналогии с биткоином. Например, уменьшение в два раза каждые полгода.
Собственно об этом я писал изначально:
Quote
2) Без инфляционный вариант. Но с другой стороны ничего не мешает ограничить эмиссию монет сверху, например, при достижении эмиссии 100 млн монет, правила меняются меняются - заменяются на классический вариант с автоматическим понижением в 2 раза каждые N блоков


Плюс описанного подхода:
Можно более точно заложить объем денег, требуемых для сети. Особенность криптовалют такая, что один раз установив правила игры, их уже практически нельзя поменять. Размер эмиссии - это рыночный показатель, зависящий от числа пользователей. Логично заложить эту зависимость в саму формулу.




Restart of the TERA project in 2022
Web ܀ ANN ܀ Discord ܀ Telegram ܀ Twitter
rumkin
Jr. Member
*
Offline Offline

Activity: 54
Merit: 1


View Profile WWW
May 10, 2018, 02:02:33 PM
 #7

Чем больше нод конкурируют за подпись блока, тем реже одна нода его подписывает. Поэтому рост вознаграждения привязанный к росту количества нод снизит прибыльность и остановит рост сети, достигнув некоего значения. Так что баланс рано или поздно будет достигнут.

Но сегодня упор делается не на стимулирование роста сети. Этот процесс уже хорошо изучен. Основной проблемой является количество транзакций, которые сеть может обработать и здесь дело не в мощности отдельных нод, а в том как сделать алгоритм принятия решения распределенным.

Blockchain Developer | https://rumk.in
Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
May 10, 2018, 05:50:59 PM
 #8

Чем больше нод конкурируют за подпись блока, тем реже одна нода его подписывает. Поэтому рост вознаграждения привязанный к росту количества нод снизит прибыльность и остановит рост сети, достигнув некоего значения. Так что баланс рано или поздно будет достигнут.

Но сегодня упор делается не на стимулирование роста сети. Этот процесс уже хорошо изучен. Основной проблемой является количество транзакций, которые сеть может обработать и здесь дело не в мощности отдельных нод, а в том как сделать алгоритм принятия решения распределенным.


Верно, вы только что упомянули ещё одно ограничение сверху - это денежное, т.е. наличие экономического стимула для майнера вкладываться в оборудование.

Для меня большей проблемой является алгоритмы стимулирования роста сети. Я не вижу проблему создания распределённого консенсуса. Точнее у меня её нет. А вот проблемы хранения данных которые растут на 10гб каждый день (при 1000 tps по 100 байт) вижу.

Может скооперируемся нашими знаниями?

Restart of the TERA project in 2022
Web ܀ ANN ܀ Discord ܀ Telegram ܀ Twitter
rumkin
Jr. Member
*
Offline Offline

Activity: 54
Merit: 1


View Profile WWW
May 11, 2018, 12:03:52 PM
 #9

Для меня большей проблемой является алгоритмы стимулирования роста сети. Я не вижу проблему создания распределённого консенсуса. Точнее у меня её нет. А вот проблемы хранения данных которые растут на 10гб каждый день (при 1000 tps по 100 байт) вижу.


Нужно отрезать хвост из транзакций, формируя скользящий генезис блок, к которому все откатываются в случае чего. Таким образом на 1 Тб диске у вас сможет храниться ~100 дней истории, этого более чем достаточно для построения надежной системы. Стоимость 1Тб SSD-диска в районе 500 USD, вполне подъемная сумма даже для новичков.

Может скооперируемся нашими знаниями?

Вроде как уже кооперируем)

Blockchain Developer | https://rumk.in
Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
May 11, 2018, 01:11:41 PM
 #10

...
А вот проблемы хранения данных которые растут на 10гб каждый день (при 1000 tps по 100 байт) вижу.

Нужно отрезать хвост из транзакций, формируя скользящий генезис блок, к которому все откатываются в случае чего. Таким образом на 1 Тб диске у вас сможет храниться ~100 дней истории, этого более чем достаточно для построения надежной системы. Стоимость 1Тб SSD-диска в районе 500 USD, вполне подъемная сумма даже для новичков.

Обрезать то можно, но будет ли доверие пользователей к такой системе?

Собственно есть еще два варианта, которые сейчас прорабатываю:
1. Шардинг (хранить транзакции и счета рапределенно)
2. Историю транзакций хранит клиент, а сеть хранит только хеши блоков. Но это в теории, т.к. непонятно как на практике это реализовать...



Restart of the TERA project in 2022
Web ܀ ANN ܀ Discord ܀ Telegram ܀ Twitter
rumkin
Jr. Member
*
Offline Offline

Activity: 54
Merit: 1


View Profile WWW
May 11, 2018, 05:16:49 PM
 #11

Обрезать то можно, но будет ли доверие пользователей к такой системе?

Доверие отдельному блоку = доверию всему блокчейну. Здесь действует тождество, если я доверяю блоку А2, полученному из А1 и доверяю блоку А1, полученному из блока А0. Значит я могу доверять блоку А2, так же как и блоку А0.

При этом 100 дней достаточный промежуток времени для обнаружения подмены/коллизии, которая невозможна без согласия 51 % сети.

Сейчас многие сервисы ожидают 5 подтверждений и это считается достаточно надежным значением. При генерации блока каждые 5 секунд, получаем 17280 подтверждений в день. Остается только обеспечить непрерывное отслеживание состояния сети, что легко достижимо и получаем надежную сеть.

Собственно есть еще два варианта, которые сейчас прорабатываю:
1. Шардинг (хранить транзакции и счета рапределенно)
2. Историю транзакций хранит клиент, а сеть хранит только хеши блоков. Но это в теории, т.к. непонятно как на практике это реализовать...

1. Шардинг, пока что лучший вариант, алгоритмы, правда не опробованы на практике.
2. Деревья Меркеля для этого и созданы. Используются в лайтнодах.

Blockchain Developer | https://rumk.in
Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
July 19, 2018, 06:15:25 PM
 #12

Алгоритм реализован в блокчейне TERA
https://bitcointalk.org/index.php?topic=4573801
Consensus: PoW
Algorithm:  sha3 + meshhash (ASIC resistent hashing)
Max emission: 1 bln (TER)
Reward for block: 1-20 coins, depends on network power (one billionth of the remainder of undistributed amount of coins and multiplied by the hundredth part of the square of the logarithm of the network power)
Block size 120 KB
Premine: 5%
Development fund: 1% of the mining amount
Block generation time: 1 second
Block confirmation time: 8 seconds
Speed: from 1000 transactions per second
Commission: free of charge

Restart of the TERA project in 2022
Web ܀ ANN ܀ Discord ܀ Telegram ܀ Twitter
neiros
Legendary
*
Offline Offline

Activity: 3500
Merit: 1100



View Profile WWW
July 20, 2018, 05:05:51 AM
 #13

...
Block size 120 KB
...
Block generation time: 1 second
...
Commission: free of charge

0,12 * 60 сек = 7,2 мегабайта в минуту * 60 мин * 24 часа = 10,368 гигабайт в сутки * 30 дней = 311,04 гигабайт в месяц * 12 = 3,73248 терабайта в год
 Huh
Это шутка?
Бесплатная?

Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
December 13, 2018, 09:25:06 AM
 #14

...
Block size 120 KB
...
Block generation time: 1 second
...
Commission: free of charge

0,12 * 60 сек = 7,2 мегабайта в минуту * 60 мин * 24 часа = 10,368 гигабайт в сутки * 30 дней = 311,04 гигабайт в месяц * 12 = 3,73248 терабайта в год
 Huh
Это шутка?
Бесплатная?

Транзакции бесплатные.
Да, проклятие блокчейнов с большой пропускной способностью это большой объем блокчейна. Решается так (я уже начал имплементацию в Теру):
https://docs.google.com/document/d/1JVYcfggPK-ZiF4cnerr_2-IrK9JyxD7Aw4ihlR2sNjI/edit?usp=sharing


Restart of the TERA project in 2022
Web ܀ ANN ܀ Discord ܀ Telegram ܀ Twitter
neiros
Legendary
*
Offline Offline

Activity: 3500
Merit: 1100



View Profile WWW
December 13, 2018, 12:06:50 PM
 #15


Даже как-то глаза сами разбегаются от всего этого, да ещё и норовят убежать куда подальше... Grin

Какого размера дата-центр нужно с собой брать, и к чему его подключить, чтобы например, сходить в магазин за хлебом одному, 10, 100 или более человекам?
Что будет, если два дата-центра или более, контролируемые одним человеком, будут отправлять друг другу 1000 и более транзакций в секунду?

Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
December 13, 2018, 02:24:17 PM
 #16


Даже как-то глаза сами разбегаются от всего этого, да ещё и норовят убежать куда подальше... Grin

Какого размера дата-центр нужно с собой брать, и к чему его подключить, чтобы например, сходить в магазин за хлебом одному, 10, 100 или более человекам?
Что будет, если два дата-центра или более, контролируемые одним человеком, будут отправлять друг другу 1000 и более транзакций в секунду?

Прошу прощения, но по ссылке не ходили и читать не читали?

Restart of the TERA project in 2022
Web ܀ ANN ܀ Discord ܀ Telegram ܀ Twitter
neiros
Legendary
*
Offline Offline

Activity: 3500
Merit: 1100



View Profile WWW
December 13, 2018, 04:11:30 PM
 #17


Прошу прощения, но по ссылке не ходили и читать не читали?

Ходил, читал - ничего не понял.

Зачем в вашей системе нужен блокчейн? Какую функцию он выполняет?

Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
December 14, 2018, 08:52:46 AM
 #18


Прошу прощения, но по ссылке не ходили и читать не читали?

Ходил, читал - ничего не понял.

Зачем в вашей системе нужен блокчейн? Какую функцию он выполняет?

Тера - это платформа децентрализованных приложений. Это своеобразная операционная система. Она состоит из хранилища программ и хранилища данных, интегрированных в сеть Интернет. Механизм публикации программ и данных является свободным от цензуры. Кровеносной системой является блокчейн.

Начал писать WP:
https://docs.google.com/document/d/1B6_qlAp2xs4aHkqOwyvRMCDJTjgeNiOJiGpIeT0VAzY/edit#

Restart of the TERA project in 2022
Web ܀ ANN ܀ Discord ܀ Telegram ܀ Twitter
neiros
Legendary
*
Offline Offline

Activity: 3500
Merit: 1100



View Profile WWW
December 14, 2018, 11:51:44 AM
 #19

Начал писать WP:
https://docs.google.com/document/d/1B6_qlAp2xs4aHkqOwyvRMCDJTjgeNiOJiGpIeT0VAzY/edit#

...
Традиционно блокчейны применяются в криптовалютых и в блоки записывают транзакции. При этом не допускается запись в блок транзакции, которая является невалидной (например не имеет правильную цифровую подпись, не  достаточно денег на счете, двойная трата и т.д.). В платформе Тера блокчейн используется как транспорт Huh, поэтому в блоки может записываться произвольная информация (далее мы будем называть ее транзакциями). Интерпретация правильности информации лежит на приложениях более высокого уровня.
...

Если блокчейн это не блокчейн, а транспорт, который может транспортировать всё чего угодно, то почему вы транспорт называете блокчейном?

Vtools (OP)
Full Member
***
Offline Offline

Activity: 411
Merit: 135


View Profile WWW
December 14, 2018, 12:18:55 PM
 #20

Начал писать WP:
https://docs.google.com/document/d/1B6_qlAp2xs4aHkqOwyvRMCDJTjgeNiOJiGpIeT0VAzY/edit#

...
Традиционно блокчейны применяются в криптовалютых и в блоки записывают транзакции. При этом не допускается запись в блок транзакции, которая является невалидной (например не имеет правильную цифровую подпись, не  достаточно денег на счете, двойная трата и т.д.). В платформе Тера блокчейн используется как транспорт Huh, поэтому в блоки может записываться произвольная информация (далее мы будем называть ее транзакциями). Интерпретация правильности информации лежит на приложениях более высокого уровня.
...

Если блокчейн это не блокчейн, а транспорт, который может транспортировать всё чего угодно, то почему вы транспорт называете блокчейном?

Исходя из следующего определения:
Блокчейн это: Набор упорядоченных транзакций записанных в блоки. Каждый блок образует неразрывную цепочку с другими блоками. Транзакции необратимы.



Restart of the TERA project in 2022
Web ܀ ANN ܀ Discord ܀ Telegram ܀ Twitter
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!